電子密碼鎖(上交)_第1頁(yè)
電子密碼鎖(上交)_第2頁(yè)
電子密碼鎖(上交)_第3頁(yè)
電子密碼鎖(上交)_第4頁(yè)
電子密碼鎖(上交)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于單片機(jī)的電子密碼鎖設(shè)計(jì) 第一章 緒 論1.1 電子密碼鎖簡(jiǎn)介電子密碼鎖是一種通過(guò)密碼輸入來(lái)控制電路或是芯片工作,從而控制機(jī)械開(kāi)關(guān)的閉合,完成開(kāi)鎖、閉鎖任務(wù)的電子產(chǎn)品。其特點(diǎn)如下:1) 保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于彈子鎖。隨機(jī)開(kāi)鎖成功率幾乎為零。2) 密碼可變,用戶可以隨時(shí)更改密碼,防止密碼被盜,同時(shí)也可以避免因人員的更替而使鎖的密級(jí)下降。3) 誤碼輸入保護(hù),當(dāng)輸入密碼多次錯(cuò)誤時(shí),報(bào)警系統(tǒng)自動(dòng)啟動(dòng)。4) 無(wú)活動(dòng)零件,不會(huì)磨損,壽命長(zhǎng)。5) 使用靈活性好,不像機(jī)械鎖必須佩帶鑰匙才能開(kāi)鎖。6) 電子密碼鎖操作簡(jiǎn)單易行,一學(xué)即會(huì)。1.2 本設(shè)計(jì)所要實(shí)現(xiàn)的目標(biāo)本設(shè)計(jì)采用單片機(jī)為主控芯片,結(jié)合外圍電路

2、,組成電子密碼鎖,用戶想要打開(kāi)鎖,必先通過(guò)提供的鍵盤輸入正確的密碼才能將鎖打開(kāi),密碼輸入錯(cuò)誤有提示,為了提高安全性,當(dāng)密碼輸入錯(cuò)誤三次將報(bào)警。密碼可以有用戶自己修改設(shè)定,鎖打開(kāi)后才能修改密碼。修改密碼之前必須再次輸入就的密碼,在輸入新密碼的時(shí)候要二次確認(rèn),以防止誤操作。1.3 設(shè)計(jì)方案簡(jiǎn)介采用以單片機(jī)為核心的控制方案由于單片機(jī)種類繁多,各種型號(hào)都有其一定的應(yīng)用環(huán)境,因此在選用時(shí)要多加比較,合理選擇,以期獲得最佳的性價(jià)比。一般來(lái)說(shuō)在選取單片機(jī)時(shí)從下面幾個(gè)方面考慮:性能、存儲(chǔ)器、運(yùn)行速度、I/O口、定時(shí)/計(jì)數(shù)器、串行接口、模擬電路功能、工作電壓、功耗、封裝形式、抗干擾性、保密性,除了以上的一些的還

3、有一些最基本的比如:中斷源的數(shù)量和優(yōu)先級(jí)、工作溫度范圍、有沒(méi)有低電壓檢測(cè)功能、單片機(jī)內(nèi)有無(wú)時(shí)鐘振蕩器、有無(wú)上電復(fù)位功能等。在開(kāi)發(fā)過(guò)程中單片機(jī)還受到:開(kāi)發(fā)工具、編程器、開(kāi)發(fā)成本、開(kāi)發(fā)人員的適應(yīng)性、技術(shù)支持和服務(wù)等等因素?;谝陨弦蛩乇驹O(shè)計(jì)選用單片機(jī)AT89S51作為本設(shè)計(jì)的核心元件,利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的I/O端口,及其控制的準(zhǔn)確性,實(shí)現(xiàn)基本的密碼鎖功能。在單片機(jī)的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接AT24C02芯片用于密碼的存儲(chǔ),外接LCD1602顯示器用于顯示作用。當(dāng)用戶需要開(kāi)鎖時(shí),先按鍵盤開(kāi)鎖鍵之后按鍵盤的數(shù)字鍵09輸入密碼。密碼輸完后按下確認(rèn)鍵,如果密碼輸

4、入正確則開(kāi)鎖,不正確顯示密碼錯(cuò)誤重新輸入密碼,當(dāng)三次密碼錯(cuò)誤則發(fā)出報(bào)警;當(dāng)用戶需要修改密碼時(shí),先按下鍵盤設(shè)置鍵后輸入原來(lái)的密碼,只有當(dāng)輸入的原密碼正確后才能設(shè)置新密碼。新密碼輸入無(wú)誤后按確認(rèn)鍵使新密碼將得到存儲(chǔ),密碼修改成功。第二章 主要元器件2.1主控芯片AT89S51單片機(jī)AT89S51功能介紹AT89S51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集

