• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

程序问题出在哪里了,谁帮我看看?(初涉单片机,请详细解释,谢谢~~)

POWER EQU P0.7                ;定义发光管公共电源端  
ORG 0000H  
SJMP MAIN                     ;转向主程序  
ORG 0030H  
MAIN:  CLR POWER               ;打开公共电源  
START:  MOV P2,#11111110B      ;第一个LED点亮  
ACALL DELAY                   ;延时0.5秒  
MOV P2,#11111101B             ;第二个的LED点亮  
ACALL DELAY                   ;延时1秒  
MOV P2,#11111011B             ;第三个的LED点亮  
ACALL DELAY                   ;延时0.5秒  
MOV P2,#11110111B             ;第四个LED点亮  
ACALL DELAY                   ;延时0.5秒  
MOV P2,#11101111B             ;第五个LED点亮  
ACALL DELAY                   ;延时0.5秒  
MOV P2,#11011111B             ;第六个LED点亮  
ACALL DELAY                   ;延时0.5秒  
MOV P2,#10111111B             ;第七个LED点亮  
ACALL DELAY                   ;延时0.5秒  
MOV P2,#01111111B             ;第八个LED点亮  
ACALL DELAY                   ;延时0.5秒  
MOV P2,#11111111B             ;完成第一次循环点亮,全部熄灭  
ACALL DELAY                   ;延时0.5秒  
ACALL DELAY                   ;延时0.5秒  
ACALL DELAY                   ;延时0.5秒  
ACALL DELAY                   ;延时0.5秒  
AJMP START                    ;重新开始循环  
DELAY:  MOV R4,#2              ;延时子程序,11.0592M晶振延时约0.5秒  
D3:  MOV R2 ,#250  
D1:  MOV R3 ,#229  
D2:  DJNZ R3 ,D2  
DJNZ R2 ,D1  
DJNZ R4 ,D3  
RET  
END
全部回复(12)
正序查看
倒序查看
njyd
LV.8
2
2008-12-03 22:42
  没发现问题.
0
回复
2008-12-04 10:54
@njyd
  没发现问题.
我也觉得没有问题,但在KEIL上面编译,总是说有问题啊 ~~~郁闷
0
回复
ojp8427k
LV.4
4
2008-12-05 10:16
@pengchuang0819
我也觉得没有问题,但在KEIL上面编译,总是说有问题啊~~~郁闷
没有看到问题,你可以多试一下,COPY到一个汇编过的程序中,从新汇编一下.
0
回复
2008-12-05 15:14
@ojp8427k
没有看到问题,你可以多试一下,COPY到一个汇编过的程序中,从新汇编一下.
恩,多谢.~~~
0
回复
2008-12-06 10:52
@pengchuang0819
恩,多谢.~~~
个人看法:
    1  就语句而言,没太大问题,恕没十分细看.
    2  主要问题是少了一些初始设置,你随便找个例子比较一下就明白了.
0
回复
2008-12-08 19:32
@晕头转向
个人看法:    1  就语句而言,没太大问题,恕没十分细看.    2  主要问题是少了一些初始设置,你随便找个例子比较一下就明白了.
呵呵.多谢.
0
回复
njyd
LV.8
8
2008-12-08 22:04
@pengchuang0819
我也觉得没有问题,但在KEIL上面编译,总是说有问题啊~~~郁闷
  我把你的原文拷到伟福集成调试软件中,未修改任何地方,编译通过.
  伟福好象用的是ASM51.

  编译软件编译时如果发现错误都会提示,根据提示找错很容易发现,不过有时错误实际发生提示行上面一行.
0
回复
haosan
LV.5
9
2008-12-15 12:46
能不能把你的第四条语句(ORG 0030h)改为ORG 0100H,再用WAVE6000调试下.
0
回复
lqmoon
LV.1
10
2008-12-15 12:57
@haosan
能不能把你的第四条语句(ORG0030h)改为ORG0100H,再用WAVE6000调试下.
**此帖已被管理员删除**
0
回复
2008-12-19 17:42
@lqmoon
**此帖已被管理员删除**
xiexie!~
0
回复
红心j
LV.3
12
2008-12-20 14:30
大方面没问题,注意两个方面的问题:
(1)软件延时程序与要求延时的时间0.5秒相差太大,参考下面程序

DELAY:  MOV R4,#4             ;延时子程序,11.0592M晶振延时约0.5秒  
D3:  MOV R2 ,#250  
D1:  MOV R3 ,#229
D2:  DJNZ R3 ,D2  
DJNZ R2 ,D1  
DJNZ R4 ,D3  
RET

(2)检测硬件电路是否不当,尤其注意的是P0口作为通用IO口时,应考虑是否加外部上拉电阻
0
回复
2008-12-23 11:45
@红心j
大方面没问题,注意两个方面的问题:(1)软件延时程序与要求延时的时间0.5秒相差太大,参考下面程序DELAY:  MOVR4,#4            ;延时子程序,11.0592M晶振延时约0.5秒  D3:  MOVR2,#250  D1:  MOVR3,#229D2:  DJNZR3,D2  DJNZR2,D1  DJNZR4,D3  RET(2)检测硬件电路是否不当,尤其注意的是P0口作为通用IO口时,应考虑是否加外部上拉电阻
不胜感激~~~~~~~~~~
0
回复