基于单片机AT89C52控制的交通灯附带程序_第1页
基于单片机AT89C52控制的交通灯附带程序_第2页
基于单片机AT89C52控制的交通灯附带程序_第3页
基于单片机AT89C52控制的交通灯附带程序_第4页
基于单片机AT89C52控制的交通灯附带程序_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-. z.学 号:2009 学院机械工程学院课程设计题目基于AT89C52单片机的交通灯控制系统设计专业机械电子工程班级*指导教师20*年12月*日课程设计任务书*1*班级 *课程名称单片机课程设计课程性质必修设计时间2012年12月16日2012年 12 月 30日设计名称基于AT89C52单片机的交通灯控制系统设计设计要求用AT89C52单片机控制一个交通信号灯系统,晶振采用12MHz。设A车道与B车道穿插组成十字路口,A是主道,B是支道。设计要求如下:用发光二极管模拟交通信号灯,用按键开关模拟车辆检测信号;正常情况下,A、B两车道轮流放行,A车道放行50s,其中5s用于警告;B车道放行3

2、0s,其中5s用于警告;在交通繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯的状态,以缓解交通拥挤状况。在B车道放行期间,假设A车道有车而B车道无车,按下开关K1使A车道放行15s;在A车道放行期间,假设B车道有车而A车道无车,按下开关K2使B车道放行15s;有紧急车辆通过时,按下K3开关使A、B车道均为红灯,禁行20s。完成系统电路设计;完成系统软件设计;完成系统Proteus下的仿真。8完成课程设计报告。 方案与进度时间:二周方案设计 2天电路设计 2天软件设计 3天 软、硬件联调 2天 系统仿真 2天辩论 1天完成报告 2天任课教师意 见年月日教研室主任签 名年月日说明平时考

3、勤:20% 设计:30% 仿真:20% 辩论:10%设计报告:20% 共计100分。-. z.目录 TOC o 1-3 h z u HYPERLINK l _Toc312180884目录 PAGEREF _Toc312180884 h IIHYPERLINK l _Toc312180885第一章绪论 PAGEREF _Toc312180885 h 1HYPERLINK l _Toc3121808861.1交通灯设计的意义 PAGEREF _Toc312180886 h 1HYPERLINK l _Toc3121808871.2交通灯设计的思想 PAGEREF _Toc312180887 h 1

4、HYPERLINK l _Toc3121808881.3交通灯设计满足的根本功能 PAGEREF _Toc312180888 h 2HYPERLINK l _Toc312180889第二章总体方案 PAGEREF _Toc312180889 h 3HYPERLINK l _Toc3121808902.1总体方案设计思想 PAGEREF _Toc312180890 h 3HYPERLINK l _Toc3121808912.2系统方案选择与比拟 PAGEREF _Toc312180891 h 3HYPERLINK l _Toc3121808922.3系统总体方案论证 PAGEREF _Toc31

5、2180892 h 5HYPERLINK l _Toc312180893第三章硬件设计 PAGEREF _Toc312180893 h 6HYPERLINK l _Toc3121808943.1 总体设计与描述 PAGEREF _Toc312180894 h 6HYPERLINK l _Toc3121808953.2 交通灯通行模式及行车方向指示 PAGEREF _Toc312180895 h 6HYPERLINK l _Toc3121808963.3 主干道单独时间设置功能 PAGEREF _Toc312180896 h 8HYPERLINK l _Toc3121808973.4 倒计时计数

6、功能及其实现 PAGEREF _Toc312180897 h 8HYPERLINK l _Toc3121808983.5 各功能模块硬件设计及实现 PAGEREF _Toc312180898 h 9HYPERLINK l _Toc312180899第四章软件设计 PAGEREF _Toc312180899 h 12HYPERLINK l _Toc3121809004.1 软件总体流程图 PAGEREF _Toc312180900 h 12HYPERLINK l _Toc3121809014.2 定时器初始化 PAGEREF _Toc312180901 h 12HYPERLINK l _Toc3

7、121809024.3 动态显示 PAGEREF _Toc312180902 h 13HYPERLINK l _Toc3121809034.4 设置状态子程序 PAGEREF _Toc312180903 h 14HYPERLINK l _Toc312180904第五章系统调试 PAGEREF _Toc312180904 h 15HYPERLINK l _Toc3121809055.1 系统操作说明 PAGEREF _Toc312180905 h 15HYPERLINK l _Toc3121809065.2 调试 PAGEREF _Toc312180906 h 15HYPERLINK l _To

