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

loading 分享 2026-8-20 下载文档

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

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

开始 定时计数设定 开外中断 初始状态 东西绿灯亮,南北红灯亮,延时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文档下载到电脑
搜索更多关于: 基于单片机的交通信号灯设计 的文档
相关推荐
相关阅读