5、和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89S51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案,AT89S51芯片引腳圖如圖2-1所示。主要特性:與MCS-51 兼容 4K字節(jié)可編程閃爍存儲(chǔ)器 壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時(shí)間:10年全靜態(tài)工作:0Hz-24Hz三級(jí)程序存儲(chǔ)器鎖定128*8位內(nèi)部RAM32可編程I/O線兩個(gè)16位定時(shí)器/計(jì)數(shù)器5個(gè)中斷源 可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時(shí)鐘電路 管腳說(shuō)明:下面按其引腳功能分為四部分?jǐn)⑹鲞@40條引腳的功能。 1、主電源引腳VSS和VSS AT89S51芯片

6、引腳圖VSS(40腳)接+5V電壓;VSS(20腳)接地。 2、外接晶體引腳XTAL1和XTAL2 XTAL1(19腳)接外部晶體的一個(gè)引腳。在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端,這個(gè)放大器構(gòu)成了片內(nèi)振蕩器。當(dāng)采用外部振蕩器時(shí),對(duì)HMOS單片機(jī),此引腳應(yīng)接地;對(duì)SHMOS單片機(jī),此引腳作為驅(qū)動(dòng)端。 XTAL2(18腳)接外晶體的另一端。在單片機(jī)內(nèi)部,接至上述振蕩器的反相放大器的輸出端。采用外部振蕩器時(shí),對(duì)HMOS單片機(jī),該引腳接外部振蕩器的信號(hào),即把外部振蕩器的信號(hào)直接接到內(nèi)部時(shí)鐘發(fā)生器的輸入端;對(duì)XHMOS,此引腳應(yīng)懸浮。 3、控制或與其它電源復(fù)用引腳RST/VPD、ALE/PROG、P

7、SEN和EA/VPP RST/VPD(9腳)當(dāng)振蕩器運(yùn)行時(shí),在此腳上出現(xiàn)兩個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。推薦在此引腳與VSS引腳之間連接一個(gè)約8.2k的下拉電阻,與VSS引腳之間連接一個(gè)約10F的電容,以保證可靠地復(fù)位。 VSS掉電期間,此引腳可接上備用電源,以保證內(nèi)部RAM的數(shù)據(jù)不丟失。當(dāng)VSS主電源下掉到低于規(guī)定的電平,而VPD在其規(guī)定的電壓范圍(50.5V)內(nèi),VPD就向內(nèi)部RAM提供備用電源。 ALE/PROG(30腳):當(dāng)訪問(wèn)外部存貯器時(shí),ALE(允許地址鎖存)的輸出用于鎖存地址的低位字節(jié)。即使不訪問(wèn)外部存儲(chǔ)器,ALE端仍以不變的頻率周期性地出現(xiàn)正脈沖信號(hào),此頻率為振蕩器頻率的1

8、/6。因此,它可用作對(duì)外輸出的時(shí)鐘,或用于定時(shí)目的。然而要注意的是,每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。ALE端可以驅(qū)動(dòng)(吸收或輸出電流)8個(gè)LS型的TTL輸入電路。 對(duì)于EPROM單片機(jī)(如8751),在EPROM編程期間,此引腳用于輸入編程脈沖(PROG)。 PSEN(29腳):此腳的輸出是外部程序存儲(chǔ)器的讀選通信號(hào)。在從外部程序存儲(chǔ)器取指令(或常數(shù))期間,每個(gè)機(jī)器周期兩次PSEN有效。但在此期間,每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的PSEN信號(hào)將不出現(xiàn)。PSEN同樣可以驅(qū)動(dòng)(吸收或輸出)8個(gè)LS型的TTL輸入。 EA/VPP(引腳):當(dāng)EA端保持高電平時(shí),訪問(wèn)內(nèi)部程序存儲(chǔ)器

9、,但在PS(程序計(jì)數(shù)器)值超過(guò)0FFFH(對(duì)851/8751/80S51)或1FFFH(對(duì)8052)時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行外部程序存儲(chǔ)器內(nèi)的程序。當(dāng)EA保持低電平時(shí),則只訪問(wèn)外部程序存儲(chǔ)器,不管是否有內(nèi)部程序存儲(chǔ)器。對(duì)于常用的8031來(lái)說(shuō),無(wú)內(nèi)部程序存儲(chǔ)器,所以EA腳須常接地,這樣才能只選擇外部程序存儲(chǔ)器。 對(duì)于EPROM型的單片機(jī)(如8751),在EPROM編程期間,此引腳也用于施加21V的編程電源(VPP)。4控制或與其它電源復(fù)用引腳 RST/Vpd,ALE/PROG,PSEN 和EA/Vpp。RST/Vpd 當(dāng)振蕩器運(yùn)行時(shí)。在此引腳上出現(xiàn)兩個(gè)機(jī)器同期的高電平(由低到高跳變),將使單片機(jī)復(fù)位。

