标题:
小白求大佬解决LED灯单片机汇编代码 Proteus仿真没有现象
[打印本页]
作者:
wjd08
时间:
2022-5-19 21:06
标题:
小白求大佬解决LED灯单片机汇编代码 Proteus仿真没有现象
如下,用汇编语言编写:
利用单片机AT89S52、7个按键以及3个LED指示灯组成I/O控制实验系统。P0.0-P0.7与8个开关键相连,P1.0~P1.2与3个LED灯相连;利用按键控制LED指示灯亮与灭,完成如下功能:001 010 011 100 101 110 111
1.当P0.1开关键被按下时,P1.0~P1.2灯的状态依次为灭灭亮,即1的二进制状态001;
2.以此类推,当P0.7开关键被按下时,P1.0~P1.2灯的状态依次为亮亮亮,即7的二进制状态111;
代码如下:
ORG 0000H
START:
JNB P0.1,K2
JNB P0.2,K3
JNB P0.3,K4
JNB P0.4,K5
JNB P0.5,K6
JNB P0.6,K7
JNB P0.7,K8
SJMP START
;-------------
K2:
CALL DL10MS
JB P0.1,START
JNB P0.1,$
CLR P1.2
SJMP START
;--------------
K3:
CALL DL10MS
JB P0.2,START
JNB P0.2,$
CLR P1.1
SJMP START
;--------------
K4:
CALL DL10MS
JB P0.3,START
JNB P0.3,$
CLR P1.1
CLR P1.2
SJMP START
;--------------
K5:
CALL DL10MS
JB P0.4,START
JNB P0.4,$
CLR P1.0
SJMP START
;--------------
K6:
CALL DL10MS
JB P0.5,START
JNB P0.5,$
CLR P1.0
CLR P1.2
SJMP START
;--------------
K7:
CALL DL10MS
JB P0.6,START
JNB P0.6,$
CLR P1.0
CLR P1.1
SJMP START
;--------------
K8:
CALL DL10MS
JB P0.6,START
JNB P0.6,$
MOV P1,#0
SJMP START
;---------------
DL10MS:
MOV R6,#10
DJNZ R7,$
DJNZ R7,$
DJNZ R6,$-4
RET
;-------------
END
运行仿真没错误,但写入Proteus仿真却没有现象,求大佬帮忙看下
作者:
LXJG
时间:
2022-5-19 23:11
接口是不是没有定义,电平都调不到
作者:
188610329
时间:
2022-5-20 08:01
不知道你要的现象,是什么, 就k8而言,你p0.7跳过去,之后判断p0.6按键,那么,肯定是无效的。 然后整个代码,没有一个mov p1,#0ffh 的地方,你确定你程序走到最后,还能有变化么? 然后,仿真,真的做不到真的"仿真",那么简单的应用,不说学习版了,就算洞洞板搭一个,也用不了15分钟吧?
作者:
yzwzfyz
时间:
2022-5-20 10:06
K2: ;1、K2按下了来此,灯还未亮
CALL DL10MS ;2、等了10ms,灯还未亮
JB P0.1,START ;3、键抬起就回去,灯还未亮
JNB P0.1,$ ;4、键还按着就在此死等,灯还是未亮
CLR P1.2 ;5、键抬起了,亮灯
SJMP START ;6、回头再来
如果硬件图不错,是下列情况:
按下见4、死等,灯还是未亮
抬起见5、抬起才亮。
也可以这样简化,先将按键转成0-7,直接送P1显示:(按下亮灯,不按不亮)
ST: MOV R0, #8 ;8个键判8次
MOV R1, #0 ;末3位表示按入键值,按下P10=00,按下P17=07,未按下=08H
MOV A, P0 ;取键
LP: RRC A ;移出一位,移8次结束,先低后高
JNC EX ;看看是否按下了,按下就去EX显示了,后面的键不再处理了(无需去抖)。
INC R1 ;未按,R1=预估为下个键值
DJNZ R0, LP ;8个键全判断结束
JMP ST ;无键按下重头再来
;有键按下
XE: MOV A, R1 ;A的末3位=键值
CPL A ;键值送出P1前,需要求反,因为灯是负逻辑,0亮1暗。
OR A, #11111000B ;不是灯的位=1,目的是不影响P1的其它位值
ORL P1, #00000111B ;灭灯(1暗),但不影响P1的其它位
ANL P1, A ;按键值亮灯,但不影响P1的其它位
JMP ST
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1