交通灯控制系统实训报告

  题:

二级学院:交通信息学院

    业:应用电子技术

指导教师:

    级:电子092

    名:

    号:

    绩:

     

前  言

随着社会经济的发展,人口快速的增多以及道路资源的有限性,交通控制系统的作用日益显得重要。自18世纪工业革命以来,工业发展带动整个交通运输的发展,从而催生了单独的交通控制学问与管理机构。

交通控制系统是近现代社会随着物流、出行等交通发展产生的一套独特的公共管理系统。要保证高效安全的交通秩序,除了制定一系列的交通规则,还必须通过一定的技术手段加以实现。现代人类科学技术,特别是电子科学技术的发展和成熟,能比较好地解决系统建立中软硬件方面要求的技术难题。目前,交通控制方面的研究能完全实现自动智能化,甚至将整个区域整合成一个统一的系统范围,还能根据正常时段以及特定突发时段的情况进行科学的自动调整。

交通控制系统通常可用数字电路搭建或使用专用集成电路,或用单片机系统构建。而单片机以其价格低,控制灵活,系统易于扩展等优势在日常生活及工业中控制中越来越受到人们的青睐。本项目结合电子线路课程的学习内容,用单片机系统设计一个红绿灯的控制系统。

本设计是采用STC89C52单片机控制的交通灯控制系统电路,设计系统主要由单片机系统、数码管显示、蜂鸣器、交通控制灯(LED)、按键电路等部分组成。系统具有基本的交通灯功能能遵循程序自动实现红绿灯的转换和延时,使得此系统能适应于现代交通控制系统。

本设计由硬件设计和软件设计两部分组成。硬件设计部分主要是由四部分组成,其中单片机控制系统采用STC89C52单片机控制,使系统较为简明;交通控制灯采用红、黄、绿三色灯,与基本的交通规则相适应;系统采用数码管显示,用以显示各个通道的时间;人行道上采用蜂鸣器提醒功能,通过改变蜂鸣器每秒响的次数提醒行人(特别是提醒盲人)是否可以通过,以此为据实现交通系统基本功能以及对系统的控制。软件部分主要根据交通系统各个方向的具体情况设计,保证其驱动单片机系统对系统各个部分进行控制,以实现交通控制功能。

通过对交通控制系统各个部分的设计,运用Keil uVision4软件对所编程序进行编译,运用PROTEUS软件实现系统仿真。通过仿真系统进行仿真,本设计可以实现其基本功能,最终实物作品也成功实现其功能,达到预计效果。

1.1、交通控制技术的发展历史

1.2、交通灯控制系统的现实意义

1.3、本项目交通灯控制系统的设计思想及功能实现

1)本系统的工作流程

2)通行时间的设置

3)通行状态设置

4)倒计时显示

5)人行道声音提示功能

二、系统硬件电路的设计 ……………………………………………………………9

2.1、单片机控制交通灯系统模块

2.2、STC89C52单片机芯片模块

2.3、数码管显示模块

2.4、信号灯与蜂鸣器电路

2.5、单片机最小外围电路

2.6、按键设置部分

三、系统软件的设计…………………………………………………………………12

3.1、系统程序流程图

3.2、主函数程序

3.3、延时函数程序

3.4、显示中断控制程序

四、系统电源电路……………………………………………………………………17

五、交通灯系统设计总结、体会……………………………………………………17

六、参考文献…………………………………………………………………………18

七、附录………………………………………………………………………………18

7.1、附表1

7.2、附图一

7.2、附图二

一、概述

1.1、交通控制技术的发展历史

 当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。

1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。

电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。

1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。

从1868年英国伦敦首次使用燃汽色灯信号以来,城市交通信号机由手动到自

动,交通信号由固定周期到可变周期,系统控制方式由点控到面控,从无车辆检测器到有车辆检测器,经历了近百年的历史。到1963年加拿大多伦多市建立了一套使用IBM650型计算的集中协调感应控制信号系统,从而标志着城市道路交通信号系统的发展进入了一个新的阶段。各个时期典型交通信号系统得特征如后面附表1所示。之后,美国、英国、德国、日本、澳大利亚等多家相继建成数字电子计算机区域交通控制系统,这种系统一般还配备交通监视系统组成交通管制中心。到80年代初,全世界建有交通管制中心的城市有300多个,代表了未来交通控制的发展方向。

