單片機(jī)原理及應(yīng)用 課程設(shè)計(jì)報(bào)告單片機(jī)電子密碼鎖設(shè)計(jì)_第1頁(yè)
單片機(jī)原理及應(yīng)用 課程設(shè)計(jì)報(bào)告單片機(jī)電子密碼鎖設(shè)計(jì)_第2頁(yè)
單片機(jī)原理及應(yīng)用 課程設(shè)計(jì)報(bào)告單片機(jī)電子密碼鎖設(shè)計(jì)_第3頁(yè)
單片機(jī)原理及應(yīng)用 課程設(shè)計(jì)報(bào)告單片機(jī)電子密碼鎖設(shè)計(jì)_第4頁(yè)
單片機(jī)原理及應(yīng)用 課程設(shè)計(jì)報(bào)告單片機(jī)電子密碼鎖設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)原理及應(yīng)用課程設(shè)計(jì)報(bào)告課題名稱電子密碼鎖學(xué)院自動(dòng)控制與機(jī)械工程專業(yè)電氣工程及其自動(dòng)化班級(jí)xxxx學(xué)號(hào)xxxxx姓名xxxxx時(shí)間xxxxxxxxxxxxxxx目錄摘要- 1-一、設(shè)計(jì)任務(wù)及要求- 1 -1.1、設(shè)計(jì)任務(wù)- 1 -1.2、設(shè)計(jì)要求- 1 -二、系統(tǒng)總體結(jié)構(gòu)及工作原理- 1 -2.1系統(tǒng)總體結(jié)構(gòu)- 2 -2.2 系統(tǒng)總體結(jié)構(gòu)及電路圖- 2 -三、各模塊電路設(shè)計(jì)- 3 -3.1 at89c51簡(jiǎn)介- 3 -3.2 模塊電路- 7 -四、軟件設(shè)計(jì)- 10 -4.1 主程序流程圖- 10 -4.2、子程序代碼- 10 -五、調(diào)試說明- 12 -六、總結(jié)- 15 -七、參考文獻(xiàn)- 1

2、5 -八、附錄 源程序源代碼清單- 16 -摘要本次設(shè)計(jì)介紹了基于單片機(jī)電子密碼鎖的設(shè)計(jì),該設(shè)計(jì)硬件主要由at89c51最小系統(tǒng)、矩陣電路、lcd顯示電路、電源電路和報(bào)警電路等幾部分組成。軟件主要由c語(yǔ)言編程。該密碼鎖由單片機(jī)技術(shù),通過矩陣電路設(shè)置、修改密碼、保護(hù)密碼,并由lcd顯示密碼輸入,從而實(shí)現(xiàn)對(duì)密碼的設(shè)置、保護(hù)。關(guān)鍵詞:at89s51, 電子密碼鎖,矩陣鍵盤一、設(shè)計(jì)任務(wù)及要求1、設(shè)計(jì)任務(wù):基于mcs-51系列單片機(jī)at89c51,設(shè)計(jì)一個(gè)通過按鍵輸入開鎖的電子密碼鎖。2、設(shè)計(jì)要求:(1)通過44的矩陣鍵盤輸入或設(shè)定開鎖密碼;(2)可以通過lcd查看已輸入的字符個(gè)數(shù)顯示為*;(3)使用串

3、行eerom24c02a保存用戶設(shè)置的密碼;(4)使用led和蜂鳴器指示密碼鎖的狀態(tài);(5)可以通過特殊的按鍵方法清除用戶密碼如同時(shí)按下特定的多個(gè)鍵;(6)其他功能。二、系統(tǒng)總體結(jié)構(gòu)及工作原理2.1系統(tǒng)總體結(jié)構(gòu)如圖1所示系統(tǒng)框圖:主要由電源電路、矩陣電路、報(bào)警電路、顯示電路等幾部分組成。圖1 系統(tǒng)原理圖其流程圖如圖2所示。開始 系統(tǒng)初始化,lcd 選擇a/b判斷密碼是否正確 密碼修改 輸入密碼 輸入原始密碼 輸入修改密碼判斷密碼是否正確lcd顯示修改成功報(bào)警啟動(dòng)繼電器模擬開鎖報(bào)警lcd顯示否是ab是否圖1 系統(tǒng)原理圖2.2系統(tǒng)總體電路圖及工作原理工作原理:矩陣電路用于輸入數(shù)字的密碼和進(jìn)行各種功

