、智能手機充電器和門禁系統_第1頁
、智能手機充電器和門禁系統_第2頁
、智能手機充電器和門禁系統_第3頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、【實例98】智能 充電器設計程序代碼如下:#include <reg51.h>unsigned int T3HOUS=3600;unsigned int T1NUM=0;unsigned int INTONUM=0;sbit SPEAK=P0 A 1;sbit EN/OK=P0 a 2;void main(void) system_init(); /*調用系統初始化函數*/EA=1; EX0=1;/*使能 INT0 中斷 */while(1) EN/OK=1;/* 使能 MAX1898*/void int0_interrupt(void) if(INTONUM=0) TR1=1;

2、SPEAK=0; /* 使能定時器 1*/ INTONUM+;void t1_interrupt(void) T1NUM+;T3HOUS-;if(T3HOUS!=0 )&&(INTONUM =1)if(T1NUM=6000)/*3s*/ T1NUM=0;SPEAK=0;else EN/OK=0; /* 禁止 MAX1898*/T3HOUS =0;SPEAK=1;void system_init(void) SPEAK=1; /*禁止蜂鳴器*/EN/OK=0; /* 禁止 MAX1898*/TMOD=0X20;/*設置定時器1*/TCON |=0X01;TH1=0;TL1=0;【

3、實例99】單片機控制門禁系統程序代碼如下:unsigned char Buff30;/*解碼緩沖區*/unsigned char readbit()/*檢測數據位子程序*/unsigned int mk=TIME10;/*裝入超時值,TIME10=600,*/TLO=THO=O;/*初始化計時器*/TR0=1;/*開始計時*/while(-mk)/*超時機制,防止死等*/if(bitin!=INPORT)/*有跳變 INP0RT=P0.0*/break;TR0=0;/*停止計時*/if(mk=0)/*超時退岀*/return 0;bitin=INPORT;/*保存狀態*/mk=TH0*256+

4、TL0;/*計算這樣跳變的脈寬*/if(mk>TIME05)&&( mk<=TIME10)/* 一個周期*/return 1;if(mk>=TIME00)&&( mk<=TIME05)/*半個周期*/return 2;return 0;/*岀錯*/readdata()函數實現讀取一個完整的數據位的子程序,注意應用這個函數時需要在循環中不斷查詢,程序代碼如下:文檔來自于網絡搜索unsigned char readdata()/*讀一個完整的數據位子程序*/switch(readbit() case 1:/* 一個周期*/return !bi

5、tin;case 2:/*半個周期*/if(readbit()!=2) return 2;/*再讀一次半個周期*/return !bitin;default:return 2;CheckData()函數實現接收并解碼子程序,程序中調用了readdata()函數,bit CheckData()unsigned char i,j;bitin=INPORT;/*保存位狀態*/for(i=0;i<9;i+)/*檢測9個數據位1*/if(readdata()!=1)return 0;for(i=0;i<11;i+)/*讀取數據*/Buffi=0x00;for(j=0;j<5;j+)Bu

6、ffi<<=1;switch(readdata()case 0:break;case 1:Buffi|=0x08;break;case 2:/*err*/return 0;/*結束位*/if(Buff10&0x08!=0x00)return 0;/*行奇校驗位*/for(i=0;i<10;i+)if(Buffi>>4) A(Buffi>>3) A(Buffi>>2) A(Buffi>>1) ABuffi)&0x08)!=0)文檔來自于網絡搜索return 0;/*列奇校驗位*/j=0;for(i=0;i<1

7、1;i+)j=j a (Buffi&0x80); if(j!=O)return 0; for(i=0;i<11;i+) j=j A (Buffi&0 x40); if(j!=0)return 0; for(i=0;i<11;i+) j=j a (Buffi&0x20); if(j!=0)return 0; for(i=0;i<11;i+) j=j a (Buffi&0x10); if(j!=0)return 0;/*完成*/return 1;那么卡號信息存ReadCardNo()函數實現讀取卡號的功能。程序中如果檢測到卡信息正確,放在Buff緩沖區中,程序代碼如下:文檔來自于網絡搜索bit ReadCardNo()if(CheckData()/*檢測卡*/unsigned char i;/*編碼輸岀*/Buff0=(Buff2 & 0xF0) | (Buff3>>4 & 0x0F);Buff1=(Buff4 & 0xF0) | (Buff5>>4 & 0x0F);Buff2=(Buff6 & 0xF0) | (B

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論