8、c3121809075.3 调试心得 PAGEREF _Toc312180907 h 19HYPERLINK l _Toc312180908第六章设计总结 PAGEREF _Toc312180908 h 21HYPERLINK l _Toc312180910参考资料 PAGEREF _Toc312180910 h 22HYPERLINK l _Toc312180911附录 PAGEREF _Toc312180911 h 23HYPERLINK l _Toc312180912原理图23HYPERLINK l _Toc312180913原程序 PAGEREF _Toc312180913 h 24-

9、. z.第一章 绪论1.1交通灯设计的意义交通的兴旺,标志着城市的兴旺,相对交通的管理则显得越来越重要。交通灯是城市交通中的重要指挥系统,它与人们日常生活密切相关随着人们生活水平的提高,对交通管制也提出了更高的要求,因此提供一个可靠、平安、便捷的多功能交通灯控制系统有着现实的必要性。对于复杂的城市交通系统,为了确保平安,保证正常的交通秩序,十字路口的信号控制必需按照一定的规律变化,以便于车辆行人能顺利地通过十字路口。单片机自问世以来,性能不断提高和完善,其资源又能满足很多场合的应用,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、性能可靠、价格低廉,其易于产品化、抗干扰能力强

10、、可在各种恶劣环境下可靠的工作等特点。特别是它强大的面向控制能力,使它在工业控制领域,智能仪表、外设控制、家用电器、机器人、军事装置等方面得到了广泛的应用。考虑到单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点,拟采用MCS - 51系列的单片机来实现十字路口交通信号灯的控制。 正常情况下,十字路口的红绿灯应交替变换,考虑紧急情况下,如有救护车或警车到来时,应优先让其通过。另外,单片机课程设计是应用电子专业学生的必修课程。通过交通灯模拟系统的设计可以进一步认识单片机在控制系统中的重要性。在完成理论学习和必要的实验后,掌握了单片机的根本原理和各种根本功能的应用,但对单片机的硬件实际应用设

11、计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进展一次课程设计是有必要的。交通灯模拟系统的课程设计既让学生稳固了课本学到的理论,还让学生学习了单片机硬件电路设计和用户程序设计的整个过程,同时学习了查阅资料、参考资料的方法。单片机的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试用户程序,来加深对单片机的认识,充分发挥学生的创新能力。1.2交通灯设计的思想该设计在熟练掌握单片机及其仿真系统的使用方法根底上,综合应用单片机原理、单片机应用技术等课程方面的知识,设计一个采用AT89C52单片机控制的交通灯控制电路。根据设计功能及要求,我们可得系统的原

12、理框图如下图。图1-1系统原理框图根据系统的原理框图,分别分析各局部电路的元器件的功能以及选择适宜的元件。具体设计思路如下:收集并整理资料,硬件设计,软件设计,Proteus仿真,设计体会与总结。1.3交通灯设计满足的根本功能1、南北方向主干道车道和东西方向次干道车道两条穿插道路上的车辆交替运行,主干道每次通行时间都设为20秒、支干道每次通行间为20秒,时间可设置修改。2、在绿灯转为红灯时,要求黄灯先亮3秒钟,才能变换运行车道;3、黄灯亮时,要求每秒闪亮一次4、东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进展显示采用计时的方法。5、一道有车而另一道无车,交通灯控制

13、系统能立即让有车道放行。-. z.第二章 总体方案2.1总体方案设计思想根据传统十字路口交通灯的设计,可将本系统分为四个模块,第一个模块是控制模块,主要负责整个系统工作的控制和运算,从而使各模块正常工作;第二个模块为显示模块,主要是对车辆和行人应该遵守交通规则的指导性的直观显示,它主要包括倒计时显示和红、绿、黄灯两大局部;第三个模块是输入模块,它的主要作用是辅助控制模块,相当于输入装置,利用它可以对交通灯各路口通行时间的设置以及出现紧急情况时,进展不同工作方式的切换设置;第四个模块是电源模块,它是整个系统的心脏,负责给各模块提供适宜的电压,让各模块能稳定工作。其系统设计构造如图2-1所示:图2

