设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 1931|回复: 1
收起左侧

C51汇编实现演示32位LED的二进制累加,溢出需要50多天。

[复制链接]
发表于 2018-3-4 09:51:14 | 显示全部楼层 |阅读模式

  1. ;1毫秒加1个,溢出大约需要50天。
  2. ;累加开始值,初始为0。
  3. MOV R0,#00H ;最低位
  4. MOV R1,#00H
  5. MOV R2,#00H
  6. MOV R3,#00H ;最高位
  7. START:
  8. CALL DELAY ;调用延时程序
  9. CLR C ;进位C清0,不接收R3溢出产生的进位
  10. ;--------带进位加--------
  11. MOV A,R0 ;R0寄存器的值送入A寄存器
  12. ADDC A,#01H ;A寄存器加上立即数1,溢出以后就会产生进位加入R1中。
  13. MOV R0,A ;A寄存器的值送回R0寄存器
  14. MOV A,R1 ;R1寄存器的值送入A寄存器
  15. ADDC A,#00H ;A寄存器不加,有进位才加
  16. MOV R1,A ;A寄存器的值送回R1寄存器
  17. MOV A,R2
  18. ADDC A,#00H
  19. MOV R2,A
  20. MOV A,R3
  21. ADDC A,#00H
  22. MOV R3,A
  23. ;--------输出到P0~P3口--------
  24. MOV A,R0 ;R0寄存器的值送入A寄存器
  25. CPL A  ;由于这里的LED是低电平点亮,所以要对A寄存器进行取反
  26. MOV P0,A ;A寄存器的值送入P0口
  27. MOV A,R1
  28. CPL A
  29. MOV P1,A
  30. MOV A,R2
  31. CPL A
  32. MOV P2,A
  33. MOV A,R3
  34. CPL A
  35. MOV P3,A

  36. JMP START ;跳到开始处
  37. DELAY:   ;12Mhz@STC89C52 1毫秒延时
  38. PUSH 30H
  39. PUSH 31H
  40. MOV 30H,#2
  41. MOV 31H,#234
  42. NEXT:
  43. DJNZ 31H,NEXT
  44. DJNZ 30H,NEXT
  45. POP 31H
  46. POP 30H
  47. RET

  48. END
复制代码

发表于 2018-3-4 18:10:23 | 显示全部楼层
每秒加1次总共需要136年。
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-27 04:44 , Processed in 0.771044 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表