4、能的實(shí)現(xiàn)??梢酝ㄟ^連接單片機(jī)的矩陣鍵盤輸入密碼,后經(jīng)過單片機(jī)對(duì)用戶輸入的密碼與自己保存的密碼進(jìn)行對(duì)比,當(dāng)按下b,輸入密碼時(shí)led1黃燈亮,輸入完畢后等滅,確認(rèn)后,如果密碼正確led4綠燈亮,若密碼錯(cuò)誤,led3亮紅燈亮,且蜂鳴器發(fā)出聲音報(bào)警;按下a后重置密碼則led2黃燈亮。然后控制引腳的高低電平傳到開鎖電路或者報(bào)警電路控制開鎖還是報(bào)警。lcd則是顯示密碼的輸入進(jìn)程的,輸入正確則會(huì)顯示開鎖成功,同時(shí)發(fā)光二級(jí)管燈亮??傮w電路圖如圖3所示。圖3 系統(tǒng)總體電路圖三、各模塊電路設(shè)計(jì) 3.1.at89c51簡(jiǎn)介at89c51是美國(guó)公司atmel在1944年以eeprom技術(shù)與inter公司的80c51內(nèi)

5、核的使用權(quán)進(jìn)行交換,然后將flash技術(shù)與80c51內(nèi)核相結(jié)合,形成了片內(nèi)帶有flash存儲(chǔ)器的at89c51系列的單片機(jī)。at89c51單片機(jī)繼承了原來(lái)單片機(jī)的原有功能,而且完全兼容。并且在此基礎(chǔ)上增加了一些新的功能,如看門狗定時(shí)器wdt、isp(在系統(tǒng)編程也叫在線編程)及spi串行接口技術(shù)等。片內(nèi)flash存儲(chǔ)器允許在線(+5)電擦除。電寫入或使用編程器對(duì)其重復(fù)編程。此外at89c51系列單片機(jī)的還有具有功耗小,價(jià)格低廉,在線的eeprom可以實(shí)現(xiàn)在線編程且可以重復(fù)編程,因此受到很多單片機(jī)愛好者歡迎。 3.1.1 主要參數(shù)(1) 與mcs-51 兼容(2) 4k字節(jié)可編程閃爍存儲(chǔ)器 (3)

6、 壽命:1000寫/擦循環(huán) (4) 數(shù)據(jù)保留時(shí)間:10年 (5) 全靜態(tài)工作:0hz-24hz (6) 三級(jí)程序存儲(chǔ)器鎖定 (7) 128*8位內(nèi)部ram (8) 32可編程i/o線 (9) 兩個(gè)16位定時(shí)器/計(jì)數(shù)器 (10) 5個(gè)中斷源(11) 可編程串行通道(12) 低功耗的閑置和掉電模式(13) 片內(nèi)振蕩器和時(shí)鐘電路3.1.2 引腳功能說明 單片機(jī)引腳如圖4所示 圖4 單片機(jī)各引腳圖40個(gè)引腳按其功能科分為三類:(1) 電源及時(shí)鐘引腳-vcc、gnd;xtal1、xtal2。(2) 控制引腳-/psen、ale/prog、/ea/vpp、rst(3) i/o口引腳-p0、p1、p2、p3

