版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 1 設(shè)計(jì)課題任務(wù)、功能要求說(shuō)明及總體方案介紹</p><p> 1.1 設(shè)計(jì)課題任務(wù)</p><p> 設(shè)計(jì)一個(gè)具有特定功能的密碼鎖。該密碼鎖上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”, 進(jìn)入準(zhǔn)備工作狀態(tài)。該密碼鎖具有系統(tǒng)原始密碼888888,用戶可以設(shè)定并存儲(chǔ)用戶密碼,密碼輸入時(shí)應(yīng)處于保密顯示狀態(tài),密碼輸入正確時(shí)應(yīng)顯示密碼輸入正確提示信息,否則,顯示密碼輸入
2、錯(cuò)誤提示信息。</p><p> 1.2 總體方案介紹及工作原理說(shuō)明</p><p> (1) 原始密碼的設(shè)定,此密碼是固定在程序存儲(chǔ)器ROM中,假設(shè)預(yù)設(shè)的密碼為“888888”共6位密碼。</p><p> (2)密碼的輸入: 采用按鍵來(lái)完成密碼的輸入,輸入時(shí)密碼處于顯示保密狀態(tài),輸入六位密碼后,自動(dòng)結(jié)束輸入,并判斷其正確性 </p><
3、;p> ?。?)密碼若輸入錯(cuò)誤,顯示輸入錯(cuò)誤提示信息,密碼輸入正確后,可以用鍵盤(pán)任意輸入數(shù)字,若按下第八個(gè)按鍵,則進(jìn)入修改密碼</p><p> ?。?)密碼修改:可以任意輸入“1-7”中的六位數(shù)字作為密碼,密碼輸入時(shí)處于保密顯示狀態(tài),六位密碼輸入結(jié)束確認(rèn)后顯示P.。</p><p><b> 圖1 設(shè)計(jì)總框圖</b></p><p>
4、 2 密碼鎖硬件系統(tǒng)的設(shè)計(jì)</p><p> 2.1 密碼鎖硬件系統(tǒng)各模塊功能簡(jiǎn)要介紹</p><p> 此次課程設(shè)計(jì)是基于單片機(jī)控制的電子密碼鎖,結(jié)合主要設(shè)計(jì)條件,本設(shè)計(jì)由單片機(jī)系統(tǒng)、獨(dú)立式鍵盤(pán)、LED顯示和報(bào)警系統(tǒng)組成,系統(tǒng)能完成開(kāi)鎖、錯(cuò)誤報(bào)警、密碼修改功能等功能,設(shè)計(jì)硬件系統(tǒng)如下: (1)單片機(jī)系統(tǒng):</p><p> 此次課題采用一種是用以AT8
5、9S52為核心的單片機(jī)控制方案。利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的IO端口,及其控制的準(zhǔn)確性,進(jìn)行電子密碼鎖的設(shè)計(jì)。此次課題用單片機(jī)P1口與鍵盤(pán)相連,做輸入口,P0口與顯示器段控相連,輸入段控碼,P2口輸入位控碼。</p><p> (2)獨(dú)立式鍵盤(pán)接口電路:</p><p> 此次課程設(shè)計(jì)采用獨(dú)立式鍵盤(pán),與P1口相連,鍵按下則會(huì)使該端口變成低電平,單片機(jī)讀P1口,通過(guò)對(duì)P1口數(shù)據(jù)的判斷
6、來(lái)確定哪一個(gè)鍵按下。</p><p> (3)數(shù)碼管顯示模塊:</p><p> 此次課程設(shè)計(jì)采用的是共陰數(shù)碼管,P0口段控,P2口送位控,八個(gè)數(shù)碼管共用八根段控,由位控決定在哪一位顯示。本次采用的是數(shù)碼管動(dòng)態(tài)顯示法,先給數(shù)碼管送位控,再送位控,延時(shí)1ms左右讓顯示穩(wěn)定,利用人眼的視覺(jué)反應(yīng)時(shí)間,八位的滾動(dòng)顯示,人眼看來(lái)是靜態(tài)的,從而實(shí)現(xiàn)了動(dòng)態(tài)顯示的功能。</p><
7、p><b> (4)報(bào)警系統(tǒng):</b></p><p> 此次課程設(shè)計(jì),當(dāng)輸入密碼錯(cuò)誤后,系統(tǒng)報(bào)警,報(bào)警裝置由一揚(yáng)聲器實(shí)現(xiàn),給P3.1口規(guī)律性的賦低電平,使揚(yáng)聲器鳴報(bào)警、二極管發(fā)光。</p><p><b> (5)電源電路:</b></p><p> 該密碼鎖設(shè)計(jì)了一個(gè)電源電路用一個(gè)發(fā)光二級(jí)管顯示電源電路的
8、通/斷情況。另外,系統(tǒng)也可通過(guò)下載口接通電源,且都與單片機(jī)EA引腳連接給整個(gè)硬件系統(tǒng)供電。</p><p> (6)復(fù)位及振蕩電路:</p><p> 時(shí)鐘電路工作后,在REST管腳上加兩個(gè)機(jī)器周期的高電平,芯片內(nèi)部開(kāi)始進(jìn)行初始復(fù)位。本設(shè)計(jì)晶振選擇頻率為12MHZ,電容選擇33pF。經(jīng)計(jì)算得單片機(jī)工作的機(jī)器周期為:</p><p> 12×(1
9、47;12M)=1us。</p><p><b> ?。?)下載口:</b></p><p> 該密碼鎖系統(tǒng)設(shè)計(jì)了一個(gè)下載口用于單片機(jī)系統(tǒng)的程序?qū)?,附帶可以作為補(bǔ)充電源只用,即用一個(gè)引腳接電源VCC,因此可以實(shí)現(xiàn)程序輸入和供電。</p><p> 2.2 密碼鎖電路原理圖、PCB圖、元器件布局分布圖</p><p>
10、;<b> 電路原理圖見(jiàn)附錄A</b></p><p> PCB 頂層圖見(jiàn)附錄B</p><p> PCB 底層圖見(jiàn)附錄B</p><p> 元器件布局圖見(jiàn)附錄C</p><p> 2.3 密碼鎖元器件清單</p><p><b> 元器件清單見(jiàn)附錄D</b>&l
11、t;/p><p> 3 密碼鎖軟件系統(tǒng)的設(shè)計(jì)</p><p> 3.1 密碼鎖設(shè)計(jì)使用單片機(jī)資源的情況</p><p> 原始密碼存放在內(nèi)部程序存儲(chǔ)器中,78H-7FH單元做字形代碼緩沖區(qū),70H-77H單元做數(shù)據(jù)比較緩沖區(qū),61H-66H作為新密碼存放區(qū),88H-8DH做密碼緩沖區(qū)。</p><p> 3.2 密碼鎖設(shè)計(jì)軟件系統(tǒng)各模塊
12、功能簡(jiǎn)介及流程圖</p><p> 密碼鎖軟件的設(shè)計(jì)主要包括:鍵盤(pán)掃描、密碼顯示、密碼比較、密碼修改、錯(cuò)誤報(bào)警。</p><p> 程序設(shè)計(jì)總流程圖如圖2所示:</p><p> 圖2 程序設(shè)計(jì)總流程圖</p><p> 3.2.1 鍵盤(pán)掃描程序:</p><p> 本設(shè)計(jì)采用獨(dú)立式鍵盤(pán),共八個(gè)按鍵,程序開(kāi)始
13、時(shí),先給P1口送高電平,有按鍵按下后,相應(yīng)的P1口線會(huì)變?yōu)榈碗娖?,將P1口的電平取反,再送到20H中,20H為可位尋址區(qū),通過(guò)查詢20H的八位,即可得到是哪個(gè)按鍵按下,就可以轉(zhuǎn)向每個(gè)按鍵所要執(zhí)行的程序。</p><p> 鍵盤(pán)掃描程序流程框圖如圖3所示:</p><p> 圖3 鍵盤(pán)掃描程序流程圖</p><p> 3.2.2 顯示程序:</p>
14、<p> 本設(shè)計(jì)采用數(shù)碼管共陽(yáng)極顯示,位控由P0口輸出,段控由P2口輸出,程序開(kāi)始后,先對(duì)程序初始化,選好寄存器以及查表顯示的表地址,先將低位位控碼送到P2口,然后通過(guò)查表得到段控碼,并送到該位,這樣依次查完八位,使八位數(shù)碼管顯示,以此循環(huán)。</p><p> 顯示程序流程圖如圖4所示:</p><p> 圖4 顯示程序流程圖</p><p>
15、3.2.3 密碼判斷程序:</p><p> 原密碼存放在內(nèi)部程序存儲(chǔ)器中,程序開(kāi)始后,上電后通過(guò)鍵盤(pán)輸入六位密碼來(lái)解鎖,六位密碼輸入完后,會(huì)自動(dòng)判斷是否與原始密碼相同,相同的話可以解鎖,解鎖后可以更改用戶密碼,若與原始密碼不同,則出錯(cuò)報(bào)警,然后按復(fù)位鍵可以重新輸入。修改完用戶密碼后若再解鎖,步驟與上述相同。</p><p> 密碼判斷程序流程圖如圖5所示:</p>&l
16、t;p> 圖5 密碼判斷程序流程圖</p><p> 3.2.4 錯(cuò)誤報(bào)警程序</p><p> 密碼輸入錯(cuò)誤后,會(huì)進(jìn)入自動(dòng)錯(cuò)誤報(bào)警,報(bào)警時(shí)數(shù)碼管上會(huì)顯示“ERROR”字樣,蜂鳴器會(huì)響,與蜂鳴器連在一起的LED燈也會(huì)亮,從而實(shí)現(xiàn)錯(cuò)誤報(bào)警。</p><p> 錯(cuò)誤報(bào)警程序流程圖如圖6所示:</p><p> 圖6 密碼修改程序流
17、程圖</p><p> 3.3 密碼鎖設(shè)計(jì)程序清單</p><p><b> 程序清單見(jiàn)附錄E</b></p><p> 4 設(shè)計(jì)結(jié)論、缺陷分析、仿真結(jié)果、心得體會(huì)、教學(xué)建議</p><p> 4.1 密碼鎖設(shè)計(jì)結(jié)論及使用說(shuō)明</p><p> 該密碼鎖基本實(shí)現(xiàn)了開(kāi)鎖,修改用戶密碼,錯(cuò)
18、誤報(bào)警等功能,具有一定的應(yīng)用推廣價(jià)值。</p><p> 密碼鎖上電后,屏幕上會(huì)顯示“P.”,通過(guò)鍵盤(pán)可以輸入六位密碼,保密顯示“口”形;密碼輸完后,密碼正確則自動(dòng)開(kāi)鎖,出現(xiàn)上“口”形,并可以任意輸入1-7在數(shù)碼管顯示,若錯(cuò)誤數(shù)碼管會(huì)出現(xiàn)“ERROR”和蜂鳴器與LED燈間歇性鳴叫、閃爍報(bào)警,按復(fù)位鍵返回重輸。密碼正確后按下第八個(gè)鍵出現(xiàn)六“_”,“口”形顯示保密輸入六位新密碼,完成后按第八個(gè)鍵確認(rèn)后又可回到輸密碼
19、狀態(tài)“P.”;在修改密碼后,如果出現(xiàn)密碼輸入錯(cuò)誤,也會(huì)出現(xiàn)“ERROR”字樣和蜂鳴器與LED的報(bào)警,但可按任意鍵返回到輸密碼狀態(tài)重新輸入密碼狀態(tài);現(xiàn)在可以擺脫復(fù)位鍵,可重復(fù)修改密碼。</p><p> 4.2 密碼鎖設(shè)計(jì)的缺陷分析</p><p> 本設(shè)計(jì)的密碼鎖不能進(jìn)行掉電保護(hù),即用戶修改密碼后不能進(jìn)行密碼保存,掉電后密碼就變?yōu)樵济艽a,在實(shí)際應(yīng)用中還須進(jìn)行改進(jìn),例如在硬件電路中加入
20、存儲(chǔ)芯片24C02。由于硬件電路的限制,按鍵過(guò)少,使有些功能缺失或復(fù)雜,在實(shí)際應(yīng)用中可采用行列式鍵盤(pán)。</p><p> 4.3 密碼鎖的仿真結(jié)果 </p><p> 為了能讓本次課程設(shè)計(jì)的準(zhǔn)確性特用Protues仿真軟件做了仿真如圖7:</p><p> 圖7 仿真圖P點(diǎn)的顯示</p><p><b> 4.4 心得體會(huì)
21、</b></p><p> 本次單片機(jī)課程設(shè)計(jì)安排在臨近期末。由于期末復(fù)習(xí)緊張,要在短時(shí)間內(nèi)完成程序設(shè)計(jì)到硬件調(diào)試,我遇到很大的困難。首先在程序設(shè)計(jì)上,基于強(qiáng)大的網(wǎng)絡(luò)資源和圖書(shū)資源我很快的確定了設(shè)計(jì)方案和總體設(shè)計(jì)思路——構(gòu)建一個(gè)由數(shù)碼管和獨(dú)立按鍵以單片機(jī)為核心的電子密碼鎖。但是,從軟件設(shè)計(jì)完成到實(shí)現(xiàn)仿真卻并不簡(jiǎn)單。好在,前期在做單片機(jī)實(shí)驗(yàn)上積累了一定的程序設(shè)計(jì)和分析功底,經(jīng)過(guò)反復(fù)調(diào)試和修改,到底還是
22、實(shí)現(xiàn)了當(dāng)初預(yù)定的功能。 </p><p> 通過(guò)這次實(shí)踐課程,我不光學(xué)到了很多關(guān)于單片機(jī)應(yīng)用的知識(shí),同時(shí)也增長(zhǎng)見(jiàn)識(shí)、開(kāi)擴(kuò)了專業(yè)方面的視野。另外,我感覺(jué)課程設(shè)計(jì)與實(shí)驗(yàn)課這樣的實(shí)踐課程對(duì)理論知識(shí)的鞏固,動(dòng)手能力的增強(qiáng),綜合素質(zhì)的提高有著理論課堂學(xué)習(xí)無(wú)法比擬的效果,是大學(xué),尤其是應(yīng)用型工科學(xué)院必不可少的學(xué)習(xí)單元。</p><p><b> 4.5 教學(xué)建議</b><
23、;/p><p> 經(jīng)過(guò)為期半年的單片機(jī)學(xué)習(xí),我們?cè)谕趵蠋煹闹笇?dǎo)下對(duì)單片機(jī)有了較系統(tǒng)的認(rèn)識(shí),有了一定了程序設(shè)計(jì)能力,掌握各個(gè)應(yīng)用軟件的使用。但是,我也有個(gè)人的感受:王老師在理論課上教學(xué)認(rèn)真細(xì)致,實(shí)踐課時(shí)習(xí)慣讓同學(xué)們自我摸索,也許希望這樣鍛煉同學(xué)們獨(dú)立解決問(wèn)題的能力。但是,我們更希望在實(shí)踐課時(shí)有更多機(jī)會(huì)得到老師的點(diǎn)撥和指導(dǎo),這樣會(huì)令我們的學(xué)習(xí)效率更高,積極性更高。那樣,我相信我們的學(xué)習(xí)成績(jī)將會(huì)更進(jìn)一步,老師的教學(xué)效果將
24、更突出。</p><p><b> 結(jié)束語(yǔ)</b></p><p> 作為本學(xué)期的單片機(jī)課程設(shè)計(jì),由單片機(jī)為控制核心的密碼鎖從設(shè)計(jì)方案確定到原理圖設(shè)計(jì),到程序設(shè)計(jì)及軟硬件結(jié)合調(diào)試,整個(gè)過(guò)程有苦有甜,但我收獲了頗多,學(xué)到了許多課本上沒(méi)有的東西,增強(qiáng)了自己的動(dòng)手能力,還培養(yǎng)了自己查閱資料,自學(xué)的技能,總之,是獲益匪淺的。尤其在資料查閱和程序設(shè)計(jì)和調(diào)試上能力提高效果明顯
25、。</p><p> 此次設(shè)計(jì)的密碼鎖雖然實(shí)現(xiàn)了其基本功能,但還有很多要改進(jìn)的地方,比如掉電保護(hù)的實(shí)現(xiàn),必須在原有的電路上增加模塊(比如24C52芯片),但由于時(shí)間緊湊,資源有限未能完成。在以后的學(xué)習(xí)中,我還應(yīng)該繼續(xù)努力去完善。</p><p> 此次課程設(shè)計(jì)雖然接近尾聲,但我對(duì)單片機(jī)的學(xué)習(xí)和研究將永遠(yuǎn)不會(huì)停止,我必將努力自我探索,不斷自主學(xué)習(xí),孜孜以求。</p><
26、;p><b> 致謝</b></p><p> 期末考試結(jié)束了,我的單片機(jī)課程設(shè)計(jì)也要完成了。能夠順利完成密碼鎖的設(shè)計(jì),當(dāng)然要感謝**老師悉心教授單片機(jī)的理論知識(shí)以及在實(shí)驗(yàn)課程上的嚴(yán)格要求。*老師在課程設(shè)計(jì)前期的單片機(jī)技術(shù)課的教授上認(rèn)真細(xì)致,使我們夯實(shí)了理論知識(shí)基礎(chǔ);在單片機(jī)實(shí)驗(yàn)課上,王老師嚴(yán)格要求,使我們強(qiáng)化了實(shí)踐動(dòng)手能力、能夠熟練的運(yùn)用各種應(yīng)用軟件。并且,在我們遇到技術(shù)難題和設(shè)
27、計(jì)瓶頸的時(shí)候適當(dāng)?shù)膯l(fā)了我們。另外,在程序設(shè)計(jì)和硬件調(diào)試上,我很大程度上獲得了班上同學(xué)的幫助,尤其是上期暑假參加過(guò)單片機(jī)培訓(xùn)的三位同學(xué)使我順利完成了程序的后期完善。在設(shè)計(jì)結(jié)束之際,祝老師新年快樂(lè),工作順利,桃李滿天下,祝同學(xué)們期末考試順利,學(xué)有所成。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 李廣第,朱月秀,冷祖祁.單片機(jī)基礎(chǔ)[M].北
28、京:北京航空航天大學(xué)出版社,2007.6</p><p> LiGuang first, ZhuYueXiu, LengZuQi. Single chip microcomputer based [M]. Beijing: Beijing university of aeronautics &astronautics press, 2007.6</p><p> [2] 康華光
29、.電子技術(shù)基礎(chǔ) 模擬部分(第五版) [M].北京:高等教育出版社,2006</p><p> kang uh guano. Electronic technology foundation simulation part (fifth edition) [M]. Beijing: higher education press, 2006</p><p> [3] 閻石,數(shù)字電子技術(shù)基礎(chǔ)
30、(第五版) [M].北京:高等教育出版社,2006</p><p> YanShi, digital electronic technology foundation (fifth edition) [M]. Beijing: higher education press, 2006</p><p> [4] 邱光源.電路(第五版) [M].北京:高等教育出版社,2006</p&
31、gt;<p> QiuGuangYuan. Circuit (fifth edition) [M]. Beijing: higher education press, 2006</p><p><b> 附 錄</b></p><p><b> 附錄A:電路原理圖</b></p><p> 圖A 密
32、碼鎖電路原理圖</p><p><b> 附錄B: PCB圖</b></p><p> 圖B1 電子密碼鎖PCB圖頂層</p><p> 圖B2 電子密碼鎖PCB圖底層</p><p> 附錄C: 元器件分布圖</p><p> 圖C 電子密碼鎖元器件分布3D效果圖</p>
33、;<p> 附錄D: 元器件清單</p><p> 表D 電子密碼鎖元器件清單</p><p><b> 附錄E: 程序清單</b></p><p><b> 項(xiàng)目名稱:密碼鎖</b></p><p> 項(xiàng)目功能:初始自動(dòng)顯示系統(tǒng)提示符“P.”, 進(jìn)入準(zhǔn)備工作狀態(tài)。具有系統(tǒng)原
34、始密碼888888,用戶可以設(shè)定并存儲(chǔ)用戶密碼,密碼輸入時(shí)應(yīng)處于保密顯示狀態(tài),密碼輸入正確時(shí)應(yīng)顯示密碼輸入正確提示信息,否則,顯示密碼輸入錯(cuò)誤提示信息并報(bào)警。</p><p> 電路描述:采用芯片AT89S52單片機(jī),利用P1口與鍵盤(pán)相連,做輸入口,P0口與顯示器段控相連,輸入段控碼,P2口輸入位控碼,將P3.1口與蜂鳴器和二極管電路相連,產(chǎn)生錯(cuò)誤報(bào)警。</p><p><b>
35、; 編程作者:喻鵬</b></p><p> 完成時(shí)間:2013年1月3日</p><p> 備注: 78H~7FH單元做字形代碼緩沖區(qū),70H~77H單元做數(shù)據(jù)比較緩沖單元,MAIN為原始密碼存放區(qū),61H~66H作為新密碼的存放區(qū),88H~8DH為密碼緩沖區(qū)。</p><p><b> 密碼鎖程序清單:</b>&l
36、t;/p><p> ORG 0000H</p><p> LJMP START</p><p> ORG 0100H</p><p> START : MOV SP, #30H</p><p> MOV R0, #70H </p><p> MOV
37、 6FH, #00H</p><p> MOV R1, #78H </p><p> MOV 20H, #00H </p><p> CLR 21H.1</p><p> MOV A, #00H</p><p> MOV DPTR, #MAIN
38、</p><p> MOV 78H, #0CH </p><p> MOV 79H, #0FFH </p><p> MOV 7AH, #0FFH </p><p> MOV 7BH, #0FFH </p><p> MOV 7CH, #0FFH
39、 </p><p> MOV 7DH, #0FFH </p><p> MOV 7EH, #0FFH </p><p> MOV 7FH, #0FFH </p><p> LOOP: LCALL DISP</p><p> LCALL KEYCL</
40、p><p> JB 20H.0, KEY11</p><p> JB 20H.1, KEY12</p><p> JB 20H.2, KEY13</p><p> JB 20H.3, KEY14</p><p> JB 20H.4, KEY15</p>
41、<p> JB 20H.5, KEY16</p><p> JB 20H.6, KEY17</p><p> JB 20H.7, KEY18</p><p><b> CLR CY</b></p><p><b> DEC R0</b>
42、;</p><p> MOV R4,A </p><p> MOVC A, @A+DPTR;</p><p> SUBB A, @R0;密碼值與輸入值的比較</p><p><b> INC R0</b></p><p> JZ HER
43、E;相等則轉(zhuǎn)移過(guò)去繼續(xù)判斷按鍵</p><p> SETB 21H.1;不等則將21H.1置1</p><p> HERE: MOV A, R4;</p><p> CJNE R1, #7EH,LOOP;</p><p> LJMP BIJIAO</p><p>
44、//**判斷是哪個(gè)按鍵,然后進(jìn)行相應(yīng)操作**//</p><p> KEY11: MOV @R0, #01H</p><p><b> SJMP ZZZ</b></p><p> KEY12: MOV @R0, #02H</p><p><b> SJMP ZZZ</b&g
45、t;</p><p> KEY13: MOV @R0, #03H</p><p><b> SJMP ZZZ</b></p><p> KEY14: MOV @R0, #04H</p><p><b> SJMP ZZZ</b></p><p>
46、; KEY15: MOV @R0, #05H</p><p><b> SJMP ZZZ</b></p><p> KEY16: MOV @R0, #06H</p><p><b> SJMP ZZZ</b></p><p> KEY17: MOV @R0,
47、 #07H</p><p><b> SJMP ZZZ</b></p><p> KEY18: MOV @R0, #08H</p><p> ZZZ: MOV @R1, #0A3H; 送顯示字形,保密輸出顯示“口”形</p><p> INC R0;將R0、R1、A加1<
48、/p><p><b> INC R1</b></p><p><b> INC A</b></p><p> MOV 20H, #00H</p><p> LJMP LOOP;返回再繼續(xù)判斷按鍵</p><p> //*********比較后
49、對(duì)標(biāo)志位進(jìn)行判斷***//</p><p> BIJIAO: JB 21H.1, ERROR ;標(biāo)志位等于1則進(jìn)入錯(cuò)誤提醒設(shè)置</p><p> MOV R1, #7FH ;密碼正確后顯示緩沖段</p><p> MOV 78H, #9DH ;上半'口'</p><p> MOV
50、 79H, #0FFH ;'滅'</p><p> MOV 7AH, #0FFH ;'滅'</p><p> MOV 7BH, #0FFH ;'滅'</p><p> MOV 7CH, #0FFH ;'滅'</p><p&g
51、t; MOV 7DH, #0FFH ;'滅'</p><p> MOV 7EH, #0FFH ;'滅'</p><p> MOV 7FH, #0FFH ;‘滅’</p><p> BOOP1: MOV 20H, #00H</p><p> LCA
52、LL DISP</p><p> LCALL KEYCL</p><p> JB 20H.0, KEY21</p><p> JB 20H.1, KEY22</p><p> JB 20H.2, KEY23</p><p> JB 20H.3, KEY24</p>
53、<p> JB 20H.4, KEY25</p><p> JB 20H.5, KEY26</p><p> JB 20H.6, KEY27</p><p> JB 20H.7, KEY28 ;第八個(gè)鍵按下,直接進(jìn)入密碼修改</p><p> CJNE R1, #77H,BOO
54、P1</p><p> MOV R1, #7FH</p><p> SJMP BOOP1 </p><p> //錯(cuò)誤提示則出現(xiàn)‘ERROR’字樣,并伴有蜂鳴聲和LED燈閃爍//</p><p> ERROR: MOV 79H, #88H ;‘R’</p><p> MOV
55、7AH, #0C0H ;'O'</p><p> MOV 7BH, #88H ;'R'</p><p> MOV 7CH, #88H ;'R'</p><p> MOV 7DH, #86H ;'E'</p><p> MOV
56、 7EH, #0FFH ;'滅'</p><p> MOV 7FH, #0FFH ;‘滅’</p><p> MOV 78H, #0FFH ;‘滅’</p><p> LOOP2: MOV R5,#32H ;顯示函數(shù)的循環(huán)次數(shù)</p><p> CLR P3.1
57、 ;蜂鳴器和P3.1對(duì)應(yīng)的燈隔0.5響滅</p><p> LOOP1: LCALL DISP</p><p> DJNZ R5,LOOP1 ;顯示循環(huán)50次,約為0.4s</p><p> SETB P3.1 ;取反P3.1口</p><p> LCALL DELAY400MS ;調(diào)延時(shí)0.4s<
58、;/p><p> SJMP LOOP2 ;按復(fù)位鍵返回重新輸入</p><p> ;//***密碼輸入正確后,可以任意輸入1~7中的數(shù)字**//</p><p> KEY21: MOV @R1, #0F9H</p><p> DEC R1</p><p> LJMP BOOP1
59、</p><p> KEY22: MOV @R1, #0A4H</p><p> DEC R1</p><p> LJMP BOOP1 </p><p> KEY23: MOV @R1, #0B0H</p><p> DEC R1</p><p&
60、gt; LJMP BOOP1 </p><p> KEY24: MOV @R1, #99H</p><p> DEC R1</p><p> LJMP BOOP1 </p><p> KEY25: MOV @R1, #92H</p><p> DEC
61、 R1</p><p> LJMP BOOP1 </p><p> KEY26: MOV @R1, #82H</p><p> DEC R1</p><p> LJMP BOOP1 </p><p> KEY27: MOV @R1, #0F8H</p
62、><p> DEC R1</p><p> LJMP BOOP1 </p><p> //*****密碼修改*******************//</p><p> KEY28: MOV 78H, #0F7H ;‘_’</p><p> MOV 79H, #0
63、F7H ;'_'</p><p> MOV 7AH, #0F7H ;'_'</p><p> MOV 7BH, #0F7H ;'_'</p><p> MOV 7CH, #0F7H ;'_'</p><p> M
64、OV 7DH, #0F7H ;'_'</p><p> MOV 7EH, #0FFH ;'滅'</p><p> MOV 7FH, #0FFH ;‘滅’</p><p> MOV R0, #61H ;新密碼存放區(qū)</p><p> MOV
65、 R1, #7DH ;顯示代碼緩沖區(qū)</p><p> KOOP1: LCALL DISP</p><p> MOV 20H, #00H</p><p> LCALL KEYCL</p><p> JB 20H.0, KEY31</p><p> JB
66、20H.1, KEY32</p><p> JB 20H.2, KEY33</p><p> JB 20H.3, KEY34</p><p> JB 20H.4, KEY35</p><p> JB 20H.5, KEY36</p><p> JB
67、20H.6, KEY37</p><p> JB 20H.7, KEY38</p><p> CJNE R1, #7EH,KOOP1</p><p> MOV R1, #78H</p><p> SJMP KOOP1</p><p> KEY31: MOV
68、 @R0, #01H</p><p> MOV @R1, #0A3H</p><p> SJMP PANDUAN </p><p> KEY32: MOV @R0, #02H</p><p> MOV @R1, #0A3H</p><p> SJMP
69、 PANDUAN </p><p> KEY33: MOV @R0, #03H</p><p> MOV @R1, #0A3H</p><p> SJMP PANDUAN </p><p> KEY34: MOV @R0, #04H</p><p> MOV
70、 @R1, #0A3H</p><p> SJMP PANDUAN </p><p> KEY35: MOV @R0, #05H</p><p> MOV @R1, #0A3H</p><p> SJMP PANDUAN </p><p> KEY36: M
71、OV @R0, #06H</p><p> MOV @R1, #0A3H</p><p> SJMP PANDUAN </p><p> KEY37: MOV @R0, #06H</p><p> MOV @R1, #0A3H</p><p> PANDU
72、AN:CJNE R1, #77H,THE1</p><p> SJMP KOOP1</p><p> THE1: INC R0</p><p><b> DEC R1</b></p><p> SJMP KOOP1 </p><p> KEY38: CJNE
73、 R1, #77H,THE ;確認(rèn)密碼修改成功(并判斷是否滿足密碼要求) </p><p> SJMP THE2</p><p> THE: LJMP KEY28</p><p> ;//*********新密碼執(zhí)行*************//</p><p> THE2: MOV R0,#6
74、1H ;數(shù)據(jù)比較緩沖段</p><p> MOV R1,#78H ;顯示緩沖段</p><p> MOV 20H,#00H</p><p> CLR 21H.1</p><p> MOV DPTR,#0061H ;利用DPTR做間址尋址寄存器</p><p>
75、MOV 78H,#0CH ;‘P’</p><p> MOV 79H,#0FFH ;'滅'</p><p> MOV 7AH,#0FFH ;'滅'</p><p> MOV 7BH,#0FFH ;'滅'</p><p> MOV
76、 7CH,#0FFH ;'滅'</p><p> MOV 7DH,#0FFH ;'滅'</p><p> MOV 7EH,#0FFH ;'滅'</p><p> MOV 7FH,#0FFH ;‘滅’</p><p> TOOP: LCA
77、LL DISP</p><p> LCALL KEYCL</p><p> CLR CY</p><p> JB 20H.0,KEY41</p><p> JB 20H.1,KEY42</p><p> JB 20H.2,KEY43</p>
78、<p> JB 20H.3,KEY44</p><p> JB 20H.4,KEY45</p><p> JB 20H.5,KEY46</p><p> JB 20H.6,KEY47</p><p> JB 20H.7, KEY48</p><p>
79、; CJNE R1, #7EH,TOOP;</p><p> LJMP BIJIAO1</p><p> //*改密碼后的密碼輸入時(shí)判斷是哪個(gè)按鍵,然后進(jìn)行相應(yīng)操作*//</p><p> KEY41:MOV A, #01H</p><p> SUBB A, @R0</p><p&
80、gt;<b> SJMP KKK</b></p><p> KEY42:MOV A, #02H</p><p> SUBB A, @R0</p><p> SJMP KKK</p><p> KEY43:MOV A, #03H</p><p> SUBB
81、A, @R0</p><p> SJMP KKK</p><p> KEY44:MOV A, #04H</p><p> SUBB A, @R0</p><p><b> SJMP KKK</b></p><p> KEY45:MOV A, #05H<
82、;/p><p> SUBB A, @R0</p><p><b> SJMP KKK</b></p><p> KEY46:MOV A, #06H</p><p> SUBB A, @R0</p><p><b> SJMP KKK</b><
83、/p><p> KEY47:MOV A, #07H</p><p> SUBB A, @R0</p><p> KKK: JZ EY6</p><p> SETB 21H.1</p><p> EY6: MOV @R1, #0A3H;送顯示字形,保密輸出顯示“口”形</p>
84、<p><b> INC R0</b></p><p><b> INC R1</b></p><p> MOV 20H, #00H</p><p> LJMP TOOP;返回再繼續(xù)判斷按鍵</p><p> KEY48:MOV 20
85、H, #00H</p><p> LJMP TOOP;返回再繼續(xù)判斷按鍵</p><p> ;*********新密碼的比較*******************</p><p> BIJIAO1: JB 21H.1,ERROR1 ;標(biāo)志位等于1則進(jìn)入錯(cuò)誤提醒設(shè)置</p><p> LJMP BIJIAO<
86、/p><p> ;錯(cuò)誤提示表現(xiàn)為出現(xiàn)‘ERROR’字樣,并伴有蜂鳴聲和LED燈閃爍</p><p> ERROR1:MOV 79H,#88H ;‘R’</p><p> MOV 7AH,#0C0H ;'O'</p><p> MOV 7BH,#88H ;'R'</p>
87、;<p> MOV 7CH,#88H ;'R'</p><p> MOV 7DH,#86H ;'E'</p><p> MOV 7EH,#0FFH ;'滅'</p><p> MOV 7FH,#0FFH ;‘滅’</p><p>
88、 MOV 78H,#0FFH ;‘滅’</p><p> LOOP3: MOV R5,#32H ;顯示函數(shù)的循環(huán)次數(shù)</p><p> CLR P3.1 ;蜂鳴器和P3.1對(duì)應(yīng)的燈隔0.5響滅</p><p> LOOP4: LCALL DISP</p><p> LCALL KEYCL<
89、;/p><p> MOV R7,20H</p><p> CJNE R7,#00H,XXX ;修改密碼后,進(jìn)入密碼報(bào)錯(cuò)后按任意鍵可以重新輸入</p><p> DJNZ R5,LOOP4 ;顯示循環(huán)50次,約為0.4s</p><p> SETB P3.1 ;取反P3.1口</p><p
90、> LCALL DELAY400MS ;調(diào)延時(shí)0.4s</p><p> LCALL KEYCL</p><p> SJMP LOOP3 ;按復(fù)位鍵返回重新輸入</p><p> XXX: SETB P3.1 ;關(guān)報(bào)警器</p><p> LJMP THE2 ;跳過(guò)去重新輸入&l
91、t;/p><p> ;//***********顯示程序***************//</p><p> DISP: PUSH PSW ; 保護(hù)寄存器里面的數(shù)據(jù)</p><p> PUSH ACC</p><p> PUSH DPH</p><p> PUSH DPL</p
92、><p> MOV PSW,#08H</p><p> MOV A,#00H ; 設(shè)置查表顯示為首個(gè)數(shù)據(jù)</p><p> MOV R1,#78H ; 表首地址</p><p> MOV R3,#0FEH; 位控,首先控制最低位為低電平</p><p> MOV R2,
93、#08H; 循環(huán)顯示的次數(shù)</p><p> DOOP1:MOV P2,R3;先送位控到P2口</p><p> MOV A,@R1 ;查表去字形代碼</p><p> MOV P0,A ;送段控到P0口</p><p> LCALL DELAY1MS ;調(diào)1MS的延時(shí)程序</p><
94、;p> MOV A,R3</p><p><b> RL A</b></p><p> MOV R3,A ;位控位左移一位</p><p> INC R1 ;將A,即查表向后推移一位</p><p> DJNZ R2,DOOP1 ;判斷是否查詢了八個(gè)緩沖字節(jié)<
95、;/p><p> POP DPL ;出棧</p><p> POP DPH</p><p> POP ACC</p><p> POP PSW</p><p> RET ;子程序返回</p><p> ;//***********獨(dú)立式按鍵處理*****
96、*******************//</p><p> KEYCL:PUSH PSW </p><p> PUSH ACC</p><p> LCALL KEYSM;調(diào)鍵掃,返回A的值</p><p> JZ FH;判斷A是否為0,為0則跳FH處返回</p><p> LCAL
97、L DISP;A不等于0,調(diào)去抖顯示(代替延時(shí)程序8MS)程序</p><p> LCALL DISP</p><p> LCALL KEYSM;再調(diào)鍵掃</p><p> JZ FH;再次判斷A</p><p> MOV B,A;A不為0,則確實(shí)有鍵按下</p><p>
98、; KEYSF:LCALL KEYSM;判斷鍵是否釋放,調(diào)鍵掃</p><p> JZ KEY1;A=0則為釋放了,跳KEY1保存鍵值到可位尋址單元</p><p> LCALL DISP;調(diào)延時(shí)</p><p> SJMP KEYSF;跳回判斷鍵釋放</p><p> KEY1: MOV
99、20H,B;保存鍵值</p><p> FH: POP ACC</p><p> POP PSW</p><p><b> RET</b></p><p> ;//***************獨(dú)立式按鍵掃描***********************//</p><
100、p> KEYSM: MOV P1, #0FFH ;給P1口都送高電平</p><p><b> NOP</b></p><p> MOV A, P1 ;再把P1口的電平值送給A</p><p> CPL A ;將A取反</p><p><b>
101、; RET</b></p><p> ;//**************1ms延時(shí)子程序************************//</p><p> DELAY1MS:PUSH PSW</p><p> MOV PSW, #08H</p><p> MOV R7, #01H</p>&
102、lt;p> DL2: MOV R6, #8EH</p><p> DL3: MOV R5, #02H</p><p> DJNZ R5, $</p><p> DJNZ R6, DL3</p><p> DJNZ R7, DL2</p><p><b> POP PSW
103、</b></p><p><b> RET</b></p><p> ;//****************0.4s延時(shí)程序*******************//</p><p> DELAY400MS: ;誤差 0us</p><p><b> PUSH PSW</b>
104、;</p><p> MOV PSW,#08H</p><p> MOV R7,#1DH</p><p> DL1: MOV R6,#46H</p><p> DL0: MOV R5,#61H</p><p><b> DJNZ R5,$</b></p>&
105、lt;p> DJNZ R6,DL0</p><p> DJNZ R7,DL1</p><p><b> POP PSW</b></p><p><b> RET</b></p><p> MAIN:DB 00H,08H,08H,08H,08H,08H,08H</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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)-密碼鎖
- 單片機(jī)課程設(shè)計(jì)--密碼鎖
- 單片機(jī)課程設(shè)計(jì)-密碼鎖
- 單片機(jī)課程設(shè)計(jì)---密碼鎖
- 密碼鎖單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-密碼鎖
- 單片機(jī)課程設(shè)計(jì)--電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)---數(shù)字密碼鎖
- 單片機(jī)課程設(shè)計(jì)--電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)---數(shù)字密碼鎖
- 單片機(jī)課程設(shè)計(jì)-數(shù)字密碼鎖
- 單片機(jī)課程設(shè)計(jì)電子密碼鎖
- 51單片機(jī)課程設(shè)計(jì)---密碼鎖
- 單片機(jī)課程設(shè)計(jì)報(bào)告--電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)--電子密碼鎖報(bào)告
- 單片機(jī)課程設(shè)計(jì)---電子密碼鎖報(bào)告
- 課程設(shè)計(jì)報(bào)告---單片機(jī)實(shí)現(xiàn)密碼鎖
- 單片機(jī)課程設(shè)計(jì)---多功能密碼鎖
- 單片機(jī)課程設(shè)計(jì)--門(mén)禁電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)----電子密碼鎖報(bào)告
評(píng)論
0/150
提交評(píng)論