基于51单片机设计的交通灯分析与研究
2018-03-22黄华
黄华
摘要:随着我国经济实力的不断发展,人民生活水平的的不断提高以及人口的不断增长,在加上近年来很多人喜欢自驾旅游,人们的出行变得异常拥挤,所以制定一套良好的交通体系将成为解决这一问题的必不可少的法宝,交通灯—将有效的解决这一问题。现如今交通灯被广泛应用于全国各大城市的道路,用于疏通各个交通枢纽,调控人们的出行,为人们的日常出行带来了方便。本系统采用STC公司生产的STC89C52单片机,STC89C52单片机是一种功率低、高性能、抗干扰能力强的CMOS微控制器,使用的的是经典的MCS—51内核,且具有8K的可编程Flash存储器,拥有512字节的RAM,32位的I/O口线,3个16位的定时器T0、T1、T2,内部自带2K的EEPROM,内部的Flash可擦写100000次以上,及自带看门狗程序防止程序因长时间的运行导致程序错乱,具有掉电和空闲模式达到在不用时节省电力的效果,并且可以进行串、并行通讯、A/D转换、控制液晶显示以及控制各种时钟、语音·芯片等功能,可谓功能强大。
关键词:单片机;交通灯;分析
一、综述
如今的交通灯主要是由红、绿、黄三种颜色组成,并且有箭头式和圆形红绿灯两种方式,许多交通较为拥挤的十字路口多采用箭头式与圆形式混合管理各个车辆的通行情况。交通灯最早出现在19世纪初期英国的约克城,开始时只有红色与绿色两种颜色,但随着经济的发展与工业水平的不断提升道路逐渐变得拥挤,所以应道路交通指挥的需要,第一组由红、绿、黄三种颜色的交通灯于1918年应运而生,它的每一盏灯都是由一个圆形的四面投影器,由于它的出现极大的改善了交通情况,使人们的出行安全而又方便。最开始时英国约克城经常会出现马车轧人事故,并且当时约克城红绿两色分别代表已婚的女性和未婚的女性,所以人们受到启发,于1868年12月10日由英国机械师德.哈设计制造的灯柱高7米的由红绿两色组成的红绿两色提灯—煤气交通灯,在这盏交通灯的灯脚下站着一名手持长杆的警察拉动手里的皮带随心所欲的控制灯的颜色,但这盏煤在面世的第23天,由于煤气灯的忽然爆炸使一位正在执勤的警察丧命,而使得其又被取缔,直到1914年,在美国的克利夫兰市恢复了紅绿灯,红绿灯才正式的开始融入人们的生活,此时的红绿灯已经是用电来带动工作的,随后在芝加哥等城市相继采用了交通灯来引导交通。
值得一提的是,黄色信号灯的发明者是我国的胡汝鼎,他曾怀着对科学的热情态度,以及“科学救国”的伟大抱负去美国深造,他在为爱迪生的美国通用电气公司工作时,有一天,他站在繁华的路口等待绿灯时,当他看到红灯即将过去时一辆汽车呼啸而过,吓得他连忙退了回去,惊吓之余,他反思自己的经历,反思这样的设计的交通灯的缺点,很可能,会给人们的出行带来危险,所以他就想到了在红绿灯之间再加一个黄灯,以警告人们危险,打定主意后,他向有关方面提出建议,比得到了肯定,于是红、绿、黄的交通灯系统就此产生,并得到了广泛的应用。
二、有关单片机的概述
单片机就是在一块硅片上集成了微处理器、存储器及各种输入/输出接口的芯片,这样的一块芯片就具有了计算机的属性,因而也被称为微型计算机。单片机的功能的实现要靠我们使用者自己编程序来实现,我们编程的目的就是控制这块芯片的各个引脚在不同的时间输出不同的电平(高电平或者低电平),进而控制与单片机的各个引脚相连接的外围电路的电气状态 。我们设计的这个交通灯系统使用的是STC89C52—DIP单片机,我们先来介绍一下这个标识,STC—前缀,标示芯片为STC公司生产的产品,8—表示8051内核,9—表示内部含有Flash EEPROM存储器,C—表示该器件为CMOS产品,5—固定不变,2—表示该芯片内部程序存储空间大小(1为4KB,2为8KB,3为12KB)。
三、Keil C51软件开发系统
Keil C51 是德国Keil Software 公司出品的51系列兼容单片机C语言软件开发系统,提供了丰富的库函数和功能强大的集成开发调试工具u Vision。Keil C51 标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编语言代码高效、快速的特点。
Keil C51是目前最高效、最灵活的8052开发平台。它不仅可以支持所有的8051衍生产品,还可以支持所有兼容的仿真器,同时也支持其他第三方的开发工具。因此,它必然成为8051开发用户首选软件系统。与汇编语言相比,C51具有良好的模块化、较强功能性、易阅读和维护的特点,因而易学易用。目前多数的单片机开发都是以C语言为主,这使得使用C51可以缩短开发周期、降低成本、提高可靠性、开发的代码具有较好的可移植性。
四、程序分析与介绍
(1)延时程序:程序中使用for语句的嵌套来实现延时效果。
(2)数码管显示程序:程序中使用了两个显示函数来分别表示南北方向和东西方向的计时器数据显示,显示方式大同小异,东西方向使用P0口作为输出控制端,南北方向使用P2口作为输出控制端。以南北方向为例:显示程序开始时先打开段选把P2口的输出电平通过锁存器送入数码管,关闭段选,再打开位选,把P2口的输出电平通过锁存器送入数码管后,关闭位选,由于这之间的时间间隔很小,肉眼无法识别其闪烁。
(3)计时器闪烁程序:为了起到警示作用,当倒计时5秒时计时器会闪烁,程序中使用定时器2来控制计时器的闪烁,在程序中定时器2使用的是16位自动重装模式,当定时器中断100次时,flag会取反,也就是说定时器中断的次数控制了计时器闪烁的快慢。
五、小结
本论文设计采用STC公司生产的STC89C52单片机及其他电气元件(74HC573锁存器,9014三极管,电阻,LED灯)组成,来设计十字路口交通灯,所用器件数量较少且价格便宜,设计简便,实用性强,并且为了解决因十字路口的车流量在不同时间段各不相同,如果采用单一的时间计数方式会造成车辆等待时间过久而造成时间浪费的缺点,本系统采用三种不同的计数方式轮流计数,已达到时间高效利用的目的。为了系统内部稳定可靠的运行程序,系统内部集成了看门狗程序用以防止因系统的死机而停止工作。
参考文献:
[1]胡宴如.高频电子线路.高等教育出版社.2009年.
[2]张毅刚.单片机原理及接口技术.人民邮电出版社.2011年.
[3]马忠梅.单片机的C语言应用程序设计.北京航空航天大学出版社.2013年.
[4]周文良.电子电路设计与实践.国防工业出版社.2011.
[5]王水平、孙柯、王禾、何群、王镭、袁良文.开关电源原理与应用设计.人民邮电出版社.2012年.