资料有电路图 程序 说明操作和完整的设计论文
所有资料51hei提供下载:
基于两个单片机串行通信的电子密码锁资料.rar
(4.41 MB, 下载次数: 33)
单片机作为微型计算机一个很重要的分支,应用广泛,发展迅速,已对很多领域产生了重大影响。单片机不仅在控制外围器件中有着重要的用途,其通信功能在现代控制系统中越来越显得重要。这里所说的通信是指计算机与外界的信息交换。因此,通信既包括计算机与外部设备之间,也包括计算机与计算机之间的信息交换。由于串行通信是在一根传输线上一位一位地传送信息,所以传输线少,特别适合远距离传输。串行通信技术是单片机系统开发中常用的技术之一,相对于并行通信,串行通信硬件代价低,结构简单,传输距离也比并行通行长的多。
电子密码锁的内、外部分的连接通信正可应用单片机之间的串口通信实现。外部单片机可负责外部键盘号码的采集和显示,而内部单片机主要负责密码的设置、显示、判断发送来的外部键盘输入码是否是密码和实现语音播放功能的实现。其系统框图如下:
系统工作过程如下:
加电后,显示“000000”。
在外部键盘输入密码,数码管显示相应数字。
输入过程中,如果不小心出现输入错误,可按“取消”键清除屏幕,取消此次输入,
此时显示“000000”。再次输入需要输入所有6位密码。
在内部数码管显示外部键盘输入密码,并与预设密码比较,发出密码正确与否的提示音,密码正确的话,放光二极管点亮,表明密码锁打开。
管理员可以使用内部键盘察看当前密码、修改密码、同时使用内部键盘也可以打开电子密码锁。也会有相应提示音提示操作。
在内、外单片机部分分别由键盘、数码显示电路。外部用4×3键盘组成0~9数字键以及“确认”、“取消”功能键。用6为7段数码管组成显示电路提示信息,方便用户可以看到显示自己输入的数字。在内部用4×4键盘组成0~9数字键以及“确认”、“取消”、“显示密码”、“设置密码”功能键。用6为7段数码管组成显示键盘密码或内部当前密码。内部单片机控制语音芯片发出相应提示音,此外要想实现此功能,要先用单片机控制好语音芯片将准备好的提示音录入语音芯片中。
单片机源程序如下(汇编语言):
- ORG 0000H
- ajmp main
- org 0030h
-
- main: MOV SP,#70
- MOV SCON,#50H
- MOV TMOD,#20H
- MOV TH1,#0F3H
- SETB TR1
- MOV R7,#00H ;延时
- DJNZ R7,$
- MOV R7,#10H ;内定密码在TABLE的起始地址
- MOV R6,#06 ;内定6个密码
- MOV R1,#35H ;6个密码分别存入35H~30H地址
- L1: MOV A,R7 ;内定密码取码指针
- MOV DPTR,#TABLE ;数据指针指到TABLE
- MOVC A,@A+DPTR ;至TABLE取码
- MOV @R1,A ;存入35H~30H地址
- DEC R1 ;存下一个地址
- 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数据值加上74138扫描值
- ADD A,#40H ;显示D5
- MOV P0,A
- CALL DELAY
- DEC R0
- MOV A,@R0 ;D4数据值加上74138扫描值
- ADD A,#30H ;显示D4
- MOV P0,A ;扫描延时
- CALL DELAY
- DEC R0
- MOV A,@R0 ;D3数据值加上74138扫描值
- ADD A,#20H ;显示D3
- MOV P0,A ;扫描延时
- CALL DELAY
- DEC R0
- MOV A,@R0 ;D2数据值加上74138扫描值
- ADD A,#10H ;显示D2
- MOV P0,A ;扫描延时
- CALL DELAY
- DEC R0
- MOV A,@R0 ;D1数据值加上74138扫描值
- ADD A,#00H ;显示D1
- MOV P0,A ;扫描延时
- 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
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
|