10、在 VSS掉電期間,此引腳可接上備用電源,由 Vpd向內(nèi)部 RAM提供備用電源,以保持內(nèi)部RAM中的數(shù)據(jù)。ALE/PROG 正常操作時(shí)為ALE功能(允許地址錢存),提供把地址的低字節(jié)鎖存到外部鎖存器。ALE引腳以不變的頻率(振蕩周期的1/6)周期性地發(fā)出正脈沖信號(hào)。因此,它可用作對(duì)外輸出的時(shí)鐘,或用于定時(shí)目的。但要注意,每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè) ALE脈沖。 ALE端可以驅(qū)動(dòng)(吸收或輸出電流)八個(gè) LSTTL電路。對(duì)于 EPROM型單片機(jī),在 EPROM編程期間,此引腳接收編程脈沖(PROG功能)。PSEN 外部程序存儲(chǔ)器讀選通信號(hào)輸出端。在從外部程序存儲(chǔ)器取指令(或數(shù)據(jù))期間;P

11、SEN 在每個(gè)機(jī)器周期內(nèi)兩次有效。 PSEN 同樣可以驅(qū)動(dòng)八個(gè)LSTTL輸入。EAVpp EA為內(nèi)部程序存儲(chǔ)器和外部程序存儲(chǔ)器選擇端。當(dāng)EA為高電平時(shí),訪問(wèn)內(nèi)部程序存儲(chǔ)器(PS值小于4K)。當(dāng)EA為低電平時(shí),則訪問(wèn)外部程序存儲(chǔ)器。對(duì)于EPROM型單片機(jī),在EPROM編程期間,此引腳上加21VEPROM編程電源(Vpp)。5、輸入/輸出(I/O)引腳P0、P1、P2、P3(共32根) P0口(39腳至32腳):是雙向8位三態(tài)I/O口,在外接存儲(chǔ)器時(shí),與地址總線的低8位及數(shù)據(jù)總線復(fù)用,能以吸收電流的方式驅(qū)動(dòng)8個(gè)LS型的TTL負(fù)載。 P1口(1腳至8腳):是準(zhǔn)雙向8位I/O口。由于這種接口輸出沒(méi)有高

12、阻狀態(tài),輸入也不能鎖存,故不是真正的雙向I/O口。P1口能驅(qū)動(dòng)(吸收或輸出電流)4個(gè)LS型的TTL負(fù)載。對(duì)8052、8032,P1.0引腳的第二功能為T2定時(shí)/計(jì)數(shù)器的外部輸入,P1.1引腳的第二功能為T2EX捕捉、重裝觸發(fā),即T2外部控制端。對(duì)EPROM編程和程序驗(yàn)證時(shí),它接收低8位地址。 P2口(21腳至28腳):是準(zhǔn)雙向8位I/O口。在訪問(wèn)外部存儲(chǔ)器時(shí),它可以作為擴(kuò)展電路高8位地址總線送出高8位地址。在對(duì)EPROM編程和程序驗(yàn)證期間,它接收高8位地址。P2可以驅(qū)動(dòng)(吸收或輸出電流)4個(gè)LS型的TTL負(fù)載。 P3口(10腳至17腳):是準(zhǔn)雙向8位I/O口,在MSS-51中,這8個(gè)引腳還用于

13、專門功能,是復(fù)用雙功能口。P3能驅(qū)動(dòng)(吸收或輸出電流)4個(gè)LS型的TTL負(fù)載。 作為第一功能使用時(shí),就作為普通I/O口用,功能和操作方法與P1口相同。作為第二功能使用時(shí),各引腳的定義如表所示。 值得強(qiáng)調(diào)的是,P3口的每一條引腳均可獨(dú)立定義為第一功能的輸入輸出或第二功能。表2-1 P3口管腳備選功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(記時(shí)器0外部輸入)P3.5T1(記時(shí)器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7/RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)2.2 存儲(chǔ)芯片AT24C02如圖2-2為

