《嵌入式课程设计报告基于单片机原理的交通信号灯设计.doc》由会员分享,可在线阅读,更多相关《嵌入式课程设计报告基于单片机原理的交通信号灯设计.doc(25页珍藏版)》请在三一办公上搜索。
1、 电气工程与自动化学院课程设计报告(嵌入式技术实践)题 目:基于单片机原理的交_通信号灯设计_专业班级: _学 号: _学生姓名: _指导老师: _2012 年 7月4日 目 录 第一章 前言2 1.1课程设计背景6 1.2国内外研究现状7 1.3本课题研究内容及意义10 第二章 系统总体的方案及设计要求2 2.1 本实验设计的思路2 第三章 电路原理图与说明6 3.1电路图6 3.2仿真图7 3.3硬件图10 第四章 硬件设计 3 4.1 硬件框图3 4.2 双色发光二极管3 4.3 双色灯与数码管显示的对应关系4 4.4交通灯的状态4 第五章 软件设计11 5.1主程序流程图11 5.2源
2、程序清单及注解13 第六章 心得与体会17 第七章 参考文献19 附录19第一章 前言1.1 课称设计背景交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。本系统采用单片机AT89C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。本设计就是采用单片机模拟十字路口交通灯的状态显示以及倒计时。近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个
3、核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。系统除基本的交通灯功能外,还具有倒计时功能,较好的模拟实现了十字路口可能出现的状况。软件上采用汇编语言编程,主要编写了主程序,LED数码管显示程序,键盘程序。经过整机调试,实现了对十字路口交通灯的模拟。1.2 国内外研究现状 目前设计交通灯的方案有很多,有应用CPLD设计实现交通信号灯控制器方法;有应用PLC实现对交通灯控制系统的设计;有应用单片机实现对交通信号灯设计的方法。目前,国内的交
4、通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指示灯。加上一个倒计时的显示计时器来控制行车。对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:1两车道的车辆轮流放行时间相同,在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。2两条干道的红绿时间不能随时间的改变而修改。1.3 本课题研究内容及意义 随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计
5、算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。 第二章 系统总体的方案利用单片机中的定时器、IO接口、中断系统、8279、四位数码管等资源,设计一个十字路口交通信号灯的控制模拟系统。允许修改各状态下的通行时间,首先能利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭、四位数码管上显示倒计。并且可通过8279扫描键盘,按键对红绿灯点亮和熄灭时间、四位数码管上显示倒计时进行调整及设置以及能对红绿灯点
6、亮和熄灭时间进行倒计时时间显示,能根据交通流量自动调整对红绿灯点亮和熄灭时间。2.1 本实验设计的思路1)、利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭。2)、可通过按键对红绿灯点亮和熄灭时间进行调整及设置。3)、能对红绿灯点亮和熄灭时间进行倒计时时间显示。4)、可根据交通流量自动调整对红绿灯点亮和熄灭时间。 第三章 电路原理图与说明3.1电路图主要用到的硬件:P1口、P3口、LED数码管、LED发光二级管、定时器T0硬件分配: 1双色发光二极管表1. 双色发光二极管的控制在表1中是在反相器74LS240输入的电平信号呈现的颜色。双色发光二极管的控制真值表。对双色二极管的描述如下:
7、双色发光二极管内部将一个红色LED和一个绿色LED封装在一起。共用负端的一个集成发光二极管器件。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。实验中,采用4只双色发光二极管(DLED)分别模拟安装在东、西、南、北4个路口上的4只交通灯,每只双色发光二极管由74LS240反向驱动器驱动,74LS240输入控制端为R和G,分别控制DLED红灯和黄灯的工作。 2 双色灯与数码管显示的对应关系在十字路口,交通灯在工作过程中,行人希望看到自己所需等待的时间,那么交通灯就要和时间对应一致,那么我们设计对应的系统中双方对用关系如表2所
8、示:表2.交通灯与时间显示3 P1口:做为输出口,与发光二极管相连接,其状态及对应的十六进制值如下: 方向状态无南 北东 西十六进制值说 明P1.7 P1.6P1.5 P1.4 P1.3P1.2 P1.1 P1.000010000122H东西绿南北红10011001133H东西绿黄全亮2000011000CH东西红南北绿3000111101EH东西红黄全亮 4、P3口中的P3.0(RXD)和P3.1(TXD)作特殊用途,数据(倒计时时间)从RXD端输入,TXD端输出。 5、LED发光二极管用来显示灯亮情况。 6、定时/计数器T0用来产生1秒的定时 7Led显示器十位与p0相连接,个位与p2连接
9、用来显示时间,下面是LED显示接口及原理。 1 LED是发光二极管的英文缩写,LED显示器是由发光二极管构成的,它在单片机中的应用非常普遍。通常所说的LED显示器由7个发光二极管组成,其排列形状如图所示。此外,显示器中还有一个圆点型发光二极管以dp表示,用于小数点表示。通过七个发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。LED显示中的发光二极管共有两种连接方法: 2 共阳极接法:把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不亮。 3 共阴极接法:把发光二极管的阴极连在一起构成公共阴极。使用时公共
10、阴极接地。这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不亮。 4 控制数码管驱动级的控制电路有静态式和动态式两类: 5 静态驱动:它是指每个数码管都要用一个译码器译码驱动。 6 动态驱动:它是所的数码管使用一个专门的译码驱动器,使各位数码管逐个轮流显示,它的扫描速度极快,因此显示效果与静态驱动相同。 7 采用动态数码管显示,可以大幅度地降低硬件成本和电源的功耗,因为某一时刻只有一个数码管工作,就是所谓的分时显示,显示所需要的硬件电路可分时复用。表1 十六进制数字形代码表字型共阳极代码共阴极代码字型共阳极代码共阴极代码0C0H3FH990H6FH1F9H06HA88H77H2A
11、4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF8EH71H7F8H07H灭FFH00H880H7FH3.2仿真图上电后交通灯会按初始化设置好的时间运行,当重设时间后,交通灯就会按照重设好的时间进行工作。他的工作过程简单的表述为初始状态交通灯为全红,之后几秒变为东西绿、南北红,当显示时间为3秒时,南北闪烁,东西变红,当显示时间为零时停止闪烁同时南北变成绿色,待下次显示时间为3秒时东西闪烁,南北变红,3秒后停止闪烁同时东西变成绿色。3.3硬件图 黄灯亮3秒第四章 硬件设计4.1硬件框图 4.2 双色发光二极管表1. 双色
12、发光二极管的控制在表1中是在反相器74LS240输入的电平信号呈现的颜色。双色发光二极管的控制真值表。对双色二极管的描述如下:双色发光二极管内部将一个红色LED和一个绿色LED封装在一起。共用负端的一个集成发光二极管器件。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。实验中,采用4只双色发光二极管(DLED)分别模拟安装在东、西、南、北4个路口上的4只交通灯,每只双色发光二极管由74LS240反向驱动器驱动,74LS240输入控制端为R和G,分别控制DLED红灯和黄灯的工作。4.3 双色灯与数码管显示的对应关系在十字路口
13、,交通灯在工作过程中,行人希望看到自己所需等待的时间,那么交通灯就要和时间对应一致,那么我们设计对应的系统中双方对用关系如表2所示:表2.交通灯与时间显示4.4交通灯的状态1)交通灯的正常工作状态:交通灯在正常状态的工作初始设置的时间如表3所示:表3.交通灯的正常工作状态2)交通灯设置后工作状态为了适应当时十字路口的交通情况,设计一系列时间工作状态如表4.所示:表4.设置后的交通灯工作状态 第五章 软件设计 5.1主程序流程图人行道人行道人行道 人行道 1、 首先了解实际交通灯的变化情况和规律。假设一个十字路口如上图所以,为东南西北走向。初始状态0:为东西绿灯亮,南北红灯亮;然后转状态1:东西
14、绿灯亮黄灯亮,南北红灯亮黄灯亮;过后转状态2:东西红灯亮,南北绿灯亮;再转状态3:东西红灯亮黄灯亮,南北绿灯亮黄灯亮。一段时间后,又循环至状态0。中间可通过中断按钮产生中断,跳入中断程序执行中断。列出交通信号灯的状态表如下:(其中,1代表灯亮,0代表灯灭)状态北西南东绿黄红绿黄红绿黄红绿黄红0001100001100101111001111021000011000013110011110011 2、 对于交通信号灯来说,应该有东西南北共四组灯,但由于同一道上的两组的信号灯的显示情况是相同的,所以只要用两组就行了,因此,采用单片机内部的I/O口上的P1口中的6个引脚即可来控制6个信号灯。 3、
15、通过编写程序,实现对发光二极管的控制,来模拟交通信号灯的管理。每延时一段时间,灯的显示情况都会按交通灯的显示规律进行状态转换。 4、 通过延时时间送显,可以在原有的交通信号灯系统的基础上,增添其倒计时间的显示功能,实现其功能的扩展。 5、 通过脉冲中断编写中断程序,可实现中断。 5.2原程序清单及注解#include#define port1 P2sbit com=P0;sbit key1=P33;sbit green1=P10;sbit red1=P11;sbit yellow1=P12;sbit green2=P13;sbit red2=P14;sbit yellow2=P15;unsig
16、ned char flag=0;unsigned char mun=10;unsigned char fu=10;/*数码管段码*/Unsigned char code tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;void delay(void)int i=0,j=0;for(i=0;i=0;j-); /*定时器的初始化*/void init_timer0(void)TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;EA=1;TR0=1;EX1=1;IT1=1;
17、void display(unsigned char x)unsigned char m,n;m=x/10;n=x%10;P0=0X01;port1=tabm; /*数码管显示*/delay();P0=0X02;port1=tabn;delay();void init(void)P1=0x00;init_timer0();void main()init();while(1) /*交通灯交替的时间差*/dodisplay(mun);green1=1;red1=0;green2=0;red2=1;while(mun!=3);doif(mun=3)yellow1=1;yellow2=1; displ
18、ay(mun);while(mun!=0); if(mun=0)mun=fu;yellow1=0;yellow2=0; dodisplay(mun);green1=0;red1=1;green2=1;red2=0;while(mun!=3);doif(mun=3)yellow1=1;yellow2=1; ;display(mun);while(mun!=0);if(mun=0)mun=fu;yellow1=0;yellow2=0; /*定时器M0的定时*/void timer(void) interrupt 1 using 1TH0=(65536-50000)/256;TL0=(65536-5
19、0000)%256;flag+;if(flag=20)flag=0;mun-;/*外部中断,调节时间*/void outside_int(void) interrupt 2EX1=0;delay();if(key1=0)fu=fu+2;mun=fu;delay();EX1=1; 第六章 心得体会通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。使之不断地战胜别人,超越前
20、人。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。这个设计过程中,我们遇到过许多次失败的考验,就比如,自己对实际生活中的交通秩序的不了解给整个设计带来的困扰,真想要就此罢休,然而,就在想要放弃的那一刻,我们明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。于是,我们坚持了下来。当然最终,这个设计很成功,主要体现在,这一整个系统,几乎没有课本以外的参考书,程序由我们自己独立完成,制作的交通灯控制系统程序简单易读,结构清楚,最重要的
21、是成本低。在设计一个系统,除了达到所要求的性能指标以外,成本也是很重要的一个指标。成本的高低也决定了产品的适用性。 在这次课程设计的过程中,我得到了许多人的帮助。首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次项目的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把项目做得更加完善。在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计上的难题。同时也感谢学院为我提供良好的做毕业设计的环境。最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学 。 参考文献
22、 1 周立功,单片机应用设计基础M,北京航空航天大学出版社.2010,9(4):30-40. 2 周立功,新编计算机基础教程M,北京航空航天大学出版社2010 3(日)铃木雅臣编著,周南生译,晶体管电路设计(上)M,科学出版社,2003年 4康华光主编,电子技术基础M,高等教育出版社,2007年11月 5张迎新等编著,单片机应用设计培训教程M,北京航空航天出版社,2008年1月 6张俊谟编著,单片机中级教程M,北京航空航天大学出版社,2001年6月 7何立民编著,单片机高级教程M,北京航空航天大学出版社,2001年6月 8胡汉才编著,单片机原理及系统设计M,清华大学出版社,2002年1月 9梁合庆编著,增强核闪存80C51教程M,电子工业出版社,2003年11月 10鲍小南主编,单片机基础M,浙江大学出版社,2002年9月 11李朝清编著,单片机原理及接口技术M,北京航空航天大学出版社,2008年12月 12李曼丽著,工程师与工程教育新论M,商务出版社,2010年9月 13胡汉章、叶香美主编,数字电子技术与实践M,垫子工业出版社,2009年4月 14猪饲国夫等编著,徐雅珍等译,数字系统设计M,科学出版社,2008年8月附录: