1、 物理与信息工程学院 单片机 课 程 设 计 题 目:基于 51 单片机的交通灯 学 院:物理与信息工程学院 专 业:自动化 目录 1、概述-3 2、系统各部分硬件的设计-4 (1)总的硬件设计流程-4 (2)各硬件部分的电路设计-5 3、软件的分块流程图及程序编写-7 4、软件仿真图-15 5、心得体会-16 1、概述、概述 背景背景:交通的发达,标志着城市的发达,相对交通的管理则显得越来越重要。对 于复杂的城市交通系统,为了确保安全,保证正常的交通秩序,十字路口的信号 控制必需按照一定的规律变化,以便于车辆行人能顺利地通过十字路口。正常情 况下,十字路口的红绿灯应交替变换,考虑紧急情况下,
2、如有救护车或警车到来 时,应优先让其通过。 交通灯在安全行车过程中起着十分重要的作用, 现在交通灯一般设在十字 路口, 在醒目位置用红、绿、黄三种颜色的指示灯, 加上一个倒计时的显示计时 器来控制行车, 对于一般情况下的安全行车、 车辆分流发挥着作用, 但根据实际 行车过程中出现的情况, 主要有如下几个缺点: 1两车道让车轮流放行时间相同 且固定, 在十字路口, 经常一个车道为主干道,车辆较多, 放行时间应该长些; 另一车道为副干道, 车辆较少,放行时间短些。2 没有考虑紧急车通过时, 两车 道应采取的措施, 譬如, 有消防车通过执行紧急任务时, 两车道的车都应停止, 让紧急车通过。 根据行车
3、过程中出现的实际情况, 如何全面有效地利用交通灯指 示交通情况, 本人尝试用单片机来控制交通灯, 在软、 硬件方面采取一些改进措 施, 使交通灯在控制中灵活而有效。 实现的任务实现的任务: 单片机来实现,根据设计要求,交通信号灯控制器的外部输出信号为主、 副车道红、黄、绿灯共 12 个驱动信号;编程使相应位复/置位来实现信号灯的亮 /灭控制,使得十字路口的红、绿灯交替点亮;在灯色交换时,黄灯闪烁提醒。 设计要求有紧急车辆通过时,十字路口均显示红灯。可以通过软件中断 来完成紧急任务,定义 T0 为计数中断并为下降沿触发,编写对应中断向量子程 序和中断服务程序,完成中断处理。 设计还对定时控制有所
4、要求。对于精确定时,应该用计数器加以控制, 硬件实现复杂度增加。考虑到该设计对时间精度要求不高,所以采用软件定时可 以大大简化电路。先计算出程序单部执行的时间,设置循环参数,利用 if 语句 按设计要求完成定时控制。 (4)当南北方向车辆较多,东西方向车俩较少时,通过开关来改变各方向的 灯来调节。 2、系统硬件的设计与流程系统硬件的设计与流程 晶振和复位电路:单片机系统的必要组成部分,控制单片机的机器周期和功能 复位通用的晶振电路 单片机的晶振电路是一种典型电路,分为内部时钟方式和外部时钟方式两 种。 输入控制:是指在一定要求下,采取何种形式的控制方式来实现单片机不 同功能的转换,以及控制指令
5、以何种方式传送到单片机 输出显示:是指单片机将需要显示的数据发送到 LED、液晶等显示模块, 并控制 LED 等显示模块按照一定的格式显示的功能。 晶振电路 输入控制 输出显示 外 围 功 能 器 件 单片机 外围功能器件:单片机只是控制器件,对应与一定的设计要求,需要加入 特定功能的器件。单片机的最简单系统是指单片机能正常工作所必须的外围元 件,主要由单片机、晶振电路和复位电路构成。而输入/输出部分则通过单片机 的 I/O 口实现。 开关用来实现特殊的功能,当有救护车等出现时,按下开关,所有灯变成红 灯,让救护车通行。 3 3、软件的分块流程与程序编写软件的分块流程与程序编写 1、编写延时程序 void delay0(uint z) uint i,j; for(i=0;i0;i-) for(k=180;k0;k-); 2、定时 1ms 的程序代码 当单片机的晶振为 12MHz 时,计数值 1 代表的时间就是 1us。 计数器的容量是 16 位,也就是最大的计数值达到 65536,因此计数计到 65536 就会产生溢出。 Void t0(void)interrupt 1 using 0 TH0=(65536-1000)/256; /设置定时器高 8 位初值 TL