标题: 求助,用汇编语言使8个数码管全部显示H,下面代码为什么不行。 [打印本页]

作者: Garvy    时间: 2018-8-10 15:28
标题: 求助,用汇编语言使8个数码管全部显示H,下面代码为什么不行。
ORG 0000H
AJMP MAIN
ORG 0080H
MAIN:
CLR P2.0 ;选中第一个数码管
MOV P0,#76H ;显示H
LCALL DELAY ; 调用延时
MOV P0,#00H ;关显示
SETB P2.0
CLR P2.1 ;选中第二个数码管
MOV P0,#76H ;显示H
LCALL DELAY
MOV P0,#00H
SETB P2.1
CLR P2.2 ;选中第三个数码管
MOV P0,#76H ;显示H
LCALL DELAY
MOV P0,#00H
SETB P2.2
CLR P2.3 ;选中第四个数码管
MOV P0,#76H ;显示H
LCALL DELAY
MOV P0,#00H
SETB P2.3
CLR P2.4 ;选中第五个数码管
MOV P0,#76H ;显示H
LCALL DELAY
MOV P0,#00H
SETB P2.4
CLR P2.5 ;选中第六个数码管
MOV P0,#76H ; 显示H
LCALL DELAY
MOV P0,#00H
SETB P2.5
CLR P2.6 ;选中第七个数码管
MOV P0,#76H ; 显示H
LCALL DELAY
MOV P0,#00H
SETB P2.6
CLR P2.7 ;选中第八个数码管
MOV P0,#76H ; 显示H
LCALL DELAY
SETB P2.7
MOV P0,#00H
AJMP MAIN ;重新开始
DELAY: ;延时子程序
MOV R7,#2
D1: MOV R6,#25
D2: DJNZ R6,D2
DJNZ R7,D1
RET
END


作者: leoyks    时间: 2018-8-10 17:05
25*2   50us??   你这延时是不是有点短?
作者: Garvy    时间: 2018-8-11 08:44
leoyks 发表于 2018-8-10 17:05
25*2   50us??   你这延时是不是有点短?

实际显示效果只显示4个
作者: jdddd    时间: 2018-8-11 13:13
实际只有4个的话你看看原理图,另外4个是不是接的别的io口
作者: leoyks    时间: 2018-8-11 13:35
Garvy 发表于 2018-8-11 08:44
实际显示效果只显示4个

单步调试一下吧
作者: Garvy    时间: 2018-8-11 16:32
jdddd 发表于 2018-8-11 13:13
实际只有4个的话你看看原理图,另外4个是不是接的别的io口

我这款板子是两个数码管组成的,它现实的是一个显示3个,另一个显示1个
作者: Garvy    时间: 2018-8-11 16:33
leoyks 发表于 2018-8-11 13:35
单步调试一下吧

我试试





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1