信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。

在西方发达国家,交通控制系统基本上完成了由传统的交通控制系统向智能交通控制系统ITS的转变,而在我国,智能交通系统则刚刚处于起步阶段。对于传统的交通控制系统而言,对红绿灯一般采用定时控制,无法对实际的交通流进行识别优化,以至于不能适应交通量的不确定性和随机性的原因,往往造成交通资源的浪费和道路的梗阻。而智能交通控制系统则在不产生大的硬件改动的情况下有效的提高效率。

ITS:Intelligent Transport systems。这一国际性术语于1994年被正式认定。在此之前,美国称这类技术或相关研究项目为“智能车辆道路系统(IVHS)”(Intelligent VelIiele Highway System)。日本将这类技术称为UTMS、VICS等:欧盟则称之为“道路交通信息技术(RTI)”。国际标准化组织(ISO)为ITS设立的专项叫ISO/TC.204,使用的术语是“1rICS(交通运输信息与控制系统)”。

智能交通系统强调的是系统性、信息交流的交互性以及服务的广泛性,其核心技术是电子技术、信息技术、通信技术、交通工程和系统工程。智能交通系统ITS是在较完善的道路设施基础上,将先进的电子技术、信息技术、传感器技术和系统工程技术集成运用于地面交通管理所建立的一种实时、准确、高效、大范围、全方位发挥作用的交通运输管理系统。

在国内,受客观条件的制约,ITS起步比较晚,在20世纪90年代初,我国的相关学者开始意识到研究和开发ITS的重要性。到90年代中期,由于受到国外ITS研发的影响,政府部门也开始重视对ITS的研究,随后,又得到中央部门和部分地方政府的支持。

1999年,我国成立了全国智能交通系统(ITS)协调指导小组及办公室,同年,

又成立了全国智能交通运输系统(ITS)专家咨询委员会,其中,同济大学、清华大学、北方交通大学、北京航空航天大学、吉林工业大学、东南大学等高校的有关专家为咨询委员,并启动了国家“九五”科技攻关课题和国家“十五”科技攻关课题。目前,在对一些大中型城市引入的国外ITS进行研究的基础上已经逐渐开始摸索开发设计适合自己国情的ITS系统。

1.2、交通灯控制系统的现实意义

城市道路交通自动控制系统的发展是以城市交通信号控制技术为前导,与汽车工业并行发展的。在其各个发展阶段,由于交通的各种矛盾不断出现,人们总是尽可能地把各个历史阶段当时的最新科技成果应用到交通自动控制中来,从而促进了交通自动控制技术的不断发展。

早在1850年,城市交叉口处不断增长的交通就引发了人们对安全和拥堵的关注。世界上第一台交通自动信号灯的诞生,拉开了城市交通控制的序幕,1868年,英国工程师纳伊特在伦敦威斯特敏斯特街口安装了一台红绿两色的煤气照明灯,用来控制交叉路口马车的通行,但一次煤气爆炸事故致使这种交通信号灯几乎销声匿迹了近半个世纪。1914年及稍晚一些时候,美国的克利夫兰、纽约和芝加哥才重新出现了交通信号灯,它们采用电力驱动,与现在意义上的信号灯已经相差无几。1926年英国人第一次安装和使用自动化的控制器来控制交通信号灯,这是城市交通自动控制的起点。

早期的交通信号灯使用“固定配时”方式实行自动控制,这种方式对于早期交通流量不大的情况曾起过一定的作用。但随着汽车工业的发展、交通流量增加、随机变化增强,采用以往那种单一模式的“固定配时”方式已不能满足客观需要,于是一种多时段多方案的信号控制器开始出现并逐步取代了传统的只有一种控制方案的控制器。

 20世纪30年代初,美国最早开始用车辆感应式信号控制器,之后是英国,当时使用的车辆检测器是气动橡皮管检测器。车辆感应控制器的特点是它能根据检测器测量的交通流量来调整绿灯时间的长短,使绿灯时间更有效地被利用,减少车辆在交叉口的时间延误,比定时控制方式有更大的灵活性。车辆感应控制的这一特点刺激了车辆检测器技术的发展。继气动橡皮管式检测器之后,雷达、超声波、光电、地磁、电磁、微波、红外以及环形线圈等检测器相继问世。当今在城市道路交通自动控制、交通监测和交通数据采集系统中,应用最广的是环形线圈车辆检测器。超声波检测器主要在日本等少数国家得到广泛应用。

