版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 機(jī) 電 工 程 系</b></p><p> 課 程 設(shè) 計(jì) 報(bào) 告</p><p><b> 電子密碼鎖</b></p><p> 班 級(jí): </p><p> 學(xué) 號(hào): </p><p> 姓 名:
2、 </p><p> 指導(dǎo)老師: </p><p> 答辯日期:___ </p><p><b> 設(shè)計(jì)目的</b></p><p><b> 1.1 引言</b></p><p> 隨著人們的生活水平的提高,如何實(shí)現(xiàn)防盜、安全
3、這一問題也變的尤其的突出,傳統(tǒng)的機(jī)械鎖由于構(gòu)造的簡單,被撬的事件屢見不鮮,電子鎖由于保密性高,使用靈活性好,安全系數(shù)高。受到廣大用戶的親昵。</p><p> 1.2 電子密碼鎖的動(dòng)機(jī)和理由</p><p> 密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機(jī)械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價(jià)比較高的產(chǎn)品?,F(xiàn)在應(yīng)用較廣
4、的數(shù)字密碼鎖是以芯片為核心,通過編程來實(shí)現(xiàn)。密碼可變,用戶可以隨時(shí)改密碼,防止密碼被盜,同時(shí)也可以避免因人員的更替而使鎖的密級(jí)下降。</p><p> 本次報(bào)告主要內(nèi)容有:1、緒論。2、對設(shè)計(jì)的原理分析。3、實(shí)現(xiàn)的方案及選擇。4、系統(tǒng)電路圖。5、軟件設(shè)計(jì)。6、結(jié)論。7、設(shè)計(jì)中遇到的問題及解決方法。7、對本設(shè)計(jì)的心得體會(huì)</p><p><b> 對本課程設(shè)計(jì)的分析</b
5、></p><p><b> 2.1系統(tǒng)框圖</b></p><p> 密碼鎖電路主要以單片機(jī)為核心,8位數(shù)碼管顯示密碼或者提示輸入的密碼位數(shù),還有時(shí)間的顯示,它們分別接在單片機(jī)的p0和p1口,矩陣式按鍵掃描接在單片機(jī)的p3端口,按鍵有16個(gè),其主要的功能是0.1.2.3.4.5.6.7.8.9.關(guān)門.開門.輸入密碼.修改密碼.取消.確定。LED的提示電路
6、主要由8個(gè)LED組成,它們的提示內(nèi)容分別為請輸入密碼(p1.0).密碼正確(p1.1),密碼錯(cuò)誤(p1.2),輸入新密碼(p1.3),確認(rèn)新密碼(p1.4),設(shè)置成功(p1.5),警告(p1.6),開門關(guān)門(p1.7)。</p><p> 2.2 復(fù)位及時(shí)鐘電路</p><p> 復(fù)位電路產(chǎn)生復(fù)位信號(hào)通過復(fù)位引腳RST進(jìn)入片內(nèi)一個(gè)施密特觸發(fā)器再與片內(nèi)復(fù)位電路相連。當(dāng)單片機(jī)運(yùn)行出錯(cuò)或進(jìn)入
7、死循環(huán)時(shí),可使其復(fù)位后重新運(yùn)行。</p><p> AT89S51單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,用于構(gòu)成振蕩器,但要形成時(shí)鐘,還須附加電路,XTAL1引腳為反相放大器各時(shí)鐘發(fā)生電路的輸入端,XTAL2引腳為反相放大器的輸出端。</p><p><b> 2.3報(bào)警電路</b></p><p> 此部分是當(dāng)密碼輸入錯(cuò)誤3次時(shí)要執(zhí)行電路,
8、和超時(shí)次數(shù)超過2次,當(dāng)錯(cuò)誤3次時(shí)警告燈一直亮著,開門燈不亮,其他的燈在閃,亮滅各300ms,亮滅共20次</p><p> ?。ň鏌袅?,關(guān)門燈不亮,其他的閃)</p><p> ?。ň鏌袅粒P(guān)門燈不亮,其他的閃)</p><p><b> 2.4鍵盤掃描電路</b></p><p> 鍵盤采用4*4行列式鍵盤,分
9、為10個(gè)數(shù)字鍵(0~9)和6個(gè)功能鍵。其工作原理為:先令行線P3.7輸出低電平0,P3.4~P3.6全部輸出高電平1,讀列線P3.0~P3.3輸入電平。如讀某列線為低電平0,則可確認(rèn)對應(yīng)于該列線與行線P3.7相交處的鍵被按下,否則P3.7行線無鍵按下。接著令行線P3.6輸出低電平0,其余輸出高電平1,再讀列線P3.0-P3.3輸入電平,判斷其是否有輸出低電平0,有則有按鍵按下,無,則表示無按鍵按下,依次類推直到P3.0。然后將掃描的鍵值
10、存入53H~58H中。</p><p><b> ?。ò存I的仿真圖)</b></p><p><b> 2.5密碼修改電路</b></p><p> 當(dāng)密碼輸入正確,按下修改密碼鍵,進(jìn)入第一次輸入密碼的狀態(tài),輸入新密碼的指示燈亮,當(dāng)輸完第一次新密碼按下確定,系統(tǒng)提示再一次輸入新密碼,確認(rèn)新密碼的燈亮。兩次輸入的新密碼比
11、較沒有錯(cuò)誤后,密碼修改成功。</p><p><b> (輸入新密碼)</b></p><p><b> ?。ù_認(rèn)新密碼)</b></p><p><b> ?。ㄔO(shè)置成功)</b></p><p> 主要電路模塊的實(shí)現(xiàn)方案比較及選擇</p><p>
12、 該部分應(yīng)對第2節(jié)中的框圖內(nèi)容的實(shí)現(xiàn)方案進(jìn)行對比和選擇,要求對電路進(jìn)行分析,才能給出結(jié)論。</p><p> 3.1復(fù)位與時(shí)鐘電路的實(shí)現(xiàn)及選擇</p><p> 復(fù)位電路主要有上電自動(dòng)復(fù)位(也稱為“冷啟動(dòng)”)和按鍵手動(dòng)復(fù)位(也稱“熱啟動(dòng)”)兩種。按鍵手動(dòng)復(fù)位,當(dāng)按鍵按下復(fù)位端通過電阻與電源接通,達(dá)到復(fù)位目的。上電自動(dòng)復(fù)位是利用電容充電來實(shí)現(xiàn)的,上電瞬間,RC電路充電,RST引腳端再出
13、現(xiàn)正脈沖,只要RST引腳端保持10MS以上的高電平,就能使單片機(jī)有效的復(fù)位。</p><p> 時(shí)鐘電路分為內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。本次設(shè)計(jì)選擇內(nèi)部時(shí)鐘方式,其主要是通過XTAL1和XTAL2兩端接晶振,再利用芯片內(nèi)部的振蕩電路構(gòu)成的自激振蕩器,其發(fā)出的脈直接送入內(nèi)部時(shí)鐘電路。外部時(shí)鐘方式是利用外部振蕩脈沖接入XTAL1的。本次設(shè)計(jì)選擇按鍵手動(dòng)復(fù)位。</p><p><b>
14、; 系統(tǒng)的軟件設(shè)計(jì)</b></p><p><b> 4.1主要功能</b></p><p> 密碼顯示。2、鍵盤掃描。3、報(bào)警。4、開鎖。5,修改密碼。6,HELLO顯示。</p><p><b> 4.2主要單元分配</b></p><p><b> 系統(tǒng)的軟件設(shè)
15、計(jì)</b></p><p> 經(jīng)過努力與堅(jiān)持,多次的仿真、實(shí)驗(yàn)、終于完成設(shè)計(jì),達(dá)到了預(yù)期要求。各功能鍵的如下:</p><p> 1、把程序下載到實(shí)驗(yàn)板上會(huì)顯示“HELLO”,若要把門打開,需要輸入密碼按鍵,密碼正確門方可打開并顯示“P”;否則顯示“E”。若密碼輸入錯(cuò)誤三次會(huì)延時(shí)報(bào)警(用LED來代替報(bào)警)</p><p> 2、欲更改密碼時(shí),需要先
16、輸入正確密碼在點(diǎn)擊修改密碼</p><p> 3、當(dāng)密碼輸入錯(cuò)誤的時(shí)候可以按退格鍵</p><p> 確定按鍵、關(guān)門按鍵和開門按鍵</p><p> 5.1遇到的主要問題以及解決辦法</p><p> 在程序的調(diào)試過程中,protues仿真圖中用的是共陽七段數(shù)碼管,因此使用高電平掃描,可是在系統(tǒng)板上顯示亂碼,后來經(jīng)過觀察,系統(tǒng)板上加了
17、一個(gè)npn三級(jí)管作為驅(qū)動(dòng),所以要用低電平掃描,為了使仿真圖跟單片機(jī)小系統(tǒng)板同時(shí)都能使用,所以在位碼處加了一個(gè)非門。</p><p><b> 5.2心得體會(huì)</b></p><p> 在本次課程設(shè)計(jì)中,我選做的是簡易密碼鎖,由于本次實(shí)驗(yàn)經(jīng)過老師允許可以不用做硬件在自己的系統(tǒng)板上可以實(shí)現(xiàn)其功能的前提下,因此省下了做硬件的時(shí)間。通過本次設(shè)計(jì),了解到要完成一個(gè)這么龐大的
18、程序,必須有計(jì)劃的,分模塊寫程序,最后把各個(gè)模塊結(jié)合在一起經(jīng)過調(diào)試,完成一個(gè)完整的程序。</p><p> 在本次課程設(shè)計(jì)中讓我體會(huì)深刻,也讓我學(xué)到了查閱資料這門課程的學(xué)問,讓我更深一步的了解單片機(jī)的工作原理,與其編程方法,還有就是仿真與實(shí)際硬件的差別,在老師的指導(dǎo)與分析以及同學(xué)的幫助下,才順利完成了本次設(shè)計(jì)。通過本次設(shè)計(jì)反映出我的許多不足之處,讓我學(xué)到很多,感觸多多。</p><p>
19、<b> 程序代碼</b></p><p><b> ORG00H</b></p><p> JMPSTART</p><p> ;===============中斷入口地址============</p><p><b> ORG00BH</b></p
20、><p> MOVTL0,#0B0H</p><p> MOVTH0,#3CH</p><p><b> JMPSUB1</b></p><p><b> ORG01BH</b></p><p> MOVTL1,#0B0H</p><p&
21、gt; MOVTH1,#3CH</p><p><b> JMPSUB3</b></p><p><b> ORG30H</b></p><p> START:MOVP1,#0FFH</p><p> MOV6FH,#0 ;密碼延時(shí)警告次數(shù)清0</
22、p><p> MAIN:CALLHELLO</p><p> MOVP3,#0FH</p><p><b> MOVA,P3</b></p><p> CJNEA,#0FH,MEN</p><p><b> JMPMAIN</b></p>&
23、lt;p> MEN:CALLCLRMEN</p><p> XS:CALLDISPLAY</p><p> CALLKEYON</p><p><b> MOVA,6BH</b></p><p> CJNEA,#1,BAOJ ;判斷報(bào)警信號(hào)</p><p>
24、; SD2:MOVA,R3 ;LED閃</p><p><b> CPLA</b></p><p> MOVB,#80H</p><p><b> ORLA,B</b></p><p> MOVB,#0BFH</p><p><b>
25、 ANLA,B</b></p><p><b> MOVP1,A</b></p><p> MOVR3,A ;LED閃</p><p> SD1:MOVP2,#0</p><p> MOVP0,#0BFH</p><p> CALLYS_1S ;延時(shí)
26、1ms</p><p> CALLYS_1S ;延時(shí)1ms</p><p> DJNZ6CH,SD1 ;延時(shí)300ms</p><p> MOV6CH,#150</p><p> DJNZ6DH,SD2</p><p> MOV6DH,#50 ;亮滅20次</p>&
27、lt;p> MOV6BH,#0 ;報(bào)警停止</p><p> JMPSTART</p><p> BAOJ:MOVA,65H</p><p> CJNEA,#0,BAOJ1 ;時(shí)間20s倒計(jì)時(shí)</p><p> MOVP1,#0BFH</p><p><b> INC
28、6FH</b></p><p> MOVA,6FH ;時(shí)間超時(shí)累計(jì)信號(hào)</p><p> CJNEA,#2,MAIN ;警告2次報(bào)警</p><p> MOV6FH,#0</p><p> JMPSD1 ;跳到報(bào)警信號(hào)</p><p> BAOJ1:MOVA,67
29、H</p><p> CJNEA,#1,XS ;比較35秒是不是變?yōu)?,(判斷35內(nèi)有沒有按鍵按下)</p><p> JMPSTART</p><p> ;===================按鍵====================</p><p> KEYON:MOVP3,#0FH</p>&l
30、t;p><b> MOVA,P3</b></p><p> CJNEA,#0FH,KY</p><p><b> JMPOVER</b></p><p> KY:CALLQUDOU</p><p><b> MOVA,P3</b></p&g
31、t;<p> CJNEA,#0FH,KY1</p><p><b> JMPOVER</b></p><p> KY1:;SETBRS0 ;設(shè)置cpu工作寄存器為第1組</p><p> MOVP3,#0F0H</p><p><b> MOVA,P3</
32、b></p><p> ANLA,#0F0H</p><p><b> MOVB,A</b></p><p> MOVP3,#0FH</p><p><b> MOVA,P3</b></p><p> ANLA,#0FH</p><
33、;p><b> ORLA,B</b></p><p><b> MOVB,A</b></p><p> MOVR0,#00H</p><p> MOVDPTR,#TAB</p><p> LOP:MOVA,R0</p><p> MOVCA,@
34、A+DPTR</p><p> CJNEA,B,NEXT2</p><p><b> JMPRR0</b></p><p> NEXT2:INCR0</p><p> CJNER0,#10H,LOP</p><p><b> JMPOVER</b>
35、</p><p> RR0:MOVA,R0</p><p> CJNEA,#12,KEY1 ;輸入密碼</p><p><b> MOVA,4CH</b></p><p> CJNEA,#0,E1 ;判斷按鍵是不是已經(jīng)被按過</p><p><b&g
36、t; MOVA,38H</b></p><p> CJNEA,#0,E1 ;判斷門是否已關(guān)</p><p> MOV67H,#35</p><p> MOVP1,#0FEH ;輸入密碼的燈亮</p><p> MOV64H,#20 ;定時(shí)器20秒倒計(jì)時(shí)</p><p>
37、 MOV65H,#20 ;定時(shí)器20秒倒計(jì)時(shí)</p><p> MOV59H,#2 ;顯示開兩個(gè)</p><p> MOV4CH,#1 ;輸入密碼鍵激活</p><p> SETBTR0 ;開定時(shí)器</p><p> E1:JMPKEYOFF</p><p> KEY1
38、: CJNEA,#13,KEY2 ;修改密碼</p><p> MOV67H,#35 ;有按鍵按下還原35秒</p><p><b> MOVA,4FH</b></p><p> CJNEA,#1,XA ;判斷修改密碼是不是已經(jīng)被激活(密碼是否正確)</p><p><
39、;b> MOVA,4EH</b></p><p> CJNEA,#0,XA ;判斷按鍵是不是已經(jīng)被按過</p><p> MOV39H,#0 ;按下修改密碼,鎖定開門鍵</p><p> MOV4EH,#1 ;修改密碼鍵激活</p><p> MOV64H,#20 ;定時(shí)器20秒倒
40、計(jì)時(shí)</p><p> MOV65H,#40 ;定時(shí)器40秒倒計(jì)時(shí)</p><p> MOV59H,#2 ;顯示開兩個(gè)</p><p> MOV4BH,#1</p><p> CALLCLRMM</p><p> MOVP1,#0F7H ;修改密碼的燈亮</p>&l
41、t;p><b> SETBTR0</b></p><p> MOV4CH,#1</p><p> XA:JMPKEYOFF</p><p> KEY2:CJNEA,#10,KEY3 ;關(guān)門</p><p><b> MOVA,38H</b></p>
42、<p> CJNEA,#1,XA ;判斷門有沒有開,沒開關(guān)門無效</p><p> MOV39H,#0</p><p> MOVP1,#0FFH</p><p> MOV4FH,#0 ;修改密碼鍵無效</p><p> MOV4CH,#0 ;輸入密碼鍵清0</p><p&g
43、t; MOV38H,#0 ;門已關(guān)按鍵解鎖(輸入密碼鍵有效)</p><p> MOVP0,#88H</p><p> MOVP2,#7FH ;顯示一個(gè)“0”</p><p><b> SETBTR1</b></p><p> MOV67H,#35H</p><p>
44、; JMPKEYOFF</p><p> KEY3:CJNEA,#11,KEY4 ;開門</p><p><b> MOVA,39H</b></p><p> CJNEA,#1,JH ;判斷開門鍵是否被激活</p><p> MOVP1,#7FH</p><p>
45、 MOV4FH,#0 ;修改密碼鍵無效</p><p> MOV4CH,#0 ;不輸入</p><p> MOV39H,#0 ;開門鍵無效</p><p> MOV38H,#1 ;提示門已開(鎖定所有的按鍵)</p><p> MOVP0,#0C8H</p>&
46、lt;p> MOVP2,#7FH ;顯示一個(gè)“∩”</p><p><b> CLRTR1</b></p><p> JH:JMPKEYOFF</p><p> KEY4:CJNEA,#14,KEY5 ;取消</p><p> MOV67H,#35 ;有按
47、鍵按下還原35秒</p><p> J4:MOVA,4CH</p><p> CJNEA,#1,JA ;判斷輸入密碼鍵有沒有激活</p><p> CALLCLRMM</p><p> MOV59H,#2 ;顯示管開兩位</p><p> JA:JMPKEYOFF</p&
48、gt;<p> KE:JMPKEY6</p><p> KEY5:CJNEA,#15,KE ;確定</p><p> MOV67H,#35 ;有按鍵按下還原35秒</p><p> J6:MOVA,4CH</p><p> CJNEA,#1,JA ;判斷輸入密碼鍵有沒
49、有激活</p><p><b> MOVA,4AH</b></p><p> CJNEA,#0,J10 ;判斷有沒有輸入密碼</p><p> JMPKEYOFF</p><p> J10:MOVA,4EH</p><p> CJNEA,#1,OK1 ;判斷修改是
50、不是被激活</p><p> JMPGAIMI</p><p> OK1:CJNEA,#2,J7</p><p> JMPGAIMI2</p><p> J7:CALLMIMA_BJ ;密碼比較</p><p><b> MOVA,4DH</b></p&g
51、t;<p> CJNEA,#1,ON</p><p> MOVP1,#0FDH ;密碼正確</p><p> CALLCLRMM</p><p> MOV59H,#0</p><p> MOVP0,#8CH</p><p> MOVP2,#7FH ;顯示一個(gè)“P”<
52、;/p><p> MOV39H,#1 ;密碼正確開門有效</p><p> MOV4FH,#1 ;密碼正確修改密碼有效</p><p> MOV4CH,#0 ;密碼重新輸入清0(不輸入)</p><p> MOV6AH,#0 ;密碼錯(cuò)誤次數(shù)清0</p><p> MOV6EH,#
53、0 ;密碼延時(shí)清0</p><p><b> CLRTR0</b></p><p> JMPKEYOFF</p><p> ON: MOVP1,#0FBH ;密碼錯(cuò)誤</p><p> MOVP0,#86H</p><p> MOVP2,#7FH ;顯示一
54、個(gè)“E”</p><p> CALLCLRMM</p><p> MOV59H,#0</p><p> MOV4CH,#0 ;密碼重新輸入清0(不輸入)</p><p> MOV6EH,#0 ;密碼延時(shí)清0</p><p><b> CLRTR0</b></
55、p><p> INC6AH ;密碼錯(cuò)誤的次數(shù)</p><p><b> MOVA,6AH</b></p><p> CJNEA,#3,ONO</p><p> MOV6BH,#1 ;報(bào)警信號(hào)</p><p> ONO:JMPKEYOFF</p>&l
56、t;p> GAIMI:CALLCUN_533A ;第一次輸入的密碼暫存到3a到3f</p><p> CALLCLRMM</p><p> MOV4BH,#1</p><p> INC4EH ;激活第二次輸入新密碼</p><p> MOV4FH,#0 ;修改密碼鍵無效</p>&l
57、t;p> MOV59H,#2 ;顯示兩個(gè)數(shù)碼管</p><p> MOVP1,#0EFH ;顯示確認(rèn)新密碼的燈</p><p> JMPKEYOFF</p><p> GAIMI2:CALLMI_BJ ;比較兩次輸入的密碼是否一樣</p><p><b> MOVA,4DH</b&
58、gt;</p><p> CJNEA,#1,LAT ;4DH=1,相同,4DH=0不同</p><p> MOVP1,#0DFH ;提示設(shè)置成功</p><p> CALLCUN_535A ;存入新密碼</p><p> CALLCLRMM</p><p> MOV4EH,#0 ;
59、設(shè)置沒密碼比較模式</p><p> MOV4CH,#0 ;不輸入狀態(tài)</p><p> MOV59H,#0 ;數(shù)碼管全滅</p><p> MOV4BH,#0 ;顯示變?yōu)槊艽a顯示"-"的模式</p><p> MOV4DH,#0 ;密碼比較的結(jié)果清0</p><
60、p> MOVP0,#89H</p><p> MOVP2,#7FH ;顯示一個(gè)“H”</p><p> JMPKEYOFF</p><p> LAT:CALLCLRMM</p><p> MOVP1,#0FBH;提示密碼錯(cuò)誤</p><p> MOV59H,#0
61、 ;數(shù)碼管全滅</p><p> MOV4BH,#0 ;顯示變?yōu)槊艽a顯示"-"的模式</p><p> MOV4DH,#0 ;密碼比較的結(jié)果清0</p><p> MOV4EH,#0 ;設(shè)置沒密碼比較模式</p><p> MOV4CH,#0
62、 ;不輸入狀態(tài)</p><p> MOVP0,#86H</p><p> MOVP2,#7FH ;顯示一個(gè)“E”</p><p> JMPKEYOFF</p><p> KEY6:MOV67H,#35</p><p><b> MOVA,4CH</b><
63、;/p><p> CJNEA,#1,KEYOFF;判斷修改密碼鍵是否激活</p><p> J2:MOVA,4AH</p><p> CJNEA,#6,J1;判斷是否已經(jīng)摁了6位密碼(最多6位)</p><p> JMPKEYOFF</p><p> J1:CALLYIWEI;
64、數(shù)字0~9</p><p> MOV53H,R0</p><p> INC59H;顯示管個(gè)數(shù)加1</p><p> INC4AH ;密碼個(gè)數(shù)加1</p><p> JMPKEYOFF</p><p><b> KEYOFF:</b></p&g
65、t;<p> CALLDISPLAY;判斷按鍵有沒有放開</p><p> MOVP3,#0FH;判斷按鍵有沒有放開</p><p> MOVA,P3;判斷按鍵有沒有放開</p><p> CJNEA,#0FH,KEYOFF</p><p> OVER:;CLRRS0;設(shè)置cpu工作
66、寄存器為第0組</p><p><b> RET</b></p><p> ;==================清0===================</p><p> CLRMM:MOVA,#0</p><p><b> MOV53H,A</b></p><p
67、><b> MOV54H,A</b></p><p><b> MOV55H,A</b></p><p><b> MOV56H,A</b></p><p><b> MOV57H,A</b></p><p><b> M
68、OV58H,A</b></p><p><b> MOV4AH,A</b></p><p><b> RET</b></p><p> ;================密碼修改程序1============</p><p> CUN_533A:</p>&l
69、t;p> MOVR0,#58H</p><p> MOVR1,#3FH</p><p> CUN1:MOVA,@R0</p><p><b> MOV@R1,A</b></p><p><b> DECR0</b></p><p><b>
70、; DECR1</b></p><p> CJNER0,#52H,CUN1</p><p><b> RET</b></p><p> ;================密碼修改程序2============</p><p> CUN_535A:</p><p> M
71、OVR0,#58H</p><p> MOVR1,#5FH</p><p> CUN:MOVA,@R0</p><p><b> MOV@R1,A</b></p><p><b> DECR0</b></p><p><b> DECR1&l
72、t;/b></p><p> CJNER0,#52H,CUN</p><p><b> RET</b></p><p> ;================================================</p><p> TAB:DB0EEH,0EDH,0EBH,0E7H ;0
73、,1,2,3的鍵碼</p><p> DB0DEH,0DDH,0DBH,0D7H ;4,5,6,7的鍵碼</p><p> DB0BEH,0BDH,0BBH,0B7H ;8,9,10,11的鍵碼</p><p> DB07EH,07DH,07BH,077H ;11,12,13,14,15的鍵碼</p><p>
74、 ;==================密碼比較程序1=================</p><p> MI_BJ:MOVR0,#53H</p><p> MOVR1,#3AH</p><p> BJI:MOVA,@R0</p><p><b> CLRC</b></p><
75、;p> SUBBA,@R1</p><p> MOVACC.1,C</p><p> JBCACC.1,OVE2</p><p><b> MOVA,@R1</b></p><p><b> CLRC</b></p><p> SUBBA,@
76、R0</p><p> MOVACC.1,C</p><p> JBCACC.1,OVE2</p><p><b> INCR0</b></p><p><b> INCR1</b></p><p> CJNER0,#59H,BJI</p>
77、;<p> MOV4DH,#1 ;密碼正確</p><p><b> JMPOVE4</b></p><p> OVE2: MOV4DH,#0 ;密碼錯(cuò)誤</p><p><b> OVE4:RET</b></p><p> ;===========
78、=======密碼比較程序2=================</p><p> MIMA_BJ:MOVR0,#53H</p><p> MOVR1,#5AH</p><p> BJ:MOVA,@R0</p><p><b> CLRC</b></p><p> SUBB
79、A,@R1</p><p> MOVACC.1,C</p><p> JBCACC.1,OVER5</p><p><b> MOVA,@R1</b></p><p><b> CLRC</b></p><p> SUBBA,@R0</p>
80、<p> MOVACC.1,C</p><p> JBCACC.1,OVER5</p><p><b> INCR0</b></p><p><b> INCR1</b></p><p> CJNER0,#59H,BJ</p><p>
81、 MOV4DH,#1 ;密碼正確</p><p> JMPOVER4</p><p> OVER5: MOV4DH,#0 ;密碼錯(cuò)誤</p><p> OVER4:RET</p><p> ;===================移 位 程 序==================</p><
82、p> YIWEI:MOV50H,R0</p><p> ;SETBRS1;設(shè)置cpu工作寄存器為第三組</p><p> MOVR0,#57H</p><p> MOVR1,#58H</p><p> Q1:MOVA,@R0</p><p><b> MOV@R1,A
83、</b></p><p><b> DECR0</b></p><p><b> DECR1</b></p><p> CJNER0,#50H,Q1</p><p> ;CLRRS1;設(shè)置cpu工作寄存器為第一組</p><p> MOV
84、R0,50H</p><p><b> RET</b></p><p> ;==================去抖=============================</p><p> QUDOU:MOVA,59H</p><p> CJNEA,#1,B1</p><p>&
85、lt;b> MOVR3,#8</b></p><p> B11:CALLDISPLAY</p><p> DJNZR3,B11</p><p><b> JMPMB</b></p><p> B1:CJNEA,#2,B2</p><p><b&
86、gt; MOVR3,#4</b></p><p> B22:CALLDISPLAY</p><p> DJNZR3,B22</p><p><b> JMPMB</b></p><p> B2:CJNEA,#3,B3</p><p><b>
87、MOVR3,#3</b></p><p> B33:CALLDISPLAY</p><p> DJNZR3,B33</p><p><b> JMPMB</b></p><p> B3:CJNEA,#4,B4</p><p><b> MOVR
88、3,#2</b></p><p> B44:CALLDISPLAY</p><p> DJNZR3,B44</p><p><b> JMPMB</b></p><p> B4:CJNEA,#5,MB</p><p><b> MOVR3,#2&
89、lt;/b></p><p> B55:CALLDISPLAY</p><p> DJNZR3,B55</p><p><b> JMPMB</b></p><p> B5:CJNEA,#6,MB</p><p> CALLDISPLAY</p>
90、<p><b> MB:RET</b></p><p> ;==================顯示程序=========================</p><p><b> DISPLAY:</b></p><p> CALLFENLI</p><p> MOV
91、DPTR,#TABLE</p><p> MOVR7,#0BFH ;數(shù)碼管從第七位開始亮(時(shí)間在最高的兩位)</p><p> MOVR6,59H</p><p><b> MOVA,59H</b></p><p> CJNEA,#0,LA1</p><p> JMPO
92、VER3</p><p> LA1:MOVA,4BH ;判斷修改密碼是否已經(jīng)激活</p><p> CJNEA,#1,LA2</p><p> MOVR1,#51H</p><p><b> JMPLA</b></p><p> LA2:MOVR1,#41H&
93、lt;/p><p> LA:MOVP2,R7</p><p><b> MOVA,@R1</b></p><p> MOVCA,@A+DPTR</p><p><b> MOVP0,A</b></p><p> CALLYS_1S ;= 調(diào)用1ms
94、延時(shí)</p><p><b> INCR1</b></p><p><b> MOVA,R7</b></p><p><b> RLA</b></p><p><b> MOVR7,A</b></p><p>
95、 DJNZR6,LA</p><p> OVER3:RET</p><p> TABLE:DB0C0H,0F9H,0A4H,0B0H</p><p> DB99H,92H,82H,0F8H,80H,90H,0BFH</p><p> ;====================分離秒======================
96、====</p><p> FENLI:MOVDPTR,#TABLE</p><p><b> MOVA,65H</b></p><p><b> MOVB,#10</b></p><p><b> DIVAB</b></p><p>
97、;<b> MOV42H,A</b></p><p><b> MOV52H,A</b></p><p><b> MOVA,B</b></p><p><b> MOV41H,A</b></p><p><b> MOV51
98、H,A</b></p><p><b> RET</b></p><p> ;===================延時(shí)1ms=========================</p><p> YS_1S:MOV61H,#2</p><p> LOP2:MOV62H,#0F9H</p&
99、gt;<p> LOP1:DJNZ62H,LOP1</p><p> DJNZ61H,LOP2</p><p><b> RET</b></p><p> ;=====================初始化======================</p><p><b> CL
100、RMEN:</b></p><p> MOVTL0,0B0H</p><p> MOVTH0,3CH</p><p> MOVTL1,0B0H</p><p> MOVTH1,3CH</p><p> MOVTMOD,#11H</p><p><b>
101、 SETBET0</b></p><p><b> SETBET1</b></p><p><b> SETBEA</b></p><p><b> SETBTR1</b></p><p><b> MOVA,#0</b>&l
102、t;/p><p> MOV32H,#0</p><p> MOV31H,#6</p><p> MOV38H,#0 ;提示門的開關(guān)狀態(tài)</p><p> MOV39H,#0</p><p><b> MOV41H,A</b></p><p><
103、b> MOV42H,A</b></p><p> MOV43H,#10 ;顯示一條“-”</p><p> MOV44H,#10 ;顯示一條“-”</p><p> MOV45H,#10 ;顯示一條“-”</p><p> MOV46H,#10 ;顯示一條“-”</p
104、><p> MOV47H,#10 ;顯示一條“-”</p><p> MOV48H,#10 ;顯示一條“-”</p><p><b> MOV51H,A</b></p><p><b> MOV52H,A</b></p><p><b>
105、 MOV53H,A</b></p><p><b> MOV54H,A</b></p><p><b> MOV55H,A</b></p><p><b> MOV56H,A</b></p><p><b> MOV57H,A</
106、b></p><p><b> MOV58H,A</b></p><p><b> MOV59H,A</b></p><p> MOV5AH,#1 ;初始密碼</p><p> MOV5BH,#1 ;初始密碼</p><p> MOV
107、5CH,#1 ;初始密碼</p><p> MOV5DH,#1 ;初始密碼</p><p> MOV5EH,#1 ;初始密碼</p><p> MOV5FH,#1 ;初始密碼</p><p><b> MOV3AH,A</b></p><p><
108、;b> MOV3BH,A</b></p><p><b> MOV3CH,A</b></p><p><b> MOV3DH,A</b></p><p><b> MOV3EH,A</b></p><p><b> MOV3FH,
109、A</b></p><p><b> MOV4AH,A</b></p><p><b> MOV4BH,A</b></p><p><b> MOV4CH,A</b></p><p><b> MOV4DH,A</b></
110、p><p><b> MOV4EH,A</b></p><p><b> MOV4FH,A</b></p><p><b> MOV6AH,A</b></p><p> MOV6CH,#150</p><p> MOV6DH,#50<
111、;/p><p><b> MOV6EH,A</b></p><p> MOV64H,#20</p><p> MOV65H,#20</p><p> MOV66H,#20</p><p> MOV67H,#35</p><p> MOVP1,#0FFH&
112、lt;/p><p><b> RET</b></p><p> ;==================移動(dòng)hello字樣===================</p><p> HELLO:MOV35H,#0</p><p> MOVR1,35H</p><p> MOVR5,#50
113、</p><p> MOVR4,#14</p><p> LB:MOVDPTR,#TABLE4</p><p> MOVR7,#0FEH</p><p><b> MOVR6,#8</b></p><p> MOVR1,35H</p><p> L
114、M:MOVP2,R7</p><p><b> MOVA,R1</b></p><p> MOVCA,@A+DPTR</p><p><b> MOVP0,A</b></p><p> CALLYS_1S ;= 調(diào)用1ms延時(shí)</p><p>
115、 INCR1 ;=</p><p> MOVA,R7 ;=</p><p> RLA ;=</p><p> MOVR7,A ;=</p><p> DJNZR6,LM</p><p> MOVP3,#0FH ;判斷有沒有按鍵按下</p>
116、<p><b> MOVA,P3</b></p><p> CJNEA,#0FH,MEN1 ;判斷有沒有按鍵按下</p><p> DJNZR5,LB</p><p> MOVR5,#50</p><p><b> MOVA,35H</b></p>
117、<p><b> ADDA,#8</b></p><p><b> MOV35H,A</b></p><p> DJNZR4,LB</p><p> MEN1:JMPCF</p><p> TABLE4:DB0FFH,0FFH,0FFH,0FFH,0FFH,0FF
118、H,0FFH,0FFH</p><p> DB89H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH</p><p> DB86H,89H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH</p><p> DB0C7H,86H,89H,0FFH,0FFH,0FFH,0FFH,0FFH</p><p&g
119、t; DB0C7H,0C7H,86H,89H,0FFH,0FFH,0FFH,0FFH</p><p> DB0C0H,0C7H,0C7H,86H,89H,0FFH,0FFH,0FFH</p><p> DB0FFH,0C0H,0C7H,0C7H,86H,89H,0FFH,0FFH</p><p> DB0FFH,0FFH,0C0H,0C7H,0C7H
120、,86H,89H,0FFH</p><p> DB0FFH,0FFH,0FFH,0C0H,0C7H,0C7H,86H,89H</p><p> DB0FFH,0FFH,0FFH,0FFH,0C0H,0C7H,0C7H,86H</p><p> DB0FFH,0FFH,0FFH,0FFH,0FFH,0C0H,0C7H,0C7H</p><
121、;p> DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0C0H,0C7H</p><p> DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0C0H</p><p> DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH</p><p><b> CF:RET
122、</b></p><p> ;==================T0中斷程序=======================</p><p> SUB1:DJNZ64H,OVER1</p><p> MOV64H,#20</p><p><b> MOVA,65H</b></p>
123、<p> CJNEA,#0,LK</p><p><b> JMPKL</b></p><p> LK:DJNZ65H,OVER1</p><p> JMPOVER1;= 是否增加到60</p><p> KL:MOV65H,#30</p><p&
124、gt; OVER1:RETI</p><p> ;=================T1中斷程序========================</p><p> SUB3:DJNZ66H,OVE1</p><p> MOV66H,#20</p><p> DJNZ67H,OVE1</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)報(bào)告--電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)--電子密碼鎖報(bào)告
- 單片機(jī)課程設(shè)計(jì)---電子密碼鎖報(bào)告
- 單片機(jī)課程設(shè)計(jì)--門禁電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)----電子密碼鎖報(bào)告
- 單片機(jī)-密碼鎖課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-密碼鎖
- 單片機(jī)課程設(shè)計(jì)--密碼鎖
- 單片機(jī)課程設(shè)計(jì)-密碼鎖
- 單片機(jī)課程設(shè)計(jì)---密碼鎖
- 密碼鎖單片機(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ì)----單片機(jī)電子密碼鎖
- 單片機(jī)電子密碼鎖課程設(shè)計(jì)
- 課程設(shè)計(jì)--單片機(jī)電子密碼鎖
評(píng)論
0/150
提交評(píng)論