基于单片机的交通灯控制系统设计

 

前言

 

       近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

        十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用STC89C52单片机以及单片机最小系统以及外围的按键和数码管显示等部件,设计一个基于单片机的交通灯设计。设计通过两位一体共阴极数码管显示,并能通过按键对定时进行设置。本系统实用性强、操作简单、扩展功能强。

整体设计思路 

整个系统基于STC89C52单片机实现交通灯的设计与制作,组成一个处理、自动控制为一身的闭环控制系统。系统硬件电路由单片机、状态灯、LED显示、驱动电路、按键等组成。12个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,分别代表禁行、通行、等待以指示通行状态。拥有紧急模式、夜间模式、一键东西通行、一键南北通行、复位等功能。可以随时添加,能满足一般的实验及演示的需要,并且成本低廉,操作简洁方便。

 

 技术路线

硬件设计

系统方案设计

方案一:模拟电路控制

该方案是采用模拟电路设计的方式实现控制效果,这种传统方式的电路简单易于实现,但是用模拟的方式进行控制有其不足之处,很难提高控制的精度,因此难以实现实际应用当中的交通灯的要求。

方案二:单片机控制

该方案则是运用单片机来实现,选用STC89C52单片机和外围器件构成最小控制系统, 4组红绿黄三色灯共12个发光二极管构成信号灯指示模块,8个LED数码管东西南北各两个构成倒计时显示模块,6个按键组成时间设置和模式选择按钮和紧按钮等。综合价格方面因素来看,单片机的价格低廉也符合实际的市场需求趋势。

系统电路原理图 

 系统工作原理

 本交通灯设计采用P0口控制数码管显示倒计时,P1口控制数码管位选,P2口控制信号灯,P3口连接按键,上电后定时器初始化,当红灯倒计时开始时,红灯亮,红灯倒计时结束绿灯亮,红灯灭,模拟交通系统。按键可以控制控制禁行、复位、东西通行、南北通行、时间加、时间减、切换等功能。

复位电路原理

显而易见,复位电路的作用是复位。在单片机接上电源以后,或电源出现过低电压时,将单片机存储器复位,使其各项参数处于初始位置,即处于开机时的标准程序状态,以消除由于某种原因的程序紊乱。单片机的复位电路有上电复位电路和按键式复位电路。上电复位电路——利用电容器充电来实现复位。当加电时,电容上的电压不能突变,RST引脚为高电平,开始复位;电容C不断充电,电阻R上的压降逐步下降,当电容C充满电后,电路相当于开路,复位结束。可见复位的时间与充电的时间有关,充电时间越长复位时间越长,增大电容或电阻都可以增加复位时间。按键式复位电路——它的上电复位功能与上电复位电路相同,但还可以通过按键实现复位。按下按键后,通过两个电阻分压,使RST端产生高电平。按键按下的时间决定了复位的时间。单片机的复位是靠外部电路实现的,在本次设计中采用了按键式复位。

 

 时钟电路设计原理

STC89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷振荡器一起构成自激振荡器,振荡电路参见图2-4。

外接石英晶体(或陶瓷振荡器)及电容C2、C3接在放大器的反馈回路中构成并联振荡电路。对外接电容C3、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF±10pF,而如使用陶瓷振荡器建议选择40pF±10pF。

 

 数码管显示模块原理

 数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管:按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。由于它的价格便宜使用简单在电器特别是家电领域应用极为广泛。

 

 信号灯模块设计原理

在交通灯中,采用了红黄绿LED发光二极管来代表三种交通状态,因为二极管的单向导电性,P0口接二极管正极,二极管负极接地,P0口给一个高电平就能点亮LED,我们采用其硬件电路比较简单 

 按键电路设计原理

 按键的接入方式有两种,独立按键和矩阵按键,由于在本次设计中,只需要设置几种模式,控制倒计时的加减,所以使用的按键数量比较少。因此,在本次设计中采用了独立按键的接入方式,独立按键在本系统的接法比较简单,“暂停”功能按键的一端与单片机的P3.1口相连,另一端和电源地相连,“切换”功能按键的一端与单片机的P3.7口相连,另一端和电源地相连,“添加”功能按键也是一样,一端与单片机的P3.5引脚相连,另一端与电源地相连即可

 

 软件设计

 软件设计思路

全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,LED显示程序,消抖动延时程序,次数状态判断及处理程序,紧停或违规判断程序,中断服务子程序,东西南北切换程序,红绿灯时间调整程序等。 

整个软件程序方面主要分两大部分:按键处理程序和50ms扫描程序。 

 

 定时中断模块设计

定时中断子程序是本设计的重点,负责完成数码管输出数据刷新和各个状态的处理切换。中断子程序包括数码管输出数据刷新程序和各状态处理程序。

 

 按键控制子程序设计

 在本设计中为了可以使交通灯具有控制禁行、复位、东西通行、南北通行、时间加、时间减、切换等功能,增加按键电路,在设计中由于使用的按键功能数比较少,所以采用了独立按键的方式接入,其硬件电路结构简单,在程序控制方面也比较简单。首先按键设置子程序放在定时器中断中被实时扫描,当按键中的某一个按键被按下时,就会被检测到。

 数码管显示子程序设计

 本设计采用的显示器件为LED数码管,P1口控制位选,P0口控制段选,数码管显示原理就是通过内部的LED闪烁,在人眼中就有一个视觉停留的效果,来显示数字或者字母。需要点亮哪一段就给一个电平,然后小延时,通过位选来控制点亮那个数码管。

 

 制作调试

 元器件清单及散件图

 

 

 

