基于单片机的交通灯设计 联系客服

发布时间 : 星期四 文章基于单片机的交通灯设计更新完毕开始阅读6506b083964bcf84b9d57be3

郑州工业应用技术学院本科生毕业论文 单片机控制的交通灯设计

4 系统软件程序的设计 4.1 程序主体设计流程

本交通灯模型的控制程序实际上由很多模块组成:键盘设置处理程序,交通指示灯控制程序,LED数码管显示控制程序,去除键盘抖动延时程序,紧急情况处理或违规判断程序,中断服务子程序,红外传感器车流量计数程序,自动调整红绿灯时间程序等。整个软件程序方面主要分两大部分:按键处理程序和50ms扫描程序。流程图如图(图4.1)所示。 定义状态数组 初始化外部中 宏定义 断 初始化 I/O 进入while(1)循定义字位码函 环 数 定义共阴极字型 编码表调用显示控制函数进入主函数 void display() main() 定义 函数变量并初始化 定时器0初始化 调用Buzzer()函 数

图4.1 系统总的流程图

设置字型码和字位码,完成显示 返回while(1)函数 4.2 子程序模块设计

4.2.1 状态灯显示及判断

本设计中独立式键盘的实现方法是根据单片机I/O口的电平高低来判断是否有按键按下。在本模型设计中,在实际的模型运行中需要控制的的指示灯只有6个,即:东西红绿黄指示灯,南北红绿黄指示灯。I/O端口定义如下,其中均是低电平才能使指示灯状态发生变化。如图4.2:

12

郑州工业应用技术学院本科生毕业论文 单片机控制的交通灯设计

设定初值 初始化 开始

按键事件检测与处理

绿灯倒计时

光电管为低电平? 倒计时完毕? 黄灯倒计时5秒

倒计时完毕? 光电管为低电平? 红灯倒计时 检测车流量 检测闯红灯 结束

13

郑州工业应用技术学院本科生毕业论文 单片机控制的交通灯设计

图4.2 状态灯显示及判断流程图

14

郑州工业应用技术学院本科生毕业论文 单片机控制的交通灯设计

4.2.2 紧停及定时中断子程序

定时中断子程序是本设计中一个重要模块,当定时器开始启动时,它会在之前的基础数值上开始加1计数,若我们没有在开始的程序中设置TH0和TL0的值,它们的值均会默认为0。

if(k5!=1) { display(); if(k5!=1) { flag3=0; flag5=1-flag5; if(flag5==1) { TR0=0; { TR0=0; P2=0x00; Red_dx=1; Red_nb=1; } void int0(void) interrupt 0 using 1 TR1=1;flag3=0; P2=0x00; Green_dx=1; Red_nb=1; sec_dx=00; sec_nb=00;

15