- 1
- 0
- 约1.38万字
- 约 12页
- 2016-12-10 发布于贵州
- 举报
《单片机课程设计报告2》
一、设计内容:数字密码锁
二、设计要求:
(一)基本要求
1、利用889C51作为控制器组成一数字型码锁。
2、开锁动作用LED管模拟。
3、开锁代码由小健盘输入,且同时有4位LED显示器上显出来,当你输入的四位数字与原存的密码完全相同时,则将锁打开。
4、密码可由小键盘输入进行改写。
5、修改密码,必须在30秒内完成,否则将发出报警号。
6、锁门与否,可由一开关控制,每次按Enter键时,89C51根据此开关的状态决定锁住或打开。
(二)扩展功能
1、键盘增加退格键、清除键和复位键。
2、三次输入密码不正确,系统将锁定,输入代码将无效。按复位键后,将解除锁定。
三、设计所需硬件及结构图:
硬件:AT69C52,8255A,MAX232,2803,按钮键盘,电容,排阻若干
硬件结构图:
四、程序流程图
五、软件软程序代码
PA EQU 7CFFH;A口地址
PB EQU 7DFFH;B口地址
CTR EQU 7FFFH;控制字地址
YR1 EQU 30H;密码存储单元
YR2 EQU 31H;
YR3 EQU 32H
YR4 EQU 33H
NEW1 EQU 45H;用户输入密码存储单元
NEW2 EQU 46H
NEW3 EQU 47H
NEW4 EQU 48H
LOCK_TIMES EQU 35H
ORG 0000H
JMP START_00
ORG 0100H;
START_00:
MOV YR1,#1H;初始密码为1234
MOV YR2,#2H
MOV YR3,#3H
CLR 02H
MOV YR4,#4H;修改
MAIN:
MOV IE,#86H;开定时器0和外部中断1的中断
SETB IT1
LCALL KEY
JB 02H,START;已经开始计时就不要再开始了
MOV 50H,#08H;若是12mhz来算则R7应为0FFH,R3应为0F4H
MOV 51H,#06H
MOV TMOD,#01H;定时器定时工作方式1
MOV TH0,#15H
MOV TL0,#0AH
SETB 02H;开始计时标志置1
SJMP START
START:
MOV DPTR,#CTR
MOV A,#80H
MOVX @DPTR,A
CLR PSW.1 ;PSW.1是是否进入重设密码功能的标志位,为0则没进入;反之则进入。By default,PSW.1=0
CLR F0 ;F0为重设密码时,输入原始密码正确与否标志:F0=0,wrong;F0=1,correct. Default=0
MOV B,#1H ;最初数码管不显示,B=当前要显示的数码管位数-1
MOV LOCK_TIMES,#0H;错误,移至START_00处
SETB P3.0 ;By default ,LED=off
SETB P3.1
MOV NEW1,#00H;清除用户上次输入密码
MOV NEW2,#00H
MOV NEW3,#00H
MOV NEW4,#00H
SCAN:LCALL DISP
MOV P1,#0FFH
MOV R0,#0F7H
MOV R1,#00H ;存储按键号
LP1: MOV A,R0 ;扫描行
MOV P1,A
NOP ;延时读取键盘状态
MOV A,P1
MOV R2,A ;存储键盘扫描状态,为判断抖动做准备
SETB C ;为左移作准备
MOV R3,#04H ;判断四列是否扫描结束
LP2:RLC A ;将A左移,检测该列中是否0所在位置
JNC KEY ;找到零,转去进行延时消抖
LP3:INC R1 ;扫描下一列
DJNZ R3,LP2
MOV A,R0
SETB C
RRC A
MOV R0,A
JC LP1 ;CY=1,行扫
原创力文档

文档评论(0)