单片机汇编程序,高手帮忙啊~急

来源:百度知道 编辑:UC知道 时间:2024/06/09 23:29:25
用单片机模拟密码门锁。用户只有输入了正确的密码,才开锁,当三次输入错误以后,则延时一段时间才允许再次输入。要求用定时器中断延时。用某个开关来进行密码输入完成后的确认。我用led1表示输入密码正确,led2表示输入密码错误。P3.1接led1,P3.2接led2.排线将P1与开关连接起来。SW7用来确认,SW1-SW4输入密码。
我的程序:
ORG 8000H
AJMP MAIN
ORG 800BH
AJMP T0S
MAIN: MOV SP,#60H
MOV TMOD,#01H
MOV TH0,#05CH
MOV TL0,#00H
MOV R2,#00H
SETB EA
SETB ET0
MOV R1,#03H
START: SETB P1.7
MOV A,P1
JB ACC.7,CHECK 检测输入完否
LJMP START
CHECK: MOV A,P1 读取输入 ANL A,#0FH 屏蔽高4位
CJNE A,#06H,WRONG 比较是否正确
CPL P3.1 正确亮1灯
LJMP MAIN
WRONG: CRL P3.2 错误亮2灯
DEC R1 记录错误次数
CJNE R1,#0,CHECK1 判断到3次没
SETB TR0 延时
LJMP MAIN
CHECK1: SETB P1.7 判断开关是否复位
MOV A,P1
JNB ACC.7,CHECK2
SJMP CHECK1
CHECK2:

根据读取的键值和密码比较不符合就亮2,吧密码的位数存于寄存器里再比较,独一辞职就比较一次!判断密码的正确与否用比较转移指令。最好加一个清空按键输入有误是清楚错误的数值!
其实就是读键与判断,我写过类似的!我用的是HD7279!