有关单片机编程的几个小问题

最近学校实习让我们做一个由四个七段数码管显示“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,结果发现数码管不亮。一直找不到原因。
展开
 我来答
老张讲科技
2009-02-28 · TA获得超过1249个赞
知道小有建树答主
回答量:1782
采纳率:62%
帮助的人:401万
展开全部
START:MOV SP,#50H 这一行错误,此语句只能初始化栈指针,不能做起始行,尽管汇编可以通过,但逻辑错误。
MOV SP,#50H 是设栈指针为50H,复位时:SP=07
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式