基于單片機電子密碼鎖設(shè)計_第1頁
基于單片機電子密碼鎖設(shè)計_第2頁
基于單片機電子密碼鎖設(shè)計_第3頁
基于單片機電子密碼鎖設(shè)計_第4頁
基于單片機電子密碼鎖設(shè)計_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2.1 電子密碼鎖設(shè)計的具體要求(1)本設(shè)計為了防止密碼被竊取要求在輸入密碼時在LCD屏幕上顯示*號。(2)設(shè)計開鎖密碼位六位密碼的電子密碼鎖。(3)能夠LCD顯示在密碼正確時顯示PASSWORD OK,密碼錯誤時顯示PASSWORD ERROR,輸入密碼時顯示INPUT PASSWORD。(4)實現(xiàn)輸入密碼錯誤超過限定的三次電子密碼鎖定。(5)44的矩陣鍵盤其中包括0-9的數(shù)字鍵和A-F的功能鍵(6)本產(chǎn)品具備報警功能,當輸入密碼錯誤時蜂鳴器響并且LED燈亮。(7)密碼可以由用戶自己修改設(shè)定(只支持6位密碼),修改密碼之前必須再次輸入密碼,在輸入新密碼時候需要二次確認,以防止誤操作 。方案一

2、:采用數(shù)字電路控制。用以74LS112雙JK觸發(fā)器構(gòu)成的數(shù)字邏輯電路作為密碼鎖的核心控制,共設(shè)了9個用戶輸入鍵,其中只有4個是有效的密碼按鍵,其它的都是干擾按鍵,若按下干擾鍵,鍵盤輸入電路自動清零,原先輸入的密碼無效,需要重新輸入;如果用戶輸入密碼的時間超過10秒(一般情況下,用戶不會超過10秒,若用戶覺得不便,還可以修改)電路將報警20秒,若電路連續(xù)報警三次,電路將鎖定鍵盤2分鐘,防止他人的非法操作。采用數(shù)字電路設(shè)計的方案好處就是設(shè)計簡單但控制的準確性和靈活性差。故不采用。方案二:采用一種是用以AT89S51為核心的單片機控制方案。選用單片機AT89S51 作為本設(shè)計的核心元件,利用單片機靈

3、活的編程設(shè)計和豐富的IO端口,及其控制的準確性,實現(xiàn)基本的密碼鎖功能。在單片機的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接LCD1602顯示器用于顯示作用。其原理如下圖2.1所示:圖2.1 單片機控制密碼鎖原理圖可以看出方案二控制靈活準確性好且保密性強還具有擴展功能,根據(jù)現(xiàn)實生活的需要此次設(shè)計采用此方案第三章 系統(tǒng)硬件設(shè)計3.1 單片機AT89S51簡介AT89S51是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS8位單片機,片內(nèi)含4k bytes的可系統(tǒng)編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準8051指令系統(tǒng)及引腳。它集Fl

4、ash程序存儲器,既可在線編程(ISP)也可用傳統(tǒng)方法進行編程及通用8位微處理器于單片芯片中,ATMEL公司的功能強大,低價位AT89S51單片機可為您提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。 3.1.1 主要特性 與MCS-51 兼容 4K字節(jié)可編程閃爍存儲器 壽命:1000寫/擦循環(huán) 數(shù)據(jù)保留時間:10年 全靜態(tài)工作:0Hz-24Hz 三級程序存儲器鎖定 128*8位內(nèi)部RAM 32可編程I/O線 兩個16位定時器/計數(shù)器 5個中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時鐘電路 89S51相對于89C51增加的新功能包括:(1)ISP在線編程功能,這個功能的

5、優(yōu)勢在于改寫單片機存儲器內(nèi)的程序不需要把芯片從工作環(huán)境中剝離,是一個強大易用的功能。(2)最高工作頻率為33MHz,89C51的極限工作頻率為24MHz,就是說S51具有更高的工作頻率,從而具有了更快的計算速度。(3)具有雙工UART串行通道。(4)內(nèi)部集成看門狗計時器,不再需要像C51那樣外接看門狗計時器單元電路。(5)雙數(shù)據(jù)指示器。(6)電源關(guān)閉標識。(7)全新的加密算法,這使得對于89S51的解密變?yōu)椴豢赡?,程序的保密性大大加強,這樣就可以有效地保護知識產(chǎn)權(quán)不被侵犯。(8)兼容性方面:向下完全兼容51全部字系列產(chǎn)品。(9)程序存儲器寫入方式:二者的寫入程序的方式不同,89C51只支持并行

