已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
44鍵盤及8位數(shù)碼管顯示構(gòu)成的電子密碼鎖 1 用44組成09數(shù)字鍵及確認鍵。 用8位數(shù)碼管組成顯示電路提示信息,當(dāng)輸入密碼時,只顯示“8.”,當(dāng)密碼位數(shù)輸入完畢按下確認鍵時,對輸入的密碼與設(shè)定的密碼進行比較,若密碼正確,則門開,此處用LED發(fā)光二極管亮一秒鐘做為提示,同時發(fā)出“叮咚”聲;若密碼不正確,禁止按鍵輸入3秒,同時發(fā)出“嘀、嘀”報警聲;若在3秒之內(nèi)仍有按鍵按下,則禁止按鍵輸入3秒被重新禁止。 2 電路原理圖 圖4.33.1 3 系統(tǒng)板上硬件連線 (1) 把“單片機系統(tǒng)”區(qū)域中的P0.0P0.7用8芯排線連接到“動態(tài)數(shù)碼顯示”區(qū)域中的ABCDEFGH端子上。 (2) 把“單片機系統(tǒng)“區(qū)域中的P2.0P2.7用8芯排線連接到“動態(tài)數(shù)碼顯示”區(qū)域中的S1S2S3S4S5S6S7S8端子上。 (3) 把“單片機系統(tǒng)”區(qū)域中的P3.0P3.7用8芯排線連接到“44行列式鍵盤”區(qū)域中的R1R2R3R4C1C2C3C4端子上。 (4) 把“單片機系統(tǒng)”區(qū)域中的P1.0用導(dǎo)線連接到“八路發(fā)光二極管模塊”區(qū)域中的L2端子上。 (5) 把“單片機系統(tǒng)”區(qū)域中的P1.7用導(dǎo)線連接到“音頻放大模塊”區(qū)域中的SPK IN端子上。 (6) 把“音頻放大模塊”區(qū)域中的SPK OUT接到喇叭上。 4 程序設(shè)計內(nèi)容 (1) 44行列式鍵盤識別技術(shù):有關(guān)這方面內(nèi)容前面已經(jīng)討論過,這里不再重復(fù)。 (2) 8位數(shù)碼顯示,初始化時,顯示“P”,接著輸入最大6位數(shù)的密碼,當(dāng)密碼輸入完后,按下確認鍵,進行密碼比較,然后給出相應(yīng)的信息。在輸入密碼過程中,顯示器只顯示“8.”。當(dāng)數(shù)字輸入超過6個時,給出報警信息。在密碼輸入過程中,若輸入錯誤,可以利用“DEL”鍵刪除剛才輸入的錯誤的數(shù)字。 (3) 44行列式鍵盤的按鍵功能分布圖如圖4.33.2所示: 圖4.33.2 5 C語言源程序#include unsigned char ps=1,2,3,4,5;unsigned char code dispbit=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40,0x73,0xff;unsigned char dispbuf8=18,16,16,16,16,16,16,16;unsigned char dispcount;unsigned char flashcount;unsigned char temp;unsigned char key;unsigned char keycount;unsigned char pslen=5;unsigned char getps6;bit keyoverflag;bit errorflag;bit rightflag;unsigned int second3;unsigned int aa,bb;unsigned int cc;bit okflag;bit alarmflag;bit hibitflag;unsigned char oka,okb;void main(void)unsigned char i,j;TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%256;TR0=1;ET0=1;EA=1;while(1)P3=0xff;P3_4=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f)for(i=10;i0;i-)for(j=248;j0;j-);temp=P3;temp=temp & 0x0f;if (temp!=0x0f)temp=P3;temp=temp & 0x0f;switch(temp)case 0x0e:key=7;break;case 0x0d:key=8;break;case 0x0b:key=9;break;case 0x07:key=10;break;temp=P3;P1_1=P1_1;if(key=0) & (key10)if(keycount6)keycount=6;keyoverflag=1;/key overflowelse if(key=12)/delete keyif(keycount0)keycount-;getpskeycount=0;dispbufkeycount+2=16;elsekeyoverflag=1;else if(key=15)/enter keyif(keycount!=pslen)errorflag=1;rightflag=0;second3=0;elsefor(i=0;i0;i-)for(j=248;j0;j-);temp=P3;temp=temp & 0x0f;if (temp!=0x0f)temp=P3;temp=temp & 0x0f;switch(temp)case 0x0e:key=4;break;case 0x0d:key=5;break;case 0x0b:key=6;break;case 0x07:key=11;break;temp=P3;P1_1=P1_1;if(key=0) & (key10)if(keycount6)keycount=6;keyoverflag=1;/key overflowelse if(key=12)/delete keyif(keycount0)keycount-;getpskeycount=0;dispbufkeycount+2=16;elsekeyoverflag=1;else if(key=15)/enter keyif(keycount!=pslen)errorflag=1;rightflag=0;second3=0;elsefor(i=0;i0;i-)for(j=248;j0;j-);temp=P3;temp=temp & 0x0f;if (temp!=0x0f)temp=P3;temp=temp & 0x0f;switch(temp)case 0x0e:key=1;break;case 0x0d:key=2;break;case 0x0b:key=3;break;case 0x07:key=12;break;temp=P3;P1_1=P1_1;if(key=0) & (key10)if(keycount6)keycount=6;keyoverflag=1;/key overflowelse if(key=12)/delete keyif(keycount0)keycount-;getpskeycount=0;dispbufkeycount+2=16;elsekeyoverflag=1;else if(key=15)/enter keyif(keycount!=pslen)errorflag=1;rightflag=0;second3=0;elsefor(i=0;i0;i-)for(j=248;j0;j-);temp=P3;temp=temp & 0x0f;if (temp!=0x0f)temp=P3;temp=temp & 0x0f;switch(temp)case 0x0e:key=0;break;case 0x0d:key=13;break;case 0x0b:key=14;break;case 0x07:key=15;break;temp=P3;P1_1=P1_1;if(key=0) & (key10)if(keycount6)keycount=6;keyoverflag=1;/key overflowelse if(key=12)/delete keyif(keycount0)keycount-;getpskeycount=0;dispbufkeycount+2=16;elsekeyoverflag=1;else if(key=15)/enter keyif(keycount!=pslen)errorflag=1;rightflag=0;second3=0;elsefor(i=0;ikeycount;i+)if(getpsi!=psi)i=keycount;errorflag=1;rightflag=0;second3=0;goto a2;errorflag=0;rightflag=1;a2: i=keycount;temp=temp & 0x0f;while(temp!=0x0f)temp=P3;temp=temp & 0x0f;keyoverflag=0;/?void t0(void) interrupt 1 using 0TH0=(65536-500)/256;TL0=(65536-500)%256;flashcount+;if(flashcount=8)flashcount=0;P0=dispcodedispbufdispcount;P2=dispbitdispcount;dispcount+;if(dispcount=8)dispcount=0;if(errorflag=1) & (rightflag=0)bb+;if(bb=800)bb=0;alarmflag=alarmflag;if(alarmflag=1)/sound alarm signalP1_7=P1_7;aa+;if(aa=800)/light alarm signalaa=0;P1_0=P1_0;second3+;if(second3=6400)second3=0;errorflag=0;rightflag=0;alarmflag=0;bb=0;aa=0;else if(errorflag=0) & (rightflag=1)P1_0=0;cc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025個人住房按揭貸款合同范本
- 2025貨品售賣合同協(xié)議
- 2025年度新能源實驗室氫能技術(shù)研究與應(yīng)用合同3篇
- 2025年度水泥行業(yè)節(jié)能減排合作協(xié)議3篇
- 2025年度數(shù)據(jù)中心基礎(chǔ)設(shè)施安裝合同安裝協(xié)議3篇
- 2025年度養(yǎng)生館特色療法加盟合同協(xié)議書3篇
- 二零二五年度農(nóng)村房屋拆除安全協(xié)議及歷史建筑保護責(zé)任書
- 二零二五年度生態(tài)農(nóng)業(yè)配套農(nóng)村房屋買賣合作框架協(xié)議3篇
- 2025年度環(huán)保建筑材料合作成立公司合同3篇
- 2025年度建筑材料供貨與古建筑修復(fù)合同3篇
- JJF 1806-2020微小孔徑測量儀校準規(guī)范
- 干部履歷表-干部履歷表
- GB 2714-2015食品安全國家標準醬腌菜
- 業(yè)委會年終總結(jié)報告
- 中國移動集團客戶經(jīng)理的工作總結(jié)
- 中醫(yī)護理質(zhì)量指標
- 患者告知及知情同意簽字制度
- 公司各中心事業(yè)部獨立核算運營實施方案
- 幼兒園大班綜合《我們和手機》課件
- 中小企業(yè)內(nèi)部控制與風(fēng)險管理(第二版)項目五:銷售業(yè)務(wù)內(nèi)部控制與風(fēng)險管理
- 中鐵二局工程項目全員安全教育培訓(xùn)考試試題(普工)附答案
評論
0/150
提交評論