14、AT24C02的芯片引腳圖。圖2-2 AT24C02的芯片引腳圖特點(diǎn):低壓和標(biāo)準(zhǔn)電壓運(yùn)行模式 2.7 (VCC = 2.7V to 5.5V) 1.8 (VCC = 1.8V to 5.5V)內(nèi)建128x8存儲(chǔ)序列,2線制串行接口,雙向數(shù)據(jù)傳送協(xié)議,100kHz(1.8V,2.5V,2.7V) 和400kHz(5V)兼容,寫同步時(shí)鐘(最大10ms),高可靠性,極限:1M寫時(shí)鐘周期,數(shù)據(jù)保存:100年,不斷推進(jìn)的芯片等級(jí)擴(kuò)大了設(shè)備的可用溫度范圍。AT24C02提供電可擦除的串行1024位存儲(chǔ)或可編程只讀存儲(chǔ)器(EEPROM)128字(8位/字)。芯片在低壓的工業(yè)與商業(yè)應(yīng)用中進(jìn)行了最優(yōu)化。設(shè)備操作

15、:CLOCK 和DATA變化:SDA管腳通常外部要拉高。SDA管腳上的數(shù)據(jù)只能在SCL低期間改變。數(shù)據(jù)在SCL高期間改變定義為一個(gè)開(kāi)始或停止信號(hào)。開(kāi)始狀態(tài):在任何操作之前必須有一個(gè)開(kāi)始信號(hào)-在SCL為高時(shí)SDA上產(chǎn)生一個(gè)下降沿。停止?fàn)顟B(tài): SCL為高時(shí)SDA產(chǎn)生一個(gè)上升沿是停止信號(hào),停止信號(hào)后將停止所有通信。在一個(gè)讀的序列之后,停止信號(hào)將讓EEPROM進(jìn)入備用電源模式。2.3 LCD16022顯示器液晶顯示模塊已作為很多電子產(chǎn)品的通過(guò)器件,如在計(jì)算器、萬(wàn)用表、電子表及很多家用電子產(chǎn)品中都可以看到,顯示的主要是數(shù)字、專用符號(hào)和圖形。1602型LCD顯示模塊具有體積小,功耗低,顯示內(nèi)容豐富等特點(diǎn)。

16、1602型LCD可以顯示2行16個(gè)字符,有8位數(shù)據(jù)總線D0-D7和RS,R/W,EN三個(gè)控制端口,工作電壓為5V,并且具有字符對(duì)比度調(diào)節(jié)和背光功能。接口信號(hào)說(shuō)明:1602型LCD的接口信號(hào)說(shuō)明如表2-2所示。表2-2 LCD1602接口信號(hào)說(shuō)明編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極1602型LCD主要技術(shù)參數(shù):顯示容量:162個(gè)字符芯片工作電壓:4.55.5V工作電流:2.0

17、mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.954.35(WH)mm1602型LCD基本操作程序如下表所示:表2-3 LCD1602基本操作程序讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0D7=狀態(tài)字寫指令輸入RS=L,R/W=L,D0D7=指令碼,E=高脈沖輸出無(wú)讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0D7=數(shù)據(jù)寫數(shù)據(jù)輸入RS=H,R/W=L,D0D7=數(shù)據(jù),E=高脈沖輸出無(wú)2.4晶體振蕩器晶體振蕩器,簡(jiǎn)稱晶振,其作用在于產(chǎn)生原始的時(shí)鐘頻率,這個(gè)頻率經(jīng)過(guò)頻率發(fā)生器的放大或縮小后就成了電腦中各種不同的總線頻率。以聲卡為例,要實(shí)現(xiàn)對(duì)模擬信號(hào)44.1kHz或48kHz的采樣,頻

18、率發(fā)生器就必須提供一個(gè)44.1kHz或48kHz的時(shí)鐘頻率。如果需要對(duì)這兩種音頻同時(shí)支持的話,聲卡就需要有兩顆晶振。但是現(xiàn)在的娛樂(lè)級(jí)聲卡為了降低成本,通常都采用SCR將輸出的采樣頻率固定在48kHz,但是SRC會(huì)對(duì)音質(zhì)帶來(lái)?yè)p害,而且現(xiàn)在的娛樂(lè)級(jí)聲卡都沒(méi)有很好地解決這個(gè)問(wèn)題?,F(xiàn)在應(yīng)用最廣泛的是石英晶體振蕩器。 石英晶體振蕩器是一種高精度和高穩(wěn)定度的振蕩器,石英晶體振蕩器也稱石英晶體諧振器,它用來(lái)穩(wěn)定頻率和選擇頻率,是一種可以取代LC諧振回路的晶體諧振元件。石英晶體振蕩器廣泛地應(yīng)用在電視機(jī)、影碟機(jī)、錄像機(jī)、無(wú)線通訊設(shè)備、電子鐘表、單片機(jī)、數(shù)字儀器儀表等電子設(shè)備中。為數(shù)據(jù)處理設(shè)備產(chǎn)生時(shí)鐘信號(hào)和為特定

