标题:
基于单片机汇编的交通灯设计,源码与Proteus仿真与视频
[打印本页]
作者:
_鲤鱼
时间:
2019-5-18 19:59
标题:
基于单片机汇编的交通灯设计,源码与Proteus仿真与视频
基于汇编的交通灯设计1.红绿黄+数码管显示倒计时,其中绿灯最后三秒闪烁
2.程序框图如下
softwareMao.png
(54.26 KB, 下载次数: 74)
下载附件
程序框图
2019-5-18 19:49 上传
3.部分单片机汇编语言源码
//变量定义
REDTIME EQU 30H
GREENTIME EQU 31H
//程序起点
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP COUNTTIME ;定时器0中断
ORG 0003H
LJMP CHANMODE ;外部中断0
//主程序
ORG 0100H
MAIN:
;1.启动检查
;2.初始化定时器0、外部中断
MOV TMOD,#01H ;采用方式1
MOV TH0,#0ECH ;定时5ms的定时常数
MOV TL0,#76H
SETB TR0 ;启动定时器
SETB ET0 ;允许定时器中断
SETB EX0 ;允许外部中断
SETB IT0 ;下降沿触发方式
SETB EA ;开启CPU中断
;3.定义变量初值
MOV R0,#0
MOV REDTIME,#25 ;红灯起始25s
MOV GREENTIME,#20 ;绿灯起始20s
MOV P0,#0FFH ;数码管全不亮
MOV P2,#00H ;共阴数码管每段都不亮
MOV P1,#00H ;每个发光二极管都不亮
MOV R1,GREENTIME ;R1储存实时变化的南北时间
MOV R2,REDTIME ;R2储存实时变化的东西时间
SETB P1.0 ;初始状态,南北绿灯亮
SETB P1.5 ;初始状态,东西红灯亮
MOV R3,#1 ;记录运行的阶段
MOV R4,#0 ;记录数码管位选信号
MOV R5,#0 ;记录绿灯闪烁次数
MOV R7,#0 ;记录工作模式0为正常运行,1为设置模式
;4.开始LED和SEG开始倒计时工作
LOOP: CJNE R7,#1,WORK ;进行模式判断
LCALL SETMODE ;R7=1,则进入设置模式
JMP LOOP ;进行模式判断的循环
WORK: CJNE R0,#200,LOOP ;工作模式
MOV R0,#0 ;R0=200则为1s进行倒计时时间的变化
DEC R1
DEC R2
LCALL TWINKGREEN ;绿灯闪烁子程序(判断绿灯是否闪烁,是否执行闪烁)
LCALL STAGECHAN ;运行的阶段的判断,即一个阶段的倒计时完成之后,重新赋值
JMP LOOP
复制代码
4.Proteus仿真视频:
https://www.bilibili.com/video/av39625094
5.Preotuse仿真与源码
Proteus.rar
(102.54 KB, 下载次数: 45)
2019-5-18 19:55 上传
点击文件名下载附件
下载积分: 黑币 -5
汇编交通灯.rar
(31.75 KB, 下载次数: 34)
2019-5-18 19:57 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1