资源描述
目录一、方案论证与设计2(一)电源提供方案2(二)显示界面方案3(三)输入方案3二、系统硬件设计3(一)总体设计3(二)单片机基本结构4(三)单片机最小系统41.时钟电路如图2-3所示42.复位电路5三、系统软件流程图设计6(一)软件流程图设计61.主程序流程图62定时中断子程序流程图63.显示子程序流程图74.按键子程序流程图8(二)统软件程序设计8四、系统仿真10(一)PROTUES软件介绍10(二)交通灯系统PROTUES仿真10五、调试与功能说明11(一)硬件调试11(二)软件调试12六、结束语12参考文献13交通灯的设计 摘要:本系统由单片机系统、键盘、LED显示、交通灯演示系统组成。系统包括人行道、左转、右转、以及基本的交通灯的功能。系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。关键词:单片机;交通灯;控制器一、方案论证与设计本设计以单片机为核心,以LED数码管作为倒计时指示,根据设计的要求我们考虑了各功能模块的几种设计方案,以求最佳方案,实现实时显示系统各种状态,系统还增设了根据交通拥挤情况可分别设置主干道和次干道的通行时间,以提高效率,缓减交通拥挤。系统总体设计框图如图1-1所示。交通灯控制的框图如下图所示,主要有控制电路、按键电路、晶振电路、复位电路、显示电路、电源电路等电路组成。单片机AT89C51时钟电路红绿灯装置倒计时显示装置驱动装置复位电路图1-1系统总体设计框图(一)电源提供方案为使模块稳定工作,须有可靠电源。本次设计考虑了两种电源方案:方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。方案二:采用单片机控制模块提供电源。该方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。综上所述,选择第二种方案。(二)显示界面方案该系统要求完成倒计时功能。基于上述原因,本次设计考虑了两种方案:方案一:完全采用点阵式LED显示。这种方案功能强大,可方便的显示各种英文字符,汉字,图形等,但实现复杂,且须完成大量的软件工作。方案二:完全采用数码管显示。这种方案优点是实现简单,可以完成倒计时功能。缺点是功能较少,只能显示有限的符号和数码字符。根据本设计的要求,方案二已经满足了要求,所以本次设计采用方案二以实现系统的显示.(三)输入方案这里同样讨论了两种方案:方案一:采用8155扩展I/O口、键盘及显示等。该方案的优点是使用灵活可编程,并且有RAM及计数器。若用该方案,可提供较多I/O口,但操作起来稍显复杂。方案二:直接在I/O口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的端口资源还比较多。由于该系统是对交通灯及数码管的控制,只需用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故选择方案二。二、系统硬件设计(一)总体设计本设计以单片机为控制核心,采用模块化设计,共分以下几个功能模块:单片机控制系统、键盘及状态显示、倒计时模块等。单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。它由单片机振荡电路、复位电路等组成。键盘及状态显示,开关键盘输入交通灯初始时间,通过单片机P1输入到系统。系统采用双数码管倒计时计数功能,最大显示数字99。在交通情况比较特殊的情况下,可以通过K1、K2、K3三个按键对对交通灯进行控制。(二)单片机基本结构1.MCS-52单片机内部结构8052单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:2.中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。3.数据存储器(RAM)8052内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图2-1单片机8051的内部结构4.程序存储器(ROM):8052共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。5.定时/计数器:8052有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。6.并行输入输出(I/O)口:8052共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。(三)单片机最小系统1.时钟电路如图2-3所示图2-3时钟电路XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。2.复位电路在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。当时钟频率选用6MHz时,C取22F,Rs约为200,Rk约为1K。复位操作不会对内部RAM有所影响。常用的复位电路如图2-4所示:图2-4复位电路图三、系统软件流程图设计(一)软件流程图设计1.主程序流程图如图3-1主程序流程图2定时中断子程序流程图图3-2定时中断子程序流程图3.显示子程序流程图图3-3显示子程序流程图4.按键子程序流程图图3-4按键子程序流程图(二)统软件程序设计#include#define uchar signed intuchar a=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void delay();void display(signed char m);uchar i;void main() TMOD=0x01; / 0000 0010 TH0=(65536-50000)/256;/高八位(0x3c) TL0=(65536-50000)%256;/低八位(0xB0) EA=1; / 开总中断开关,允许中断请求 EX0=1;/ 允许外部中断0请求中断 IT0=1;/ 下降沿触发信号有效 while(1) for(i=20;i=0;i-) P0=ai%10; P1=ai/10; P2=0x09; delay(); for(i=10;i=0;i-) P0=ai%10; P1=ai/10; P2=0x12; delay(); for(i=20;i=0;i-) P0=ai%10; P1=ai/10; P2=0x24; delay(); for(i=10;i=0;i-) P0=ai%10; P1=ai/10; P2=0x12; delay(); void int_0() interrupt 0 /中断服务程序 unsigned char i,j,k,l,m; i=P1; j=t0; k=t1; l=TH1; m=TL1; P1=0Xdb; delay_t1(20); P1=i; t0=j; t1=k; TH1=l; TL1=m; delay_t1(12) void delay() uchar i; for(i=0;i20;i+) TH0=(65536-50000)/256;/ 、/15536 -65536 TL0=(65536-50000)%256;TR0=1;while(TF0=0); / 等待计数溢出, 50000us=50ms TF0=1TF0=0; 四、系统仿真(一)PROTUES软件介绍Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。(二)交通灯系统PROTUES仿真用PROTUES软件,根据交通灯的原理图,画出仿真图,得到的图如下所示五、调试与功能说明(一)硬件调试系统的硬件调试一般分下面三个步骤。第一步:目测。检查外部的各种元件或者电路是否有断点。第二步:用万用表检测,先用万用表复核目测中有疑问的连接点,在检测各种电源线与地线之间是否有短路现象。第三步:加电检测。给板加电,检测所有插座或者器件的电源是否符合要求的值。1.倒计时显示电路调试给硬件电路接上电源,这时数码管全灭,用一根导线的一端与地线相连,另一端一次碰触AT89C51的P0和P2口,一边碰触一边察看七段数码管,正常情况下可以看到每碰触一个引脚,对应的一段数码管点亮。若不亮,仔细查看与该脚相连的电阻及数码管是否虚焊。2.交通灯电路的调试需要说明的是,由于整个设计是用发光二极管来代替交通灯,需要低电平“0”来驱动点亮,在实际应用中,应使P1口输出高电平“1”来驱动继电器导通,从而使220V的交通灯点亮。这是试验与实际应用比较容易混淆的地方,应该引起注意。同时,在进行交通灯调试应注意VD1VD12这12个发光二极管不能焊反。3.紧急通行电路调试仔细检查K1、K2、K3三个按键是否焊牢,并且三个键是否与相应的I/O借口对应准确。(二)软件调试1静态调试静态调试是指对程序进行人工书面检查。静态调试时要仔细阅读程序及其文档,经过结构分析、功能分析、逻辑分析、接口分析、语法分析以及逐行检查。(1) 检查语法错误产生语法错误的原因主要有两个:一是键入错误,此错误如同写文章时的“笔误”;二是由于对语法规则不熟悉,见书后错误信息、各种限制、全局变量与局部变量、先后左右的原则等,这些虽不是系统规定,但也是语法的一部分,应作为专项予以检查。(2) 跟踪过程此时的跟踪程序流程,即把自己当作计算机。给定一组输入数据后,顺序执行每条语句,考察所得结果,寻找错误。2.动态调试动态调试是指实际上机运行程序进行调试。源程序上机运行,语言系统及操作系统会在程序有故障时给出信息,常见的故障分为以下几种情况:(1) 没有通过编译。(2) 没有通过连接编译。(3) 程序的运行过程因故障而停止。(4) 程序只输出部分结果。对这部分结果进行分析,可大致了解程序被执行的逻辑,或程序在什么地方中断。(5) 程序执行了很长时间没结果。六、结束语本设计的硬件电路较简单,硬件电路容易实现。设计出满足系统功能要求的程序是该设计任务的重点和难点,该设计要求实现的功能有:(1) 能够控制四个路口的交通灯按照既定的功能要求进行有规律的变化。(2) 四个路口各有一个倒计时显示装置,并在倒计时还剩5s时点亮闪烁的黄灯以起禁示作用。(3) 设置三个按键分别处理3种不同的紧急情况。设计该系统的控制程序应遵循一定的控制规律。例如,南北方向之间,东西方向之间交通的变化规律是一样的;此外,四个路口的倒计时显示装置的时间参数的变化规律也是一致的,等等。参考文献1李海滨.片春媛.许瑞雪编.单片机技术课程设计与项目实例,中国电力出版社,20092王静霞主编.单片机应用技术.电子工业出版社,20093雄建云主编.Protel99 se EDA技术及应用.北京机械工业出版社,20074曹天汉主编.单片机原理与接口技术,电子工业出版社,20095何立民主编.单片机高等教程.北京航空航天大学出版社,2000 6 何立民主编.单片机应用系统设计系统配置与接口技术,北京航空航天大学出版社,2001- 13 -
展开阅读全文