19、系統(tǒng)提供基準(zhǔn)信號(hào)。在單片機(jī)中為其提供時(shí)鐘頻率。石英晶體振蕩器是利用石英晶體(二氧化硅的結(jié)晶體)的壓電效應(yīng)制成的一種諧振器件,它的基本構(gòu)成大致是:從一塊石英晶體上按一定方位角切下薄片(簡(jiǎn)稱為晶片,它可以是正方形、矩形或圓形等),在它的兩個(gè)對(duì)應(yīng)面上涂敷銀層作為電極,在每個(gè)電極上各焊一根引線接到管腳上,再加上封裝外殼就構(gòu)成了石英晶體諧振器,簡(jiǎn)稱為石英晶體或晶體、晶振。其產(chǎn)品一般用金屬外殼封裝,也有用玻璃殼、陶瓷或塑料封裝的。只要在晶體振子板極上施加交變電壓,就會(huì)使晶片產(chǎn)生機(jī)械變形振動(dòng),此現(xiàn)象即所謂逆壓電效應(yīng)。當(dāng)外加電壓頻率等于晶體諧振器的固有頻率時(shí),就會(huì)發(fā)生壓電諧振,從而導(dǎo)致機(jī)械變形的振幅突然增大。

20、 第三章 硬件系統(tǒng)設(shè)計(jì)3.1 設(shè)計(jì)原理本設(shè)計(jì)主要由單片機(jī)、矩陣鍵盤、液晶顯示器和密碼存儲(chǔ)等部分組成。其中矩陣鍵盤用于輸入數(shù)字密碼和進(jìn)行各種功能的實(shí)現(xiàn)。由用戶通過(guò)連接單片機(jī)的矩陣鍵盤輸入密碼,后經(jīng)過(guò)單片機(jī)對(duì)用戶輸入的密碼與自己保存的密碼進(jìn)行對(duì)比,從而判斷密碼是否正確,然后控制引腳的高低電平傳到開(kāi)鎖電路或者報(bào)警電路控制開(kāi)鎖還是報(bào)警,實(shí)際使用時(shí)只要將單片機(jī)的負(fù)載由繼電器換成電子密碼鎖的電磁鐵吸合線圈即可,當(dāng)然也可以用繼電器的常開(kāi)觸點(diǎn)去控制電磁鐵吸合線圈。本系統(tǒng)共有兩部分構(gòu)成,即硬件部分與軟件部分。其中硬件部分由電源輸入部分、鍵盤輸入部分、密碼存儲(chǔ)部分、復(fù)位部分、晶振部分、顯示部分、報(bào)警部分、開(kāi)鎖部分

21、組成,軟件部分對(duì)應(yīng)的由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、啟動(dòng)程序、關(guān)閉程序、建功能程序、密碼設(shè)置程序、EEPROM讀寫程序和延時(shí)程序等組成。AT89C51鍵盤輸入復(fù)位電路密碼存儲(chǔ)電路晶振電路電源輸入顯示電路報(bào)警電路開(kāi)鎖電路 圖3-1 電子密碼鎖原理框圖3.2 電路總體構(gòu)成在確定了選用什么型號(hào)的單片機(jī)后,就要確定在外圍電路,其外圍電路包括電源輸入部分、鍵盤輸入部分、密碼存儲(chǔ)部分、復(fù)位部分、晶振部分、顯示部分、報(bào)警部分、開(kāi)鎖部分組成,根據(jù)實(shí)際情況鍵盤輸入部分選擇4*4矩陣鍵盤,顯示部分選擇字符型液晶顯示LCD1602,密碼存儲(chǔ)部分選用AT24C02芯片完成。 圖3-2 電路總體結(jié)構(gòu)

