基于51單片機(jī)的電子密碼鎖-畢業(yè)論文_第1頁
基于51單片機(jī)的電子密碼鎖-畢業(yè)論文_第2頁
基于51單片機(jī)的電子密碼鎖-畢業(yè)論文_第3頁
基于51單片機(jī)的電子密碼鎖-畢業(yè)論文_第4頁
基于51單片機(jī)的電子密碼鎖-畢業(yè)論文_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

通信104班姓名:AA基于單片機(jī)的電子密碼鎖III單片機(jī)課程設(shè)計(jì)項(xiàng)目名稱基于單片機(jī)的電子密碼鎖專業(yè)班級(jí)通信104班學(xué)生姓名AA指導(dǎo)教師AA2012年11月28日摘要電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機(jī)械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡(jiǎn)易的電路產(chǎn)品,也有基于芯片的性價(jià)比較高的產(chǎn)品?,F(xiàn)在應(yīng)用較廣的電子密碼鎖是以芯片為核心,通過編程來實(shí)現(xiàn)的。本文以AT89C51單片機(jī)為核心器件,結(jié)合按鍵電路、LED數(shù)碼管顯示電路、報(bào)警指示電路和開鎖機(jī)構(gòu),利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的I/O端口,及其控制的準(zhǔn)確性通過軟件程序來控制整個(gè)系統(tǒng)實(shí)現(xiàn)電子密碼鎖的基本功能,其主要具有如下功能:●密碼通過鍵盤輸入,若密碼正確,則將鎖打開●密碼輸入錯(cuò)誤,蜂鳴器將報(bào)警提示●用戶可以自由設(shè)定密碼關(guān)鍵詞:AT89C51;電子密碼鎖;功能第1章緒論隨著人們生活水平的提高,日常生活和工作中的住宅與部門的安全防范、單位的文件檔案、財(cái)務(wù)報(bào)表以及一些個(gè)人資料的保存等一系列安全防盜問題變的尤其突出。傳統(tǒng)的機(jī)械鎖由于其構(gòu)造的簡(jiǎn)單,被撬的事件屢見不鮮,且人們常需攜帶多把鑰匙,使用極不方便,一旦鑰匙丟失安全性即大打折扣。隨著科學(xué)技術(shù)的不斷發(fā)展,人們對(duì)日常生活中的安全保險(xiǎn)器件的要求越來越高。為滿足人們對(duì)鎖的使用要求,增加其安全性,用密碼代替鑰匙的密碼鎖應(yīng)運(yùn)而生。密碼鎖因具有安全性高、成本低、功耗低、易操作等優(yōu)點(diǎn),受到了廣大用戶的青睞。據(jù)有關(guān)資料介紹,電子密碼鎖的研究從20世紀(jì)30年代就開始了,在一些特殊場(chǎng)所早就有所應(yīng)用。但當(dāng)時(shí)多半是配合機(jī)械鎖一起作用且存在著諸如體積較大,成本較高,可靠性較低等缺點(diǎn)一時(shí)難以普及。20世紀(jì)80年代后,隨著信息技術(shù)、集成電路、半導(dǎo)體技術(shù)的發(fā)展,電子密碼鎖的設(shè)計(jì)也取得了快速的進(jìn)步。目前,在西方發(fā)達(dá)國(guó)家,電子密碼鎖技術(shù)相對(duì)先進(jìn),種類齊全,電子密碼鎖已被廣泛應(yīng)用于安全處所,而我國(guó)在此點(diǎn)上這稍有落后?,F(xiàn)今常見的密碼鎖設(shè)計(jì)主要有兩種方案,一種是中規(guī)模集成電路控制的方案,另一種是單片機(jī)控制的方案。對(duì)于采用集成電路控制的方案,其中的編碼電子鎖電路分為編碼電路、控制電路、復(fù)位電路、解碼電路、防盜報(bào)警電路、門鈴電路,而電子鎖主要由輸入元件、電路(包括電源)以及鎖體三部分組成。顯然此種方案的物理實(shí)現(xiàn)結(jié)構(gòu)較為復(fù)雜且重新設(shè)置密碼、輸入密碼的操作過程也會(huì)給用戶帶來一定的不方便;而利用單片機(jī)控制的方案,由于單片機(jī)靈活的編程設(shè)計(jì)和豐富的I/O端口,及其控制的準(zhǔn)確性,不但能實(shí)現(xiàn)基本的密碼鎖功能,還能添加掉電存儲(chǔ)、聲光提示甚至添加遙控控制功能,但其也有一定的局限性,就在于其控制原理的復(fù)雜以及要求設(shè)計(jì)人員具有更加良好的程序設(shè)計(jì)能力,調(diào)試較為繁瑣,否則程序一旦跑飛將造成意想不到的損失。通過對(duì)這兩種方案的優(yōu)缺點(diǎn)比較,再考慮到本人自己對(duì)單片機(jī)設(shè)計(jì)具有一定的基礎(chǔ),所以此次選擇利用單片機(jī)來進(jìn)行密碼鎖的設(shè)計(jì)。本文以AT89C51單片機(jī)為核心器件,結(jié)合按鍵電路、LED數(shù)碼管顯示電路、報(bào)警指示電路和開鎖機(jī)構(gòu),利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的I/O端口,及其控制的準(zhǔn)確性通過軟件程序來控制整個(gè)系統(tǒng)實(shí)現(xiàn)電子密碼鎖的基本功能。系統(tǒng)能實(shí)現(xiàn)如下的功能:(1)密碼通過鍵盤輸入,若密碼正確,則將鎖打開(2)密碼輸入錯(cuò)誤,蜂鳴器將報(bào)警提示(3)用戶可以自由設(shè)定密碼系統(tǒng)功能實(shí)用,成本低廉,具有一定的實(shí)用價(jià)值。III通信104班姓名:AA基于單片機(jī)的電子密碼鎖第3章硬件設(shè)計(jì)3.1單片機(jī)主控制模塊(含晶振、復(fù)位基本工作電路)圖3.1主控制模塊3.2鍵盤輸入模塊本設(shè)計(jì)中采用3*4矩陣鍵盤,與AT89C51的P1口相連,提供按鍵輸入,如圖3.2:圖3.2鍵盤輸入模塊表3.1按鍵功能按鍵鍵名功能說明1-9鍵數(shù)字鍵輸入密碼*鍵重設(shè)密碼鍵設(shè)定新密碼#鍵確認(rèn)鍵確認(rèn)密碼輸入完畢3.3顯示模塊圖3.3顯示模塊此設(shè)計(jì)中,使用了四個(gè)共陰極數(shù)碼管,使用動(dòng)態(tài)顯示技術(shù)控制數(shù)碼管。其4個(gè)位選信號(hào)與P2.0-P2.3相連,當(dāng)其中某位為低電平時(shí)表示選中該位;8段段選信號(hào)與P0口相連,當(dāng)其中某段為高電平時(shí)導(dǎo)通該段,特殊的,由于AT89C51的P0口的驅(qū)動(dòng)能力較弱,不足以驅(qū)動(dòng)數(shù)碼管點(diǎn)亮,故在此又引入上拉電阻以驅(qū)動(dòng)數(shù)碼管。關(guān)于上拉電阻有如下介紹:當(dāng)TTL電路驅(qū)動(dòng)CMOS電路時(shí),如果電路輸出的高電平低于CMOS電路的最低高電平(一般為3.5V),這時(shí)就需要在TTL的輸出端接上拉電阻,以提高輸出高電平的值。2、OC門電路必須加上拉電阻,以提高輸出的高電平值。3、為加大輸出引腳的驅(qū)動(dòng)能力,有的單片機(jī)管腳上也常使用上拉電阻。4、在CMOS芯片上,為了防止靜電造成損壞,不用的管腳不能懸空,一般接上拉電阻產(chǎn)生降低輸入阻抗,提供泄荷通路。5、芯片的管腳加上拉電阻來提高輸出電平,從而提高芯片輸入信號(hào)的噪聲容限增強(qiáng)抗干擾能力。6、提高總線的抗電磁干擾能力。管腳懸空就比較容易接受外界的電磁干擾。7、長(zhǎng)線傳輸中電阻不匹配容易引起反射波干擾,加上下拉電阻是電阻匹配,有效的抑制反射波干擾。3.4報(bào)警模塊圖3.4報(bào)警模塊報(bào)警模塊由蜂鳴器、PNP三極管和單片機(jī)組成。選擇一只壓電式蜂鳴器,壓電式蜂鳴器工作時(shí)約需要100mA驅(qū)動(dòng)電流。特殊的,此處為加強(qiáng)驅(qū)動(dòng)能力,選用三極管來放大電流驅(qū)動(dòng)蜂鳴器。當(dāng)89C51的P3.0口輸出為低電平時(shí),三極管導(dǎo)通,蜂鳴器產(chǎn)生蜂鳴音,89C51輸出為高電平時(shí),蜂鳴器不發(fā)聲。3.5開鎖模塊圖3.5開鎖模塊此處以繼電器的動(dòng)作來模擬鎖的開閉。同樣,為了增強(qiáng)驅(qū)動(dòng)能力添加了PNP三極管以放大電流,當(dāng)P3.1口為低電平時(shí),三極管導(dǎo)通,此時(shí)繼電器動(dòng)作(鎖開),燈亮;二極管具有續(xù)流作用以保護(hù)器件安全。通信104班姓名:AA基于單片機(jī)的電子密碼鎖第4章軟件設(shè)計(jì)4.1系統(tǒng)程序設(shè)計(jì)流程圖開始初始化模式選擇識(shí)別按鍵密碼輸入手動(dòng)清除開始初始化模式選擇識(shí)別按鍵密碼輸入手動(dòng)清除密碼比較開門舊密碼輸入新密碼輸入存入緩存區(qū)再次輸入密碼重新輸入完成返回NANBY4.2系統(tǒng)程序設(shè)計(jì)重要端口定義說明:sbitbuzzer=P3^0;sbitrelay=P3^1;ucharcodetable[2]={0x40,0x00};//共陰極數(shù)碼管編碼顯示‘-’和熄滅ucharkeyword[4]={1,1,1,1};ucharkeycmp[4];ucharkey=0,num=0,flg=0;報(bào)警子程序:(通過控制buzzer端口的高低電平來控制三極管的通斷,從而控制蜂鳴器)voidalarm(){ num=0; buzzer=0; delay(100); buzzer=1; }數(shù)碼管顯示子程序:LED顯示器工作方式有兩種:靜態(tài)顯示方式和動(dòng)態(tài)顯示方式。靜態(tài)顯示的特點(diǎn)是每個(gè)數(shù)碼管的段選必須接一個(gè)8位數(shù)據(jù)線來保持顯示的字形碼。當(dāng)送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優(yōu)點(diǎn)是占用CPU時(shí)間少,顯示便于監(jiān)測(cè)和控制。缺點(diǎn)是硬件電路比較復(fù)雜,成本較高;動(dòng)態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動(dòng)態(tài)掃描顯示。所謂動(dòng)態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時(shí)都在顯示。動(dòng)態(tài)顯示的亮度比靜態(tài)顯示要差一些。本設(shè)計(jì)使用動(dòng)態(tài)顯示方法。voiddisplay(){uchari,j,cs=0x7f; for(i=num;i>0;i--) { P0=table[0]; cs=_crol_(cs,1); P2=cs; delay(10); } for(j=4-num;j>0;j--) { P0=table[1]; cs=_crol_(cs,1); P2=cs; delay(10); } }按下確認(rèn)鍵后執(zhí)行功能子程序:(使用標(biāo)志變量flg,根據(jù)其值來選擇執(zhí)行相應(yīng)的功能)voidok(){ uchari=0; display();//P0=(flg+1);delay(1000); if(flg==0) { for(i=0;i<4;i++) if(keyword[i]!=keycmp[i]){alarm();break;} if(num==4){relay=0;num=0;} } if(flg==2) { num=0; for(i=0;i<4;i++)keyword[i]=keycmp[i]; flg=0; } if(flg==1) { for(i=0;i<4;i++) if(keyword[i]!=keycmp[i]){alarm();break;} if(num==4) { num=0; display();//P0=0x07;delay(1000); flg=2; } } }鍵盤掃描子程序:(運(yùn)用矩陣鍵盤逐行逐列掃描法,一次檢測(cè)各個(gè)按鍵)鍵盤是單片機(jī)常用輸入設(shè)備,在按鍵數(shù)量較多時(shí),為了節(jié)省I/O口等單片機(jī)資源,一般采取掃描的方式來識(shí)別到底是哪一個(gè)鍵被按下。即通過確定被按下的鍵處在哪一行哪一列來確定該鍵的位置,獲取鍵值以啟動(dòng)相應(yīng)的功能程序。查找哪個(gè)按鍵被按下的方法為:一個(gè)一個(gè)地查找。先第一行輸出0,檢查列線是否非全高;否則第二行輸出0,檢查列線是否非全高;否則第三行輸出0,檢查列線是否非全高;如果某行輸出0時(shí),查到列線非全高,則該行有按鍵按下;根據(jù)第幾行線輸出0與第幾列線讀入為0,即可判斷在具體什么位置的按鍵按下。voidkeyscan(){ uchartemp1,temp2; P1=0xfe;//令第一列為低電平,檢測(cè)第1列 temp1=P1; if(temp1!=0xfe) { delay(5); //去抖 temp2=P1; if(temp1==temp2) { switch(temp2) { case0xf6:if(num<4){key=1;keycmp[num]=key;num++;display();} elsealarm(); break; case0xee:if(num<4){key=4;keycmp[num]=key;num++;display();} elsealarm(); break; case0xde:if(num<4){key=7;keycmp[num]=key;num++;display();} elsealarm(); break; case0xbe:set();break; } } } while(temp1!=0xfe) temp1=P1;//等待按鍵釋放 P1=0xfd;//檢測(cè)第2列 temp1=P1; if(temp1!=0xfd) { delay(5); //去抖 temp2=P1; if(temp1==temp2) { switch(temp2) { case0xf5:if(num<4){key=2;keycmp[num]=key;num++;display();} elsealarm(); break; case0xed:if(num<4){key=5;keycmp[num]=key;num++;display();} elsealarm(); break; case0xdd:if(num<4){key=8;keycmp[num]=key;num++;display();} elsealarm(); break; case0xbd:if(num<4){key=0;keycmp[num]=key;num++;display();} elsealarm(); break; } } } while(temp1!=0xfd) temp1=P1;//等待按鍵釋放 P1=0xfb;//檢測(cè)第3列 temp1=P1; if(temp1!=0xfb) { delay(5); //去抖 temp2=P1; if(temp1==temp2) { switch(temp2) { case0xf3:if(num<4){key=3;keycmp[num]=key;num++;display();} elsealarm(); break; case0xeb:if(num<4){key=6;keycmp[num]=key;num++;display();} elsealarm(); break; case0xdb:if(num<4){key=9;keycmp[num]=key;num++;display();} elsealarm(); break; case0xbb:if(num==4)ok(); elsealarm(); break; } } } while(temp1!=0xfb) temp1=P1;//等待按鍵釋放 display(); }中斷服務(wù)函數(shù):(當(dāng)通過機(jī)械手段關(guān)鎖時(shí),將通過外部中斷的形式使程序初始化恢復(fù)原狀態(tài))voidInt0()interrupt0{ relay=1; }整個(gè)系統(tǒng)的完整程序設(shè)計(jì)詳見附錄。通信104班姓名:AA基于單片機(jī)的電子密碼鎖第5章系統(tǒng)仿真設(shè)計(jì)5.1Proteus軟件介紹Proteus軟件是英國(guó)Labcenterelectronics公司出版的EDA工具軟件(該軟件中國(guó)總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國(guó)內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。在PROTEUS繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可以在PROTEUS的原理圖中看到模擬的實(shí)物運(yùn)行狀態(tài)和過程。PROTEUS是單片機(jī)課堂教學(xué)的先進(jìn)助手。PROTEUS不僅可將許多單片機(jī)實(shí)例功能形象化,也可將許多單片機(jī)實(shí)例運(yùn)行過程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實(shí)驗(yàn)硬件高度對(duì)應(yīng)。這在相當(dāng)程度上替代了傳統(tǒng)的單片機(jī)實(shí)驗(yàn)教學(xué)的功能,例:元器件選擇、電路連接、電路檢測(cè)、電路修改、軟件調(diào)試、運(yùn)行結(jié)果等。課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)是學(xué)生走向就業(yè)的重要實(shí)踐環(huán)節(jié)。由于PROTEUS提供了實(shí)驗(yàn)室無法相比的大量的元器件庫,提供了修改電路設(shè)計(jì)的靈活性、提供了實(shí)驗(yàn)室在數(shù)量、質(zhì)量上難以相比的虛擬儀器、儀表,因而也提供了培養(yǎng)學(xué)生實(shí)踐精神、創(chuàng)造精神的平臺(tái)隨著科技的發(fā)展,“計(jì)算機(jī)仿真技術(shù)”已成為許多設(shè)計(jì)部門重要的前期設(shè)計(jì)手段。它具有設(shè)計(jì)靈活,結(jié)果、過程的統(tǒng)一的特點(diǎn)。可使設(shè)計(jì)時(shí)間大為縮短、耗資大為減少,也可降低工程制造的風(fēng)險(xiǎn)。相信在單片機(jī)開發(fā)應(yīng)用中PROTEUS也能茯得愈來愈廣泛的應(yīng)用。使用Proteus軟件進(jìn)行單片機(jī)系統(tǒng)仿真設(shè)計(jì),是虛擬仿真技術(shù)和計(jì)算機(jī)多媒體技術(shù)相結(jié)合的綜合運(yùn)用,有利于培養(yǎng)學(xué)生的電路設(shè)計(jì)能力及仿真軟件的操作能力;在單片機(jī)課程設(shè)計(jì)和全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽中,我們使用Proteus開發(fā)環(huán)境對(duì)學(xué)生進(jìn)行培訓(xùn),在不需要硬件投入的條件下,學(xué)生普遍反映,對(duì)單片機(jī)的學(xué)習(xí)比單純學(xué)習(xí)書本知識(shí)更容易接受,更容易提高。實(shí)踐證明,在使用Proteus進(jìn)行系統(tǒng)仿真開發(fā)成功之后再進(jìn)行實(shí)際制作,能極大提高單片機(jī)系統(tǒng)設(shè)計(jì)效率。因此,Proteus有較高的推廣利用價(jià)值。5.2Proteus仿真圖圖5.1系統(tǒng)仿真總結(jié)使用單片機(jī)制作的電子密碼鎖具有軟硬件設(shè)計(jì)簡(jiǎn)單,易于開發(fā),成本較低,安全可靠,操作方便等特點(diǎn)。本文在設(shè)計(jì)之初認(rèn)真探討分析了幾種方案的優(yōu)缺點(diǎn),正是由于單片機(jī)的眾多優(yōu)良特性的吸引,最終從經(jīng)濟(jì)實(shí)用的角度出發(fā),采用單片機(jī)AT89C51作為主控芯片,結(jié)合外圍的鍵盤輸入、顯示、報(bào)警、開鎖等電路,用C語言編寫主控芯片的控制程序,設(shè)計(jì)了一款可以多次更改密碼具有報(bào)警功能的電子密碼鎖通信104班姓名:AA基于單片機(jī)的電子密碼鎖參考文獻(xiàn)[1]于殿泓,王新年.單片機(jī)原理與程序設(shè)計(jì)實(shí)驗(yàn)教程[M].西安:西安電子科技大學(xué)出版社,2007,8.[2]趙文博,劉文濤.單片機(jī)語言C51程序設(shè)計(jì)[M].北京:人民郵電出版社,2005,10.[3]李愛秋.紅外線遙控12位電子密碼鎖的設(shè)計(jì)[J].溫州職業(yè)技術(shù)學(xué)院學(xué)報(bào)第8卷第一期,2008.[4]陳杰,黃鴻.傳感器與檢測(cè)技術(shù)[M].北京:高等教育出版社,2010,8.[5]周航慈.單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)[M].北京:北京航空航天大學(xué)出版社,2011,2.[6]李朝青.單片機(jī)原理及接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2005,10.[7]孫育才.MCS-51系列單片微型計(jì)算機(jī)及其應(yīng)用[M].東南大學(xué)出版社,2004,6.[8]沈紅衛(wèi).單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)力與分析[M].北京:北京航空航天大學(xué)出版社,2003.[9]徐愛鈞,彭秀華.單片機(jī)高級(jí)語言C51應(yīng)用程序設(shè)計(jì)[M].北京航空航天大學(xué)出版社,2006.[10]曾一江.單片微機(jī)原理與接口技術(shù)[M].北京:科技出版社,2009,12.[11]康華光.電子技術(shù)基礎(chǔ)(模擬部分)[M].北京:高等教育出版社,2004,4.通信104班姓名:AA基于單片機(jī)的電子密碼鎖附錄電子密碼鎖完整程序設(shè)計(jì):#include<reg51.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedcharsbitbuzzer=P3^0;sbitrelay=P3^1;ucharcodetable[2]={0x40,0x00};//共陰極數(shù)碼管編碼顯示‘-’和熄滅ucharkeyword[4]={1,1,1,1};ucharkeycmp[4];ucharkey=0,num=0,flg=0;//==============================延遲程序延時(shí)x毫秒voiddelay(uintx){ uinti,j; for(i=x;i>0;i--) for(j=110;j>0;j--); }//==============================報(bào)警程序voidalarm(){ num=0; buzzer=0; delay(100); buzzer=1; }//==============================數(shù)碼管顯示程序voiddisplay(){uchari,j,cs=0x7f; for(i=num;i>0;i--) { P0=table[0]; cs=_crol_(cs,1); P2=cs; delay(10); } for(j=4-num;j>0;j--) { P0=table[1]; cs=_crol_(cs,1); P2=cs; delay(10); } }//==============================密碼重置程序voidset(){ num=0; display(); flg=1; }//==============================確認(rèn)鍵程序voidok(){ uchari=0; display();//P0=(flg+1);delay(1000); if(flg==0) { for(i=0;i<4;i++) if(keyword[i]!=keycmp[i]){alarm();break;} if(num==4){relay=0;num=0;} } if(flg==2) { num=0; for(i=0;i<4;i++)keyword[i]=keycmp[i]; flg=0; } if(flg==1) { for(i=0;i<4;i++) if(keyword[i]!=keycmp[i]){alarm();break;} if(num==4) { num=0; display();//P0=0x07;delay(1000); flg=2; } } }//==============================鍵盤掃描程序voidkeyscan(){ uchartemp1,temp2; P1=0xfe;//令第一列為低電平,檢測(cè)第1列 temp1=P1; if(temp1!=0xfe) { delay(5); //去抖 temp2=P1; if(temp1==temp2) { switch(temp2) { case0xf6:if(num<4){key=1;keycmp[num]=key;num++;display();} elsealarm(); break; case0xee:if(num<4){key=4;keycmp[num]=key;num++;display();} elsealarm(); break; case0xde:if(num<4){key=7;keycmp[num]=key;num++;display();} elsealarm(); break; case0xbe:set();break; } } } while(temp1!=0xfe) temp1=P1;//等待按鍵釋放 P1=0xfd;//檢測(cè)第2列 temp1=P1; if(temp1!=0xfd) { delay(5); //去抖 temp2=P1; if(temp1==temp2) { switch(temp2) { case0xf5:if(num<4){key=2;keycmp[num]=key;num++;display();} elsealarm(); break; case0xed:if(num<4){key=5;keycmp[num]=key;num++;display();} elsealarm(); break; case0xdd:if(num<4){key=8;keycmp[num]=key;num++;display();} elsealarm(); break; case0xbd:if(num<4){key=0;keycmp[num]=key;num++;display();} elsealarm(); break; } } } while(temp1!=0xfd) temp1=P1;//等待按鍵釋放 P1=0xfb;//檢測(cè)第3列 temp1=P1; if(temp1!=0xfb) { delay(5); //去抖 temp2=P1; if(temp1==temp2

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論