7、、為四個(gè)8為位i/o口的外部引腳下面結(jié)合圖2一一介紹各引腳的功能(1) 電源引腳(1)vcc(40)腳:接+5v電源(2)gnd(20):接地(2) 時(shí)鐘引腳(1)xtal1(19):片內(nèi)振蕩器反相放大器和時(shí)鐘發(fā)生器電路的輸入端,當(dāng)使用片內(nèi)振蕩器時(shí),該引腳連接外部石英晶體和微調(diào)電容,當(dāng)采用外部接時(shí)鐘源時(shí),該引腳接外部的時(shí)鐘振蕩器的信號(hào)。(2) xtal2(18):片內(nèi)振蕩器的反相放大器的輸出端,當(dāng)使用片內(nèi)振蕩器時(shí),該引腳連接外部石英晶體和微調(diào)電容;當(dāng)采用外部時(shí)鐘源時(shí)、該引腳懸空。(3) 控制引腳此類引腳提供控制信號(hào),有的引腳還具有復(fù)用功能。rst(9):復(fù)位信號(hào)輸入端,高電平有效。再次引腳加上

8、持續(xù)時(shí)間大于2個(gè)機(jī)器周期的高電平,就可以使單片機(jī)復(fù)位。在單片機(jī)正常工作時(shí),此引腳應(yīng)為小于且等于0.5v的低電平。/ea/vpp(31):/ea為該引腳第一功能,既外部程序存儲(chǔ)器訪問允許控制端。當(dāng)/ea引腳接高電平時(shí),在pc值不超過0fff時(shí),將自動(dòng)轉(zhuǎn)向讀取片外60kb(1000h-ffffh)程序存儲(chǔ)器空間中的程序。當(dāng)/ea引腳接低電平時(shí),只讀取外部程序存儲(chǔ)器中的內(nèi)容,讀取的地址范圍為0000hffffh,片內(nèi)的4kbflash程序存儲(chǔ)器不起作用。vpp為該引腳的第二功能,既在對(duì)片內(nèi)的flash進(jìn)行編程時(shí),vpp引腳接入編程變壓。/prog、ale(30):ale為cpu訪問外部程序存儲(chǔ)器或外

9、部數(shù)據(jù)存儲(chǔ)器提供一個(gè)地址鎖存信號(hào),將低8位地址鎖存在片外的地址鎖存器中。/prog為該引腳的第二功能,即在片內(nèi)flash存儲(chǔ)器編程時(shí),此引腳作為編程脈沖的輸入端。/psen(29):片外程序存儲(chǔ)器的讀選通信號(hào),低電平有效。4.1.2.3 并行i/o引腳p0:8位,漏極開路的雙向i/o口。當(dāng)at89c51擴(kuò)展外部存儲(chǔ)器及i/o接口芯片時(shí),p0口作為地址總線及數(shù)據(jù)總線的分時(shí)復(fù)用端口。p0口也可作為通用的i/o使用,但需加上拉電阻,這時(shí)為準(zhǔn)雙向口。p1:8位,pl 是一個(gè)帶內(nèi)部上拉電阻的8位雙向io口,pl的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)ttl邏輯門電路。對(duì)端口寫“l(fā)”,通過內(nèi)部的上拉電阻把

10、端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(iil),flash編程和程序校驗(yàn)期間,pl接收低8位地址。p2 :8位,p2 是一個(gè)帶有內(nèi)部上拉電阻的8 位雙向io 口,p2 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)ttl邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(iil),在訪問外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行movxdptr指令)時(shí),p2口送出高8位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲(chǔ)器(

11、如執(zhí)行movxri 指令)時(shí),p2 口線上的內(nèi)容(也即特殊功能寄存器(sfr)區(qū)中p2寄存器的內(nèi)容),在整個(gè)訪問期間不改變。flash編程或校驗(yàn)時(shí),p2亦接收高位地址和其它控制信號(hào)。p3 :8位,p3 口是一組帶有內(nèi)部上拉電阻的8 位雙向i0 口。p3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)ttl邏輯門電路。p3口除了作為一般的i0口線外。此外,p3口還有一些特殊功能,如下所示:1) p3.0 rxd(串行輸入口) 2) p3.1 txd(串行輸出口)3) p3.2 /int0(外部中斷0)4) p3.3 /int1(外部中斷1)5) p3.4 t0(記時(shí)器0外部輸入)6) p3.5 t1