6、寫入,同時需要VPP燒寫高壓。89S51則支持Isp在線編程寫入技術(shù)。串行寫入、速度更快、穩(wěn)定性更好,燒寫電壓也僅僅需要45V即可。(10)電源范圍:89S51電源范圍寬達45.5V,而89C51在低于4.8V和高于5.3V的時候則無法正常工作。(11)燒寫壽命更長:89S51標稱的1000次,實際最少是100010000次,這樣更有利于初學者反復燒寫,降低學習成本。綜上所述本設(shè)計選定AT89S51。液晶顯示LCD1602的介紹1、LM1602字符型模塊的性能重量輕:100g;體積?。?1mm 厚;功耗低:1015mW;顯示內(nèi)容:192 種字符(57 點字型);32 種字符(510 點字型);

7、可自編8(57)或許(510)種字符;指令功能強:可組合成各種輸入、顯示、移位方式以滿足不同的要求;接口簡單方便:可與8 位微處理器或微控制器相聯(lián);工作溫度寬:050oC可靠性高:壽命為50,000 小時(25oC)2、 基本原理 液晶體液晶板上排列著若干57 或510 點陣的字符顯示位,每個顯示位可顯示1 個字符,從規(guī)格上分為每行8、16、20、24、32、40 位,有一行、兩行及四行三類。 工作電路它由KS0066、KS0065 及幾個電阻電容組成。KS0065 是擴展顯示字符用的(例如:16 個字符1 行模塊就可不用KS0065,16 個字符2 行模塊就要用1 片KS0065)接口方面,

8、有8 條數(shù)據(jù),三條控線。可與微處理器或微控制相連,通過送入數(shù)據(jù)和指令,就可使模塊正常工作。 LCD 驅(qū)動器和控制器A LCD 驅(qū)動器KS0065KS0065 是用低功耗CMOS 技術(shù)制造的大規(guī)模LCD 驅(qū)動IC。它既可當行驅(qū)動用,也可以當列驅(qū)動用,由202Bin 二進制移位寄存器、202Bin 數(shù)據(jù)鎖存器和202Bin 驅(qū)動器組成功能:a 40 通道點陣LCD 驅(qū)動;b 可選擇當做行驅(qū)動或列驅(qū)動;c 輸入/輸出信號:輸出,能產(chǎn)生202 個LCD 驅(qū)動波型;輸入,接受控制器送出的串行數(shù)據(jù)和控制信號,偏壓(V1V6);特性:a 顯示驅(qū)動偏壓低:靜態(tài)1/5;b 電源電壓:+5V+10%;c 顯示驅(qū)動

9、電源:-5V;d CMOS 處理;e 60 引腳、塑封;B LCD 控制器KS0066見圖4,KS0066 是用低功耗CMOS 技術(shù)制造的大規(guī)模點陣LCD控制器(兼帶驅(qū)動器),和4Bin/8Bin 微處理器相連連,它能使點陣LCD 顯示大小英文字母、符號。應(yīng)用KS0066,用戶能有少量元件就可組成一個完整點陣LCD 系統(tǒng)。特性:a 容易和Bin/8Bin Mpu 相連;b 可選擇57 或510 點字符;c 顯示數(shù)據(jù)RAM 容量:808Bin(80 字符);d 字符發(fā)生器ROM 能提供戶所需字符庫或標準庫;字符容量:192 個字符(57 點字符);32 個字符(510 點字符);e DDRAM