14、-1系统设计构造图2.2系统方案选择与比拟2.2.1控制模块方案选择方案一:由计数器74LS161级联组成,配合译码器和秒脉冲信号发生器等器件组成交通灯系统,整个系统简单,控制简单,调试容易等优点。 方案二:采用ATC公司的单片机ATC89C52作为控制器。单片机运算能力强,软件编程灵活,自由度大。它是MCS-51系列单片机的派生产品,在指令系统、硬件构造和片内资源上与标准8052单片机完全兼容,使用时容易掌握;采用ATC89C52单片机稳定可靠、应用广泛、通用性强,在系统/在应用可编程。方案比拟:采用方案一来实现十字路口交通灯控制系统非常方便,电路构造简单,控制单一,但整个系统性能不是很高,

15、倒计时不是非常准确,如果要求系统能设置不同工作时间不容易,因而对于完成题目较困难,而方案二完全能实现设计要求,容易掌握,利用编程,易控制,I/O接口很多,易于扩展外围电路,价格廉价,应选择方案二。2.2.2显示模块方案选择该系统要求完成倒计时、状态灯等功能。基于上述原因,考虑了三种方案。方案一:完全采用数码管显示。这种方案只显示有限的符号和数码字苻,无法胜任题目要求。方案二:完全采用点阵式LED 显示。这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。方案三:用七段LED数码管完成倒计时显示,用LED灯作为状态灯指示功能。方案比拟:方案一和方案二都不

16、符合设计要求,实现较复杂,而方案三采用数码管与LED灯相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,选择方案三。2.2.3输入模块方案选择方案一:采用8155扩展I/O 口及键盘,显示等。该方案的优点是:使用灵活可编程,并且有RAM,及计数器。假设用该方案,可提供较多I/O 口,但操作起来稍显复杂。方案二: 直接在IO口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的口资源还比拟多,我们使用三个按键,分别是SET_KEY、UP_KEY、

17、DOWN_KEY。由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用,应选择方案二。2.2.4电源模块方案选择方案一:采用单片机控制模块提供电源。该方案的优点是系统简明扼要,节约本钱;缺点是输出功率不高,不能驱动数码管。方案二:采用独立的稳压电源,采用开关电源作为整个系统的供电,它具有多路电源输出,此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源。方案比拟:方案一只采用单片机自身的I/O来驱动数码管显示是不行的,而方案二虽然要给各模块供电,但却能给各模块提供稳定可靠的电压从而到达显示明亮的程度。应选择第二种方案。2

18、.3系统总体方案论证经上述各模块的方案选择与论证,十字路口交通灯控制系统的控制芯片选用单片机AT89C52作为整个系统的核心控制器件,主要负责整个系统工作的控制和运算,从而使各模块正常工作;采用七段LED数码管和LED灯作为显示器件,用七段LED数码管完成倒计时显示,用LED灯作为状态灯指示功能;用触发按键构成系统的输入局部,它可以对系统进展状态设置,结合数码管,可根据交通情况对整个系统进展直观的控制;以开关电源作为系统电源局部,它有+12V、-12V、+5V、-5V电压输出,可方便对各个模块供电。系统设计方框总图如图2-2:图2-2系统设计方框总图-. z.第三章 硬件设计硬件设计是整个系统

19、的根底,要考虑的方方面面很多,除了实现交通灯根本功能以外,主要还要考虑如下几个因素:系统稳定度;器件的通用性或易选购性; 软件编程的易实现性;系统其它功能及性能指标;因此硬件设计至关重要。现从各功能模块的实现逐个进展分析探讨。3.1 总体设计与描述本设计以单片机AT89S52为控制核心,采用模块化设计,共分以下几个功能模块:单片机控制系统、键盘及状态显示、行车方向指示和倒计时模块等。 单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。它由单片机、时钟电路、复位电路等组成。行车方向指示采用红、绿、黄、蓝表示向左转LED发光管,用四种颜色指示车辆放行、暂停、制止,形象直观。