12、(記時(shí)器1外部輸入)7) p3.6 /wr(外部數(shù)據(jù)存儲(chǔ)器寫選通)8) p3.7 /rd(外部數(shù)據(jù)存儲(chǔ)器讀選通)3.2模塊電路3.2.1矩陣鍵盤電路本設(shè)計(jì)就采用行列式鍵盤,同時(shí)也能減少鍵盤與單片機(jī)接口時(shí)所占用的i/o線的數(shù)目,在按鍵比較多的時(shí)候,通常采用這樣方法。 每一條水平(行線)與垂直線(列線)的交叉處不相通,而是通過一個(gè)按鍵來(lái)連通,利用這種行列式矩陣結(jié)構(gòu)只需要4條行線和4條列線,即可組成具有44個(gè)按鍵的鍵盤。工作原理:在這種行列式矩陣鍵盤非鍵盤編碼的單片機(jī)系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認(rèn)有無(wú)按鍵按下的程序段。在鍵盤中按鍵數(shù)量較多時(shí),為了減少i/o口的占用,通常將按鍵排列成矩陣形

13、式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個(gè)按鍵加以連接。這樣,一個(gè)端口(如p1口)就可以構(gòu)成44=16個(gè)按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時(shí),采用矩陣法來(lái)做鍵盤是合理的。掃描原理 :把每個(gè)鍵都分成水平和垂直的兩端接入,比如說掃描碼是從垂直的入,那就代表那一行所接收到的掃描碼是同一個(gè)bit,而讀入掃描碼的則是水平,掃描的動(dòng)作是先輸入掃描碼,再去讀取輸入的值,經(jīng)過比對(duì)之后就可知道是哪個(gè)鍵被按下。鍵盤電路如圖5所示。圖5 鍵盤電路圖3

14、.2.2 lcd顯示電路顯示電路設(shè)計(jì)采用字符型液晶屏顯示,顯示電路如圖6所示。圖6 led顯示電路圖32.3 報(bào)警電路報(bào)警電路由5個(gè)220電阻、一個(gè)npn型三極管、2個(gè)led-yellow、1個(gè)led-red、1個(gè)led-gerrn及兩個(gè)電源個(gè)接地組成,當(dāng)按下b,輸入密碼時(shí)led1黃燈亮,輸入完畢后等滅,確認(rèn)后,如果密碼正確led4綠燈亮,若密碼錯(cuò)誤,led3亮紅燈亮,且蜂鳴器發(fā)出聲音報(bào)警;按下a后重置密碼則led2黃燈亮。報(bào)警電路圖如圖7所示。 圖7 報(bào)警電路圖四 、軟件設(shè)計(jì)4.1 主程序流程圖電子密碼鎖設(shè)計(jì)軟件設(shè)計(jì)主程序流程圖如圖8所示。開始 系統(tǒng)初始化,lcd 選擇a/b判斷密碼是否正確

15、 密碼修改 輸入密碼 輸入原始密碼 輸入修改密碼判斷密碼是否正確lcd顯示修改成功報(bào)警啟動(dòng)繼電器模擬開鎖報(bào)警lcd顯示否是ab是否圖8 主程序流程圖 4.2子程序代碼 (1)初始化系統(tǒng),設(shè)置初始密碼如圖9所示。圖9 初始化代碼(2)lcd控制指令如圖10所示 圖10 lcd控制指令(3)鍵盤編碼如圖11。圖11 鍵盤編碼(4) 從鍵值表讀入鍵值12圖12 從鍵值表讀入鍵值五、調(diào)試說明系統(tǒng)啟動(dòng)后,lcd顯示如下: 圖13 lcd顯示圖 按下操作鍵a或b操作如下;1) 操作鍵a:設(shè)置新的5位數(shù)字(09)密碼。2) 操作鍵b:輸入5位數(shù)字(09)密碼并檢查。當(dāng)按b時(shí),led1燈亮顯示輸入5位數(shù)字密碼