电路制作过程 

 电路的组装与焊接分为以下几个过程:首先,对照PCB板组装电路图或者万能板组装草图首先对贴片元器件或者比较矮小的元器件进行组装、焊接;其次,对集成块插槽进行安装、焊接,集成块插槽安装、焊接如下:先将插槽插入电路板插孔,用手指按下集成块插槽使之与电路板完全贴合,再用焊枪在插槽对角线各焊接一个引脚固定,然后再把其它引脚逐个焊接完成;再次,对高引脚的元器件,如电解电容等进行安装;第四,对信号线、电源线进行焊接、安装,安装时注意连接线的颜色要符合电路组装规则和工艺,比如:电源线,正极性用红色引线、接地用黑色引线等;第五,当所有连接线安装、焊接完成时,先要用标签纸做好标记,然后用扎带进行捆绑、定型,这一步要在电路检测完全正常后进行,避免重复捆绑;至此,整个电路组装与焊接工作完成。

 

 

 硬件调试

第一步为目测,单片机应用系统电路全部手工焊接在PCB板上,因此对每一个焊点都要进行仔细的检查。检查它是否有虚焊、是否有毛刺等。

第二步为万用表测试,先用万用表复核目测中认为可疑的连线或接点,查看它们的通断状态是否与设计规定相符,再检查各种电源线与地线之间是否有短路现象。

第三步为加电检查。当系统加电时,首先检查所有插座或器件引脚的电源端是否有符合要求的电压值,接地端电压值是否接近零,接固定电平的引脚端是否电平正确。

第四步是联机检查。

  软件调试

把各子程序整体连起来进入到综合电路调试,看是否能实现预计的功能显示。用软件模拟器调试不需任何在线仿真器,也不需要用户样机,直接就可以在PC机上开发和调试。调试和修改完毕后,对于实时性要求不高的应用系统可以直接使用编程器将软件固化在目标系统ROM中,然后独立投入运行。 

 

 

系统调试与性能分析 

 系统的硬件调试和软件调试都完成后,下一步进行的就是系统的整体调试。我们要对整体的实物进行测试,先把数码管显示程序烧录到单片机中,看看数码管显示器是否能正常显示文字,若能证明数码管显示模块焊接无问题,若不能显示则需要检查电路焊接问题并排除故障。然后用同样的方法来验证按键是否能正常工作,若能正确控制数码管及LED且显示正常,则这个实物已经能完成按键控制和显示功能。

第一次调试的时候发现接上电源按下开关后,所有的LED都亮了,但是按键控制不了,数码管也不显示,后面通过仔细检测,目检出单片机底座18脚松了,导致晶振电路没起作用,所以整个程序运行不起来,因为单片机底座已经焊上PCB,取不下来,所以只能采用飞线的方式,从PCB的下面飞一个导线连到单片机的18脚 。

设计成果 

 本作品选用STC89C52单片机及外围器件构成最小控制系统,12个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,8个LED东西南北各两个构成倒计时显示模块,若干按键组成时间设置和模式选择按钮和紧急按钮等。本交通灯以单片机为核心,组成一个处理、自动控制为一身的闭环控制系统。系统硬件电路由单片机、状态灯、LED显示、驱动电路、按键等组成。

参考资料

[1]李威,朱经睿,王涛.基于虚拟仿真平台的单片机应用技术课程项目教学研究[J].轻纺工业与技术,2021,50(02):159-160.

[2]漆颢,胡敏,龚晚林.基于单片机的智能交通灯的设计[J].物联网技术,2021,11(02):87-89+94.

[3]刘鹏娟,宋绮娴.基于单片机的智能交通灯设计[J].电子制作,2020(21):79-81.

[4]岳娇,韩宏伟.基于单片机的智能交通灯的设计与仿真[J].信息与电脑(理论版),2020,32(20):129-131.

[5]金相宇,朱海华,文雪勤,李云正,刘红薇.基于单片机的无警化的交通控制系统的设计[J].电子技术与软件工程,2020(20):84-85.

[6]张永志.基于单片机的自适应交通信号灯控制系统设计[J].电子测试,2020(19):32-33+89.

[7]牛亚莉.基于单片机的智能交通灯控制系统设计[J].电子设计工程,2020,28(18):136-139.

[8]郭聪聪.基于单片机的交通灯系统设计及仿真[J].信息技术与信息化,2020(07):116-117.

[9]夏开云.单片机控制交通灯电路的设计[J].通信电源技术,2020,37(11):77-79.

[10]秦亚萍,王娟,李晓丽.基于单片机的智能控制交通灯的研究[J].产业科技创新,2020,2(15):50-51. 

 部分代码

//主程序
void main()
{
	TMOD=0X11;	   				//定时器设置
	TH1=0X3C;		
	TL1=0XB0;
	TH0=0X3C;					//定时器0置初值 0.05S
	TL0=0XB0;
	EA=1;						//开总中断
	ET0=1;						//定时器0中断开启
	ET1=1;					   //定时器1中断开启
	TR0=1;						//启动定时0
	TR1=0;						 	//关闭定时1
	EX0=1;						//开外部中断0
	EX1=1;						//开外部中断1
    logo();						//开机初始化
	P2=0Xc3;					// 开始默认状态,东西绿灯,南北黄灯   
    sec_nb=sec_dx+5; 			//默认南北通行时间比东西多5秒
	while(1)					  //主循环
	{	 
		key(); 					//调用按键扫描程序
		display(); 				//调用显示程序
	}	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值