基于Protues的交通灯设计与仿真.doc_第1页
基于Protues的交通灯设计与仿真.doc_第2页
基于Protues的交通灯设计与仿真.doc_第3页
基于Protues的交通灯设计与仿真.doc_第4页
基于Protues的交通灯设计与仿真.doc_第5页
免费预览已结束,剩余20页可下载查看

下载本文档

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

文档简介

摘 要 城市交通问题是困扰城市发展、制约城市经济建设的重要因素。城市道路增长的有限与车辆增加的无限这一对矛盾是导致城市交通拥挤的根本原因。城市街道网络上的交通容量的不断增加,表明车辆对道路容量的要求仍然很高,短期内还不可能改变。自从开始使用计算机控制系统后,不管在控制硬件里取得什么样的实际进展,交通控制领域的控制逻辑方面始终没能取得重大突破。 文中采PROTEUS制作的智能交通灯可以根据城市道路的具体情况设计出一种较好的控制电路,交通灯设在十字路门,在醒目位置用红、绿、黄三种颜色的指示灯。加上一个倒计时的显示计时器来控制行车。文中采用PROTEUS制作的智能交通灯在Keil ,Wave6000上进行交通模拟仿真软件上测试,测试结果表明该智能交通灯各项功能在实际运行中的可行性,同时在实际应用及运行中也取得了不错的效果。关键词:PROTEUS ;交通灯;单片机;仿真目录摘要1前言3第一章 交通灯的设计思路41.1系统模拟交通灯的控制要求41.2 设计方案41.3 设计思路5第二章 单片机主控电路和中断系统72.1主控电路及管脚说明72.1.1 主控电路72.1.2管脚说明82.2 MCS-51的中断源92.3 中断处理流程102.4 交通灯的中断处理流程112.5 交通灯的硬件设计原理图112.6交通灯的软件设计流程图及部分程序12第三章 基于PROTEUS的电路设计和仿真153.1 PROTEUS软件简介153.2 PROTEUS软件的强大功能153.3 用PROTEUS绘制电路图153.4 PROTEUS和KEIL编译器的结合使用183.5 PROTEUS对单片机的仿真20第四章 总结24谢辞25参考文献26前 言交通是一个城市经济的动脉,它不但体现了一个城市的发展活力,也直接与老百姓的生活息息相关。随着我国经济的高速发展,人们对私家车、公交车的需求越来越大。相应地,我国进入WTO以后,我国经济贸易与世界接轨,汽车业关税大大降低,使很多人都能负担得起,买私家车已经不再是遥不可及的梦。但是,车辆的增加无疑会对我国城市交通系统带来沉重的压力。而交通灯在这个交通环境中起着一个重要的角色,智能的交通灯能有效地缓解城市的交通压力,减少交通事故;智能的交通灯能为当地人民节省大量出行时间,创造出更多的社会价值;智能的交通灯为交通顺畅提供了保障,对当地经济起着一个不可估量的作用。目前设计交通灯的方案有很多,有应用CPLD设计实现交通信号灯控制器方法,有应用PLC实现对交通灯控制系统的设计。有应用单片机实现对交通信号灯设计的方法。目前,国内的交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯。加上一个倒计时的显示计时器来控制行车。对于一般情况下的安全行车,车辆分流尚能发挥作用。但在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。但在实际行车过程中,两车道的车辆轮流放行时间相同且固定。这样就会存在一定的缺陷。目前国内交通灯的发展趋势是拥有自动调整亮灯时间长短的功能。譬如说,它能自动感应该地区的交通情况,如果塞车的话该交通灯能自行控制红、黄与绿等的亮灯时间长短。系统还可以加上红外线接收器,相应地,紧急车辆(如消防车、救护车等)上应当装置红外线放射器。这样,在离交通信号灯远处,紧急车辆就可以开红外线放射器使交通信号灯全部显示红灯,避免因交通问题导致不必要的人命伤亡和金钱损失。另外系统还可以加一个点阵式LED中文显示屏,用以显示温度、天气情况、空气指数等,方便司机对外界情况的了解。第一章 交通灯的设计思路1.1系统模拟交通灯的控制要求功能要求:在十字路口,每条道路各有一组红、黄、绿灯和倒计时显示器,用以指挥车辆和行人有序的通行。交通灯控制器就是用于自动控制十字路口的交通灯和计时器,指挥各种车辆和行人安全通过。假设十字路口为东西南北走向,初始状态0为东西南北红灯。然后转换1,东西方向的绿灯亮25s,东西方向可以通车,而南北方向的红灯亮,南北方向禁止通行。过25s转状态2,东西绿灯灭后,黄灯亮,延时5秒,南北仍然红灯。再转状态3,南北方向的绿灯亮25s,南北方向可以通车,而东西方向的红灯亮,东西方向禁止车辆通行。过25s转状态4,南北绿灯灭后亮黄灯,延时5秒,东西方向仍然红灯亮。最后循环至状态1。1.2 设计方案目前设计交通灯的方案有很多,有应用CPLD实现交通信号灯控制器的设计,有应用PLC实现对交通灯控制系统的设计。有应用单片机实现对交通信号灯设计的方法,系统构图如(图1-1)所示: 图1-1 系统构图1.3 设计思路用6只发光二极管模拟交通信号灯,以单片机的P2口控制东西南北灯的走向;口线输出高电平则“信号灯”亮,口线输出低电平则“信号灯”熄,各口线控制功能及相应的控制码如(表1-1)所示:P2.1P2.2P2.3P2.4P2.5P2.6东西绿灯东西黄 灯东西 红 灯南北 绿 灯南北 黄 灯南 北 红 灯100001010001001100001010表1-1控制码表控制码所对应的流程图如(图1-2)所示图1-2流程图第二章 单片机主控电路和中断系统2.1主控电路及管脚说明2.1.1 主控电路单片机主控电路一般采用的主要元件是AT89C51,- 新增加很多功能,性能有了较大提升,价格基本不变。- ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能。- 89C51的极限工作频率是24M,具有了更快的计算速度。- 具有双工UART串行通道。- 内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。- 双数据指示器。- 电源关闭标识。- 全新的加密算法,这使得对于89C51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。- 兼容性强。AT89C51的外形及单片机最小系统如(图2-1)所示:图2-1 AT89C51外形及最小系统 AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器, 该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89C51可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89C51 是带4K 字节闪烁可编程可擦除只读存储器(EPEROM)的低电压、高性能CMOS 8 位微处理器(俗称单片机)。该单片机与工业标准的MCS51 型机的指令集和输出引脚兼容。AT89C51 将多功能8 位CPU 和闪烁存储器,组合在单个芯片中,为很多嵌入式控制提供了灵活性高且价格低廉的方案。AT89C51 的主要特性如下:寿命达 1000 写/擦循环;数据保留时间:10 年;全静态工作:0Hz24MHz;三级程序存储器锁定;1288 位内部RAM;32 可编程I/O 线;2 个16 位定时器/计数器;5 个中断源;可编程串行通道;低功耗闲置和掉电模式。2.1.2管脚说明VCC(40):5V。GND(20):接地。P0 口(3932):P0 口为8 位漏极开路双向I/O 口,每引脚可吸收8 个TTL 门电流。P1 口(18):P1 口是从内部提供上拉电阻器的8 位双向I/O 口,P1 口缓冲器能接收和输出4 个TTL 门电流。P2 口(2128):P2 口为内部上拉电阻器的8 位双向I/O 口,P2 口缓冲器可接收和输出4 个TTL 门电流。P3 口(1017):P3 口是8 个带内部上拉电阻器的双向I/O 口,可接收和输出4 个TTL 门电流,P3 口也可作为AT89C51的特殊功能口。RST(9):复位输入。当振荡器复位时,要保持RST 引脚2 个机器周期的高电平时间。ALE/PROG(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节,在FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,它可用作对外部输出的脉冲或用于定时目的,要注意的是,每当访问外部数据存储器时,将跳过1 个ALE 脉冲。PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期2 次PSEN 有效,但在访问外部数据存储器时,这2 次有效的PSEN 信号将不出现。EA/VPP(31):当EA 保持低电平时,外部程序存储器地址为(0000HFFFFH)不管是否有内部程序存储器。FLASH编程期间,此引脚也用于施加12V 编程电源(VPP)。XTAL1(19):反向振荡器放大器的输入及内部时钟工作电路的输入。XTAL2(18):来自反向振荡器的输出。2.2 MCS-51的中断源引起终端的原因,或者能发出中断申请的来源,称为中断源。中断可以认为设定,也可以是为响应突发性随机事件而设置,通常有I/O设备,实时控制系统中的随机参数和信息故障源等,8051有5个中断源,它们是两个外中断INT0(P3.2)和INT1(P3.3)、两个片内定时/计数器溢出中断TF0和TF1,一个是片内串行口中断TI或RI,这几个中断源由TCON和SCON两个特殊功能寄存器进行控制。其中5个中断源的程序入口地址如(表2-1)所示:中断源的服务程序入口地址中断源入口地址外中断00003H定时/计数器0000BH外中断10013H定时/计数器1001BH串行口中断0023H(表2-1) 中断源程序入口地址2.3 中断处理流程CPU响应中断请求后,就立即转入执行中断服务程序。它们的一般处理流程如图(2-2)所述: 图2-2 中断一般处理流程但对于不同的中断源、不同的中断要求可能有不同的中断处理方法,具体如图(2-3)所述: 图2-3 具体的中断处理流程()现场保护和现场恢复:中断是在执行其它任务的过程中转去执行临时的任务,为了在执行完中断服务程序后,回头执行原先的程序时,知道程序原来在何处打断的,各有关寄存器的内容如何,就必须在转入执行中断服务程序前,将这些内容和状态进行备份即保护现场。我们举个例子,在看书时,电话玲响需传去接电话时,必须在书本上做个记号,以便在接完电话后回来看书时,知道从哪些内容继续往下看。计算机的中断处理方法也如此,中断开始前需将有关寄存器的内容压入堆栈进行保存,以便在恢复原来程序时使用。中断服务程序完成后,继续执行原先的程序,就需把保存的现场内容从堆栈中弹出,恢复积存器和存储单元的原有内容,这就是现场恢复。如果在执行中断服务时不是按上述方法进行现场保护和恢复现场,就会是程序运行紊乱,程序跑飞,自然使单片机不能正常工作。()中断打开和中断关闭:在中断处理进行过程中,可能又有新的中断请求到来,这里规定,现场保护和现场恢复的操作是不允许打扰的,否则保护和恢复的过程就可能使数据出错,为此在进行现场保护和现场恢复的过程中,必须关闭总中断,屏蔽其它所有的中断,待这个操作完成后再打开总中断,以便实现中断嵌套。()中断服务程序:中断服务程序从中断入口地址执行,到返回指令RETI为止,一般包括两部分内容:一是保护现场;二是完成中断源请求的任务。既然有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容,一般以子程序的形式出现,所有的中断都要转去执行中断服务程序,进行中断服务。()中断返回:中断返回通常是指中断服务完成后,计算机返回原来断开的位置(即断点),继续执行原来的程序,中断返回由中断返回指令RETI来实现,这条指令的功能是指断点地址从堆栈中弹出,送回到程序计时器PC,此外,还通知中断系统已完成中断处理,并同时消除优先级状态触发器。2.4 交通灯的中断处理流程()现场保护和现场恢复:有特殊车辆要通过时就要进行中断,在中断之前,先将交通灯中断前情况保护好,当中断执行后再恢复现场,包括信号灯和时间显示电路。()中断打开和中断关闭:为了使特殊车辆通行按一下打开中断开关就可以打开中断,关闭中断开关就关闭中断。()中断服务程序:如有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容:即如果有特殊车辆需要经过时,南北东西均亮红灯,让特殊车辆通过。()中断返回:执行完中断服务程序后,必然要返回,中断返回就是被程序运行从中断服务程序转回到原工作程序上来。在MCS-51单片机中,中断返回是通过一条专门的指令实现的,自然这条指令是中断服务程序的最后一条指令。2.5 交通灯的硬件设计原理图图2-4 原理图2.6交通灯的软件设计流程图及程序 根据智能交通灯的设计要求与原理我们设计的交通灯的软件设计流程图如(图2-5)所示: 2s到否?3s到否?20s到否? 开始P0口置为FFH 南北红,东西绿 延时5S 延时5秒 南北红,东西黄 南北绿,东西红 延时25秒 南北黄,东西绿延时5秒 结束图2-5 程序设计流程图程序如下: #include reg.51h #define uint unsigned int #define uchar unsigned char sbit r1=p02; /北和南 sbit y1=p01; sbit b1=p00; sbit r2=p07; /东和西 sbit y2=p06; sbit b2=p05; void delay(void) /延时 uint i; for(i=0;i34530;i+); void main(void) uint i; while(1) r1=1;y1=0;b1=0; / 南北红r2=0;y2=0;b2=0; / 东西绿 for(i=0;i25;i+) delay(); r1=1;y1=0;b1=0; /南北红 r2=0;y2=1;b2=0; /东西黄 for(i=0;i5;i+) delay(); r1=0;y1=0;b1=1; /南北绿 r2=1;y2=0;b2=0; /东西红 for(i=0;i25;i+) delay(); r1=0;y1=1;b1=0; /南北黄 r2=1;y2=0;b2=0;/ 东西红 for(i=0;i5;i+) delay(); 第三章 基于PROTEUS的电路设计和仿真3.1 PROTEUS软件简介PROTEUS嵌入式系统仿真与开发平台是由英国公司开发的EDA工具软件,是目前世界上最先进最完整的嵌入式系统设计和仿真平台,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件, Proteus为我们建立了完备的电子设计开发环境。真正实现了在没有目标原形时就可对系统进行调试,测试和验证,PROTEUS软件大大提高了企业的开发效率,降低了开发风险。3.2 PROTEUS软件的强大功能Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。此系统受益于15年来的持续开发,被电子世界在其对PCB设计系统的比较文章中评为最好产品“The Route to PCB CAD”。Proteus 产品系列也包含了我们革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。其功能模块:个易用而又功能强大的ISIS原理布图工具;PROSPICE混合模型SPICE仿真; ARES PCB设计.PROSPICE 仿真器的一个扩展PROTEUS VSM:便于包括所有相关的器件的基于微处理器设计的协同仿真。此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LED甚至LCD显示CPU模型. (1)支持许多通用的微控制器,如PIC,AVR,HC11以及8051.(2)交互的装置模型包括:LED和LCD显示,RS232终端,通用键盘,(3)强大的调试工具,包括寄存器和存储器,断点和单步模式(4)IAR C-SPY 和Keil uVision2等开发工具的源层调试(5)应用特殊模型的DLL界面-提供有关元件库的全部文件 Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。所以说PROTUES是一种十分优秀的软件。3.3 用PROTEUS绘制电路图运行PROTEUS VSM 的ISIS 后出现如(图3-1) 所示的界面, 点状的栅格区域为绘图区。左侧的上方为电路图概览区, 下方是元器件列表区。单击P后出现(图3-2) 所示的Pick Device添加元器件的对话框, 输入所要添加的器件名称, 则该器件就会出现在右侧, 单击OK 按钮, 完成一个元器件的添加。重复以上过程, 添加好电路中所需的元器件。 在桌面上双击图标ISIS,打开ISIS7 Professional 窗口。单击菜单命令“File”“New Design” ,新建一个DEFAULT模板,保存文件名为模拟交通灯.DSN。在器件选择按钮P L DEVICES 中单击P按钮,或执行菜单命令“Library”“Pick Device/Symbol” 模拟交通灯所用的元件,单片机AT89C51、瓷片电容CAP 30pF、电阻RES 、 晶振CRYSTAL 12MHz、 按钮BUTTON、电解电容CAP-ELEC、 排阻RESPACK-8、 发光二极管 TRAFFIC LICHTS。 在ISIS原理图编辑窗口中放置的元件,再单击工具箱中的“元件终端”图标,在选择器中单击“POWER”和“GROUND”放置电源和地。放置好元件后,布好线。左键双击各元件,设置相应元件参数,完成电路图的设计。概览区元器件列表区绘图区图 3-1运行PROTEUS VSM 的ISIS 后出现的界面图 3-2添加元器件的对话框在元器件列表区选中某元器件后, 在电路图概览区会出现该元器件, 用鼠标将其拖至绘图区, 将所有需要的元器件在绘图区放置好, 即可开始连线。连线方法很简单, 将鼠标移至元器件引脚后会出现一个小十字, 单击鼠标左键后移动鼠标, 将线引至某一引脚处会再次出现小十字, 再次单击左键就完成了一条连线。在布线时, 如果需要转弯,可以在转弯处单击鼠标左键。此处以89S51 构成的交通灯为例, (图 3-3)是绘制完成的电路图。图3-3 绘制完成的电路图3.4 PROTEUS和KEIL编译器的结合使用Proteus在设计时已经注意到和单片机各种编译程序的整合了,如它可以和Keil ,Wave6000等编译模拟软件结合使用。由于Keil使用方便,具备强大的软件仿真和硬件仿真功能。把Proteus和Keil结合起来调试硬件就方便多了,本设计就是采用“Proteus+Keil”的仿真方法,具体步骤如下:(1) 首先运行PROTEUS VSM 的ISIS,选择SourceDefine Code Generation Tool 菜单项,将出现如(图 3-4)所示定义代码生成工具对话框。图3-4 定义代码生成工具对话框在Tool下拉列表框中选择代码生成工具,在这一示例中,电路中的微处理器为8051系列单片机,因此选择ASEM51, 单击Browse按钮,选取Keil的安装路径。单击OK按钮,结束代码生成工具的定义。选择SourceAdd/Remove Source File 菜单项,将出现Add/Remove Source Code Files对话框,如(图 3-5)所示: 图 3-5 添加/删除源文件对话框在Code Generation Tool 选项区,单击下三角按钮,选择ASEM51工具。(2)单击New按钮,将出现如(图3-6)所示对话框。图 3-6 创建源代码对话框选择用Keil创建好的AA.ASM文件,即完成了文件的创建。就这样当用Keil对AA.ASM 文件进行更改时每一次运行PROTEUS VSM 的ISIS对电路进行仿真时Keil都会对AA.ASM进行编译,AA.HEX文件也会随时更新。3.5 PROTEUS对单片机的仿真电路图绘制完成后, 再添加AT89S51 的应用程序。将鼠标移至AT89S51 上, 单击鼠标右键使之处于选中状态, 在该器件上单击左键, 打开如(图 3-7) 所示的对话框。在 Program File 栏添加编译好的十六进制格式的程序文件AA.hex(可以接受3 种格式的文件) ,给AT8

温馨提示

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

评论

0/150

提交评论