16、,顯示如下:圖14 按b鍵后顯示器 輸完5位密碼時(shí),led1燈熄滅,表示密碼輸入完畢,再按確認(rèn)鍵,密碼開始核對(duì),核對(duì)通過后,led4燈亮,表示鎖已經(jīng)打開。如下圖: 圖15 密碼正確當(dāng)密碼輸入錯(cuò)誤時(shí),蜂鳴器發(fā)出警報(bào),led3燈亮,lcd顯示:圖16 密碼錯(cuò)誤 當(dāng)按下a時(shí),led2燈亮,lcd顯示如下: 圖17 按下a后輸入5位原始密碼后led2燈熄滅,按確認(rèn)鍵,密碼核對(duì),如果密碼錯(cuò)誤,報(bào)警提示。如密碼正確,led2燈亮,lcd顯示如下:圖18 輸入密碼正確密碼修改完成,恢復(fù)到起始顯示狀態(tài)。六、總結(jié)以上為課程設(shè)計(jì)期間所設(shè)計(jì)的基于at89c51單片機(jī)電子密碼鎖電路,它經(jīng)過多次修改和整理,以是一個(gè)比較

17、不錯(cuò)的設(shè)計(jì),可以滿足人們的基本要求,但因?yàn)樗接邢?,此電路中也存在一定的問題,譬如說電路的密碼不能遺忘,一旦遺忘,就很難打開,這可以通過增加電路解決,但過于復(fù)雜,本次設(shè)計(jì)未其中;通過這兩周的設(shè)計(jì),學(xué)會(huì)找到問題并解決問題,譬如在設(shè)計(jì)過程中遇到些問題,我們獲得巨大收獲:首先,通過學(xué)習(xí)使自己對(duì)課本上的知識(shí)可以應(yīng)用于實(shí)際,比如對(duì)繪圖軟件pritues的實(shí)用及其編程軟件uv4的使用,使得的理論與實(shí)際相結(jié)合,加深自己對(duì)課本知識(shí)的更好理解,同時(shí)實(shí)習(xí)也段練了我們團(tuán)結(jié)合作精神,能夠充分利用圖書館去查閱資料,增加了許多課本以外的知識(shí),能達(dá)到學(xué)以致用。對(duì)我們學(xué)生來(lái)說,理論與實(shí)際同樣重要,這是我們以后在工作中說明自己

18、能力的一個(gè)重要標(biāo)準(zhǔn)。 實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),當(dāng)然也是檢驗(yàn)學(xué)習(xí)成果的標(biāo)準(zhǔn)。在經(jīng)過一段時(shí)間的學(xué)習(xí)之后,我們需要了解自己的所學(xué)應(yīng)該如何應(yīng)用在實(shí)踐中,因?yàn)槿魏沃R(shí)都源于實(shí)踐,歸于實(shí)踐,所以要將所學(xué)的知識(shí)在實(shí)踐中來(lái)檢驗(yàn)。在馮老師的指導(dǎo)下,我能順利完成本次課程設(shè)計(jì),感謝老師!七、參考文獻(xiàn)1 樓然苗,胡佳文,等.51系列單片機(jī)原理及設(shè)計(jì)實(shí)例m.北京:北京航空航天大學(xué)出版社,2010.2 何立民.單片機(jī)高級(jí)教程應(yīng)用與設(shè)計(jì)m.北京: 北京航空航天大學(xué)出版社,2000.3 楊旭方.單片機(jī)控制與應(yīng)用實(shí)訓(xùn)教程m.北京:電子工業(yè)出版社,2010.4 黃仁欣,馬彪副主編.單片機(jī)原理及運(yùn)用技術(shù).m北京:清華大學(xué)出版社,