10、和CGRAM 都能從Mpu 讀取數(shù)據(jù);f 輸出信號:16 個行掃信號(common singnal),40 個列掃信號(sengment singnal)g 電源復位電路;h 顯示占空比:1/8duty(1Line,57dots+Cursor);1/11 duty(1Line,510dote+Cuesor);1/16 duty(2Line,57dots+Cuesir);i 振蕩電路;j 指令:11 種;k 80 引腳、塑封。技術(shù)參數(shù)a 極限參數(shù)b電參數(shù)3.2 硬件電路的設(shè)計本設(shè)計單片機硬件資源的分配:P0.0P0.7用于LCD液晶顯示作用。P2.6、P2.7用于蜂鳴器和報警燈的控制。P2.0用

11、于開鎖電路的控制。P1.0P1.7用于鍵盤電路的控制。P3.3P3.5用于LCD顯示模塊的控制端口的控制。3.2.1 最小系統(tǒng)的設(shè)計當MCS-5l系列單片機的復位引腳RST(全稱RESET)出現(xiàn)2個機器周期以上的高電平時,單片機就執(zhí)行復位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復位狀態(tài)。根據(jù)應(yīng)用的要求,復位操作通常有兩種基本形式:上電復位和開關(guān)復位。圖3.3即為手動(開關(guān))復位電路。 圖3.3 手動復位電路(2)復位后的狀態(tài)a、復位后PC值為0000H,表明復位后的程序從0000H開始執(zhí)行。b、SP值為07H,表明堆棧底部在07H,一般需要重新設(shè)置SP值。c、P0P3口值為FFH。P0P

12、3口用作輸入口時,必須先寫入“1”。單片機在復位后,已使P0P3口每一端線為“1”,為這些端線用作輸入口做好了準備。(3)WDT 溢出將使該引腳輸出高電平,所以本設(shè)計采用圖3.4的手動復位電路:圖3.4 本設(shè)計手動復位電路AT89S51 中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1 和XTAL2 分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見圖3.5。外接石英晶體(或陶瓷諧振器)及電容Cl、C2 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容Cl、C2 雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響振蕩

13、頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30pF10pF,而如使用陶瓷諧振器建議選擇40pF10F。用戶也可以采用外部時鐘。采用外部時鐘的電路如圖1所示。這種情況下,外部時鐘脈沖接到XTAL1端,即內(nèi)部時鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應(yīng)符合產(chǎn)品技術(shù)條件的要求。 圖3.5 單片機自激震蕩電路3.2.2 芯片擦除 整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低

14、電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。 此外,AT89S51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。 3.2.3 開鎖機構(gòu) 用戶通過LCD提示信息,用鍵盤輸入正確密碼,從而達到開鎖的目的。當用戶輸入的密碼正確并且是在按下確定鍵的話,單片機便輸出開門信號,送到開鎖驅(qū)動 電路,然后驅(qū)動電磁鎖,達到開門的目的。電路驅(qū)動和開

15、鎖兩級組成。由D5、R1、T10組成驅(qū)動電路,其中T10可以選擇普通的小功率三極管如9014、9018都可以滿足要求。D5作為開鎖的提示;由D6、C24、T11組成。其中D6、C24是為了消除電磁鎖可能產(chǎn)生的反向高電壓以及可能產(chǎn)生的電磁干擾。T11可選用中功率的三極管如8050,電磁鎖的選用要視情況而定,但是吸合力要足夠且由一定的余量。 在本次設(shè)計中,基于節(jié)省材料的原則,暫時用發(fā)光二極管代替電磁鎖,發(fā)光管亮,表示開鎖;滅,表示沒有開鎖。 圖3.7 密碼鎖開鎖機構(gòu)電路圖3.2.4 鍵盤設(shè)計 本設(shè)計就采用行列式鍵盤,同時也能減少鍵盤與單片機接口時所占用的I/O線的數(shù)目,在按鍵比較多的時候,通常采用

16、這樣方法。 每一條水平(行線)與垂直線(列線)的交叉處不相通,而是通過一個按鍵來連通,利用這種行列式矩陣結(jié)構(gòu)只需要N條行線和M條列線,即可組成具有NM個按鍵的鍵盤。 在這種行列式矩陣鍵盤非鍵盤編碼的單片機系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認有無按鍵按下的程序段。 44矩陣鍵盤的工作原理 在鍵盤中按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式,如圖5所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P1口)就可以構(gòu)成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以