20、键盘及状态显示,键盘采用三只触发按键组成,电路简洁可靠;显示器采用七段LCD数码管,可实时显示系统运行状态,可供交警在室内实时监视交通状况。通过键盘可设置:紧急情况发生时的交通灯状态控制、主干道通行时间等。系统采用双数码管倒计时计数功能,最大显示数字不超过80。交通灯模拟仿真如图3-1所示:图3-1交通灯模拟仿真图3.2 交通灯通行模式及行车方向指示按交通灯控制规则,每个街口有转弯、直行及行人三种指示灯。主要指示灯有红、绿、黄三种颜色,但我在其中修改了一下,加进一个蓝灯。交道口模型如图3-2所示:图3-2交道口模型图2组LED数码管按照设置的通行时间各路口默认的通行时间均为20秒进展倒计时,并

21、各自进展显示,共有四种通行状态,分别为:图3-3 通行状态一示意图图3-4 通行状态二示意图图3-5 通行状态三示意图图3-6 通行状态四示意图直行默认时间为20秒,转弯默认时间为20秒,系统设置了任意更改功能,可以根据实际情况进展倒计时调整,以提高车辆通过率,缓减交通压力。在直行状态变为转弯状态时黄灯倒计时3秒后转弯。本设计选用一只绿色、一只蓝色LED发光管来指示转弯、直行等交通指示信息。绿灯亮表示直行,蓝灯亮表示允许转弯行驶,红色则表示制止通行。所有指示信息一目了然。3.3 主干道单独时间设置功能当主干道方向的车辆过多发生堵塞,正常的信号灯时序将会使交通状况更加恶化。本设计添加了主次干道单

22、独时间设置功能,交警可按需求设置绿灯的点亮时间,该措施可在一定程度缓减短暂的交通压力。三个按键如图3-7所示:图3-7按键功能3.4 倒计时计数功能及其实现本系统使用数码管完成倒计时显示功能。以南北方向为例,数码管显示的数值从绿灯的设置时间最大值往下减,每秒钟减1,一直减到0。然后又从红灯的设置时间最大值往下减,一直减到0。接下来又显示绿灯时间,如此循环。系统共有2个两位的LED数码管,分别放置在模拟交通灯控制板上的南北、东西路口。因为对应的两个方向应该显示同样的内容,所以可以把它们同样对待。也就是说各个方向的数码管个位把数码管第二位定义为个位,第一位定义为十位用一根信号线控制,十位用另一根信

23、号线控制。3.5 各功能模块硬件设计及实现3.5.1单片机控制模块设计单片微机简称为单片机。它在一块芯片上集中成了中央处理单元CPU、随机存储器RAM、只读存储器ROM、定时/计数和多功能输入/输出I/O口,如并行口I/O、串行口I/O和转换A/D等。MCS-51系列单片机在我国得到了广泛的应用,是单片机的主流系列,软硬件应用设计资料丰富齐全。为了提高指令的执行速度和效率,采用了面向控制的构造和指令系统的独立CPU。因此本设计采用AT89C52单片机作为系统的控制器件,这是因为AT89C52是目前应用比拟广泛的MCS-51系列兼容单片机作为主控制器。AT89C52单片机的主要性能特点:1、与M

24、CS-51系列单片机产品兼容;2、8K字节在系统可编程Flash存储器,1000次擦写周期;3、全静态操作:033Hz;4、三级加密程序存储器;5、32个可编程I/O口线,3个16位定时器/定时器,8个中断源;6、全双工UART串行通道,低功耗空闲和掉电模式;7、掉电后中端可唤醒,看门狗定时器;8、双数据指针和掉电标识符;电源、时钟信号以及复位电路时单片机工作的根本条件,缺一不可。AT89C52单片机系统的根本工作电路包括电源电路、时钟电路、复位电路。其组成方框图如图3-8所示:图3-8单片机控制系统根本硬件组成方框图1、电源电路电源电路模块为系统板上的其他模块提供+5V电源。供电电源可由开关

25、电源提供,即能满足。2、时钟电路模块的设计单片机的时钟信号用来为单片机芯片内部的各种操作提供时间基准。时钟电路为单片机产生时钟脉冲序列,作为单片机工作的时间基准,典型的晶体振荡频率为12MHz。MCS-51系列单片的时钟信号可以由两种方式产生:一种是内部时钟方式,利用芯片内部的振荡电路;另一种方式为外部时钟方式。3、复位电路模块设计 复位电路使单片机或系统中的其他部件处于*种确定的状态。 当在MCS-51系列单片的RST引脚处引入高电平并保持2个机器周期,单片机内部就执行复位操作。复位操作有两种根本形式:一种是上电复位,另一位是按键复位。本设计采用按键复位方式。3.5.2倒计时显示及状态指示模

