單片機(jī)課程設(shè)計(jì)--電子密碼鎖_第1頁
已閱讀1頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論