计算机技术的出现为交通控制技术的发展注入了新的活力,更是实现了以一个城市或者更大地域,而非简单的一个路口的交通总体控制系统。1952年,美国科罗拉多州丹佛市首次利用模拟计算机和交通检测器实现了对交通信号机网的配时方案自动选择式信号灯控制,而加拿大多伦多市于1964年完成了计算机控制信号灯的实用化,建立了一套由IBM650型计算机控制的交通信号协调控制系统,成为世界上第一个具有电子数字计算机城市交通控制系统的城市。这是道路交通控制技术发展的里程碑。

可以说,在近百年的发展中,道路交通信号控制系统经历了手动到自动,从固定配时到灵活配时,从无感应控制到有感应控制,从单点控制到干线控制,从区域控制到网络控制的长远过程。

交通控制研究的发展,旨在解决人类交通因需求的增多而日益繁重带来的问题,局限于道路建设的暂时不足和交通工具的快速增长,就要使更多的车辆安全高效的利用有限的道路资源,避免因无序和抢行等无控制原因造成的不必要阻塞甚至瘫痪,另外,针对整个交通线路车辆的多少实时调整和转移多条线路的分流也十分必要。

交通网络是城市的动脉,象征着一个城市的工业文明水平。交通关系着人们对于财产,安全和时间相关的利益。具有优良科学的交通控制技术对资源物流和人们出行都是十分有价值的,保证交通线路的畅通安全,才能保证出行舒畅,物流准时到位,甚至是生命通道的延伸。

1.3、本项目交通灯控制系统的设计思想及功能实现

    设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。

1)本系统的工作流程

系统启动后,系统按程序给定的时间工作,即东西向通行20秒,南北向通行25秒,黄灯亮5秒。首先东西向通行,然后南北向通行,如此循环,工作模式如表1所示。

表1:系统初始工作模式(可设置改变任意时间)

2)通行时间的设置

    当需要更改主、次干道的通行时间时,可以用设置键、增加键、减少键”进行设置,设置时间范围为0s~99s。

    第一次按“设置键”时,东西向的绿灯亮,东西向的LED数码管显示当前东西向的通行时间,并且按每秒3次的频率闪烁(每秒钟亮3次暗3次),其余的信号指示灯和南北向的LED数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向的通行时间,每按一次键,数码管的显示时间增加1秒或减少1秒,长按键(按下的时间超过1秒钟以上),则数码管显示的时间按每秒钟增加或减少10的速度快速变化。

    第二次按“设置键”时,东西向的黄灯亮,东西向的数码管显示当前东西向黄灯的点亮时间,并且按每秒3次的频率闪烁,其余的信号指示灯和南北向的数码管熄灭,此时可以用“增加键”和“减少键”来改变东西向黄灯的点亮时间。

    第三次按“设置键”时,南北向的绿灯亮,南北向的数码管显示当前南北向绿灯的通行时间,并且按每秒3次的频率闪烁,其余的信号指示灯和东西向的数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向绿灯的通行时间。

    第四次按“设置键”时,南北向的黄灯亮,南北向的数码管显示当前南北向黄灯的点亮时间,并且按每秒3次的频率闪烁,其余的信号指示灯和东西向的数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向黄灯的点亮时间。

第五次按“设置键”时,系统退出设置状态,回到交通信号灯状态,并且东西向先通行,南北向后通行

3)通行状态设置

遇到紧急情况时,按下紧急键,系统全亮红灯,数码管显示“88”。道路不可通行,紧急车辆可以通过,也可处理一些紧急突发问题等。再按下紧急键,恢复原来状态,或者按下复位键,恢复初始状态。

