匯編語言單片機電子密碼鎖.doc_第1頁
匯編語言單片機電子密碼鎖.doc_第2頁
匯編語言單片機電子密碼鎖.doc_第3頁
匯編語言單片機電子密碼鎖.doc_第4頁
匯編語言單片機電子密碼鎖.doc_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

概述本次基于8051單片機電子密碼鎖的設(shè)計,其主要具有如下功能:(1)設(shè)置6位密碼,密碼通過鍵盤輸入,若密碼正確,則將鎖打開。(2)密碼可以由用戶自己修改設(shè)定(只支持6位密碼),鎖打開后才能改密碼。修改密碼之前必須再次輸入密碼,在輸入新密碼時候需要二次確以防止誤操作。(3)報警、鎖定鍵盤功能。密碼輸入用發(fā)光管顯示,當(dāng)連續(xù)3次輸入錯誤密碼,系統(tǒng)聲光報警。電子密碼鎖的設(shè)計主要由三部分組成:44矩陣鍵盤接口電路、密碼鎖的控制電路、輸出八段顯示電路。另外系統(tǒng)還有LED提示燈等。密碼鎖設(shè)計的關(guān)鍵問題是實現(xiàn)密碼的輸入、清除、更改、開鎖等功能:(1)密碼輸入功能:按下一個數(shù)字鍵,一個“”就顯示在最右邊的數(shù)碼管上,同時將先前輸入的所有“”向左移動一位。(2)密碼清除功能:當(dāng)按下清除鍵時,清除前面輸入的所有值,并清除所有顯示。(3)密碼更改功能:將輸入的值作為新的密碼。(4)開鎖功能:當(dāng)按下開鎖鍵,系統(tǒng)將輸入與密碼進行檢查核對,如果確鎖打開,否則不打開。主要的設(shè)計實施過程:首先,選用8051單片機,以及選購其他電子元器件。第二步,設(shè)計硬件電路。第三步,編寫單片機語言實現(xiàn)功能。第四部,分別進行軟件和硬件的調(diào)試。最后,聯(lián)合軟、硬件調(diào)試整個系統(tǒng),完成本次課程設(shè)計。關(guān)鍵詞:44矩陣鍵盤;8051單片機;密碼鎖;密碼二次確認課題要求本次課程設(shè)計,基于8051單片機電子密碼鎖的設(shè)計,利用4*4小鍵盤作為輸入,LED作為顯示。當(dāng)輸入密碼和設(shè)定的密碼一致時,系統(tǒng)利用繼電器輸出解鎖信號,其主要具有如下功能:(1)設(shè)置6位密碼,密碼通過鍵盤輸入,若密碼正確,則將鎖打開。(2)密碼可以由用戶自己修改設(shè)定(只支持6位密碼),鎖打開后才能改密碼。修改密碼之前必須再次輸入密碼,在輸入新密碼時候需要二次確以防止誤操作。(3)報警、鎖定鍵盤功能。密碼輸入用發(fā)光管顯示,當(dāng)連續(xù)3次輸入錯誤密碼,系統(tǒng)聲光報警。課題分析電路主要包括矩陣鍵盤輸入密碼,外部密碼驗證,單片控制,原理方框圖如下:圖一:電子密碼鎖原理方框圖4.1矩陣鍵盤輸入控制電路設(shè)計方案是非編碼鍵盤,每條行線和列線都對應(yīng)一條I/O口線,鍵位設(shè)在行線和列線的交叉點,當(dāng)一個鍵按下就會有某一條行線與某一條列線接觸,只要確定接觸的是哪兩條線,即哪兩個I/O口線,就可以確定哪一個鍵被觸動。 行線設(shè)計成上拉口線,初始時被置高電位,列線懸空,初始置低。通過不斷讀行線口線,或者中斷方式觸發(fā)鍵位掃描。 當(dāng)發(fā)現(xiàn)有鍵按下,將列線逐一置低,其他列線置高,讀行線口線。當(dāng)某條列線置低時,某條行線也被拉低,則確定這兩條線的交點處的按鈕被按下。 將每個行線和列線的組合值作成列表,每次就可以通過查表確定鍵位,以決定之后要進行的操作。課題方案選擇方案一:使用8051單片機,采用匯編語言編寫程序,該程序語言功能強大,調(diào)試較為方便,具有很強的實用性。方案二:利用數(shù)字邏輯電路,運用電壓比較器,555單穩(wěn)態(tài)電路,計數(shù)器,JK觸發(fā)器,UPS電源等實現(xiàn)對門的電子控制。方案三:使用8051單片機,利用基于單片機的C語言編寫程序,通過Keil C51 uVision2軟件進行仿真模擬。 方案二基于數(shù)字電路,操作繁瑣,會出現(xiàn)較多的器件故障,同時調(diào)試復(fù)雜,難于維護。方案三該邏輯語言較為復(fù)雜,編寫程序時也較為復(fù)雜,還需進行軟件仿真模擬,設(shè)計復(fù)雜。綜上所述,使用方案一,設(shè)計較為簡便,調(diào)試簡單,硬件電路較少,易于維護。程序部分ORG 1000HMOV R4,#08H ;密碼個數(shù)8個 MOV R0,#40H ;密碼暫存區(qū) MOV A,#00H ;初始密碼0,1,2,3,4,5 GO: MOV R0,A INC R0 INC A DJNZ R4,GOSETB P3.0; 確認SETB P3.1 ;鎖開 SETB P3.2 ;錯誤SETB P3.4 ;報警 MOV R0,#20HMOV A,#03HMOV R0,A;8155初始化MOV R0,#79HMOV R7,#06HINIT:MOV R0,#0;顯示緩沖區(qū)清零INC R0DJNZ R7,INITLOP:LCALL DISPLCALL KEYBJB ACC.4,LOP;未按鍵返回MOV R0,#7EHMOV R7,#05H PUSH ASETD:DEC R0MOV A,R0INC R0MOV R0,ADEC R0DJNZ R7,SETDPOP ACCMOV R0,AMOV 7DH,7CHCJNE ,A,#0AH,LOPCLR P3.0ACALL COMP CJNE R3, #03H, LOPCLR P3.4SJMP LOP-KEYB: LCALL BKS;按鍵處理子程序JNZ BLK1LCALL DISPSJMP KEYBBLK1:LCALL DISPLCALL DISPLCALL BKSJNZ BLK2LCALL DISPSJMP KEYBBLK2:MOV R2,#0FEHMOV R4,#0BLK4:MOV R1,#21HMOV A,R2MOVX R1,AMOV R1,#23HMOVX A,R1JB ACC.0,BL1MOV A,#0SJMP BLKPBL1: JB ACC.1,BL2MOV A,#08HSJMP BLKPBL2:JB ACC.2,BL3MOV A,#10HSJMP BLKPBL3:JB ACC.3,BLMOV A,#18HBLKP: ADD A,R4PUSH ACCBLK3:LCALL DISPLCALL BKSJNZ BLK3POP ACCCJNE A,#10H,PPPP:JNC PP1MOV DPTR,#TBLMOVC A,A+DPTRPP1:RETTBL:DB 07H,04H,08H,05H,09H,06H,0AH,0BH,01H,00HDB 02H,0FH,03H,0EH,0CH,0DHBL: INC R4MOV A,R2JNB ACC.7,BKLDRL AMOV R2,ASJMP BLK4BLKD: SJMP KEYBBKS:MOV R1,#21HMOV A,#0MOVX R1,AMOV R1,#23HMOVX A,R1CPL AANL A,#0FHRET-DISP:MOV R0,#79HMOV R3,#20HBTL:MOV A,R3MOV R1,#21HMOVX R1,A;送位選碼到PA口MOV A,R0MOV DPTR,#TAB1MOVC A,A+DPTR ;查表INC R1MOVX R1,A;送顯示碼到PB口LCALL DELAY;延時INC R0MOV A,R3JB ACC.0,HERE;一輪顯示完到HERERR AMOV R3,ASJMP BTL;繼續(xù)本輪顯示HERE: RETTAB1:DB 0C0H,0F9,0A4H,0B0H,99H,92H,82H ;共陽顯示碼DB 0F8H,80H,90HDELAY: MOV R6,#0FFH;延時子程序D1: MOV R5,#0FFHD2: DJNZ R5,D2DJNZ R6,D1 MOV 30H,7EH MOV 31H,7DH MOV 32H,7CHMOV 33H,7BHMOV 34H,7AHMOV 35H,79HRET-COMP: MOV R1,#40H MOV A,R1 CJNE A,30H, MORE INC R1MOV A,R1 CJNE A,31H, MORE INC R1MOV A,R1 CJNE A,32H, MORE INC R1MOV A,R1 CJNE A,33H, MORE INC R1MOV A,R1 CJNE A,34H, MORE SJMP KMORE: INC R3 CLR P3.2 K: RETENDORG 1000HMOV R4,#08H ;密碼個數(shù)8個 MOV R0,#40H ;密碼暫存區(qū) MOV A,#00H ;初始密碼0,1,2,3,4,5 GO: MOV R0,A INC R0 INC A DJNZ R4,GOSETB P3.0; 確認SETB P3.1 ;鎖開 SETB P3.2 ;錯誤SETB P3.4 ;報警 MOV R0,#20HMOV A,#03HMOV R0,A;8155初始化MOV R0,#79HMOV R7,#06HINIT:MOV R0,#0;顯示緩沖區(qū)清零INC R0DJNZ R7,INITLOP:LCALL DISPLCALL KEYBJB ACC.4,LOP;未按鍵返回MOV R0,#7EHMOV R7,#05H PUSH ASETD:DEC R0MOV A,R0INC R0MOV R0,ADEC R0DJNZ R7,SETDPOP ACCMOV R0,AMOV 7DH,7CHCJNE ,A,#0AH,LOPCLR P3.0ACALL COMP CJNE R3, #03H, LOPCLR P3.4SJMP LOP-KEYB: LCALL BKS;按鍵處理子程序JNZ BLK1LCALL DISPSJMP KEYBBLK1:LCALL DISPLCALL DISPLCALL BKSJNZ BLK2LCALL DISPSJMP KEYBBLK2:MOV R2,#0FEHMOV R4,#0BLK4:MOV R1,#21HMOV A,R2MOVX R1,AMOV R1,#23HMOVX A,R1JB ACC.0,BL1MOV A,#0SJMP BLKPBL1: JB ACC.1,BL2MOV A,#08HSJMP BLKPBL2:JB ACC.2,BL3MOV A,#10HSJMP BLKPBL3:JB ACC.3,BLMOV A,#18HBLKP: ADD A,R4PUSH ACCBLK3:LCALL DISPLCALL BKSJNZ BLK3POP ACCCJNE A,#10H,PPPP:JNC PP1MOV DPTR,#TBLMOVC A,A+DPTRPP1:RETTBL:DB 07H,04H,08H,05H,09H,06H,0AH,0BH,01H,00HDB 02H,0FH,03H,0EH,0CH,0DHBL:INC R4MOV A,R2JNB ACC.7,BKLDRL AMOV R2,ASJMP BLK4BLKD: SJMP KEYBBKS:MOV R1,#21HMOV A,#0MOVX R1,AMOV R1,#23HMOVX A,R1CPL AANL A,#0FHRET-DISP:MOV R0,#79HMOV R3,#20HBTL: MOV A,R3MOV R1,#21HMOVX R1,A;送位選碼到PA口MOV A,R0MOV DPTR,#TAB1MOVC A,A+DPTR ;查表INC R1MOVX R1,A;送顯示碼到PB口LCALL DELAY;延時INC R0MOV A,R3JB ACC.0,HERE;一輪顯示完到HERERR AMOV R3,ASJMP BTL;繼續(xù)本輪顯示HERE: RETTAB1:DB 0C0H,0F9,0A4H,0B0H,99H,92H,82H ;共陽顯示碼DB 0F8H,80H,90HDELAY: MOV R6,#0FFH;延時子程序D1: MOV R5,#0FFHD2: DJNZ R5,D2DJNZ R6,D1 MOV 30H,7EH MOV 31H,7DH MOV 32H,7CHMOV 33H,7BHMOV 34H,7AHMOV 35H,79HRET-COMP: MOV R1,#40H MOV A,R1 CJNE A,30H, MORE INC R1MOV A,R1 CJNE A,31H, MORE INC R1MOV A,R1 CJNE A,32H, MORE INC R1MOV A,R1 CJNE A,33H, MORE INC R1MOV A,R1 CJNE A,34H, MORE SJMP KMORE: INC R3 CLR P3.2 K: RET END七、 系統(tǒng)調(diào)試電子密碼鎖主要由矩陣鍵盤,LED數(shù)碼顯示器,提示燈,單片機程序組成。調(diào)試部分主要是數(shù)碼顯示和程序細節(jié)的調(diào)試。數(shù)碼管調(diào)試主要是看其能否完整顯示6位數(shù)字。不可以顯示只能重新?lián)Q過。程序的調(diào)試是比較復(fù)雜的部分,它又可以分為比較部分和鍵盤部分。首先在輸入程序時,應(yīng)該先輸入鍵盤部分,然后單獨運行鍵盤程序看鍵盤輸入時數(shù)碼管能否顯示出與鍵盤輸入的數(shù)字相對應(yīng)的數(shù)字。然后以鍵盤程序為主程序,把比較部分的程序作為子程序輸入。那是由于鍵盤程序中我們所輸入的數(shù)字存在79H7EH顯示緩存中只能在鍵盤程序中被調(diào)用,如果把鍵盤程序作為子程序,那我們在比較部分中要掉用顯示緩存中的數(shù)據(jù)便不可行。比較部分時遇到最大的問題就是把密碼部分與我們輸入的數(shù)據(jù)作比較,而2個數(shù)據(jù)又不能直接比較,因此需要一個中間量,我們?nèi)寄存器作為密碼的存放位置,然而當(dāng)我們輸入MOV A,40H(密碼地址)COMP1: CJNE A,7EH,ONCE時,A中卻不能出現(xiàn)40H單元中的數(shù)據(jù),這樣無論怎么比較都是沒用的,永遠都是錯的。八、總結(jié)與體會以上為實習(xí)期間所設(shè)計的基于8051單片機電子密碼鎖電路,它經(jīng)過多次修改和整理,以是一個比較不錯的設(shè)計,可以滿足人們的基本要求,但因為水平有限,此電路中也存在一定的問題,譬如說電路的密碼不能遺忘,一旦遺忘,就很難打開,這可以通過增加電路解決,但過于復(fù)雜,本次設(shè)計未其中;通過這兩周的設(shè)計,我們獲得巨大收獲:首先,通過學(xué)習(xí)使自己對

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論