26、块的设计倒计时显示采用七段数码管显示,如下表格所示是七段显示组合与数字对照表3-1: 段码位码abcdefG0HHHHHHL1LHHLLLL2HHLHHLH3HHHHLLH4LHHLLHH5HLHHLHH6HLHHHHH7HHHLLLL8HHHHHHH9HHHHLHH表中L表示低电位,H表示高电位状态指示采用LED数码管,半导体数码管又称LED数码管,是一种广泛使用的显示器件。LED有两种:共阳极型和共阴极型。LED优点:亮度高、字形清晰,工作电压低1.53V、体积小、可靠性高、寿命长,响应速度极快。如图3-10所示是硬件中的LED灯:图3-9硬件中的LED灯3.5.2键盘及状态指示显示模块的

27、设计键盘及状态显示如图3-11所示:图3-10键盘及状态显示按下开场设置SET_KEY一下首先开场南北直行绿灯设置,可以增也可以减时间;按下SET_KEY两下设置南北的左转弯蓝灯时间,可以增也可以减时间;按下SET_KEY三下东西直行绿灯设置,可以增也可以减时间;按下SET_KEY四下东西左转弯蓝灯设置,可以增也可以减时间;按下SET_KEY五下返回正常运行状态。-. z.第四章 软件设计硬件平台构造一旦确定,大的功能框架即形成。软件在硬件平台上构筑,完成各局部硬件的控制和协调。系统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差异可能很大。因此,软件是本系统的灵魂

28、。软件采用模块化设计方法,不仅易于编程和调试,也可减小软件故障率和提高软件的可靠性。同时,对软件进展全面测试也是检验错误排除故障的重要手段。由于编程多涉及到数值运算,比拟复杂,还有LCD的菜单界面设计都是需要多重选择判断,用我们平时常用的汇编语言编程是很难实现的,这里我们选用了移值性好、构造清晰、能进展复杂运算的C语言来实现编程。4.1 软件总体流程图软件总体设计及流程图见图4-1,主要完成各局部的软件控制和协调。本系统主程序模块主要完成的工作是对系统的初始化。图4-1总流程图4.2 定时器初始化定时/计数器方式存放器TMOD相关知识如表4-1T1T0GATEC/TM1M0GATEC/TM1M

29、0M1和M0为方式选择位。定义如下表4-2:M1 M0工作方式功能说明0 0方式013位计数器0 1方式116位计数器1 0方式2自动再装入8位计数器1 1方式3定时器0:分成两个8位计数器定时器1:停顿计数TMOD=0*21;intChar.uiTime0=0*ffff-10000;程序中用到两个定时器,分别是TH0=intChar.ucTime0Buf0;定时器1跟定时器0,采用了方TL0=intChar.ucTime0Buf1;式2跟方式1,TMOD=0*21,调TR0=1;用了定时器T0和T1。定时器1TH1=0*fd;方式2定时器0方式1TL1=0*fd;TR1=1;SCON=0*5

30、0;ET0=1;ES=1;EA=1;4.3 动态显示主要是灯跟数码管显示,数码管显示流程图如图4-2所示:首先是位码初始化然后送位码,选位码,位码右移,延时,关位码。图4-2动态显示流程图4.4 设置状态子程序在设置状态,按下开场设置SET_KEY一下首先开场南北直行绿灯设置,可以增也可以减时间;按下SET_KEY两下设置南北的左转弯蓝灯时间,可以增也可以减时间;按下SET_KEY三下东西直行绿灯设置,可以增也可以减时间;按下SET_KEY四下东西左转弯蓝灯设置,可以增也可以减时间;按下SET_KEY五下返回正常运行状态。蓝灯和绿灯的时间最大可以设为79,超出79的时候会出现乱码现象。如图4-

31、3所示是设置状态子程序流程图:图4-3设置状态子程序流程图-. z.第五章 系统调试因本设计本身要求有稳定性高、免维护、抗干扰能力强等功能,系统调试除了验证数据处理的精度,确保判断的准确性外,同时必须确认各项的功能的正常运行。5.1 系统操作说明系统分为两个状态:设置状态和显示状态。利用键盘可以进展两个状态间的切换;开机时,系统为显示状态,此时数码管从默认的倒计时时间开场倒计时;LED灯开场有规律工作,作行车方向指示;设置状态时利用键盘可以设置各路口通行倒计时时间,主次干道的通行时间可以不相等,这里我们增添了分开分别设置功能;显示状态时,交通灯四个LED灯进展倒计时;LED发光管各组的交替指示

