找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2513|回复: 0
收起左侧

基于单片机汇编的交通灯设计,源码与Proteus仿真与视频

[复制链接]
ID:541284 发表于 2019-5-18 19:59 | 显示全部楼层 |阅读模式
基于汇编的交通灯设计1.红绿黄+数码管显示倒计时,其中绿灯最后三秒闪烁
2.程序框图如下

程序框图

程序框图



3.部分单片机汇编语言源码
  1. //变量定义
  2.                 REDTIME        EQU 30H
  3.                 GREENTIME EQU 31H
  4. //程序起点
  5.                 ORG 0000H
  6.                 LJMP MAIN
  7.                 ORG 000BH
  8.                 LJMP COUNTTIME ;定时器0中断
  9.                 ORG 0003H
  10.                 LJMP CHANMODE ;外部中断0
  11. //主程序
  12.                 ORG 0100H
  13. MAIN:
  14. ;1.启动检查
  15. ;2.初始化定时器0、外部中断
  16.                 MOV TMOD,#01H                   ;采用方式1
  17.                 MOV TH0,#0ECH                   ;定时5ms的定时常数
  18.                 MOV TL0,#76H
  19.                 SETB TR0                           ;启动定时器
  20.                 SETB ET0                           ;允许定时器中断
  21.                 SETB EX0                        ;允许外部中断
  22.                 SETB IT0                        ;下降沿触发方式
  23.                 SETB EA                                   ;开启CPU中断
  24. ;3.定义变量初值
  25.                 MOV R0,#0
  26.                 MOV REDTIME,#25                ;红灯起始25s
  27.                 MOV GREENTIME,#20        ;绿灯起始20s
  28.                 MOV P0,#0FFH                ;数码管全不亮
  29.                 MOV P2,#00H                        ;共阴数码管每段都不亮
  30.                 MOV P1,#00H                        ;每个发光二极管都不亮

  31.                 MOV R1,GREENTIME                ;R1储存实时变化的南北时间
  32.                 MOV R2,REDTIME        ;R2储存实时变化的东西时间

  33.                 SETB P1.0                        ;初始状态,南北绿灯亮
  34.                 SETB P1.5                        ;初始状态,东西红灯亮
  35.                 MOV R3,#1                        ;记录运行的阶段
  36.                 MOV R4,#0                        ;记录数码管位选信号        
  37.                 MOV R5,#0                        ;记录绿灯闪烁次数
  38.                 MOV R7,#0                        ;记录工作模式0为正常运行,1为设置模式        
  39. ;4.开始LED和SEG开始倒计时工作
  40. LOOP:        CJNE R7,#1,WORK                ;进行模式判断
  41.                 LCALL SETMODE                ;R7=1,则进入设置模式
  42.                 JMP LOOP                        ;进行模式判断的循环

  43. WORK:        CJNE R0,#200,LOOP        ;工作模式
  44.                 MOV R0,#0                        ;R0=200则为1s进行倒计时时间的变化
  45.                 DEC R1
  46.                 DEC R2
  47.                 LCALL TWINKGREEN        ;绿灯闪烁子程序(判断绿灯是否闪烁,是否执行闪烁)
  48.                 LCALL  STAGECHAN        ;运行的阶段的判断,即一个阶段的倒计时完成之后,重新赋值
  49.                 JMP LOOP
复制代码


4.Proteus仿真视频:
https://www.bilibili.com/video/av39625094

5.Preotuse仿真与源码
Proteus.rar (102.54 KB, 下载次数: 45)

评分

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

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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