4)倒计时显示

倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。驾驶员和行人普遍都愿意选择有倒计时显示的信号控制方式,并且认为有倒计时显示的路口更安全。倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的1种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择 。

5)人行道声音提示功能

人行道上采用蜂鸣器提醒功能,通过改变蜂鸣器每秒响的次数提醒行人(特别是提醒盲人)是否可以通过。当蜂鸣器每秒响两次说明人行道亮绿灯,行人可以通过;当蜂鸣器每秒响三次说明人行道通行时间快到了,走到一半的行人得快点通过,还没走的人就不能通过了;当蜂鸣器不响时,说明人行道亮红灯,行人不可以通过。

二、系统硬件电路的设计

2.1、单片机控制交通灯系统模块

交通灯控制系统实训报告

2.2、STC89C52单片机芯片模块

    STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,本设计中STC89C52使用12MHz晶振。

XTAL1(19脚)和XTAL2(18脚):外接晶体引脚,XTAL1和XTAL2分别接外部晶振一端;RST:即为RESET,该引脚为单片机的上电复位或掉电保护端。在此设计中使用上电复位模式;P3.7:使用第二功能,接强制紧急停止按扭;P3.6:使用第二功能,接设置秒数减少按扭;P3.5:使用第二功能,接设置秒数增加按扭;P3.4:使用第二功能,接秒数设置键按扭;P0.0~P0.6:接南北数码管的段码,用来控制南北数码管的显示;P2.0~P2.6:接东西数码管的段码,用来控制东西数码管的显示;P3.0、P3.1:接南北数码管的片选;P3.2、P3.3接东西数码管的片选;P1.0、P1.1、P1.2:输出高低电平,用来控制东西交通信号灯;P1.3、P1.4、P1.5:输出高低电平,用来控制南北交通信号灯;P1.6:控制南北人行道绿灯;P1.7:控制东西人行道绿灯;P0.7:控制南北人行道蜂鸣器;P2.7:控制东西人行道蜂鸣器;第40脚为电源端VCC,接+5V电源,第20引脚为接地端VSS。

2.3、数码管显示模块

1)本项目采用的数码管是两位八段共阳数码管,如下图所示:

2)共阳数码管驱动代码表(七段码):

3)数码管电路:

本项目采用二位共阳数码管倒计时显示提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。在本项目中,数码管驱动电路采用NPN三极管8050放大电路。在数码管的段码接口采用串联200欧姆电阻限流。数码管能正常发光,达到预计效果。电路图如下图所示:

 

数码管驱动电路图

2.4、信号灯与蜂鸣器电路

    本项目中信号灯采用红黄绿三种颜色的LED灯,LED灯的负极与一个330Ω的电阻串联,然后连接到单片机芯片,LED灯正极接到电源上。当IO口输出低电平时,相应的信号灯就亮。

    交通灯系统人行道部分还采用蜂鸣器报警提示功能,蜂鸣器采用三极管8050驱动IO口输出高电平时蜂鸣器发出响声,IO口输出低电平时蜂鸣器不响。

2.5、单片机最小外围电路

1)时钟部分电路

单片机最小外围电路

时钟电路用于产生MCS-51单片机工作时所必须的时钟控制信号。其内部电路在时钟信号控制下,严格地按时序执行指令进行工作。在执行指令时,CPU首先要到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定操作。                                  

本设计采用12MHz晶振和两个30PF瓷片电容,他们构成一个稳定的自激振荡器。该电容的大小影响振荡器频率的高低、振荡器的稳定性和起振的快速性。为单片机提供标准时钟。其中两个瓷片电容起微调作用。

2)复位部分电路

复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。

本设计采用加电直接复位,复位电容采用10uF,电阻1KΩ,采用上电加按键模式。加电瞬间,RES管脚为高电平。电容通过回路放电,使电压逐渐降为零,RES管脚为低电平,从而实现了复位功能。当按键按下瞬间,RES管脚为低电平,电容放完电后,RES管脚为高电平,从而实现按键复位。

2.6、按键设置部分

