[讨论] 一个工作正常的简单汇编程序

fengsheng   2006-12-30 09:36 楼主
我虽意写了一个程序控制LED灯的工作很正常
但是总觉得时面有啥问题,请朋友们帮我分析看是否有问题
.include"tn26def.inc"  

.org 0x00 
    
   rjmp   start 

.org 0x2A 

start: 
    
   ldi      r16,0xff 

   out      ddrb,r16    ;使PORTB为输出 

loop: 
   ldi      r16,0xff 
   out    portb,r16    ;PORTB输出高电平 
   rcall    delay1      ;延时1 
loop1:   
   ldi      r16,0x00 
    
   out      portb,r16   ;PORTB输出低电平 
   rcall   delay2      ;延时2 
    
   
    
delay1: 
    ldi   r20,0x04
del3: 
    ldi   r21,0xff
del2:  
    ldi   r22,0xff
del1: 
      dec    r22
      brne   del1 
      dec    r21 
      brne   del2 
      dec     r20
      brne   del3 
      rjmp  loop1
       
delay2:
      ldi   r20,0x04
del_3:
      ldi   r21,0xff 
del_2: 
      ldi   r22,0xff 
del_1:
      dec    r22
      brne   del_1 
      dec    r21
      brne   del_2 
      dec    r20
      brne   del_3 
   rjmp  loop 
   sei

回复评论 (6)

Re: 一个工作正常的简单汇编程序

这个程序能正常运行吗??? 我有点怀疑哦~~~ 没有见END,RCALL调用的子程序是用什么做返回的???
点赞  2007-1-13 20:47

Re: 一个工作正常的简单汇编程序

无语
呼呼...在校应届大四学生,代做电子类毕业设计(测量类、仪器类、控制类、无线通信类、电子产品类、界面设计类、纯论文类等等,一一俱全)。涉及各种单片机软硬件设计、电路模拟分析、FPGA、CPLD、ARM7/ARM9、LINUX、VB/VC++/QT界面等等。包过。。。欢迎咨询。Tel:13957160506。QQ:273437087
点赞  2007-1-13 21:48

Re: 一个工作正常的简单汇编程序

版主,发表个意见吧。是对还是不对??
点赞  2007-1-13 23:53

Re: 一个工作正常的简单汇编程序

[:$][:$]我也有一个错误,AVR的是不用END做结尾,不过RCALL调用子程序时,子程序还是要用RET做返回的哦~~~
点赞  2007-1-14 08:52

Re: 一个工作正常的简单汇编程序

或者你把那个RCALL改成RJMP也可以,程序到RJMP LOOP就算完了,后面的SEI是打开总中断,你没用到中断,可以不要了。
点赞  2007-1-14 08:55

Re: 一个工作正常的简单汇编程序

解决了没?
呼呼...在校应届大四学生,代做电子类毕业设计(测量类、仪器类、控制类、无线通信类、电子产品类、界面设计类、纯论文类等等,一一俱全)。涉及各种单片机软硬件设计、电路模拟分析、FPGA、CPLD、ARM7/ARM9、LINUX、VB/VC++/QT界面等等。包过。。。欢迎咨询。Tel:13957160506。QQ:273437087
点赞  2007-1-15 18:03
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复