22、圖3.3 電源輸入電路密碼鎖主要控制部分電源需要用5V直流電源供電,其電路如圖3-3所示,而5V電源輸入時(shí)往往伴有雜波,所以加一個(gè)2.2uF的電容濾波。這樣輸出的電壓一般能滿足要求。圖3-3 電源輸入電路原理圖3.4 鍵盤輸入電路由于本設(shè)計(jì)所用到的按鍵數(shù)量較多而不適合用獨(dú)立按鍵式鍵盤。采用的是矩陣式按鍵鍵盤,它由行線和列線組成,也稱行列式鍵盤,按鍵位于行列的交叉點(diǎn)上,密碼鎖的密碼由鍵盤輸入完成,與獨(dú)立式按鍵鍵盤相比,要節(jié)省很多I/O口。本設(shè)計(jì)中使用的這個(gè)4*4鍵盤不但能完成密碼的輸入還能作特別功能鍵使用,比如清空顯示功能等。鍵盤的每個(gè)按鍵功能在程序設(shè)計(jì)中設(shè)置 。其大體功能(看鍵盤按鍵上的標(biāo)記)

23、及與單片機(jī)引腳接法如圖3-4所示:圖3-4 鍵盤輸入原理圖3.5 密碼存儲(chǔ)電路AT24C02是ATMEL公司的2KB字節(jié)的電可擦除存儲(chǔ)芯片,采用兩線串行的總線和單片機(jī)通訊,電壓最低可以到2.5V,額定電流為1mA,靜態(tài)電流10Ua(5.5V),芯片內(nèi)的資料可以在斷電的情況下保存40年以上,而且采用8腳的DIP封裝,使用方便。其電路如圖3-5所示。圖中1、2、3腳是三條地址線,用于確定芯片的硬件地址,在AT89S51上它們都能接地,第5腳和第8腳分別為正、負(fù)電源。AT24C02中帶有片內(nèi)地址寄存器,每寫入或讀出一個(gè)數(shù)據(jù)字節(jié)后,該地址寄存器自動(dòng)加1,以實(shí)現(xiàn)對(duì)下一個(gè)儲(chǔ)存單元的讀寫,所有字節(jié)均以單一操

24、作方式讀取。3.6 復(fù)位電路單片機(jī)復(fù)位是使CPU和系統(tǒng)中的其他功能部件都處在一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開(kāi)始工作,例如復(fù)位后PC0000H,使單片機(jī)從第個(gè)單元取指令。無(wú)論是在單片機(jī)剛開(kāi)始接上電源時(shí),還是斷電后或者發(fā)生故障后都要復(fù)位。在復(fù)位期間(即RST為高電平期間),P0口為高組態(tài),P1P3口輸出高電平;外部程序存儲(chǔ)器讀選通信號(hào)PSEN無(wú)效。地址鎖存信號(hào)ALE也為高電平。根據(jù)實(shí)際情況選擇如圖2-8所示的復(fù)位電路。該電路在最簡(jiǎn)單的復(fù)位電路下增加了手動(dòng)復(fù)位按鍵,在接通電源瞬間,電容C1上的電壓很小,復(fù)位下拉電阻上的電壓接近電源電壓,即RST為高電平,在電容充電的過(guò)程中RST端電壓逐漸下降,當(dāng)R

25、ST端的電壓小于某一數(shù)值后,CPU脫離復(fù)位狀態(tài),由于電容C1足夠大,可以保證RST高電平有效時(shí)間大于24個(gè)振蕩周期,CPU能夠可靠復(fù)位。增加手動(dòng)復(fù)位按鍵是為了避免死機(jī)時(shí)無(wú)法可靠復(fù)位。當(dāng)復(fù)位按鍵按下后電容C1通過(guò)R5放電。當(dāng)電容C1放電結(jié)束后,RST端的電位由R11與R15分壓比決定。由于R113?報(bào)警程序修改程序YNNY圖4-1主程序流程圖4.2 按鍵軟件設(shè)計(jì)如圖4-2按鍵功能流程圖,在按鍵當(dāng)中,有與輸入、開(kāi)鎖、清除、設(shè)置、確認(rèn)的程序相對(duì)應(yīng)的按鍵,并按順序與輸入的數(shù)相比較,當(dāng)輸入正確時(shí),進(jìn)入密碼程序,錯(cuò)誤時(shí)進(jìn)行清除,輸入兩次新密碼正確時(shí),可進(jìn)行重新設(shè)置密碼,最后確認(rèn)程序。開(kāi)始鍵值輸入?鍵值開(kāi)鎖