19、20055 楊西明,朱騏主編.單片機(jī)編程與應(yīng)用入門m. 北京:機(jī)械工業(yè)出版社.2004.6 先鋒工作室編著.單片機(jī)程序設(shè)計(jì)實(shí)例m. 北京: 清華大學(xué)出版社.2003. 7 陳粵初。單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與實(shí)踐m.北京:北京航空航天大學(xué)出版社,19918 王幸之。at89系列單片機(jī)原理與接口技術(shù)m。北京:北京航空航天大學(xué)出版社, 20049 張毅剛等主編。單片機(jī)原理與應(yīng)用設(shè)計(jì)m。北京:電子工業(yè)出版社, 2008八、附件(1) 系統(tǒng)整機(jī)電路原理圖圖19 系統(tǒng)整機(jī)電路原理圖(2) 程序清單rs bit p2.2 ;定義lcd的rs引腳由p2.2引腳控制 rw bit p2.1 ;定義lcd的rw引腳由p

20、2.1引腳控制 e bit p2.0 ;定義lcd的e引腳由p2.0引腳控制 org 0000h ajmp start org 0050hstart: mov p0, #01h ;清除lcd屏幕 acall enable mov p0,#38h ;設(shè)置lcd為8位點(diǎn)陣方式 acall enable mov p0,#0fh ;開顯示 acall enable mov p0,#06h ;移動(dòng)光標(biāo) mov 50h,#8 mov 51h,#8 mov 52h,#0 mov 53h,#3 mov 54h,#6 ;設(shè)置5位初始密碼main: lcall enable lcall ksxshi ;開始顯示

21、aa: lcall key ;調(diào)用鍵盤掃描程序 cjne a,#10,bb ;若不為a鍵,則跳轉(zhuǎn)為判斷是否為b鍵 lp: acall anahx ajmp main bb: cjne a,#11,aa ;若不為b鍵則重新掃描 acall anbhx ljmp mainenable:clr rs ;lcd控制指令 clr rw clr e lcall delay setb e ret;*鍵盤編碼部分*key: mov p1,#0f0hkey0: mov a,p1 cpl a anl a,#0f0h mov r1,a ;讀取列線數(shù)據(jù)并存入r1中 jz key ;若無(wú)鍵按下,則繼續(xù)掃描key1: m

22、ov p1,#0fh mov a,p1 cpl a anl a,#0fh mov r2,a ;讀取列線數(shù)據(jù)并存入r1中 jz key ;若無(wú)鍵按下,則繼續(xù)掃描tt: jbc f0,wait setb f0 lcall delay sjmp ttgret: ret;*確定按鍵值*wait: mov a,p1 ;等待按鍵釋放 cpl a anl a,#0fh jnz waitkey2: mov a,r1 mov r1,#03h mov r3,#03h clr ckey3: rlc a jc key4 dec r1 ;修正列編號(hào) djnz r3,key3key4: mov a,r2 mov r2,#

23、00h mov r3,#03h clr ckey5: rrc a jc key6 inc r2 ;修正列編號(hào) djnz r3,key5key6: mov a,r2 clr c rlc a rlc a add a,r1 ;將行線和列線相加得到鍵值 ret;*開始顯示效果*ksxshi:mov p0,#80h acall enable mov dptr,#table3 lcall write1 ;顯示8051 password mov p0,#0c0h lcall enable mov dptr,#table2 lcall write1 ;顯示a or b key ret;*按a后的操作部分*an

24、ahx: mov p0,#80h acall enable mov dptr,#table4 lcall write1 ;顯示set password mov p0,#0c0h lcall enable mov dptr,#table5 lcall write1 ;顯示 * * * * * lcall xg_pass ret;*按b后的操作部分*anbhx: mov p0,#80h acall enable mov dptr,#table6 ;顯示shu ru mi ma lcall write1 mov p0,#0c0h lcall enable mov dptr,#table5 ;顯示 *

