找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4897|回复: 0
打印 上一主题 下一主题
收起左侧

一个简单的交通灯仿真电路图(带汇编程序)

[复制链接]
跳转到指定楼层
楼主





仿真文件下载:http://www.51hei.com/bbs/dpj-50777-1.html

  1. ORG 00H         //从00H地址处开始执行

  2. /*
  3. 提示像START:这种叫程序段
  4. 什么叫程序段呢?

  5. DELAY:
  6. .....内容

  7. RET 返回         
  8.   
  9. */
  10. START:                          
  11. CALL SETB_LED                         //调用SETB_LED程序段
  12. CLR P2.0                                //设置P2.0这个引脚为低电平
  13. CALL DISPLAY_NUMBER        //调用DISPLAY_NUMBER程序段

  14. CALL SETB_LED
  15. CLR P2.2
  16. CALL DISPLAY_NUMBER

  17. CALL SETB_LED
  18. MOV P0, #0FFH                               
  19. CLR P2.1
  20. CALL DELAY
  21. SETB P2.1
  22. CALL DELAY
  23. CLR P2.1
  24. CALL DELAY
  25. SETB P2.1
  26. CALL DELAY
  27. CLR P2.1
  28. CALL DELAY
  29. SETB P2.1
  30. CALL DELAY


  31. JMP START

  32. DELAY: MOV R3, #123                                        //延时程序段
  33.   DV0: MOV R1, #200                                    //R1赋值为10进制数200
  34.   DV1: MOV R2, #20
  35.   DV2: DJNZ R2, DV2                                    //使R2-1,若R2不等于0的情况下继续执行这行代码,若R2等于0执行下一句代码
  36.        DJNZ R1, DV1
  37.            DJNZ R3, DV0
  38.            RET                                                        //程序段返回

  39. CLEAR_DISLED:                         //把数码管熄灭
  40.        SETB P0.0
  41.            SETB P0.1
  42.            SETB P0.2
  43.            SETB P0.3
  44.            SETB P0.4
  45.            SETB P0.5          
  46.            SETB P0.6
  47.        RET

  48. DISPLAY_NUMBER:                //显示数字
  49. MOV P0, #10H        ;数码管显示9
  50. CALL DELAY

  51. MOV P0, #0H    ;数码管显示8
  52. CALL DELAY

  53. mov P0, #78H        ;数码管显示7
  54. CALL DELAY

  55. MOV P0, #2H        ;数码管显示6
  56. CALL DELAY

  57. MOV P0, #12H        ;数码管显示5
  58. CALL DELAY

  59. MOV P0, #19H        ;数码管显示4
  60. CALL DELAY

  61. MOV P0, #30H        ;数码管显示3
  62. CALL DELAY                          

  63. MOV P0, #24H        ;数码管显示2
  64. CALL DELAY

  65. MOV P0, #79H        ;数码管显示1
  66. CALL DELAY

  67. MOV P0, #40H
  68. CALL DELAY
  69. RET

  70. SETB_LED:                 //设置LED显示哪种颜色
  71.   SETB P2.0
  72.   SETB P2.1
  73.   SETB P2.2
  74.   RET
  75. END
  76. //小月子2016年5月21日编辑   如果您有什么不理解的地方请加小月子QQ:616142166
  77. //小月子是个电子发烧友,小月子电子网店卖的是电子电路类、编程类学习资料教学视频
  78. //请关注我的网
  79.         
复制代码
  1. ORG 00H

  2. START:

  3. CALL SETB_LED
  4. CLR P2.0
  5. CALL DISPLAY_NUMBER

  6. CALL SETB_LED
  7. CLR P2.2
  8. CALL DISPLAY_NUMBER

  9. CALL SETB_LED
  10. MOV P0, #0FFH
  11. CLR P2.1
  12. CALL DELAY
  13. SETB P2.1
  14. CALL DELAY
  15. CLR P2.1
  16. CALL DELAY
  17. SETB P2.1
  18. CALL DELAY
  19. CLR P2.1
  20. CALL DELAY
  21. SETB P2.1
  22. CALL DELAY


  23. JMP START

  24. DELAY: MOV R3, #123
  25.   DV0: MOV R1, #200
  26.   DV1: MOV R2, #20
  27.   DV2: DJNZ R2, DV2
  28.        DJNZ R1, DV1
  29.            DJNZ R3, DV0
  30.            RET

  31. CLEAR_DISLED:
  32.        SETB P0.0
  33.            SETB P0.1
  34.            SETB P0.2
  35.            SETB P0.3
  36.            SETB P0.4
  37.            SETB P0.5          
  38.            SETB P0.6
  39.        RET

  40. DISPLAY_NUMBER:
  41. MOV P0, #10H        ;数码管显示9
  42. CALL DELAY

  43. MOV P0, #0H    ;数码管显示8
  44. CALL DELAY

  45. mov P0, #78H        ;数码管显示7
  46. CALL DELAY

  47. MOV P0, #2H        ;数码管显示6
  48. CALL DELAY

  49. MOV P0, #12H        ;数码管显示5
  50. CALL DELAY

  51. MOV P0, #19H        ;数码管显示4
  52. CALL DELAY

  53. MOV P0, #30H        ;数码管显示3
  54. CALL DELAY                          

  55. MOV P0, #24H        ;数码管显示2
  56. CALL DELAY

  57. MOV P0, #79H        ;数码管显示1
  58. CALL DELAY

  59. MOV P0, #40H
  60. CALL DELAY
  61. RET

  62. SETB_LED:
  63.   SETB P2.0
  64.   SETB P2.1
  65.   SETB P2.2
  66.   RET
  67. END
  68.         
复制代码




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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