17、構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。掃描原理 把每個鍵都分成水平和垂直的兩端接入,比如說掃描碼是從垂直的入,那就代表那一行所接收到的掃描碼是同一個bit,而讀入掃描碼的則是水平,掃描的動作是先輸入掃描碼,再去讀取輸入的值,經(jīng)過比對之后就可知道是哪個鍵被按下。 比如說掃描碼送入,前面的0111是代表此時掃描第一行P1.0列,而后面的1111是讓讀取的4行接腳先設(shè)為VDD,若此時第一行的第三列按鍵被按下,那讀取的結(jié)果就會變成(注意1111變成1101),其中LSB的第三個bit會由1變成0,這是因為這個按鍵被按下之后,

18、會被垂直的掃描碼電位short,而把讀取的LSB的bit電位拉到0,此即為掃描原理。 由于這種按鍵是機械式的開關(guān),當按鍵被按下時,鍵會震動一小段時間才穩(wěn)定,為了避免讓8051誤判為多次輸入同一按鍵, 我們必須在偵測到有按鍵被按下,就Delay一小段時間,使鍵盤以達穩(wěn)定狀態(tài),再去判讀所按下的鍵,就可以讓鍵盤的輸入穩(wěn)定。圖3.8為鍵盤整體??驁D: 圖3.8 鍵盤整體模框圖3.2.5顯示電路設(shè)計 顯示設(shè)計采用字符型液晶屏設(shè)計,由單片機的p0口控制顯示,由p3.3p3.5控制lcd的控制端口。本設(shè)計采用以下液晶顯示設(shè)計:圖3.9 LCD液晶顯示電路抓圖3.3 電路設(shè)計總圖Proteus軟件是Labce

19、nter Electronics公司的一款電路設(shè)計與仿真軟件,它包括ISIS、ARES等軟件模塊,ARES模塊主要用來完成PCB的設(shè)計,而ISIS模塊用來完成電路原理圖的布圖與仿真。Proteus的軟件仿真基于VSM技術(shù),它與其他軟件最大的不同也是最大的優(yōu)勢就在于它能仿真大量的單片機芯片,比如MCS-51系列、PIC系列等等,以及單片機外圍電路,比如鍵盤、LED、LCD等等。通過Proteus軟件的使用我們能夠輕易地獲得一個功能齊全、實用方便的單片機實驗室。 本密碼鎖采用proteus進行電路圖設(shè)計,經(jīng)過元件選型,用萬能實驗版進行硬件焊接,以實現(xiàn)硬件部分。 下圖為proteus設(shè)計的密碼鎖電路

20、圖整體抓圖 第四章 系統(tǒng)軟件設(shè)計因設(shè)計主要是作用匯編語言來開發(fā)的51單片機項目程序,所以首先必須有一個可以在Windows XP或Windows vista操作系統(tǒng)下執(zhí)行的匯編語言編譯器,本設(shè)計采用Keil編譯器進行編程,因為它可以支持一系列的51單片機。 開始初始化模式選擇識別按鍵密碼輸入手動清除密碼比較開門舊密碼輸入新密碼輸入存入緩存區(qū)再次輸入密碼重新輸入設(shè)置完畢返回NANBY圖4.1 主程序的流程圖4.1主程序模塊主程序主要是完成系統(tǒng)初始化、設(shè)置中斷向量、檢查有無鍵按下、以及調(diào)用顯示等等。主程序部分如下所示:en bit p3.5;將lcd的en管腳連接到單片機的p3.5口rw bit

21、p3.4;將lcd的rw管腳連接到單片機的p3.4口rs bit p3.3;將lcd的rs管腳連接到單片機的p3.3口display equ p0;將lcd的顯示端口連接到p0口上speaker bit p2.6;蜂鳴器連接到p2.6口led bit p2.7;與蜂鳴器共同作用的led燈連到p2.7口open bit p2.0;開鎖電路的控制端連接到p2.0口returnbit bit 20h.1;ORG 0000h;程序開始地址LJMP start;ORG 000bh;LJMP intermit_t0;ORG 001bh;LJMP intermit_t1;ORG 0030h;start:MO