26、?鍵值清除?鍵值設(shè)置?鍵值確認(rèn)?密碼輸入程序設(shè)置程序清除程序開(kāi)鎖程序確認(rèn)程序YYYYYNNNN返回N 圖4-2 按鍵功能流程圖4.3 密碼設(shè)置軟件設(shè)計(jì)如圖4-3為密碼設(shè)置流程圖,開(kāi)始按下設(shè)置鍵,輸入舊密碼,如果錯(cuò)誤累計(jì)三次,進(jìn)行報(bào)警程序。如果輸入正確,可以修改密碼,確認(rèn)后再次輸入新密碼,如果兩次輸入一樣,則輸入成功。如果兩次輸入的新密碼不一樣,則修改密碼失敗,重新返回設(shè)置新密碼。輸入舊密碼N按下設(shè)置鍵開(kāi)始所輸入舊密碼正確?輸入次數(shù)加1報(bào)警程序N返回次數(shù)3?輸新密碼Y再次輸新密碼Y設(shè)置成功NY兩次新密碼輸入相同? 圖4-3 密碼設(shè)置流程圖4.4 開(kāi)鎖軟件設(shè)計(jì)如圖4-4開(kāi)鎖流程圖,開(kāi)始時(shí)按開(kāi)鎖鍵,

27、輸入密碼,如果輸入正確,則開(kāi)鎖成功。如果輸入錯(cuò)誤累計(jì)達(dá)到三次,則執(zhí)行報(bào)警程序。初始化按開(kāi)鎖鍵輸入密碼按確認(rèn)鍵所輸入密碼正確?Y開(kāi)鎖開(kāi)始輸入次數(shù)加1次數(shù)3?報(bào)警程序返回NYN 圖4-4 開(kāi)鎖流程圖 附 錄程序清單:顯示緩沖區(qū) LED1 EQU 6FH BUFF EQU 6EH TIMERS1 EQU 6DH ;輸入回車的次數(shù) TIMERS2 EQU 6CH ;報(bào)警的次數(shù) LED6 EQU 6AH 密碼緩沖區(qū) PS1 EQU 69H PS2 EQU 78H PS3 EQU 67H PS4 EQU 66H PS5 EQU 65H PS6 EQU 64H PS7 EQU 63H PS8 EQU 62H

28、 AT24C02讀取緩沖區(qū) AT1 EQU 61H AT2 EQU 60H AT3 EQU 5FH AT4 EQU 5EH AT5 EQU 5DH AT6 EQU 5CH AT7 EQU 5BH AT8 EQU 5AH 按鍵標(biāo)志位 F_0 BIT 20H F_1 BIT 21H F_2 BIT 22H F_3 BIT 23H F_4 BIT 24H F_5 BIT 25H F_6 BIT 26H F_7 BIT 27H F_8 BIT 28H F_9 BIT 29HCH_STATE BIT 2AH ;系統(tǒng)更改的狀態(tài)標(biāo)志位,為1表示busy FLAG1 BIT 2BH ;功能鍵標(biāo)志位,為1表示功

29、能按鍵。 F_F1 BIT 2CH F_F2 BIT 2DH PSW_F BIT 2EH ;密碼是否正確的標(biāo)志位 口資源定義 SPK BIT P2.1 WP BIT P3.5 SDA BIT P3.6 ;定義串口數(shù)據(jù)端 SCL BIT P3.7 ORG 0000H AJMP MAIN ORG 000BH ;AJMP TIMER0 ORG 001BH ;AJMP TIMER1 ORG 0030H MAIN:MOV SP, #70H MOV TMOD, #11H MOV TH0, #3CH MOV TL0, #0B0H MOV TH1, #3CH MOV TL1, #0B0H CLR F_0 ;清

30、除標(biāo)志位 CLR F_1 CLR F_2 CLR F_3 CLR F_4 CLR F_5 CLR F_6 CLR F_7 CLR F_8 CLR F_9 CLR BUF_FULL CLR CH_STATE CLR FLAG1 CLR F_F1 CLR F_F2 CLR PSW_F MOV BUFF,#00H ;調(diào)用 LCALL INITPS ;初始化環(huán)境 LCALL INITATLCALL XSA ;調(diào)用默認(rèn)顯示 MOV TIMERS1,#00H NOP MOV PS1, #11H ;初始化密碼830620 MOV PS2, #0AH MOV PS3, #02H MOV PS4, #13H M

31、OV PS5, #0BH MOV PS6, #02H START:NOP ;程序開(kāi)始 LCALL CH_KEY ;檢查鍵盤 AJMP START ;返回 CH_KEY:LCALL KS ;檢查有沒(méi)有按鍵按下 JNZ LK1 AJMP CH_KEY LK1: LCALL T12MS ACALL KS JNZ LK2 RET LK2: NOP LCALL SBIE ;按鍵識(shí)別子程序 MOV BUFF, A ;送緩沖區(qū)以識(shí)別是數(shù)字鍵還是功能鍵? LCALL CH_KF ;判斷按鍵功能。 JB FLAG1 ,KEY_FUN ;標(biāo)志為1,則為功能鍵*數(shù)字按鍵輸入并且存放到緩沖區(qū)內(nèi)等待比較*KEY_DIG

