版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
资资料.资资料.学号:2009学院
机械工程学院
课程设计题目基于AT89C52单片机的交通灯控制系统设计专业机械电子工程班级姓名指导教师20XX年12月XX日
课程设计任务书姓名XXX学号1X班级XXXX课程名称单片机课程设计课程性质必修设计时间2012年12月16日——2012年12月30日设计名称基于AT89C52单片机的交通灯控制系统设计设计要求用AT89C52单片机控制一个交通信号灯系统,晶振采用12MHz。设A车道与B车道交叉组成十字路口,A是主道,B是支道。设计要求如下:1)用发光二极管模拟交通信号灯,用按键开关模拟车辆检测信号;2)正常情况下,A、B两车道轮流放行,A车道放行50s,其中5s用于警告;B车道放行30s,其中5s用于警告;3)在交通繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯的状态,以缓解交通拥挤状况。在B车道放行期间,若A车道有车而B车道无车,按下开关K1使A车道放行15s;在人车道放行期间,若B车道有车而A车道无车,按下开关K2使B车道放行15s;4)有紧急车辆通过时,按下K3开关使A、B车道均为红灯,禁行20s。5)完成系统电路设计;6)完成系统软件设计;7)完成系统Proteus下的仿真。8)完成课程设计报告。
时间:二周1)方案设计2天2)电路设计2天3)软件设计3天计划与进度4)软、硬件联调2天5)系统仿真2天6)答辩1天7)完成报.告2天任课教师意见年月日教研室主任签名年月日平时考勤:20%设计:30%仿真:20%答辩:10%说明设计报告:20%共计100分。目录TOC\o"1-5"\h\z目录II第一章绪论11.1交通灯设计的意义11.2交通灯设计的思想11.3交通灯设计满足的基本功能2第二章总体方案32.1总体方案设计思想32.2系统方案选择与比较32.3系统总体方案论证5第三章硬件设计6总体设计与描述6交通灯通行模式及行车方向指示6主干道单独时间设置功能8倒计时计数功能及其实现8各功能模块硬件设计及实现9第四章软件设计12软件总体流程图12定时器初始化124.3动态显示134.4设置状态子程序14第五章系统调试155.1系统操作说明15调试15调试心得19第六章设计总结21参考资料参考资料22参考资料参考资料22资资料.资资料.附录23I原理图23II原程序24资资料.资资料.第一章绪论1.1交通灯设计的意义交通的发达,标志着城市的发达,相对交通的管理则显得越来越重要。交通灯是城市交通中的重要指挥系统,它与人们日常生活密切相关.随着人们生活水平的提高,对交通管制也提出了更高的要求,因此提供一个可靠、安全、便捷的多功能交通灯控制系统有着现实的必要性。对于复杂的城市交通系统,为了确保安全,保证正常的交通秩序,十字路口的信号控制必需按照一定的规律变化,以便于车辆行人能顺利地通过十字路口。单片机自问世以来,性能不断提高和完善,其资源又能满足很多场合的应用,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、性能可靠、价格低廉,其易于产品化、抗干扰能力强、可在各种恶劣环境下可靠的工作等特点。特别是它强大的面向控制能力,使它在工业控制领域,智能仪表、外设控制、家用电器、机器人、军事装置等方面得到了广泛的应用。考虑到单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点,拟采用MCS-51系列的单片机来实现十字路口交通信号灯的控制。正常情况下,十字路口的红绿灯应交替变换,考虑紧急情况下,如有救护车或警车到来时,应优先让其通过。另外,单片机课程设计是应用电子专业学生的必修课程。通过交通灯模拟系统的设计可以进一步认识单片机在控制系统中的重要性。在完成理论学习和必要的实验后,掌握了单片机的基本原理和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。
交通灯模拟系统的课程设计既让学生巩固了课本学到的理论,还让学生学习了单片机硬件电路设计和用户程序设计的整个过程,同时学习了查阅资料、参考资料的方法。单片机的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试用户程序,来加深对单片机的认识,充分发挥学生的创新能力。交通灯设计的思想该设计在熟练掌握单片机及其仿真系统的使用方法基础上,综合应用单片机原理、单片机应用技术等课程方面的知识,设计一个采用AT89C52单片机控制的交通灯控制电路。根据设计功能及要求,我们可得系统的原理框图如图所示。开关电源LED数码管显示模块―北-开关电源LED数码管显示模块LED数码管
显示模块红、绿、黄、蓝LED状态指示灯LED数LED数码管显示模块LED数码管显示模块图1-1系统原理框图根据系统的原理框图,分别分析各部分电路的元器件的功能以及选择合适的元件。具体设计思路如下:收集并整理资料,硬件设计,软件设计,Proteus仿真,设计体会与总结。交通灯设计满足的基本功能1、南北方向(主干道)车道和东西方向(次干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为20秒、支干道每次通行间为20秒,时间可设置修改。2、在绿灯转为红灯时,要求黄灯先亮3秒钟,才能变换运行车道;3、黄灯亮时,要求每秒闪亮一次4、东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。5、一道有车而另一道无车,交通灯控制系统能立即让有车道放行。第二章总体方案总体方案设计思想根据传统十字路口交通灯的设计,可将本系统分为四个模块,第一个模块是控制模块,主要负责整个系统工作的控制和运算,从而使各模块正常工作;第二个模块为显示模块,主要是对车辆和行人应该遵守交通规则的指导性的直观显示,它主要包括倒计时显示和红、绿、黄灯两大部分;第三个模块是输入模块,它的主要作用是辅助控制模块,相当于输入装置,利用它可以对交通灯各路口通行时间的设置以及出现紧急情况时,进行不同工作方式的切换设置;第四个模块是电源模块,它是整个系统的“心脏”,负责给各模块提供合适的电压,让各模2.2系统方案选择与比较2.2.1控制模块方案选择方案一:由计数器74LS161级联组成,配合译码器和秒脉冲信号发生器等器件组成交通灯系统,整个系统简单,控制简单,调试容易等优点。方案二:采用ATC公司的单片机ATC89C52作为控制器。单片机运算能力强,软件编程灵活,自由度大。它是MCS-51系列单片机的派生产品,在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,使用时容易掌握;采用ATC89C52单片机稳定可靠、应用广泛、通用性强,在系统/在应用可编程。方案比较:采用方案一来实现十字路口交通灯控制系统非常方便,电路结构简单,控制单一,但整个系统性能不是很高,倒计时不是非常精确,如果要求系统能设置不同工作时间不容易,因而对于完成题目较困难,而方案二完全能实现设计要求,容易掌握,利用编程,易控制,I/O接口很多,易于扩展外围电路,价格便宜,故选择方案二。2.2.2显示模块方案选择该系统要求完成倒计时、状态灯等功能。基于上述原因,考虑了三种方案。方案一:完全采用数码管显示。这种方案只显示有限的符号和数码字苻,无法胜任题目要求。方案二:完全采用点阵式LED显示。这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。方案三:用七段LED数码管完成倒计时显示,用LED灯作为状态灯指示功能。方案比较:方案一和方案二都不符合设计要求,实现较复杂,而方案三采用数码管与LED灯相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,选择方案三。2.2.3输入模块方案选择方案一:采用8155扩展I/O口及键盘,显示等。该方案的优点是:使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多/O口,但操作起来稍显复杂。方案二:直接在IO口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的口资源还比较多,我们使用三个按键,分别是SET_KEY、UP_KEY、DOWN_KEY。由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故选择方案二。2.2.4电源模块方案选择方案一:采用单片机控制模块提供电源。该方案的优点是系统简明扼要,节约成本;缺点是输出功率不高,不能驱动数码管。方案二:采用独立的稳压电源,采用开关电源作为整个系统的供电,它具有多路电源输出,此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源。方案比较:方案一只采用单片机自身的I/O来驱动数码管显示是不行的,而方案二虽然要给各模块供电,但却能给各模块提供稳定可靠的电压从而达到显示明亮的程度。故选择第二种方案。
系统总体方案论证经上述各模块的方案选择与论证,十字路口交通灯控制系统的控制芯片选用单片机AT89C52作为整个系统的核心控制器件,主要负责整个系统工作的控制和运算,从而使各模块正常工作;采用七段LED数码管和LED灯作为显示器件,用七段LED数码管完成倒计时显示,用LED灯作为状态灯指示功能;用触发按键构成系统的输入部分,它可以对系统进行状态设置,结合数码管,可根据交通情况对整个系统进行直观的控制;以开关电源作为系统电源部分,它有+12V、-12V、+5V、-5V电压输出,可方便对各个模块供电。系统设计方框总图如图2-2:开关电源LED数码管显示模块北开关电源LED数码管显示模块LED数码管显示模块红、绿、黄、蓝LED状态指示灯LED数LED数码管显示模块LED数码管显示模块图2-2系统设计方框总图第三章硬件设计硬件设计是整个系统的基础,要考虑的方方面面很多,除了实现交通灯基本功能以外,主要还要考虑如下几个因素:①系统稳定度;②器件的通用性或易选购性;③软件编程的易实现性;④系统其它功能及性能指标;因此硬件设计至关重要。现从各功能模块的实现逐个进行分析探讨。总体设计与描述本设计以单片机AT89S52为控制核心,采用模块化设计,共分以下几个功能模块:单片机控制系统、键盘及状态显示、行车方向指示和倒计时模块等。单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。它由单片机、时钟电路、复位电路等组成。行车方向指示采用红、绿、黄、蓝(表示向左转)LED发光管,用四种颜色指示车辆放行、暂停、禁止,形象直观。键盘及状态显示,键盘采用三只触发按键组成,电路简洁可靠;显示器采用七段LCD数码管,可实时显示系统运行状态,可供交警在室内实时监视交通状况。通过键盘可设置:紧急情况发生时的交通灯状态控制、主干道通行时间等。系统采用双数码管倒计时计数功能,最大显示数字不超过80。交通灯模拟仿真如图3-1所示:
D4aD1ELED-GREENEP19-YELLOIAJ■D11*D1^hLED-cqpniled-'^hKij订ed?D4aD1ELED-GREENEP19-YELLOIAJ■D11*D1^hLED-cqpniled-'^hKij订ed?匚仃車ri?pD5piz■*D2占D3厶LED-I^VLEDD-SHEEND9LED-BLUEsTBTP-图3-1交通灯模拟仿真图交通灯通行模式及行车方向指示按交通灯控制规则,每个街口有转弯、直行及行人三种指示灯。主要指示灯有红、绿、黄三种颜色,但我在其中修改了一下,加进一个蓝灯。交道口模型如图3-2所示:和功〒声北和功〒声北人行廉■ll■机如l迫人行廉■ll■机如l迫二人行逋——』氏g牛道书站车道机功牛道机讪44百II^AA■迫t甫图机讪44百II^AA■迫t甫图3-2交道口模型图非机刮T迢人行道1I~PL功下議2组LED数码管按照设置的通行时间(各路口默认的通行时间均为20秒)进行倒计时,并各自进行显示,共有四种通行状态,分别为:图3-3通行状态一示意图图3-4通行状态二示意图图3-5通行状态三示意图图3-6通行状态四示意图直行默认时间为20秒,转弯默认时间为20秒,系统设置了任意更改功能可以根据实际情况进行倒计时调整,以提高车辆通过率,缓减交通压力。在直行状态变为转弯状态时黄灯倒计时3秒后转弯。本设计选用一只绿色、一只蓝色LED发光管来指示转弯、直行等交通指示信息。绿灯亮表示直行,蓝灯亮表示允许转弯行驶,红色则表示禁止通行。所有指示信息一目了然。主干道单独时间设置功能当主干道方向的车辆过多发生堵塞,正常的信号灯时序将会使交通状况更加恶化。本设计添加了主次干道单独时间设置功能,交警可按需求设置绿灯的点亮时间,该措施可在一定程度缓减短暂的交通压力。三个按键如图3-7所示:3.4倒计时计数功能及其实现本系统使用数码管完成倒计时显示功能。以南北方向为例,数码管显示的数值从绿灯的设置时间最大值往下减,每秒钟减1,一直减到0。然后又从红灯的设置时间最大值往下减,一直减到0。接下来又显示绿灯时间,如此循环。系统共有2个两位的LED数码管,分别放置在模拟交通灯控制板上的南北、东西路口。因为对应的两个方向应该显示同样的内容,所以可以把它们同样对待。也就是说各个方向的数码管个位(把数码管第二位定义为个位,第一位定义为十位)用一根信号线控制,十位用另一根信号线控制。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、与MCS-51系列单片机产品兼容;2、8K字节在系统可编程Flash存储器,1000次擦写周期;3、全静态操作:0〜33Hz;4、三级加密程序存储器;5、32个可编程I/O口线,3个16位定时器/定时器,8个中断源;6、全双工UART串行通道,低功耗空闲和掉电模式;7、掉电后中端可唤醒,看门狗定时器;8、双数据指针和掉电标识符;电源、时钟信号以及复位电路时单片机工作的基本条件,缺一不可。AT89C52单片机系统的基本工作电路包括电源电路、时钟电路、复位电路。其组成方框图如图3-8所示:图3-8单片机控制系统基本硬件组成方框图1)、电源电路电源电路模块为系统板上的其他模块提供+5V电源。供电电源可由开关电源提供,即能满足。(2)、时钟电路模块的设计单片机的时钟信号用来为单片机芯片内部的各种操作提供时间基准。时钟电路为单片机产生时钟脉冲序列,作为单片机工作的时间基准,典型的晶体振荡频率为12MHz。MCS-51系列单片的时钟信号可以由两种方式产生:一种是内部时钟方式,利用芯片内部的振荡电路;另一种方式为外部时钟方式。(3)、复位电路模块设计复位电路使单片机或系统中的其他部件处于某种确定的状态。当在MCS-51系列单片的RST引脚处引入高电平并保持2个机器周期,单片机内部就执行复位操作。复位操作有两种基本形式:一种是上电复位,另一位是按键复位。本设计采用按键复位方式。3.5.2倒计时显示及状态指示模块的设计倒计时显示采用七段数码管显示,如下表格所示是七段显示组合与数字对照表3-1:段码位码'abcdefG0HHHHHHL1LHHLLLL2HHLHHLH3HHHHLLH
4L4LHH5HLH6HLH7HHH8HHH9HHHLLHHHLHHHHHHLLLLHHHHHLHH(表中“L”表示低电位,“H”表示高电位)状态指示采用LED数码管,半导体数码管又称LED数码管,是一种广泛使用的显示器件。LED有两种:共阳极型和共阴极型。LED优点:亮度高、字形清晰,工作电压低(1.5〜3V)、体积小、可靠性高、寿命长,响应速度极快。如图3-10所示是硬件中的LED灯:mD16匕耳即乍LUOM寿命长,响应速度极快。如图3-10所示是硬件中的LED灯:mD16匕耳即乍LUOM1LEP-BLUE百tDIMD9LE[>-BLUE图3-9硬件中的LED灯3.5.2键盘及状态指示显示模块的设计键盘及状态显示如图3-11所示:酣氷眄mDO师酣氷眄mDO师图3-10键盘及状态显示按下开始设置SET_KEY一下首先开始南北直行绿灯设置,可以增也可以减时间;按下SET_KEY两下设置南北的左转弯蓝灯时间,可以增也可以减时间;按下SET_KEY三下东西直行绿灯设置,可以增也可以减时间;按下SET_KEY四下东西左转弯蓝灯设置,可以增也可以减时间;按下SET_KEY五下返回正常运行状态。第四章软件设计硬件平台结构一旦确定,大的功能框架即形成。软件在硬件平台上构筑,完成各部分硬件的控制和协调。系统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。因此,软件是本系统的灵魂。软件采用模块化设计方法,不仅易于编程和调试,也可减小软件故障率和提高软件的可靠性。同时,对软件进行全面测试也是检验错误排除故障的重要手段。由于编程多涉及到数值运算,比较复杂,还有LCD的菜单界面设计都是需要多重选择判断,用我们平时常用的汇编语言编程是很难实现的,这里我们选用了移值性好、结构清晰、能进行复杂运算的C语言来实现编程。软件总体流程图软件总体设计及流程图见图4-1,主要完成各部分的软件控制和协调。本系统主程序模块主要完成的工作是对系统的初始化。图4-1总流程图
定时器初始化定时/计数器方式寄存器TMOD相关知识如表4-1T1TOGATEC/TM1MOGATEC/TM1MOM1和M0为方式选择位。定义如下表4-2:M1MO工作方式功能说明00方式013位计数器01方式116位计数器10方式2自动再装入8位计数器11方式3定时器0:分成两个8位计数器定时器1:停止计数TMOD=0x21;intChar.uiTime0=0xffff-10000;程序中用到两个定时器,分别是TH0=intChar.ucTime0Buf[0];定时器1跟定时器0,采用了方TL0=intChar.ucTime0Buf[1];式2跟方式1,TMOD=0X21,调TR0=1;用了定时器T0和T1。定时器1TH1=0xfd;方式2定时器0方式1TL1=0xfd;TR1=1;SCON=0x50;ET0=1;ES=1;EA=1;动态显示主要是灯跟数码管显示,数码管显示流程图如图4-2所示:首先是位码初始
化然后送位码,选位码,位码右移,延时,关位码。设置状态子程序在设置状态,按下开始设置SET_KEY一下首先开始南北直行绿灯设置,可以增也可以减时间;按下SET_KEY两下设置南北的左转弯蓝灯时间,可以增也可以减时间;按下SET_KEY三下东西直行绿灯设置,可以增也可以减时间;按下SET_KEY四下东西左转弯蓝灯设置,可以增也可以减时间;按下SET_KEY五下返回正常运行状态。蓝灯和绿灯的时间最大可以设为79,超出79的时候会出现乱码现象。如图4-3所示是设置状态子程序流程图:图4-3设置状态子程序流程图第五章系统调试因本设计本身要求有稳定性高、免维护、抗干扰能力强等功能,系统调试除了验证数据处理的精度,确保判断的准确性外,同时必须确认各项的功能的正常运行。系统操作说明系统分为两个状态:设置状态和显示状态。利用键盘可以进行两个状态间的切换;开机时,系统为显示状态,此时数码管从默认的倒计时时间开始倒计时;LED灯开始有规律工作,作行车方向指示;设置状态时利用键盘可以设置各路口通行倒计时时间,主次干道的通行时间可以不相等,这里我们增添了分开分别设置功能;显示状态时,交通灯四个led灯进行倒计时;LED发光管各组的交替指示;如果LED箭头指示板上的绿灯亮,两边红灯亮,则显示的是通行时间;显示过程中按键可以重新进入设置状态。调试根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块化设计,所以方便了对各电路功能模块的逐级测试,包括对:交通灯演示功能调试,倒计时功能调试,主次干道分开设置功能调试等。单片机软件先在最小系统板上调试,确保工作正常之后,再与硬件系统联调。最后将各模块组合后在交道口模型上进行整体测试,使系统的所有功能得以实现。硬件调试总硬件图如图5-1所示:如硬件系统图所示接线,图中,在十字路口的红、黄、绿、蓝交通灯,主要是对通行方式功能调试、倒计时功能调试。包括对四种通行方式控制调试,行车方向指示灯和驱动电路调试。tPMFT1ruffln“in*rrsrjafX.VJUPZ3ur.1iPZIla-H■注;ztPMFT1ruffln“in*rrsrjafX.VJUPZ3ur.1iPZIla-H■注;z巴JId:・~»EnI:K2l3E9l應M利sslsss.1-55~-TEO严p5叫图5-1总硬件图具体仿真效果:1、如图5-2所示正常情况下南北方向亮绿灯,东西方向亮红灯。南北放行,东西禁行,绿灯30S,红灯是50+3+20=63S图5-3黄灯延时图5-3黄灯延时3S转下一个状态资料.图5-3黄灯延时图5-3黄灯延时3S转下一个状态资料.■■■■wnEraEEEE.Himrivsrra^-cPH*11ra旳*arrsw-aF-2ta?P.i-irarwl=eCDEFGDPIE134;E■:Tfcir>lIDl・Rki/TkD
raafflin
puim■■■■wnEraEEEE.Himrivsrra^-cPH*11ra旳*arrsw-aF-2ta?P.i-irarwl=eCDEFGDPIE134;E■:Tfcir>lIDl・Rki/TkD
raafflin
puimF3Igirrn
rDflfTI
raaPff
Fs.nnrA图5-2南北直行通道2、如图5-3所示是南北直行绿灯转为黄灯到下一个状态,黄灯3S延时:1EE5-JF~31■::<Thli:<T2JIET>WTALE口'P~H2"F-:□□Di3<°piFFii"P1UT2pi.imci:PI71EE5-JF~31■::<Thli:<T2JIET>WTALE口'P~H2"F-:□□Di3<°piFFii"P1UT2pi.imci:PI7沖P1.I-•I,F-ijSPi'SaPP3MMP111Z1]"15MEEnraEparaF3LIE®laaffmraan-TpiownhliiTT£t3、如图5-4是南北左转弯显示20S:资资料.资资料.rUILADIFCL4UD-I"DWJ»AQAidKFCL7LAJV?-f.BTK-Knz-h才丄」冋■3imTOT■zig■LJJJ|:f3i6n'3~Ti''ggclls!rUILADIFCL4UD-I"DWJ»AQAidKFCL7LAJV?-f.BTK-Knz-h才丄」冋■3imTOT■zig■LJJJ|:f3i6n'3~Ti''ggclls!口怙-K-f3IWW&
PJl/TXIl
Fsz^nn
rajffTTTP34OUra^Tirairtir咏耐图5-4南北左转弯通道4、如图5-5是东西直行绿灯亮50S:l書匚口EF&trIE>yr*.Li:E.LTEMREEraEBST丁WeTajue-QP.P'jllF1H72•IE"P13rrKrarararan阿:pj»E«■rFP"“口.IED
l書匚口EF&trIE>yr*.Li:E.LTEMREEraEBST丁WeTajue-QP.P'jllF1H72•IE"P13rrKrarararan阿:pj»E«■rFP"“口.IED
Fl^TITn
rxsfmREP3C/T1
ritfQH
BITT1LRP3f.lK图5-5东西直行通道5、如图5-6所示是东西直行绿灯转为黄灯到下一个状态,黄灯3S延时:A严卜JJ-I7Z.1LAIFtD11.ipinmFI.VT2MM2PI3FldA严卜JJ-I7Z.1LAIFtD11.ipinmFI.VT2MM2PI3FldrijFlV,C(MDDW1K・:「巳□ihrtpwLEUBJEEilIjtSh-i1HJ1■■1TEaCFa■wX■图5-6黄灯延时3S转下一个状态6、如图5-7所示是东西左转弯蓝灯显示,时间为12S:图5-7东西左转弯通道软件调试本系统的软件系统很大,全部用C51来编写。除了语法差错外,当确认程序没问题时,通过直接下载到单片机来调试。采取的是自下到上的调试方法,即单独调试好每一个模块,然后再连接成一个完整的系统,最后完成一个完整的系统调试。软硬件联调系统做好后,进行系统的完整调试。主要任务是检验实现的功能及其效果并校正数值。根据实测数据,逐步校正数据,使测量结果更准确。单片机软件先在最小系统板上调试,确保工作正常之后,再与硬件系统联调。调试心得通过交通灯的编程到硬件的实现,我们只有充分掌握了理论知识的基础之上才能做好。首先,判断数码管是共阴管还是共阳管,其次根据操作要求和自己的程序设计进行调试看是否相同。在课程设计中,我们学习到了很多的东西:首先,怎么样去查阅资料,收集与课设要用的有关的知识。其次,要完成一件工作,还得专心致志才行,细心耐心。第三,遇到困难要冷静,要多想解决办法,多尝试。通过这次课程设计,我们也进一步熟悉数字电路的设计与特点。而且让我们了解了电路设计的基本思路,增强了实践动手能力,理论结合实际的能力加强。除此以外,我们还深深地认识到严谨、认真的科学态度在科学实验中发挥的重要作用。交通灯是本次课设中原理比较简单的一个,但是它的组成部分多,电路连接有些复杂,出现问题后分析起来比较困难,所以我们养成了完成一个部分就调试检验一个部分,确保正确才进行下一步工作,出现了问题只要在未检验的部分查寻就可以很快找出,效果很不错。此次课程设计中我投入了很大的热情和精力,从设计电路图,选择元器件,使用protel99,其过程中出现了不少的问题,我没有气馁,没有退缩,积极向同学请教,并且一遍又一遍的重复实践,直到期望的结果实现。事实也证明我们的努力没有白费,认真严谨的实习态度给我带来了成功的喜悦!这短短一月的实践,我感觉到自己在课本上学到的理论知识和实践仍有一定的差距。有的知识,自己感觉已经掌握得差不多了,但是实际操作起来就有问题出现了。我还遇到了不少,花费了很多的时间。这让我们重新反思我们的学习,觉得这与自己当时不注意实验课是分不开的。第六章设计总结本设计以单片机AT89C52为核心,以LED发光管作为直行和左右拐弯指示,以LED数码管作为倒计时指示,以双色LED点阵作为行人通行的指示,完成了题目要求的所有功能。在此基础上,增设了可根据交通拥挤情况分别设置主干道和次干道的通行时间,并对系统机械结构进行了优化设计。该设计很好地完成了题目的各项要求,但这与实际情况还有很大一部分差距,具体有以下几个方面:1、出现紧急情况时,交通灯的控制;2、人行通道的设计没有加进去;3、软件中设计左转弯是交通灯颜色的改变。虽然这些功能未能设计进去,但这一样可以简单实现交通灯的控制,该设计在确保功能实现的基础上,充分考虑了控制系统操作方便、人性化、抗干扰能力强、可靠性高、稳定性好等要求。本设计虽然结束了,但由于时间、设备、条件和水平等各方面因素有限,系统还存在一些不足,一个新系统最终走向成熟和完善还需要我们在以后的学习和工作中作不懈的努力!另外,在重复修改与设计的过程中,我又重新把《单片机原理与应用技术》这本书仔细的看了一下,弄懂了一些以前一知半解的东西,进一次加强和巩固了我的理论知识。在此次课程设计过程中,我把单片机的理论知识用于实践中,使理论与实践相结合,使我的理论知识的到了巩固,在查资料翻阅资料的过程中也丰富了我的知识跟阅历。参考资料[1]胡汉才单片机原理及其接口技术[M]清华大学出版,1996[2]蔡美琴MCS-51系列单片机系统及其应用高等教育出版社2004.2⑶付家才单片机控制工程实践技术[M]化学工业出版社,2004.5潘新民微型计算机控制技术[M]人民邮电出版社,1999.9余锡存单片机原理及接口技术[M]西安电子科技大学出版社,2000.7雷丽文等•微机原理与接口技术[M]电子工业出版社,1997.2蒋万君在论循环时序电路的简便设计J]机电一体化,2005第5期周立功增强型80C51单片机速成与实战北京航空航天大学出版社2004.5何立民单片机应用技术选编⑩北京航空航天大学出版社2004.3何立民单片机应用技术选编⑨北京航空航天大学出版社2004.3何立民MCS-5系列单片机应用系统设计北京航空航天大学出版社,1995.[12]李华MCS-51系列单片机实用接口技术[M]北京航空航天大学出版社,1993[13张云龙.交通信号控制器的设计J].兵工自动化,2003,(04).白炳良.单片机自动控制交通信号灯J].漳州师范学院,1997,(02).谭浩强.C程序设计[M].清华大学出版社,1999年12月第2版附录I原理图A51O'c讪-jtaFQhtaGiiT0AT■?.1'■-■II原程序#include<reg51.h>#defineucharunsignedchar#defineuintunsignedint//I/O口定义定义南北方向为主通道东西方向为次通道sbitCI_GREEN=P1A0;//次通道--绿灯sbitZHU_GREEN=P1A1;//主通道--绿灯sbitCI_ZUO=P1A2;//次通道--左转sbitZHU_ZUO=P1A3;//主通道--左转sbitCI_RED=P1A4;//次通道--红灯sbitZHU_RED=P1A5;//主通道--红灯sbitCI_YELLOW二PM6;//次通道--黄灯sbitZHU_YELLOW=P1A7;//主通道--黄灯sbitZHU_LED1二P3^4;sbitZHU_LED2=P3A5;sbitCI_LED1=P3A6;sbitCI_LED2=P3A7;//位变量定义bitbFlag10ms;bitbResponse;
bitbShan;bitbShan;//字节变量定义ucharucKey;ucharucNextKey;ucharucSetState,ucDispState;ucharucZhuTime,ucZhuZhuan,ucCiTime,ucCiZhuan;//主通道直行时间主通道转弯时间次通道直行时间次通道转弯时间ucharucZhuTimeDisp,ucCiTimeDisp;ucharucMiaoCount;ucharucShanCount;//常量定义#defineSET_KEY0xee#defineUP_KEY0xde#defineDOWN_KEY0xdducharcodeDISP_TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};////////////////////////////unionucharucTime0Buf[2];uintuiTime0;}intChar;//函数申明voidintSys();uchartestKey(void);ucharreadKey();dealKey(uchartempkey);voidStateCov(void);voiddisplay();voiddispSM(ucharx,uchary);delay();/////////////////////////////////////////////////////////////////////////voidmain(void){uchartemp;intSys();while(1){if(bFlag10ms==1){bFlag10ms=0;temp=testKey();if(temp!=0xff){ucKey=readKey();if(ucKey!=0xff){dealKey(ucKey);}}else{bResponse=0;}if(ucMiaoCount==0){ucMiaoCount=99;StateCov();}else{{{{资资料.资资料.ucMiaoCount--;}display();}}}voidtimeSer(void)interrupt1using1{TH0=intChar.ucTime0Buf[0];TL0=intChar.ucTime0Buf[1];bFlag10ms=1;}voidUARTSer(void)interrupt4using1{}资资料.资资料.*函数名:intSys*函数功能:系统初始化,包括内存单元、定时器、串行口、中断voidintSys(){ucNextKey=0xff;ucSetState=ucDispState=0;ucZhuTime=20;ucZhuZhuan=18;ucCiTime=15;ucCiZhuan=12;ucMiaoCount=99;ucShanCount=19;ucDispState=0;ucCiTimeDisp=ucZhuTime+ucZhuZhuan+6;ucZhuTimeDisp=ucZhuTime;P1=0xff;ZHU_GREEN=0;CI_RED=0;ZHU_LED1=0;ZHU_LED2=0;CI_LED1=0;CI_LED2=0;bResponse=0;TMOD=0x21;intChar.uiTime0=0xffff-10000;TH0=intChar.ucTime0Buf[0];TL0=intChar.ucTime0Buf[1];TR0=1;TH1=0xfd;TL1=0xfd;TR1=1;SCON=0x50;ET0=1;ES=1;EA=1;}*函数名:testKey*函数功能:键盘测试函数,测试键盘是否有键按下**********************************************************uchartestKey(void){资{资料.{资{资料.{资{资料.uchari;P0=0xf0;i=P0;i=i|0x0f;returni;}*函数名:readKey*函数功能:键盘键值读取函数**********************************************************ucharreadKey(){uchari,j;P0=0xf0;i=P0;P0=0x0f;j=P0;i=i+j;if(ucNextKey==i)if(bResponse==0){bResponse=1;returni;}elsereturn0xff;}else{ucNextKey=i;bResponse=0;return0xff;}}*函数名:dealKey*函数功能:键盘键值处理函数**********************************************************dealKey(uchartempKey)资资料.资资料.caseUP_KEY:{资caseUP_KEY:{资料.switch(tempKey){caseSET_KEY:{if(ucSetState==4){ucSetState=0;ucDispState=0;ucCiTimeDisp=ucZhuTime+ucZhuZhuan+6;ucZhuTimeDisp=ucZhuTime;P1=0xff;ZHU_GREEN=0;CI_RED=0;}else{ucSetState++;}break;}switch(ucSetState){case0:{break;}case1:{if(ucZhuTime<80)ucZhuTime++;break;}case2:{if(ucZhuZhuan<80)ucZhuZhuan++;break;}case3:{if(ucCiTime<80)ucCiTime++;break;}casebreak;}case4:break;}casebreak;}case4:case1:{case1:{资料.case1:{case1:{资料.{if(ucCiZhuan<80)ucCiZhuan++;break;}}break;}caseDOWN_KEY:{switch(ucSetState){case0:{break;}if(ucZhuTime>5)break;}break;}break;}break;}资资料.资资料.ucZhuTime--;case2:{if(ucZhuZhuan>5)ucZhuZhuan--;break;}case3:{if(ucCiTime>5)ucCiTime--;break;}case4:{if(ucCiZhuan>5)ucCiZhuan--;break;}default:break;}break;}break;}break;}break;}break;}break;}break;}case0://主通道绿灯状态结束判断{case0://主通道绿灯状态结束判断{资料.case0://主通道绿灯状态结束判断{case0://主通道绿灯状态结束判断{资料.default:break;}}*函数名:stateCov*函数功能:显示状态转换函数*入口参数:键盘键值**********************************************************voidStateCov(void){if(ucSetState==0){switch(ucDispState){{ucZhuTimeDisp--;{ucZhuTimeDisp--;资料.{ucZhuTimeDisp--;{ucZhuTimeDisp--;资料.if(ucZhuTimeDisp==1){ucDispState++;ucZhuTimeDisp=3;}else{ucZhuTimeDisp--;ucCiTimeDisp--;}break;}case1://主通道黄灯状态结束判断{if(ucZhuTimeDisp==1){ucDispState++;ucZhuTimeDisp=ucZhuZhuan;}else}break;}}break;}}break;}}break;}if(ucZhuTimeDisp==1){资if(ucZhuTimeDisp==1){资料.if(ucZhuTimeDisp==1){资if(ucZhuTimeDisp==1){资料.ucCiTimeDisp--;case2://主通道左转弯绿灯状态结束判断{if(ucZhuTimeDisp==1){ucDispState++;ucZhuTimeDisp=3;}else{ucZhuTimeDisp--;ucCiTimeDisp--;}break;}case3://主通道左转弯绿灯闪烁状态结束判断{}}}}ucCiTimeDisp--;ucCiTimeDisp--;资料.ucCiTimeDisp--;ucCiTimeDisp--;资料.ucDispState++;ucZhuTimeDisp=ucCiTime+ucCiZhuan+6;ucCiTimeDisp=ucCiTime;else{ucZhuTimeDisp--;ucCiTimeDisp--;}break;}case4://次通道绿灯状态结束判断{if(ucCiTimeDisp==1){ucDispState++;ucCiTimeDisp=3;}else{ucZhuTimeDisp--;break;}break;}break;}break;}{资{资料.{资{资料.case5://次通道黄灯状态结束判断{if(ucCiTimeDisp==1){ucDispState++;ucCiTimeDisp=ucCiZhuan;}else{ucZhuTimeDisp--;ucCiTimeDisp--;}break;}case6://次通道左传绿灯状态结束判断{if(ucCiTimeDisp==1)ucDispState++;/r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Python程序设计实践- 习题及答案 ch10 实验6 循环结构程序设计
- 老师教学工作期末总结(35篇)
- 护理职业生涯规划书
- 幼儿园中班方案数学
- 湖水读后感(8篇)
- 食品安全承诺书借鉴(35篇)
- 个人工作总结开头语(22篇)
- 高考地理二轮复习综合题专项训练5评价开放类含答案
- 25.2 平行线分线段成比例 同步练习
- 小学数学人教版(2024)三年级上2万以内的加法和减法(一)(含答案)
- 油库设计与管理智慧树知到答案2024年中国石油大学(华东)
- 2024年安徽省地勘行业职业技能大赛(地质调查员)考试题库(含答案)
- 解读国有企业管理人员处分条例课件
- 九年级上册第三单元道德与法治《文明与家园》单元整体教学设计
- 2024消防维保投标文件模板
- (中级)机修钳工职业鉴定考试题库(浓缩400题)
- 2024陆上风电场工程可行性研究报告编制规程
- 交通工程中的人因工程与智能化
- 内分泌科疾病护理常规内分泌系统疾病护理常规
- 民航服务心理案例分析
- (高清版)JTGT 3371-01-2022 公路沉管隧道设计规范
评论
0/150
提交评论