有关单片机编程的几个小问题
最近学校实习让我们做一个由四个七段数码管显示“1234”的实验。下面是我自己编的程序,想请教一下高手们程序有没有问题。ORG0000HLJMPSTARTORG0100HS...
最近学校实习让我们做一个由四个七段数码管显示“1234”的实验。
下面是我自己编的程序,想请教一下高手们程序有没有问题。
ORG 0000H
LJMP START
ORG 0100H
START:MOV SP,#50H ---这里不懂为什么大多数书上都要这么些,这一句可不可以去掉?
MOV R1,#3
STATE0:MOV A,#00H ----这段程序是让一个发光二极管闪亮三次,每次亮500ms。
MOV P0,A
MOV R2,#50
LCALL DELAY
MOV A,#80H
MOV P0,A
MOV R2,#50
LCALL DELAY
DJNZ R1,STATE0
STATE1:MOV A,#06H
MOV P0,A
MOV A,#0FEH
MOV P2,A
MOV R2,#1
LCALL DELAY
STATE2:MOV A,#5BH
MOV P0,A
MOV A,#0FDH
MOV P2,A
MOV R2,#1
LCALL DELAY
STATE3:MOV A,#4FH
MOV P0,A
MOV A,#0FBH
MOV P2,A
MOV R2,#1
LCALL DELAY
STATE4:MOV A,#66H
MOV P0,A
MOV A,#0F7H
MOV P2,A
MOV R2,#1
LCALL DELAY
LJMP STATE1
DELAY:MOV R7,#20 ----10ms延时程序
D1:MOV R6,#20
D2:MOV R5,#23
NOP
DJNZ R5,$
DJNZ R6,D2
DJNZ R7,D1
DJNZ R2,DELAY
RET
END
我用的单片机是89c51,p2口为片选,P0段选,共阴极数码管四个,P0与数码管之间接了两个7407,结果发现数码管不亮。一直找不到原因。 展开
下面是我自己编的程序,想请教一下高手们程序有没有问题。
ORG 0000H
LJMP START
ORG 0100H
START:MOV SP,#50H ---这里不懂为什么大多数书上都要这么些,这一句可不可以去掉?
MOV R1,#3
STATE0:MOV A,#00H ----这段程序是让一个发光二极管闪亮三次,每次亮500ms。
MOV P0,A
MOV R2,#50
LCALL DELAY
MOV A,#80H
MOV P0,A
MOV R2,#50
LCALL DELAY
DJNZ R1,STATE0
STATE1:MOV A,#06H
MOV P0,A
MOV A,#0FEH
MOV P2,A
MOV R2,#1
LCALL DELAY
STATE2:MOV A,#5BH
MOV P0,A
MOV A,#0FDH
MOV P2,A
MOV R2,#1
LCALL DELAY
STATE3:MOV A,#4FH
MOV P0,A
MOV A,#0FBH
MOV P2,A
MOV R2,#1
LCALL DELAY
STATE4:MOV A,#66H
MOV P0,A
MOV A,#0F7H
MOV P2,A
MOV R2,#1
LCALL DELAY
LJMP STATE1
DELAY:MOV R7,#20 ----10ms延时程序
D1:MOV R6,#20
D2:MOV R5,#23
NOP
DJNZ R5,$
DJNZ R6,D2
DJNZ R7,D1
DJNZ R2,DELAY
RET
END
我用的单片机是89c51,p2口为片选,P0段选,共阴极数码管四个,P0与数码管之间接了两个7407,结果发现数码管不亮。一直找不到原因。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询