找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5063|回复: 4
收起左侧

基于51单片机的交通灯汇编设计与proteus仿真

[复制链接]
ID:413469 发表于 2018-12-7 20:50 | 显示全部楼层 |阅读模式
最近学校在教汇编,正巧单片机实验,用51单片机做一个交通灯,用来过单片机实验考试,效果还不错,这个其实i功能比较简单,用C语言的画应该分分钟搞定,但是汇编着实是难,proteus画图加敲代码弄了整整一晚上,都要吐血了,效果图如下:(由于proteus软件比较卡,为了能快速看到效果程序里定时时间不是1秒,如果你用到记得更改会正常的1s间隔倒计时)

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)

仿真截图

仿真截图


单片机源程序如下:
  1. ;位选引脚
  2. RED_H   BIT P1.0
  3. RED_L   BIT P1.1
  4. GRE_H   BIT P1.2
  5. GRE_L   BIT P1.3
  6. YEL_H   BIT P1.4
  7. YEL_L   BIT P1.5
  8. ;灯
  9. RED1    BIT P2.0
  10. GREED1  BIT P2.1
  11. YELLOW1 BIT P2.2
  12. RED2    BIT P2.3
  13. GREED2  BIT P2.4
  14. YELLOW2 BIT P2.5

  15. ORG  0000H
  16. AJMP  MAIN
  17. ORG  000BH
  18. AJMP  TIME
  19. ORG  0050H           
  20. ;****************** ******************
  21. MAIN:
  22.          MOV P0,#0FFH
  23.          MOV P1,#0FFH
  24.          MOV P2,#0FFH

  25.          MOV R0,#0            ; 0垂直红,1垂直黄,2垂直绿

  26.      MOV R1,#10      ;定时器计数10次 1S

  27.          MOV R2,#60                 ; 红60s
  28.          MOV R3,#5                 ; 黄灯5s
  29.          MOV R5,#60                 ; 绿灯

  30.          MOV R4,#0               



  31.                    MOV A, #0
  32.      MOV DPTR,#TABLE

  33.      ANL  TMOD,#00FH
  34.          ORL  TMOD,#010H
  35.          MOV TH0,#038H
  36.          MOV TL0,#000H
  37.          SETB EA
  38.          SETB ET0
  39.          SETB TR0
  40. LOOP:
  41.            CJNE R0,#1,OTHER
  42.                  MOV P2,#0X00;
  43.                 SETB YELLOW2
  44.                 SETB YELLOW1
  45.                 MOV P1,#0X00          ; 黄灯5s

  46.                 SETB YEL_H
  47.                 MOV B,#10
  48.                 MOV A,R3
  49.                 DIV AB
  50.                MOVC  A,@A+DPTR
  51.         MOV P0,A
  52.                 ACALL DELAY

  53.                 CPL  YEL_H
  54.                 SETB YEL_L
  55.                 MOV A,B
  56.                MOVC  A,@A+DPTR
  57.         MOV P0,A
  58.                 ACALL DELAY
  59.                  AJMP LOOP
  60. OTHER:JC OTHER2
  61.                 MOV P2,#0X00;
  62.                 SETB GREED1
  63.                 SETB RED2
  64.                    MOV P1,#0X00;          ; 绿灯60s
  65.                 SETB GRE_H
  66.                 MOV B,#10
  67.                 MOV A,R5
  68.                 DIV AB
  69.                MOVC  A,@A+DPTR
  70.         MOV P0,A
  71.                 ACALL DELAY

  72.                 CPL GRE_H
  73.                 SETB GRE_L
  74.                 MOV A,B
  75.                MOVC  A,@A+DPTR
  76.         MOV P0,A
  77.                 ACALL DELAY       
  78.                  AJMP LOOP
  79. OTHER2:

  80.                 MOV P1,#0X00;          ; 红灯60s
  81.                 MOV P2,#0X00;
  82.                 SETB RED1
  83.                 SETB GREED2

  84.                 SETB RED_H
  85.                 MOV B,#10
  86.                 MOV A,R2
  87.                 DIV AB
  88.                MOVC  A,@A+DPTR
  89.         MOV P0,A
  90.                 ACALL DELAY
  91.                
  92.                 CPL RED_H
  93.                 SETB RED_L
  94.                 MOV A,B
  95.                MOVC  A,@A+DPTR
  96.         MOV P0,A
  97.                 ACALL DELAY          

  98.      AJMP LOOP

  99. TIME:
  100.            DJNZ R1,NEXT         
  101.        MOV R1,#5

  102.            CJNE R0,#1,THER1          
  103.            DJNZ        R3,NEXT           ; 黄灯
  104.            MOV R3,#5
  105.            INC R0
  106.        CJNE R0,#3,NEXT
  107.            MOV R0,#0
  108.            AJMP NEXT

  109. THER1: JC THER2
  110.            DJNZ        R5,NEXT
  111.            MOV R5,#60
  112.            INC R0
  113.        CJNE R0,#3,NEXT
  114.            MOV R0,#0
  115.           AJMP NEXT

  116. THER2: DJNZ        R2,NEXT
  117.            MOV R2,#60
  118.            INC R0
  119.        CJNE R0,#3,NEXT
  120.            MOV R0,#0


  121.          NEXT:
  122.                  MOV TH0,#038H
  123.                  MOV TL0,#000H

  124. ……………………

  125. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
交通灯.rar (65.74 KB, 下载次数: 157)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:466316 发表于 2019-1-11 13:40 来自手机 | 显示全部楼层
感谢大佬分享
回复

使用道具 举报

ID:711220 发表于 2020-3-18 22:32 | 显示全部楼层
感谢大佬分享
回复

使用道具 举报

ID:716942 发表于 2020-4-6 16:15 | 显示全部楼层
感谢大佬分享
回复

使用道具 举报

ID:862725 发表于 2020-12-22 19:57 | 显示全部楼层
请问怎么改时间
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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