32、;如果LED箭头指示板上的绿灯亮,两边红灯亮,则显示的是通行时间;显示过程中按键可以重新进入设置状态。5.2 调试根据系统设计方案,本系统的调试共分为三大局部:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块化设计,所以方便了对各电路功能模块的逐级测试,包括对:交通灯演示功能调试,倒计时功能调试,主次干道分开设置功能调试等。单片机软件先在最小系统板上调试,确保工作正常之后,再与硬件系统联调。最后将各模块组合后在交道口模型上进展整体测试,使系统的所有功能得以实现。5.2.1 硬件调试总硬件图如图5-1所示:如硬件系统图所示接线,图中,在十字路口的红、黄、绿、蓝交通灯,主要是对通行方式功能

33、调试、倒计时功能调试。包括对四种通行方式控制调试,行车方向指示灯和驱动电路调试。图5-1总硬件图具体仿真效果:1、如图5-2所示正常情况下南北方向亮绿灯,东西方向亮红灯。南北放行,东西禁行,绿灯30S,红灯是50+3+20=63S图5-2南北直行通道2、如图5-3所示是南北直行绿灯转为黄灯到下一个状态,黄灯3S延时:图5-3黄灯延时3S转下一个状态3、如图5-4是南北左转弯显示20S:图5-4南北左转弯通道4、如图5-5是东西直行绿灯亮50S:图5-5东西直行通道5、如图5-6所示是东西直行绿灯转为黄灯到下一个状态,黄灯3S延时:图5-6黄灯延时3S转下一个状态6、如图5-7所示是东西左转弯蓝

34、灯显示,时间为12S:图5-7东西左转弯通道5.2.2 软件调试本系统的软件系统很大,全部用C51来编写。除了语法过失外,当确认程序没问题时,通过直接下载到单片机来调试。采取的是自下到上的调试方法,即单独调试好每一个模块,然后再连接成一个完整的系统,最后完成一个完整的系统调试。5.2.3 软硬件联调系统做好后,进展系统的完整调试。主要任务是检验实现的功能及其效果并校正数值。根据实测数据,逐步校正数据,使测量结果更准确。单片机软件先在最小系统板上调试,确保工作正常之后,再与硬件系统联调。5.3 调试心得通过交通灯的编程到硬件的实现,我们只有充分掌握了理论知识的根底之上才能做好。首先,判断数码管是

35、共阴管还是共阳管,其次根据操作要求和自己的程序设计进展调试看是否一样。在课程设计中,我们学习到了很多的东西:首先,怎么样去查阅资料,收集与课设要用的有关的知识。其次,要完成一件工作,还得专心致志才行,细心耐心。第三,遇到困难要冷静,要多想解决方法,多尝试。 通过这次课程设计,我们也进一步熟悉数字电路的设计与特点。而且让我们了解了电路设计的根本思路,增强了实践动手能力,理论结合实际的能力加强。除此以外,我们还深深地认识到严谨、认真的科学态度在科学实验中发挥的重要作用。交通灯是本次课设中原理比拟简单的一个,但是它的组成局部多,电路连接有些复杂,出现问题后分析起来比拟困难,所以我们养成了完成一个局部

36、就调试检验一个局部,确保正确才进展下一步工作,出现了问题只要在未检验的局部查寻就可以很快找出,效果很不错。此次课程设计中我投入了很大的热情和精力,从设计电路图,选择元器件,使用protel99,其过程中出现了不少的问题,我没有气馁,没有退缩,积极向同学请教,并且一遍又一遍的重复实践,直到期望的结果实现。事实也证明我们的努力没有白费,认真严谨的实习态度给我带来了成功的喜悦!这短短一月的实践,我感觉到自己在课本上学到的理论知识和实践仍有一定的差距。有的知识,自己感觉已经掌握得差不多了,但是实际操作起来就有问题出现了。我还遇到了不少,花费了很多的时间。这让我们重新反思我们的学习,觉得这与自己当时不注

