标题: 带有详细注释的单片机汇编语言流水灯程序 [打印本页]

作者: 骑着驴放羊    时间: 2017-12-3 23:52
标题: 带有详细注释的单片机汇编语言流水灯程序
单片机源程序如下(注释非常详细):
  1. ORG       0000H            ;单片机上电后从0000H地址执行
  2. AJMP     START           ;跳转到主程序存放地址处
  3. ORG       0030H            ;设置主程序开始地址
  4. START:MOV      SP,#60H      ;设置堆栈起始地址为60H
  5. CLR        P1.0               ;P1.0输出低电平,使LED1点亮
  6. ACALL DELAY          ;调用延时子程序
  7. SETB  P1.0             ;P1.0输出高电平,使LED1熄灭   
  8. CLR   P1.1             ;P1.1输出低电平,使LED2点亮
  9. ACALL DELAY          ;调用延时子程序
  10. SETB  P1.1             ;P1.1输出高电平,使LED2熄灭     
  11. CLR   P1.2             ;P1.2输出低电平,使LED3点亮
  12. ACALL DELAY          ;调用延时子程序
  13. SETB  P1.2             ;P1.2输出高电平,使LED3熄灭   
  14. CLR   P1.3             ;P1.3输出低电平,使LED4点亮
  15. ACALL DELAY          ;调用延时子程序
  16. SETB  P1.3             ;P1.3输出高电平,使LED4熄灭   
  17. CLR   P1.4             ;P1.4输出低电平,使LED5点亮   
  18. ACALL DELAY          ;调用延时子程序
  19. SETB  P1.4             ;P1.4输出高电平,使LED5熄灭   
  20. CLR   P1.5             ;P1.5输出低电平,使LED6点亮   
  21. ACALL DELAY          ;调用延时子程序
  22. SETB  P1.5             ;P1.5输出高电平,使LED6熄灭   
  23. CLR   P1.6             ;P1.6输出低电平,使LED7点亮     
  24. ACALL DELAY          ;调用延时子程序
  25. SETB  P1.6             ;P1.6输出高电平,使LED7熄灭
  26.     CLR   P1.7             ;P1.7输出低电平,使LED8点亮
  27. ACALL DELAY          ;调用延时子程序
  28.     SETB  P1.7             ;P1.7输出高电平,使LED8熄灭
  29. ACALL DELAY          ;调用延时子程序
  30.   AJMP   START           ;8个LED流了一遍后返回到标号START处再循环
  31. DELAY:                                ;延时子程序
  32. MOV      R0,#255  ;延时一段时间
  33. D1:      MOV      R1,#255
  34. DJNZ      R1,$ DJNZ      R0,D1
  35. RET                             ;子程序返回
  36.     END                            ;程序结束
复制代码








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