|
資料有電路圖 程序 說明操作和完整的設(shè)計(jì)論文
所有資料51hei提供下載:
基于兩個(gè)單片機(jī)串行通信的電子密碼鎖資料.rar
(4.41 MB, 下載次數(shù): 33)
2018-4-2 09:38 上傳
點(diǎn)擊文件名下載附件
單片機(jī)作為微型計(jì)算機(jī)一個(gè)很重要的分支,應(yīng)用廣泛,發(fā)展迅速,已對(duì)很多領(lǐng)域產(chǎn)生了重大影響。單片機(jī)不僅在控制外圍器件中有著重要的用途,其通信功能在現(xiàn)代控制系統(tǒng)中越來越顯得重要。這里所說的通信是指計(jì)算機(jī)與外界的信息交換。因此,通信既包括計(jì)算機(jī)與外部設(shè)備之間,也包括計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換。由于串行通信是在一根傳輸線上一位一位地傳送信息,所以傳輸線少,特別適合遠(yuǎn)距離傳輸。串行通信技術(shù)是單片機(jī)系統(tǒng)開發(fā)中常用的技術(shù)之一,相對(duì)于并行通信,串行通信硬件代價(jià)低,結(jié)構(gòu)簡(jiǎn)單,傳輸距離也比并行通行長(zhǎng)的多。
電子密碼鎖的內(nèi)、外部分的連接通信正可應(yīng)用單片機(jī)之間的串口通信實(shí)現(xiàn)。外部單片機(jī)可負(fù)責(zé)外部鍵盤號(hào)碼的采集和顯示,而內(nèi)部單片機(jī)主要負(fù)責(zé)密碼的設(shè)置、顯示、判斷發(fā)送來的外部鍵盤輸入碼是否是密碼和實(shí)現(xiàn)語音播放功能的實(shí)現(xiàn)。其系統(tǒng)框圖如下:
系統(tǒng)工作過程如下:
加電后,顯示“000000”。
在外部鍵盤輸入密碼,數(shù)碼管顯示相應(yīng)數(shù)字。
輸入過程中,如果不小心出現(xiàn)輸入錯(cuò)誤,可按“取消”鍵清除屏幕,取消此次輸入,
此時(shí)顯示“000000”。再次輸入需要輸入所有6位密碼。
在內(nèi)部數(shù)碼管顯示外部鍵盤輸入密碼,并與預(yù)設(shè)密碼比較,發(fā)出密碼正確與否的提示音,密碼正確的話,放光二極管點(diǎn)亮,表明密碼鎖打開。
管理員可以使用內(nèi)部鍵盤察看當(dāng)前密碼、修改密碼、同時(shí)使用內(nèi)部鍵盤也可以打開電子密碼鎖。也會(huì)有相應(yīng)提示音提示操作。
在內(nèi)、外單片機(jī)部分分別由鍵盤、數(shù)碼顯示電路。外部用4×3鍵盤組成0~9數(shù)字鍵以及“確認(rèn)”、“取消”功能鍵。用6為7段數(shù)碼管組成顯示電路提示信息,方便用戶可以看到顯示自己輸入的數(shù)字。在內(nèi)部用4×4鍵盤組成0~9數(shù)字鍵以及“確認(rèn)”、“取消”、“顯示密碼”、“設(shè)置密碼”功能鍵。用6為7段數(shù)碼管組成顯示鍵盤密碼或內(nèi)部當(dāng)前密碼。內(nèi)部單片機(jī)控制語音芯片發(fā)出相應(yīng)提示音,此外要想實(shí)現(xiàn)此功能,要先用單片機(jī)控制好語音芯片將準(zhǔn)備好的提示音錄入語音芯片中。
單片機(jī)源程序如下(匯編語言):
- ORG 0000H
- ajmp main
- org 0030h
-
- main: MOV SP,#70
- MOV SCON,#50H
- MOV TMOD,#20H
- MOV TH1,#0F3H
- SETB TR1
- MOV R7,#00H ;延時(shí)
- DJNZ R7,$
- MOV R7,#10H ;內(nèi)定密碼在TABLE的起始地址
- MOV R6,#06 ;內(nèi)定6個(gè)密碼
- MOV R1,#35H ;6個(gè)密碼分別存入35H~30H地址
- L1: MOV A,R7 ;內(nèi)定密碼取碼指針
- MOV DPTR,#TABLE ;數(shù)據(jù)指針指到TABLE
- MOVC A,@A+DPTR ;至TABLE取碼
- MOV @R1,A ;存入35H~30H地址
- DEC R1 ;存下一個(gè)地址
- INC R7 ;取碼指針加1
- DJNZ R6,L1
- START:ORL P3,#0FFH ;清除P2
- SETB P3.2
- MOV R4,#06 ;清除顯示器存放地址40H~45H的地址
- MOV R0,#40H
- CLEAR:MOV @R0,#00H
- INC R0
- DJNZ R4,CLEAR
- L2: MOV R3,#0F7H ;掃描指針初值
- MOV R1,#00H ;鍵盤取碼指針
- L3: MOV A,R3
- MOV P1,A
- MOV A,P1
- MOV R4,A
- SETB C
- MOV R5,#04H
- L4: RLC A
- JNC KEYIN
- INC R1
- DJNZ R5,L4
- CALL DISP
- MOV A,R3
- SETB C
- RRC A
- MOV R3,A
- JC L3
- lcall LLL
- JMP L2
- KEYIN:MOV A,R1
- XRL A,#0EH
- JZ X3
- MOV A,R1
- XRL A,#0FH
- JZ X4
- MOV R7,#10
- D1: MOV R6,#248
- DJNZ R6,$
- DJNZ R7,D1
- D2: MOV A,P1
- XRL A,R4
- JZ D2
- MOV A,R1
- MOV DPTR,#TABLE
- MOV R7,A
- XRL A,#0AH
- JZ SET0
- MOV A,R7
- XRL A,#0BH
- JZ START
- MOV A,R7
- XRL A,#0CH
- JZ L2
- MOV A,R7
- XRL A,#0DH
- JZ L2
- MOV A,R7
- XCH A,40H
- XCH A,41H
- XCH A,42H
- XCH A,43H
- XCH A,44H
- XCH A,45H
- CALL DISP
- JMP L2
- X3: JMP DISP2
- X4: JMP COMP
- DISP: MOV R0,#45H
- DISP1:MOV A,@R0
- ADD A,#50H ;顯示D6
- MOV P0,A
- CALL DELAY
- DEC R0
- MOV A,@R0 ;D5數(shù)據(jù)值加上74138掃描值
- ADD A,#40H ;顯示D5
- MOV P0,A
- CALL DELAY
- DEC R0
- MOV A,@R0 ;D4數(shù)據(jù)值加上74138掃描值
- ADD A,#30H ;顯示D4
- MOV P0,A ;掃描延時(shí)
- CALL DELAY
- DEC R0
- MOV A,@R0 ;D3數(shù)據(jù)值加上74138掃描值
- ADD A,#20H ;顯示D3
- MOV P0,A ;掃描延時(shí)
- CALL DELAY
- DEC R0
- MOV A,@R0 ;D2數(shù)據(jù)值加上74138掃描值
- ADD A,#10H ;顯示D2
- MOV P0,A ;掃描延時(shí)
- CALL DELAY
- DEC R0
- MOV A,@R0 ;D1數(shù)據(jù)值加上74138掃描值
- ADD A,#00H ;顯示D1
- MOV P0,A ;掃描延時(shí)
- CALL DELAY
- RET
- SET0: MOV R2,#06H
- MOV R0,#40H
- MOV R1,#30H
- E1: MOV A,@R0
- XCH A,@R1
- INC R0
- INC R1
- DJNZ R2,E1
- CALL DELAY
- E2: JMP START
- COMP: MOV R1,#45H
- MOV R0,#35H
- MOV R2,#06H
- C1: MOV A,@R1
- XRL A,@R0
- JNZ C3
- DEC R1
- DEC R0
- DJNZ R2,C1
- CLR P3.2
- MOV R2,#0FFH
- C2: MOV R6,#0FFH
- DJNZ R6,$
- DJNZ R2,C2
- C3: JMP START
- DISP2:
- MOV R0,#35H
- CALL DISP1
- MOV A,P1
- XRL A,R4
- JZ DISP2
- CALL DELAY
- JMP START
- DELAY:MOV R7,#03
- D3: MOV R6,#248
- DJNZ R6,$
- DJNZ R7,D3
- RET
- Lll: JBC RI,UART
- call disp
- ret
- UART: MOV A,SBUF
- MOV R7,A
- XRL A,#0AH
- JZ COMPQ
- AJMP COMPA
- COMPQ: LJMP COMP
- COMPA: MOV A,R7
- XRL A,#0BH
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
|
|