37、意实验课是分不开的。-. z.第六章 设计总结本设计以单片机AT89C52为核心,以LED发光管作为直行和左右拐弯指示,以LED数码管作为倒计时指示,以双色LED点阵作为行人通行的指示,完成了题目要求的所有功能。在此根底上,增设了可根据交通拥挤情况分别设置主干道和次干道的通行时间,并对系统机械构造进展了优化设计。该设计很好地完成了题目的各项要求,但这与实际情况还有很大一局部差距,具体有以下几个方面:1、出现紧急情况时,交通灯的控制;2、人行通道的设计没有加进去;3、软件中设计左转弯是交通灯颜色的改变。虽然这些功能未能设计进去,但这一样可以简单实现交通灯的控制,该设计在确保功能实现的根底上,充分

38、考虑了控制系统操作方便、人性化、抗干扰能力强、可靠性高、稳定性好等要求。本设计虽然完毕了,但由于时间、设备、条件和水平等各方面因素有限,系统还存在一些缺乏,一个新系统最终走向成熟和完善还需要我们在以后的学习和工作中作不懈的努力!另外,在重复修改与设计的过程中,我又重新把单片机原理与应用技术这本书仔细的看了一下,弄懂了一些以前一知半解的东西,进一次加强和稳固了我的理论知识。在此次课程设计过程中,我把单片机的理论知识用于实践中,使理论与实践相结合,使我的理论知识的到了稳固,在查资料翻阅资料的过程中也丰富了我的知识跟阅历。-. z.参考资料1胡汉才单片机原理及其接口技术M清华大学出版,1996 2蔡

39、美琴MCS-51系列单片机系统及其应用高等教育2004.2 3付家才单片机控制工程实践技术M化学工业,2004.5 4潘新民微型计算机控制技术M人民邮电,1999.9 5余锡存单片机原理及接口技术M*电子科技大学,2000.7 6雷丽文等.微机原理与接口技术M电子工业,1997.2 7蒋万君在论循环时序电路的简便设计J机电一体化,2005第5期 8周立功增强型80C51单片机速成与实战航空航天大学2004.5 9何立民单片机应用技术选编航空航天大学2004.3 10何立民单片机应用技术选编航空航天大学2004.3 11何立民MCS-5系列单片机应用系统设计航空航天大学,1995. 12李华MC

40、S-51系列单片机实用接口技术M航空航天大学,199313 *云龙. 交通信号控制器的设计J.兵工自动化 ,2003,(04) . 14 白炳良. 单片机自动控制交通信号灯J.*师*学院 ,1997,(02) .15 谭浩强. C 程序设计M.清华大学,1999 年12 月第2 版-. z.附录原理图-. z.原程序#include #define uchar unsigned char#define uint unsigned int/I/O 口定义定义南北方向为主通道东西方向为次通道sbitCI_GREEN=P10;/次通道-绿灯sbitZHU_GREEN=P11;/主通道-绿灯sbitC

41、I_ZUO=P12;/次通道-左转sbitZHU_ZUO=P13;/主通道-左转sbitCI_RED=P14;/次通道-红灯sbitZHU_RED=P15;/主通道-红灯sbitCI_YELLOW=P16;/次通道-黄灯sbitZHU_YELLOW=P17;/主通道-黄灯sbitZHU_LED1=P34;sbitZHU_LED2=P35;sbitCI_LED1=P36;sbitCI_LED2=P37;/位变量定义bitbFlag10ms;bit bResponse;bitbShan;/字节变量定义uchar ucKey;uchar ue*tKey;uchar ucSetState,ucDisp

42、State;uchar ucZhuTime,ucZhuZhuan,ucCiTime,ucCiZhuan;/主通道直行时间主通道转弯时间次通道直行时间次通道转弯时间uchar ucZhuTimeDisp,ucCiTimeDisp;uchar ucMiaoCount;uchar ucShanCount;/常量定义#define SET_KEY 0*ee#define UP_KEY0*de#define DOWN_KEY 0*dduchar code DISP_TAB=0*c0,0*f9,0*a4,0*b0,0*99,0*92,0*82,0*f8,0*80,0*90;/union uchar ucT

