第一范文网 - 专业文章范例文档资料分享平台

基于单片机的交通信号灯设计

来源:用户分享 时间:2025/5/19 1:37:02 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

关寄存器等,以便保护中断前红绿灯的状态(保护现场),并且在退出前恢复原来红绿灯状态(恢复现场)。

根据以上软硬件资源的利用情况,制定出程序框图如下。 主程序框图:

开始 定时计数设定 开外中断 初始状态 东西绿灯亮,南北红灯亮,延时18秒 东西黄灯亮,南北红灯亮,延时2秒 东西红灯亮,南北绿灯亮,延时13秒 东西红灯亮,南北黄灯亮,延时2秒 图5.5 主程序图

- 17 -

中断框图:

- 18 -

T0中断 T0赋初值进行10ms计时 紧急情况按钮S1键按下否? Y 停止T0中断,保护P1口状态 N Y 流通按钮S0按下 红灯全亮,停止通行 N 10ms计时器+1 停止T0计数,保护P1口状态 解决紧急状态按钮S1松开否? Y 时间累计1S 主干绿灯亮,支干红灯亮 N 定时计数-1 数码管静态显示 Y S0开? 显示子程序 恢复P1口,启动T0 N 数码管静态显示 中断返回 中断返回 恢复P1口,启动T0 中断返回

图5.6 中断框图

- 19 -

5.2.3 汇编语言源程序 (1). 有关参数计算

本设计T0定时时间为10毫秒,计满10毫秒就响应一次中断,计满100次刚好为一秒。

T0定时器采用工作方式1,为16位计数器,晶振频率为6MHz(12MHz),则机器周期为:

12÷6MHz = 2微秒(1us)

定时值为10毫秒,计数值为10000÷2=5000(10000÷1=10000)

初值X0=M-计数值=65536–5000=60536=EC78H(X0=65536-10000=55536=D8F0H) 根据16位定时器的特性,初值应为;TH0=0ECH(0D8H),TL0=78H(0F0H) (2). 部分源程序 ORG 0000H

AJMP MAIN ;转主程序 ORG 000BH AJMP T0_INT

ORG 0030H

;转定时器T0服务子程序

MAIN: MOV SP, #50H

MOV TMOD, #01H ;T0,定时方式1

MOV TL0, #78H ;定时 10ms,晶振6MHZ MOV TH0, #0ECH

SETB EA ;开总中断 SETB ET0 ;允许T0中断

SETB TR0 ;启动定时器

MOV R3,#64H ;设定中断次数 LOP: MOV R4, #18 MOV R5, #20

LOP0: MOV P1,#0F3H ;东西绿灯亮,南北红灯亮 ACALL RIS CJNE R4,#00H,LOP0 MOV R4,#02

- 20 -

搜索更多关于: 基于单片机的交通信号灯设计 的文档
基于单片机的交通信号灯设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3che13kvfi3xy6q955p40ne2d1fovz0147i_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top