22、V sp,#60h;lcall sys_initialization;調(diào)用子程序sys_initialization4.2 鍵盤掃描及識別子程序 鍵盤采用查詢的方式,放在主程序中,當沒有按鍵按下的時候,單片機循環(huán)主程序,一旦有按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回。其程序流程如圖4.2所示 鍵盤部分程序如下: key:;鍵盤程序名稱call ks;調(diào)用子程序ksjnz k1;判斷是否有鍵按下jmp key;跳回鍵盤程序ks:mov p1,#0f0h;mov a,p1;xrl a,#0f0h;ret;4.3 系統(tǒng)模塊密碼設(shè)置子程序 由于設(shè)計是分模塊化進行,所以子程序是整體軟件系統(tǒng)的組成

23、部分,子程序不但可以使程序化整為零,使其復雜簡單化,同時也方便閱讀,修改等,每個功能模塊都有它自己的子程序,在本設(shè)計中是用LCD顯示數(shù)據(jù),所以就要用到顯示子程序,設(shè)計中用的是矩陣鍵盤,所以就用到鍵盤掃描子程序,例如還有顯示初始化子程序、LCD忙檢測子程序、關(guān)閉狀態(tài)顯示子程序、開鎖狀態(tài)顯示子程序、密碼輸入及修改狀態(tài)顯示子程序、密碼輸入錯誤后的提示子程序等。如下圖為密碼修改子程序流程圖 選擇模式舊密碼輸入新密碼輸入存入緩存再次輸入密碼比較密碼重新輸入返回YN是否大于3次鎖定NY圖4.3 設(shè)置密碼子程序圖4.7 仿真成功密碼正確圖4.8 密碼正確綠燈亮本設(shè)計在焊接調(diào)試時遇到的問題以及解決方法:單片機

24、的最小系統(tǒng)問題:電源、晶振電路和復位電路都無異常。Lcd焊接時的問題:(1)接通電源后lcd無反應(yīng),各個引腳均屬正常。推斷可能是初始化程序出現(xiàn)問題。經(jīng)查找得知是lcd顯示器的15和16管腳控制背光功能,連接好之后還是不能顯示字符。(2)接通電源開門燈和報警電路就會工作,分析原因是單片機剛開始各個管腳輸出高電平。以下為所做實物:en bit p3.5;rw bit p3.4;rs bit p3.3;display equ p0;speaker bit p2.6;led bit p2.7;open bit p2.0;returnbit bit 20h.1;ORG 0000h;LJMP start;

25、ORG 000bh;LJMP intermit_t0;ORG 001bh;LJMP intermit_t1;ORG 0030h;start:MOV sp,#60h;lcall sys_initialization;main0: lcall strat_display;main:MOV 52h,#0;52h ;判斷輸入錯誤次數(shù)存儲地址 setb led;setb tr0;lcall key;cjne a,#A,next1;LJMP set_password;next1: cjne a,#B,next2;LJMP input_password;next2: ajmp main;sys_initia

26、lization:clr led;clr open;clr speaker;MOV 34h,#1; MOV 35h,#1;MOV 36h,#1;MOV 37h,#1;MOV 38h,#1;MOV 39h,#1; ;存放初始密碼MOV r7,#12;MOV r0,#40h;loop: MOV r0,#10h;inc r0;djnz r7,loop; ;密碼鍵值存放區(qū)清零完畢lcall delay0_1s;MOV p0,#03h;call write_instruction; ;液晶軟復位MOV p0,#01h;call write_instruction;mov p0,#3fh;call wri

27、te_instruction;mov p0,#0fh;call write_instruction;mov p0,#06h;call write_instruction; ;液晶初始化完畢mov r4,#10;mov tmod,#11h;mov th0,#0b0h;setb ea;setb et0; ;定時器t0,0.5s定時中斷初始化完畢ret; ;系統(tǒng)初始化完畢intermit_t0:push acc;push psw;mov th0,#3ch;mov tl0,#0b0h;djnz r4,return;cpl led;mov r4,#10;return: pop psw;pop acc;r