按键设置电路部分很简单,通过按键将单片机IO口与地线连接起来即可,通过改变IO口的电平实现设置功能。

三、系统软件的设计

3.1、系统程序流程图

交通灯控制系统实训报告

3.2、主函数程序

void main(void)

{

    TMOD = 0x02;      //设置定时器0为工作方式2

    TH0 = 0x06;      

    TL0 = 0x06;       //初始化8位定时器 (256 - 6)*40000 = 1s

    EA = 1;            //总中断允许

    ET0 = 1;           //T0中断允许

    TR0 = 1;           //打开T0中断

    P1 = 0x5e;         //东西向绿灯,南北向红灯        

    P3_4 = 1;     

    scdEW = greenEW;  //设置东西向显示秒数        

    scdSN = greenEW + yellowEW + 1;     //设置南北向显示秒数

    while(1)

    {     

            if(P3_4 == 0)

        {

            delay_ms(15);

            if(P3_4 == 0)

            {

                setSecond();  //设置红绿黄灯秒数

            }

        }

        else if(P3_5 == 0)

        {

            delay_ms(15);

            if(P3_5 == 0)

            {

                addSecond(); 

            }

        }

        else if(P3_6 == 0)

        {

            delay_ms(15);

            if(P3_6 == 0)

            {

                subSecond(); 

            }

        }

        keyMemory = 200; //给keyMemory任意赋值,防止长按加10或减10后不能正常加减

    }

}

3.3、延时函数程序

void delay_ms(unsigned int a)

{  

    int i;

    while(a--)

    {

        i = 1;        

        while(i--);

    }

}

3.4、显示中断控制程序

void t0(void) interrupt 1

{

        cnt_ctr++;

        if(cntP3_4 == 0) 

        {

            display(); //正常显示秒数

        }

        if(cntP3_4 != 0)

        {

            dspFlash();   //闪烁显示秒数

        }

        if(cnt_num == 4000)

        {

          cnt_num = 0;

            if(scdEW-- == 0)

            {

                cntEW++;   //东西向秒数减至0,标志位加1

             }

           if(scdSN-- == 0)

            {

                cntSN++;   //南北向秒数减至0,标志位加1

              }

       }

        switch(cntEW)

        {

       case 0:             

            if(cnt_num<2000)

            {

            P2_7 = 0;

            }

            if(cnt_num>=2000 & cnt_num<=4000)

            {

            P2_7 = 1;

            }                          

            break;

            case 1:

            scdEW = yellowEW; //东西向黄灯亮,显示黄灯秒数

            P1_0 = 1;

            P1_1 = 0;

            P1_2 = 1;

            cntEW++;       //避免程序到此阻塞,故将其至为2

            break;

        case 2:              

            if(cnt_num<1000 | (cnt_num>2000 & cnt_num<3000))

            {

            P1_7 = 0;

            P2_7 = 0;

            }

        if(cnt_num>=1000 & cnt_num<=2000|(cnt_num>=3000&cnt_num<=4000))

            {

            P1_7 = 1;

            P2_7 = 1;

            }              

            break;

        case 3:        //避免cntEW为2

            scdEW = greenSN + yellowSN + 1; //东西向红灯亮,显示红灯秒数

            P1_0 = 1;

            P1_1 = 1;

            P1_2 = 0;

            P1_7 = 1;         //人行道绿灯

            cntEW++;   //避免程序到此阻塞,故将其至为4

            break;

        case 5:        //避免cntEW为4

            scdEW = greenEW;  //东西向绿灯亮,显示绿灯秒数            

            P1_0 = 0;

            P1_1 = 1;

            P1_2 = 1;

            P1_7 = 0;         //人行道绿灯

            cntEW= 0; 

            break;

        }

   

        switch(cntSN)

        {

        case 1:

            scdSN = greenSN;  //南北向绿灯亮,显示绿灯秒数

            P1_3 = 0;

            P1_4 = 1;

            P1_5 = 1;

            P1_6 = 0;          //人行道绿灯

            cntSN++;   //避免程序到此阻塞,故将其至为2

            break;

        case 2:              

            if(cnt_num<2000)

            {

            P0_7 = 0;

            }

            if(cnt_num>=2000 & cnt_num<=4000)

            {

            P0_7 = 1;

            }                          

            break;

        case 3:        //避免cntSN为2

            scdSN = yellowSN; //南北向黄灯亮,显示黄灯秒数

            P1_3 = 1;

            P1_4 = 0;

            P1_5 = 1;        

            cntSN++;   //避免程序到此阻塞,故将其至为4

            break;

        case 4:              

            if(cnt_num<1000 || (cnt_num>2000 && cnt_num<3000))

            {

            P1_6 = 0;

            P0_7 = 0;

            }

    if(cnt_num>=1000&&cnt_num<=2000||(cnt_num>=3000&&cnt_num<=4000))

            {

            P1_6 = 1;

            P0_7 = 1;

            }        //人行道绿灯

            break;

        case 5:        //避免cntSN为4

            scdSN = greenEW + yellowEW + 1; //南北向红灯亮,显示红灯秒数

            P1_3 = 1;

            P1_4 = 1;

            P1_5 = 0;

            P1_6 = 1;      //人行道绿灯

            cntSN = 0;

            break;

        }

        if(P3_5 == 0)

        {

            if(cnt_key++ == 4000)

            {

                add_10s(); //长按数码管加10秒

            }

        }

        if(P3_6 == 0)

        {

            if(cnt_key++ == 4000)

            {

                sub_10s(); //长按数码管减10秒

            }

        }

        disEW[0] = scdEW/10;

        disEW[1] = scdEW%10;

        disSN[0] = scdSN/10;

        disSN[1] = scdSN%10;

}