32、:NOP ;設(shè)一標(biāo)志,辨別輸入是否滿 ;SETB TR0 INC TIMERS ;輸入數(shù)字的位數(shù) MOV A, TIMERS CLR C SUBB A, #01H JNZ PS_2 MOV PS1, BUFF ;依照順序存放密碼 AJMP NEXT PS_2:MOV A, TIMERS SUBB A, #02H CLR C JNZ PS_3 MOV PS2, BUFFAJMP NEXT PS_3:MOV A, TIMERS CLR C SUBB A, #03H JNZ PS_4 MOV PS3, BUFF AJMP NEXT PS_4:MOV A, TIMERS CLR C SUBB A, #

33、04 JNZ PS_5 MOV PS4, BUFF AJMP NEXT PS_5:MOV A, TIMERS CLR C SUBB A, #05 JNZ PS_6 MOV PS5, BUFF AJMP NEXT PS_6:MOV A, TIMERS CLR C SUBB A, #06H JNZ CH_KEY MOV PS6, BUFF NEXT:LCALL XSC MOV R7, TIMERS ;比較輸入的次數(shù)。 CJNE R7, #06H ,FULL FULL:JC NEXT9 SETB BUF_FULL MOV TIMERS,#06H CLR L3 NOP CLR P2.1 LCALL T

34、100MSD SETB P2.1 NOP AJMP CH_KEY NEXT9:CLR P2.1 ;密碼輸入一位,鳴叫一聲。 CLR L3 LCALL T100MSD ;延時(shí)100ms SETB L3 SETB P2.1 AJMP CH_KEY*開(kāi)門子程序 * CL:NOP SETB L3 MOV BUFF, #00H ;消密碼緩沖 MOV TIMERS,#00H LCALL INITPS ;消除AT緩沖,調(diào)電存儲(chǔ)后一定要加上 LCALL XSC LCALL BP LCALL BP LCALL T100MSD LCALL BP CLR FLAG1 AJMP CH_KEY FU4:NOP LCAL

35、L BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP CLR FLAG1 AJMP CH_KEY FU3:NOP LCALL BP LCALL T100MSD LCALL BP LCALL KILLXS ;關(guān)閉顯示 CLR FLAG1 AJMP CH_KEY FU1:NOP LCALL XSC JB F_F1, NEXT_F1 CLR L1 LCALL BP SETB F_F1 AJMP CH_KEYNEXT_F1:SETB L1 LCALL BP CLR

36、 F_F1 ;LCALL CH_STATE ;查看現(xiàn)在的狀態(tài)以防誤按 ;SETB TR1 ;報(bào)警限制暫時(shí)不開(kāi) ;INC F_F1 CLR FLAG1 AJMP CH_KEY FU2:NOP JB F_F2, NEXT_F2 CLR L2 LCALL BP SETB F_F2 AJMP CH_KEYNEXT_F2:SETB L2 LCALL BP CLR F_F2 CLR FLAG1 AJMP CH_KEY*各類子程序* 注意清楚緩沖區(qū)時(shí)AT1.AT8不應(yīng)在初始化中執(zhí)行,以 防兩緩沖區(qū)都為0,相同開(kāi)鎖 *CLR_BUF:MOV R7, #06H MOV R0, #6FH LOOP1:MOV A,

37、 #00H MOV R0, A DEC R0 DJNZ R7,LOOP1 RET*初始化顯示緩沖區(qū)以及其他緩沖區(qū)* INITPS:PUSH ACC PUSH PSW MOV R7, #06H MOV R1, #PS1 MOV A, #00HINIT_PS:MOV R1, A DEC R1 DJNZ R7, INIT_PS POP PSW POP ACC NOP RET INITAT:PUSH ACC PUSH PSW MOV R7,#06H MOV R1,#AT1 MOV A, #00HINIT_AT:MOV R1, A DEC R1 DJNZ R7, INIT_AT MOV TIMERS,#00H ;密碼輸入的次數(shù)清零。 POP PSW POP ACC RET*檢驗(yàn)密碼正誤* C_PSW:PUSH PSW PUSH ACC MOV R2,#06H MOV R0,#PS1 MOV R1,#AT1 C_P:CLR C MOV A,R0 SUBB A,R1 JNZ RETURN DEC R0 DEC R1 DJNZ R2,C_P NOP SETB PSW_F AJMP EXIT7 RETURN:CLR PSW_F EXIT7:NOP POP ACC POP P

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論