25、 * * * * lcall write1 lcall ip_pass ret;*輸入5位密碼值*ip_pass:mov b,#5 mov r0,#40h t: clr p2.3 acall key setb p2.3 mov r0,a ;將從鍵盤得到的鍵值依次存入40h,41h,42h,43h,44h單元 inc r0 djnz b,t ;循環(huán)5次得到5個(gè)鍵值 acall key cjne a,#12,pt ;將鍵值和12比較,看是否為確認(rèn)鍵 mov a,40h cjne a,50h,kk mov a,41h cjne a,51h,kk mov a,42h cjne a,52h,kk mov

26、 a,43h cjne a,53h,kk mov a,44h cjne a,54h,kk ;將密碼和初始密碼比較,看密碼是否正確 clr p2.7 ;密碼正確則led4綠燈亮 mov p0,#80h acall enable mov dptr,#table11 lcall write1 ;密碼正確,輸出lock opened! mov p0,#0c0h lcall enable mov dptr,#table5 lcall write1 ;顯示 * * * * * mov b,#100pr: lcall delay djnz b,pr setb p2.7pt: ret;*輸錯(cuò)密碼時(shí)顯示erro

27、r*kk: clr p2.6 clr p2.5 ;密碼錯(cuò)誤,報(bào)警并led3紅燈亮 mov p0,#80h acall enable mov dptr,#table10 lcall write1 ;密碼錯(cuò)誤,顯示password error! mov p0,#0c0h lcall enable mov dptr,#table5 lcall write1 ;顯示 * * * * * mov b,#50pk: lcall delay djnz b,pk setb p2.5 setb p2.6 ret;*修改密碼操縱部分*xg_pass:mov p0,#80h acall enable mov dpt

28、r,#table9 lcall write1 ;顯示input the mov p0,#0c0h lcall enable mov dptr,#table8 lcall write1 ;顯示old password mov b,#5 mov r0,#30hyt: clr p2.4 ;紅燈led2亮,表示可以輸入密碼,5位輸入完畢后,燈滅 acall key setb p2.4 mov r0,a ;將從鍵盤得到的鍵值依次存入40h,41h,42h,43h,44h單元 inc r0 djnz b,yt ;循環(huán)5次得到5個(gè)鍵值 acall key cjne a,#12,xt ;判斷是否為確認(rèn)鍵 mo

29、v a,30h cjne a,50h,kk mov a,31h cjne a,51h,kk mov a,32h cjne a,52h,kk mov a,33h cjne a,53h,kk mov a,34h cjne a,54h,kk ;將從鍵盤輸入的密碼與初始密碼比較 mov p0,#80h acall enable mov dptr,#table9 lcall write1 mov p0,#0c0h lcall enable mov dptr,#table7 lcall write1 ;密碼正確則顯示input the new password mov b,#5 mov r0,#50hxt

30、1: clr p2.4 ;紅燈led2亮,表示可以輸入密碼,5位輸入完畢后,燈滅 acall key setb p2.4 mov r0,a ;將輸入的新密碼存入原來(lái)的舊密碼單元 inc r0 djnz b,xt1 acall key cjne a,#12,xt ;判斷是否為確認(rèn)鍵 mov p0,#80h acall enable mov dptr,#table1 lcall write1 mov p0,#0c0h lcall enable mov dptr,#table0 ;顯示password xiu gai pass lcall write1 xt: ret ;*寫數(shù)據(jù)*write1:mo

31、v r1,#00h a1: mov a,r1 movc a,a+dptr ;從鍵值表中讀取鍵值 lcall write2 inc r1 cjne a,#00h,a1 retwrite2:mov p0,a setb rs clr rw clr e lcall delay setb e retdelay: mov r7,#255 d1: mov r6,#255d2: djnz r6,d2 djnz r7,d1 rettable11: db 4ch,4fh,43h,4bh,20h,20h,20h,4fh,50h,45h,4eh,45h,44h,21h db 20h,21h,00h ;lock opened!table10: db

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論