43、ime0Buf2;uint uiTime0;intChar;/函数申明void intSys();uchar testKey(void);uchar readKey();dealKey(uchar tempkey);void StateCov(void);void display();void dispSM(uchar *,uchar y);delay();/void main(void)uchar temp;intSys();while(1)if(bFlag10ms=1)bFlag10ms=0;temp=testKey();if(temp!=0*ff)ucKey=readKey();if(u

44、cKey!=0*ff)dealKey(ucKey);elsebResponse=0;if(ucMiaoCount=0)ucMiaoCount=99;StateCov();elseucMiaoCount-;display();void timeSer(void) interrupt 1 using 1TH0=intChar.ucTime0Buf0;TL0=intChar.ucTime0Buf1;bFlag10ms=1;void UARTSer(void) interrupt 4 using 1/*函数名:intSys*函数功能:系统初始化,包括内存单元、定时器、串行口、中断*/void intS

45、ys() ue*tKey=0*ff;ucSetState=ucDispState=0;ucZhuTime=20;ucZhuZhuan=18;ucCiTime=15;ucCiZhuan=12;ucMiaoCount=99;ucShanCount=19;ucDispState=0;ucCiTimeDisp=ucZhuTime+ucZhuZhuan+6;ucZhuTimeDisp=ucZhuTime;P1=0*ff;ZHU_GREEN=0;CI_RED=0;ZHU_LED1=0;ZHU_LED2=0;CI_LED1=0;CI_LED2=0;bResponse=0;TMOD=0*21;intChar.

46、uiTime0=0*ffff-10000;TH0=intChar.ucTime0Buf0;TL0=intChar.ucTime0Buf1;TR0=1;TH1=0*fd;TL1=0*fd;TR1=1;SCON=0*50;ET0=1;ES=1;EA=1;/*函数名:testKey*函数功能:键盘测试函数,测试键盘是否有键按下*/uchar testKey(void)uchar i;P0=0*f0;i=P0;i=i|0*0f;return i;/*函数名:readKey*函数功能:键盘键值读取函数*/uchar readKey()uchar i,j;P0=0*f0;i=P0;P0=0*0f;j=P0

47、;i=i+j;if(ue*tKey=i)if(bResponse=0)bResponse=1;return i;elsereturn 0*ff;elseue*tKey=i;bResponse=0;return 0*ff;/*函数名:dealKey*函数功能:键盘键值处理函数*/dealKey(uchar tempKey)switch(tempKey)case SET_KEY:if(ucSetState=4)ucSetState=0;ucDispState=0;ucCiTimeDisp=ucZhuTime+ucZhuZhuan+6;ucZhuTimeDisp=ucZhuTime;P1=0*ff;

48、ZHU_GREEN=0;CI_RED=0;elseucSetState+;break;case UP_KEY:switch(ucSetState)case 0:break;case 1:if(ucZhuTime80)ucZhuTime+;break;case 2:if(ucZhuZhuan80)ucZhuZhuan+;break;case 3:if(ucCiTime80)ucCiTime+;break;case 4:if(ucCiZhuan5)ucZhuTime-;break;case 2:if(ucZhuZhuan5)ucZhuZhuan-;break;case 3:if(ucCiTime5

49、)ucCiTime-;break;case 4:if(ucCiZhuan5)ucCiZhuan-;break;default:break;break;default:break;/*函数名:stateCov*函数功能:显示状态转换函数*入口参数:键盘键值*/void StateCov(void)if(ucSetState=0)switch(ucDispState)case 0: /主通道绿灯状态完毕判断if(ucZhuTimeDisp=1)ucDispState+;ucZhuTimeDisp=3;elseucZhuTimeDisp-;ucCiTimeDisp-;break;case 1:/主通

50、道黄灯状态完毕判断if(ucZhuTimeDisp=1)ucDispState+;ucZhuTimeDisp=ucZhuZhuan;elseucZhuTimeDisp-;ucCiTimeDisp-;break;case 2:/主通道左转弯绿灯状态完毕判断if(ucZhuTimeDisp=1)ucDispState+;ucZhuTimeDisp=3;elseucZhuTimeDisp-;ucCiTimeDisp-;break;case 3:/主通道左转弯绿灯闪烁状态完毕判断if(ucZhuTimeDisp=1)ucDispState+;ucZhuTimeDisp=ucCiTime+ucCiZhuan+6;ucCiTimeDisp=ucCiTime;elseucZhuTimeDisp-;ucCiTimeDisp-;break;case 4:/次通道绿灯状态完毕判断if(ucCiTimeDisp=1)ucDispSt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论