四、系统电源电路

 电源电路采用变压器与稳压芯片7805输出5V直流电压,元件及其参数见下图:

                            电源电路

五、交通灯系统设计总结、体会

做为我们三年来最后的一次作品,这次课程设计经过接近一个学期的努力与尝试,终于完成了。从一开始的项目选择、分析到查资料、整理资料到硬件设计,再到编程,仿真测试,直至最后的外形设计与包装,一路充满了刻苦与艰辛,其间充满了挫折可是同时又伴随着欢乐。

做为最后一步外形包装的全力负责人,对我们作品的外形还是很满意的,但令我感触最深的还是我们团队的合作精神,从选择方案到作品完成,我们讨论着,发表自己的见解。虽然其中有一些不同的意见,但是我们坚持实践第一,理论引导实践,检测方案的可行性,最终确定方案。在软件方面,由于我的单片机C不是学得很好,所以我把《C语言程序设计案例教程》与《单片机原理与应用技术》这两本书仔细的看了一下,弄懂了一些以前一知半解的东西,进一步加强和巩固了我的理论知识。

在设计过程中,我们也遇到了很多问题,如驱动电路的选择,要带动整个系统工作,在电压一定的情况下,某些地方需要比较大的电流输出,某些地方的电流又不需要太大,这就需要我们对实际应用情况的把握。在硬件电路制作过程中,由于有些元件是同学帮我们买的,结果他将数码管的极性买错了,而且还买了不同型号、电压的数码管。我们在焊接前测试时才发现,我们及时调整硬件电路及软件程序。最终作品还是达到原来预想效果。

在此次课程设计过程中,我们把单片机的理论知识用于实践中,使理论与实践相结合,使我们的理论知识的到了巩固,在查资料翻阅资料的过程中也丰富了我们的知识跟阅历。

六、参考文献

【1】蔡大华主编,模拟电子技术基础,清华大学出版社

【2】黄永定主编,电子线路实验与课程设计,机械工业大学出版社

【3】刘兆宏、温荷,毛丽娟等编著,C语言程序设计案例教程,清华大学出版社

【4】陈贵银、祝福主编,单片机原理及接口技术,电子工业大学出版社

【5】唐继贤编著,51单片机工程应用实例,北京航空航天大学出版社

【6】曹建树、夏云生、曾林春编著,中国石化出版社

七、附录

7.1附表1

交通信号系统发展状况

7.2、附图一

整体电路系统

7.3、附图二

       作品最终效果图

相关推荐