版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2.1 電子密碼鎖設(shè)計(jì)的具體要求(1)本設(shè)計(jì)為了防止密碼被竊取要求在輸入密碼時(shí)在LCD屏幕上顯示*號。(2)設(shè)計(jì)開鎖密碼位六位密碼的電子密碼鎖。(3)能夠LCD顯示在密碼正確時(shí)顯示PASSWORD OK,密碼錯(cuò)誤時(shí)顯示PASSWORD ERROR,輸入密碼時(shí)顯示INPUT PASSWORD。(4)實(shí)現(xiàn)輸入密碼錯(cuò)誤超過限定的三次電子密碼鎖定。(5)4×4的矩陣鍵盤其中包括0-9的數(shù)字鍵和A-F的功能鍵(6)本產(chǎn)品具備報(bào)警功能,當(dāng)輸入密碼錯(cuò)誤時(shí)蜂鳴器響并且LED燈亮。(7)密碼可以由用戶自己修改設(shè)定(只支持6位密碼),修改密碼之前必須再次輸入密碼,在輸入新密碼時(shí)候需要二次確認(rèn),以防止誤操
2、作 。方案一:采用數(shù)字電路控制。用以74LS112雙JK觸發(fā)器構(gòu)成的數(shù)字邏輯電路作為密碼鎖的核心控制,共設(shè)了9個(gè)用戶輸入鍵,其中只有4個(gè)是有效的密碼按鍵,其它的都是干擾按鍵,若按下干擾鍵,鍵盤輸入電路自動清零,原先輸入的密碼無效,需要重新輸入;如果用戶輸入密碼的時(shí)間超過10秒(一般情況下,用戶不會超過10秒,若用戶覺得不便,還可以修改)電路將報(bào)警20秒,若電路連續(xù)報(bào)警三次,電路將鎖定鍵盤2分鐘,防止他人的非法操作。采用數(shù)字電路設(shè)計(jì)的方案好處就是設(shè)計(jì)簡單但控制的準(zhǔn)確性和靈活性差。故不采用。方案二:采用一種是用以AT89S51為核心的單片機(jī)控制方案。選用單片機(jī)AT89S51 作為本設(shè)計(jì)的核心元件,
3、利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的IO端口,及其控制的準(zhǔn)確性,實(shí)現(xiàn)基本的密碼鎖功能。在單片機(jī)的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接LCD1602顯示器用于顯示作用。其原理如下圖2.1所示:圖2.1 單片機(jī)控制密碼鎖原理圖可以看出方案二控制靈活準(zhǔn)確性好且保密性強(qiáng)還具有擴(kuò)展功能,根據(jù)現(xiàn)實(shí)生活的需要此次設(shè)計(jì)采用此方案第三章 系統(tǒng)硬件設(shè)計(jì)3.1 單片機(jī)AT89S51簡介AT89S51是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4k bytes的可系統(tǒng)編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引
4、腳。它集Flash程序存儲器,既可在線編程(ISP)也可用傳統(tǒng)方法進(jìn)行編程及通用8位微處理器于單片芯片中,ATMEL公司的功能強(qiáng)大,低價(jià)位AT89S51單片機(jī)可為您提供許多高性價(jià)比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。 3.1.1 主要特性 與MCS-51 兼容 4K字節(jié)可編程閃爍存儲器 壽命:1000寫/擦循環(huán) 數(shù)據(jù)保留時(shí)間:10年 全靜態(tài)工作:0Hz-24Hz 三級程序存儲器鎖定 128*8位內(nèi)部RAM 32可編程I
5、/O線 兩個(gè)16位定時(shí)器/計(jì)數(shù)器 5個(gè)中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時(shí)鐘電路 89S51相對于89C51增加的新功能包括:(1)ISP在線編程功能,這個(gè)功能的優(yōu)勢在于改寫單片機(jī)存儲器內(nèi)的程序不需要把芯片從工作環(huán)境中剝離,是一個(gè)強(qiáng)大易用的功能。(2)最高工作頻率為33MHz,89C51的極限工作頻率為24MHz,就是說S51具有更高的工作頻率,從而具有了更快的計(jì)算速度。(3)具有雙工UART串行通道。(4)內(nèi)部集成看門狗計(jì)時(shí)器,不再需要像C51那樣外接看門狗
6、計(jì)時(shí)器單元電路。(5)雙數(shù)據(jù)指示器。(6)電源關(guān)閉標(biāo)識。(7)全新的加密算法,這使得對于89S51的解密變?yōu)椴豢赡?,程序的保密性大大加?qiáng),這樣就可以有效地保護(hù)知識產(chǎn)權(quán)不被侵犯。(8)兼容性方面:向下完全兼容51全部字系列產(chǎn)品。(9)程序存儲器寫入方式:二者的寫入程序的方式不同,89C51只支持并行寫入,同時(shí)需要VPP燒寫高壓。89S51則支持Isp在線編程寫入技術(shù)。串行寫入、速度更快、穩(wěn)定性更好,燒寫電壓也僅僅需要45V即可。(10)電源范圍:89S51電源范圍寬達(dá)45.5V,而89C51在低于4.8V和高于5.3V的時(shí)候則無法正常工作。(11)燒寫壽命更長:89S51標(biāo)稱的1000次,實(shí)際最
7、少是100010000次,這樣更有利于初學(xué)者反復(fù)燒寫,降低學(xué)習(xí)成本。綜上所述本設(shè)計(jì)選定AT89S51。液晶顯示LCD1602的介紹1、LM1602字符型模塊的性能重量輕:<100g;體積?。?lt;11mm 厚;功耗低:1015mW;顯示內(nèi)容:192 種字符(5×7 點(diǎn)字型);32 種字符(5×10 點(diǎn)字型);可自編8(5×7)或許(5×10)種字符;指令功能強(qiáng):可組合成各種輸入、顯示、移位方式以滿足不同的要求;接口簡單方便:可與8 位微處理器或微控制器相聯(lián);工作溫度寬:050oC可靠性高:壽命為50,000 小時(shí)(25oC)2、 基本原理 液晶體
8、液晶板上排列著若干5×7 或5×10 點(diǎn)陣的字符顯示位,每個(gè)顯示位可顯示1 個(gè)字符,從規(guī)格上分為每行8、16、20、24、32、40 位,有一行、兩行及四行三類。 工作電路它由KS0066、KS0065 及幾個(gè)電阻電容組成。KS0065 是擴(kuò)展顯示字符用的(例如:16 個(gè)字符×1 行模塊就可不用KS0065,16 個(gè)字符×2 行模塊就要用1 片KS0065)接口方面,有8 條數(shù)據(jù),三條控線。可與微處理器或微控制相連,通過送入數(shù)據(jù)和指令,就可使模塊正常工作。 LCD 驅(qū)動器和控制器A LCD 驅(qū)動器KS0065KS0065 是用低功耗CMOS 技術(shù)制造的大
9、規(guī)模LCD 驅(qū)動IC。它既可當(dāng)行驅(qū)動用,也可以當(dāng)列驅(qū)動用,由20×2Bin 二進(jìn)制移位寄存器、20×2Bin 數(shù)據(jù)鎖存器和20×2Bin 驅(qū)動器組成功能:a 40 通道點(diǎn)陣LCD 驅(qū)動;b 可選擇當(dāng)做行驅(qū)動或列驅(qū)動;c 輸入/輸出信號:輸出,能產(chǎn)生20×2 個(gè)LCD 驅(qū)動波型;輸入,接受控制器送出的串行數(shù)據(jù)和控制信號,偏壓(V1V6);特性:a 顯示驅(qū)動偏壓低:靜態(tài)1/5;b 電源電壓:+5V+10%;c 顯示驅(qū)動電源:-5V;d CMOS 處理;e 60 引腳、塑封;B LCD 控制器KS0066見圖4,KS0066 是用低功耗CMOS 技術(shù)制造的大規(guī)
10、模點(diǎn)陣LCD控制器(兼帶驅(qū)動器),和4Bin/8Bin 微處理器相連連,它能使點(diǎn)陣LCD 顯示大小英文字母、符號。應(yīng)用KS0066,用戶能有少量元件就可組成一個(gè)完整點(diǎn)陣LCD 系統(tǒng)。特性:a 容易和Bin/8Bin Mpu 相連;b 可選擇5×7 或5×10 點(diǎn)字符;c 顯示數(shù)據(jù)RAM 容量:80×8Bin(80 字符);d 字符發(fā)生器ROM 能提供戶所需字符庫或標(biāo)準(zhǔn)庫;字符容量:192 個(gè)字符(5×7 點(diǎn)字符);32 個(gè)字符(5×10 點(diǎn)字符);e DDRAM 和CGRAM 都能從Mpu 讀取數(shù)據(jù);f 輸出信號:16 個(gè)行掃信號(common
11、 singnal),40 個(gè)列掃信號(sengment singnal)g 電源復(fù)位電路;h 顯示占空比:1/8duty(1Line,5×7dots+Cursor);1/11 duty(1Line,5×10dote+Cuesor);1/16 duty(2Line,5×7dots+Cuesir);i 振蕩電路;j 指令:11 種;k 80 引腳、塑封。技術(shù)參數(shù)a 極限參數(shù)b電參數(shù)3.2 硬件電路的設(shè)計(jì)本設(shè)計(jì)單片機(jī)硬件資源的分配:P0.0P0.7用于LCD液晶顯示作用。P2.6、P2.7用于蜂鳴器和報(bào)警燈的控制。P2.0用于開鎖電路的控制。P1.0P1.7用于鍵盤電路
12、的控制。P3.3P3.5用于LCD顯示模塊的控制端口的控制。3.2.1 最小系統(tǒng)的設(shè)計(jì)當(dāng)MCS-5l系列單片機(jī)的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位和開關(guān)復(fù)位。圖3.3即為手動(開關(guān))復(fù)位電路。 圖3.3 手動復(fù)位電路(2)復(fù)位后的狀態(tài)a、復(fù)位后PC值為0000H,表明復(fù)位后的程序從0000H開始執(zhí)行。b、SP值為07H,表明堆棧底部在07H,一般需要重新設(shè)置SP值。c、P0P3口值為FFH。P0P3口用作輸入口時(shí),必須先寫入“1”。單片機(jī)在復(fù)
13、位后,已使P0P3口每一端線為“1”,為這些端線用作輸入口做好了準(zhǔn)備。(3)WDT 溢出將使該引腳輸出高電平,所以本設(shè)計(jì)采用圖3.4的手動復(fù)位電路:圖3.4 本設(shè)計(jì)手動復(fù)位電路AT89S51 中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1 和XTAL2 分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見圖3.5。外接石英晶體(或陶瓷諧振器)及電容Cl、C2 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容Cl、C2 雖然沒有十分嚴(yán)格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序
14、及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30pF±10pF,而如使用陶瓷諧振器建議選擇40pF±10F。用戶也可以采用外部時(shí)鐘。采用外部時(shí)鐘的電路如圖1所示。這種情況下,外部時(shí)鐘脈沖接到XTAL1端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時(shí)鐘信號是通過一個(gè)2分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號的,所以對外部時(shí)鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時(shí)間和最大的低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件的要求。 圖3.5 單片機(jī)自激震蕩電路3.2.2 芯片擦除 整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。
15、在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。 此外,AT89S51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。 3.2.3 開鎖機(jī)構(gòu) 用戶通過LCD提示信息,用鍵盤輸入正確密碼,從而達(dá)到開鎖的目的。當(dāng)用戶輸入的密碼正確并且是在按下確定鍵的話,單片機(jī)便輸出開門信號,送到開鎖驅(qū)動 電路,然后驅(qū)動電磁鎖,達(dá)到開門的目的。電路驅(qū)動和開鎖兩級組成。由D5、R
16、1、T10組成驅(qū)動電路,其中T10可以選擇普通的小功率三極管如9014、9018都可以滿足要求。D5作為開鎖的提示;由D6、C24、T11組成。其中D6、C24是為了消除電磁鎖可能產(chǎn)生的反向高電壓以及可能產(chǎn)生的電磁干擾。T11可選用中功率的三極管如8050,電磁鎖的選用要視情況而定,但是吸合力要足夠且由一定的余量。 在本次設(shè)計(jì)中,基于節(jié)省材料的原則,暫時(shí)用發(fā)光二極管代替電磁鎖,發(fā)光管亮,表示開鎖;滅,表示沒有開鎖。 圖3.7 密碼鎖開鎖機(jī)構(gòu)電路圖3.2.4 鍵盤設(shè)計(jì) 本設(shè)計(jì)就采用行列式鍵盤,同時(shí)也能減少鍵盤與單片機(jī)接口時(shí)所占用的I/O線的數(shù)目,在按鍵比較多的時(shí)候,通常采用這樣方法。 每一條水平
17、(行線)與垂直線(列線)的交叉處不相通,而是通過一個(gè)按鍵來連通,利用這種行列式矩陣結(jié)構(gòu)只需要N條行線和M條列線,即可組成具有N×M個(gè)按鍵的鍵盤。 在這種行列式矩陣鍵盤非鍵盤編碼的單片機(jī)系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認(rèn)有無按鍵按下的程序段。 4×4矩陣鍵盤的工作原理 在鍵盤中按鍵數(shù)量較多時(shí),為了減少I/O口的占用,通常將按鍵排列成矩陣形式,如圖5所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個(gè)按鍵加以連接。這樣,一個(gè)端口(如P1口)就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可
18、以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時(shí),采用矩陣法來做鍵盤是合理的。掃描原理 把每個(gè)鍵都分成水平和垂直的兩端接入,比如說掃描碼是從垂直的入,那就代表那一行所接收到的掃描碼是同一個(gè)bit,而讀入掃描碼的則是水平,掃描的動作是先輸入掃描碼,再去讀取輸入的值,經(jīng)過比對之后就可知道是哪個(gè)鍵被按下。 比如說掃描碼送入01111111,前面的0111是代表此時(shí)掃描第一行P1.0列,而后面的1111是讓讀取的4行接腳先設(shè)為VDD,若此時(shí)第一行的第三列按鍵被按下,那讀取的結(jié)果就會變成01111101(注意1111變成1101),其中LSB的第三個(gè)bit會由1變
19、成0,這是因?yàn)檫@個(gè)按鍵被按下之后,會被垂直的掃描碼電位short,而把讀取的LSB的bit電位拉到0,此即為掃描原理。 由于這種按鍵是機(jī)械式的開關(guān),當(dāng)按鍵被按下時(shí),鍵會震動一小段時(shí)間才穩(wěn)定,為了避免讓8051誤判為多次輸入同一按鍵, 我們必須在偵測到有按鍵被按下,就Delay一小段時(shí)間,使鍵盤以達(dá)穩(wěn)定狀態(tài),再去判讀所按下的鍵,就可以讓鍵盤的輸入穩(wěn)定。圖3.8為鍵盤整體??驁D: 圖3.8 鍵盤整體??驁D3.2.5顯示電路設(shè)計(jì) 顯示設(shè)計(jì)采用字符型液晶屏設(shè)計(jì),由單片機(jī)的p0口控制顯示,由p3.3p3.5控制lcd的控制端口。本設(shè)計(jì)采用以下液晶顯示設(shè)計(jì):圖3.9 LCD液晶顯示電路抓圖3.3 電路設(shè)計(jì)
20、總圖Proteus軟件是Labcenter Electronics公司的一款電路設(shè)計(jì)與仿真軟件,它包括ISIS、ARES等軟件模塊,ARES模塊主要用來完成PCB的設(shè)計(jì),而ISIS模塊用來完成電路原理圖的布圖與仿真。Proteus的軟件仿真基于VSM技術(shù),它與其他軟件最大的不同也是最大的優(yōu)勢就在于它能仿真大量的單片機(jī)芯片,比如MCS-51系列、PIC系列等等,以及單片機(jī)外圍電路,比如鍵盤、LED、LCD等等。通過Proteus軟件的使用我們能夠輕易地獲得一個(gè)功能齊全、實(shí)用方便的單片機(jī)實(shí)驗(yàn)室。 本密碼鎖采用proteus進(jìn)行電路圖設(shè)計(jì),經(jīng)過元件選型,用萬能實(shí)驗(yàn)版進(jìn)行硬件焊接,以實(shí)現(xiàn)硬件部分。 下
21、圖為proteus設(shè)計(jì)的密碼鎖電路圖整體抓圖 第四章 系統(tǒng)軟件設(shè)計(jì)因設(shè)計(jì)主要是作用匯編語言來開發(fā)的51單片機(jī)項(xiàng)目程序,所以首先必須有一個(gè)可以在Windows XP或Windows vista操作系統(tǒng)下執(zhí)行的匯編語言編譯器,本設(shè)計(jì)采用Keil編譯器進(jìn)行編程,因?yàn)樗梢灾С忠幌盗械?1單片機(jī)。 開始初始化模式選擇識別按鍵密碼輸入手動清除密碼比較開門舊密碼輸入新密碼輸入存入緩存區(qū)再次輸入密碼重新輸入設(shè)置完畢返回NANBY圖4.1 主程序的流程圖4.1主程序模塊主程序主要是完成系統(tǒng)初始化、設(shè)置中斷向量、檢查有無鍵按下、以及調(diào)用顯示等等。主程序部分如下所示:en bit p3.5;將lcd的en管腳連接
22、到單片機(jī)的p3.5口rw bit p3.4;將lcd的rw管腳連接到單片機(jī)的p3.4口rs bit p3.3;將lcd的rs管腳連接到單片機(jī)的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;O
23、RG 0030h;start:MOV sp,#60h;lcall sys_initialization;調(diào)用子程序sys_initialization4.2 鍵盤掃描及識別子程序 鍵盤采用查詢的方式,放在主程序中,當(dāng)沒有按鍵按下的時(shí)候,單片機(jī)循環(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è)計(jì)是分模塊化進(jìn)
24、行,所以子程序是整體軟件系統(tǒng)的組成部分,子程序不但可以使程序化整為零,使其復(fù)雜簡單化,同時(shí)也方便閱讀,修改等,每個(gè)功能模塊都有它自己的子程序,在本設(shè)計(jì)中是用LCD顯示數(shù)據(jù),所以就要用到顯示子程序,設(shè)計(jì)中用的是矩陣鍵盤,所以就用到鍵盤掃描子程序,例如還有顯示初始化子程序、LCD忙檢測子程序、關(guān)閉狀態(tài)顯示子程序、開鎖狀態(tài)顯示子程序、密碼輸入及修改狀態(tài)顯示子程序、密碼輸入錯(cuò)誤后的提示子程序等。如下圖為密碼修改子程序流程圖 選擇模式舊密碼輸入新密碼輸入存入緩存再次輸入密碼比較密碼重新輸入返回YN是否大于3次鎖定NY圖4.3 設(shè)置密碼子程序圖4.7 仿真成功密碼正確圖4.8 密碼正確綠燈亮本設(shè)計(jì)在焊接調(diào)
25、試時(shí)遇到的問題以及解決方法:單片機(jī)的最小系統(tǒng)問題:電源、晶振電路和復(fù)位電路都無異常。Lcd焊接時(shí)的問題:(1)接通電源后lcd無反應(yīng),各個(gè)引腳均屬正常。推斷可能是初始化程序出現(xiàn)問題。經(jīng)查找得知是lcd顯示器的15和16管腳控制背光功能,連接好之后還是不能顯示字符。(2)接通電源開門燈和報(bào)警電路就會工作,分析原因是單片機(jī)剛開始各個(gè)管腳輸出高電平。以下為所做實(shí)物: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
26、0000h;LJMP start;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 ;判斷輸入錯(cuò)誤次數(shù)存儲地址 setb led;setb tr0;lcall key;cjne a,#'A',next1;LJMP set_password;next1: cjne a,#'B',next2;LJMP input
27、_password;next2: ajmp main;sys_initialization: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
28、,#03h;call write_instruction; ;液晶軟復(fù)位MOV p0,#01h;call write_instruction;mov p0,#3fh;call write_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; ;定時(shí)器t0,0.5s定時(shí)中斷初始化完畢ret; ;系統(tǒng)初始化完畢intermit_t0:push acc;push
29、 psw;mov th0,#3ch;mov tl0,#0b0h;djnz r4,return;cpl led;mov r4,#10;return: pop psw;pop acc;reti;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
30、;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 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
31、,保護(hù)鍵值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,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,r
32、0;xrl a,r1;jnz input_error;inc r0;inc r1;nop;nop;djnz r5,input_compere; ;驗(yàn)證輸入密碼完畢jmp set_password0;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 $; ;輸入密碼錯(cuò)誤次數(shù)超過3次,鎖死set_password0:call clear_dis
33、play;mov dptr,#table2;call input_hint;mov r0,#40h;call password;jbc returnbit,set_password; ;第一次輸入新密碼完畢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; ;第二次輸入新密碼完畢
34、mov r5,#6;mov r0,#40h;mov r1,#46h;set_compere:mov a,r0;xrl a,r1;jnz set_error;inc r0;inc r1;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_hin
35、t;call delay1_5s;clr speaker;clr led;ljmp set_password0; ;前后兩次輸入新密碼不一致,返回重設(shè);輸入密碼開鎖程序input_password: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;
36、inc r0;inc r1;nop;nop;djnz r5,input_compere0; ;驗(yàn)證輸入密碼完畢jmp display_right;input_error22:setb 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 $; ;輸入密碼錯(cuò)誤超過3次,鎖死display_right:call clear_display;mov dp
37、tr,#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 dptr,#table11;call input_hint;ret;clear_display:mov display,#01h;call write_instruction;ret;input_hint:mov r5,#16;mov a,#00h;all_or_not:movc a,a+dptr;mov display,a;call writedata
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科學(xué)技術(shù)職業(yè)學(xué)院《數(shù)字電路基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東金融學(xué)院《酒店空間設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東行政職業(yè)學(xué)院《工程制圖與數(shù)字化表達(dá)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東環(huán)境保護(hù)工程職業(yè)學(xué)院《藝術(shù)概論(二)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東東軟學(xué)院《抗震與高層建筑結(jié)構(gòu)設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東創(chuàng)新科技職業(yè)學(xué)院《化工過程開發(fā)與設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 《老字的其他用法》課件
- 《自發(fā)性氣胸的診治》課件
- 《線性代數(shù)課本》課件
- 廣東財(cái)經(jīng)大學(xué)《工程熱力學(xué)(二)》2023-2024學(xué)年第一學(xué)期期末試卷
- GB/T 18488-2024電動汽車用驅(qū)動電機(jī)系統(tǒng)
- 裝配式混凝土建筑預(yù)制疊合板、疊合梁識圖
- 醫(yī)療科研數(shù)據(jù)管理制度
- 安徽省蕪湖市弋江區(qū)2023-2024學(xué)年八年級上學(xué)期期末英語試題(含聽力)
- 場地移交表完整版本
- JJG 693-2011可燃?xì)怏w檢測報(bào)警器
- 2024-2029年中國水利行業(yè)發(fā)展分析及發(fā)展前景與趨勢預(yù)測研究報(bào)告
- 供電公司應(yīng)急演練培訓(xùn)
- 高中英語U4-The-Words-That-Changed-A-Nation教學(xué)課件
- 年項(xiàng)目經(jīng)理講安全課
- 朱砂行業(yè)分析
評論
0/150
提交評論