单片机动态led显示

来源:百度知道 编辑:UC知道 时间:2024/07/15 12:57:01
我是p1口接数码管各端,p20、p21接的位选端
共阴,想同时显示7和1
程序如下:
loop:mov a,#006h
mov p1,a
clr p2.0
acall d1ms
setb p2.0

mov a,#007h
mov p1,a
clr p2.1
acall d1ms
setb p2.1

ljmp loop
D1MS: MOV R7,#80h
DJNZ R7,$
RET
end

现在的情况是,仿真器一旦选择全速执行,数码管就都显示7,单步执行的话轮流点亮7和1,还算正常,不知道为什么
QTH-8052F仿真器,不用接晶振什么的,内置主频11.0592MHZ
p1口接led的abcdefg,p2.0接数码管第四位的公共端D4。p2.1接数码管第三位的公共端D3,共阴极的,就这些了,谢谢!

刚才有位网游建议我换一下次序,试了,不是很管用,由于D4才显示完,只是用setb把控制线拉高,p1口上还是上一个字的字段,下面程序段先执行的是clr p2.1会在D3上显示D4的字,我又尝试在SETB p2.0后先将p1口清零,加了mov p1,#000h,结果和原来一样。
我用的仿真器是QTH-8052F,软件是配套的QTH系列仿真器2007.1版

我看不出程序有问题

是不是程序和硬件连接不兼容

你能把电路发上来看看????

兄弟你是用什么仿真软件?
这里调整一下试试:
mov p1,a
clr p2.0
换成
clr p2.0
mov p1,a
两个语句调换

你跳转回去显示没有啊
还有就是你没有延时,你要在两个显示之间加段延时程序
那应该就么的问题了