28、eti;intermit_t1:push acc;push psw;mov th1,#9eh;mov tl1,#58h;djnz r4,return_t1;cpl led;cpl speaker;mov r4,#10;return_t1:pop psw;pop acc;reti; 鍵盤掃描key: call ks;jnz k1;jmp key;k1:call delay;call ks;jnz k2;jmp key;k2:clr tr0;clr led;mov r2,#0feh;mov r6,#00h;k3:mov a,r2;mov p1,a;mov a,p1;jb acc.4,l1;mov

29、a,#0;LJMP lk;l1:jb acc.5,l2;mov a,#4;ljmp lk;l2: jb acc.6,l3;mov a,#8;ljmp lk;l3:jb acc.7,next_key;mov a,#12;lk:add a,r6;mov r6,a;k4:call ks;jnz k4;mov a,r6;mov dptr,#table0;movc a,a+dptr;mov 50h,a; ;查表取值存入50H,保護鍵值ret;next_key:inc r6;mov a,r2;jnb acc.7,key;rl a;mov r2,a;jmp k3;ks:mov p1,#0f0h;mov a,

30、p1;xrl a,#0f0h;ret; 設(shè)置密碼程序set_password:call clear_display;mov dptr,#table4;call input_hint;mov r0,#40h;call password;jbc returnbit,set_password; ;先輸入原密碼完畢mov r5,#6;mov r0,#40h;mov r1,#34h;input_compere:mov a,r0;xrl a,r1;jnz input_error;inc r0;inc r1;nop;nop;djnz r5,input_compere; ;驗證輸入密碼完畢jmp set_pa

31、ssword0;input_error:setb led;call clear_display;mov dptr,#table5;call input_hint;call delay1_5s;clr speaker;clr led;inc 52h;mov a,52h;cjne a,#3,set_password;sjmp $; ;輸入密碼錯誤次數(shù)超過3次,鎖死set_password0:call clear_display;mov dptr,#table2;call input_hint;mov r0,#40h;call password;jbc returnbit,set_password;

32、 ;第一次輸入新密碼完畢call clear_display;mov dptr,#table3;call input_hint;call delay1_5s; ;顯示再次輸入新密碼完畢call clear_display;mov dptr,#table4;call input_hint;mov r0,#46h;call password;jbc returnbit,set_password; ;第二次輸入新密碼完畢mov r5,#6;mov r0,#40h;mov r1,#46h;set_compere:mov a,r0;xrl a,r1;jnz set_error;inc r0;inc r1

33、;djnz r5,set_compere;mov 34h,40h;mov 35h,41h;mov 36h,42h;mov 37h,43h;mov 38h,44h;mov 39h,45h; ;存入新密碼完畢jmp main0; ;設(shè)置新密碼成功,返回主程序set_error:setb speaker;setb led;call clear_display;mov dptr,#table5;call input_hint;call delay1_5s;clr speaker;clr led;ljmp set_password0; ;前后兩次輸入新密碼不一致,返回重設(shè);輸入密碼開鎖程序input_p

34、assword:call clear_display;mov dptr,#table4;call input_hint;mov r0,#40h;call password;jbc returnbit,input_password; ;輸入原密碼完畢mov r5,#6;mov r0,#40h;mov r1,#34h;input_compere0:mov a,r0;xrl a,r1;jnz input_error22;inc r0;inc r1;nop;nop;djnz r5,input_compere0; ;驗證輸入密碼完畢jmp display_right;input_error22:setb

35、 speaker;setb led;call clear_display;mov dptr,#table5;call input_hint;call delay1_5s;clr speaker;clr led;inc 52h;mov a,52h;cjne a,#3,input_password;sjmp $; ;輸入密碼錯誤超過3次,鎖死display_right:call clear_display;mov dptr,#table6;call input_hint;;顯示輸入密碼正確提示完畢setb open;;開鎖next_key1:call key;nop;nop;cjne a,#F,next_key1;clr open;;按下開鎖鍵,開鎖jmp main0;;返回主程序 ;strat_display:mov p0,#80h;call write_instruction;mov dptr,#table1;call input_hint;mov p0,#0c0h;call write_instruction;mov d

溫馨提示

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

最新文檔

評論

0/150

提交評論