基于51单片机及数字电路的两种智能交通灯仿真与设计-西南交通大学(共35页).doc

上传人:飞****2 文档编号:13868021 上传时间:2022-05-01 格式:DOC 页数:35 大小:6.93MB
返回 下载 相关 举报
基于51单片机及数字电路的两种智能交通灯仿真与设计-西南交通大学(共35页).doc_第1页
第1页 / 共35页
基于51单片机及数字电路的两种智能交通灯仿真与设计-西南交通大学(共35页).doc_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《基于51单片机及数字电路的两种智能交通灯仿真与设计-西南交通大学(共35页).doc》由会员分享,可在线阅读,更多相关《基于51单片机及数字电路的两种智能交通灯仿真与设计-西南交通大学(共35页).doc(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上附件二: 规定类 自选类西南交通大学电气工程学院实验竞赛月活动实验(作品)报告作品名称: 智能交通灯的设计、仿真及实践 专 业: 电气工程及其自动化 队员姓名: 指导老师: 作品完成起止时间: 2012年4月13日起至5月10日止2012年3月一、课题的由来当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两色

2、旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。 电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。 信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号

3、,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。二、课题的目的、意义为了使行人通过十字路口时更加方便、安全,也使车辆通行秩序化、规范化,就必须设计出更加完善、更加人性化和更加规范化的交通灯,以保障行人和车辆的安全通行,减少社会公共财富的流失。我们为了使通行更加方便,在实现交通灯的基本功能的前提下,增设了蜂鸣器,这不仅能给行人以提示,更能引导盲人安全通过十字路口,而且蜂鸣器的声音也能是司机保持警惕,大幅度增加了十字路口交通的安全性。我们设计的单片机控制交通灯就是基于信号灯,同时也加入了个性元素。三、人员分工蔺子存:实现对交通灯电路的仿真,程序的编写及修改,

4、绘制并制作印制板;俞宙杰:实物制作与连接,程序的编写及修改;王竞远:结题报告的编写,程序的编写及修改。四、实验原理及预期结果在本次实验中,本队本队使用了单片机和数字电路两种仿真方式设计出了较为合理的交通灯方案,我们也对传统交通灯进行了适当改进,使其更适应当今复杂多变的交通环境。(一)基于单片机原理的智能交通灯设计仿真与实践1、单片机简介单片机是一种集成在芯片,是采用技术把具有数据处理能力的中央处理器CPURAM、多种I/O口和中断系统、定时器/等功能(可能还包括显示驱动电路、电路、模拟多路转换器、等电路)集成到一块硅片上构成的一个小而完善的。AT89C51是一种带4K字节FLASH(FPERO

5、MFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称。AT89C2051是一种带2K字节闪存可编程可擦除的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示。 管脚说明: VCC:供电电压。

6、 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电

7、阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输

8、入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG

9、:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存

10、储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内

11、部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。2、Proteus7与Keil3 C51的原理及仿真Proteus是英国Labcenter electronics公司出版的EDA。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设

12、计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种。 Keil C51是Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的

13、仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP、WIN7等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil3 C51与Proteus的联调:这是本设计仿真的核心。在所有仿真软件以及编译器之间,只有Proteus和Keil C51之间才能实现C语言编译8051、AVR等系列单片机程序.hex文件和proteus单片机模块的完美联调。在联调中需要用到右图所示的驱动,且

14、需要设置Proteus启动远程调试功能,以及Keil的Option for TargetTarget1选项中通过修改Tools.int目录调试出“调试”中的“Proteus VSMSimulator”一栏,就可以实现与Proteus的联合仿真。3、仿真电路的功能实现 在Proteus中,AT89c51单片机的仿真电路省略了复位电路、晶振以及部分固定的接口的接线,经几次修改后的仿真电路图如下: 工作方式:(1)正常显示:l 南北亮红灯,从24秒开始倒计时;东西亮绿灯,20秒开始倒计时l 东西倒计时到0,绿灯灭,黄灯亮3秒,并倒计时l 东西红灯亮,从31秒倒计时;南北绿灯亮,从25秒倒计时l 南北

15、倒计时到0,绿灯灭,黄灯亮5秒,并倒计时(2)信号灯时间调节按钮功能:l SET:按1下为调节东西绿灯显示时间;按2下为调节东西黄灯时间;按3下为调节南北绿灯时间;按4下为调节南北黄灯时间。调时间时数码管以每秒钟3次的频率闪动,红灯时间=绿灯时间+黄灯时间+1l ADD:时间+1,长按加10l SUB:时间-1,长按减10(3)紧急情况中断功能l SW1闭合:正常显示状态和调时间状态时闭合,所有计时停止,数码管熄灭,东西南北信号灯统一亮红灯l SW1断开:数码管点亮,继续从中断时间计时,信号灯继续亮红灯,待缓冲倒计时结束后恢复正常信号灯显示 4、单片机源程序:#includeat89x51.h

16、unsigned char num=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/数字09unsigned char ctr=0x7e,0xf5;/0xfa(P3_0和P3_2为0,即高位有效)0xf5(P3_1和P3_3为0,即低位有效)/修改:0xfe(P3_7为1)unsigned char disEW2;/记录东西向高低位数值unsigned char disSN2; /记录南北向高低位数值unsigned char v; unsigned char cnt_ctr; unsigned int scdEW,scdSN; unsig

17、ned int cntSN,cntEW; unsigned char cntP3_4,cntP3_5,cntP3_6;unsigned int cnt_num,cnt_key,cnt_flash,keyMemory;int greenEW = 20,yellowEW = 3,greenSN = 25,yellowSN = 5;/延时函数,a为1延时1毫秒 void delay_ms(unsigned int a)int i;while(a-)i = 70;while(i-);/设置红绿黄灯秒数void setSecond(void)while(P3_4 = 0);cntP3_4+;/标志设置键

18、被按下的次数switch(cntP3_4)case 1:cntEW = 5;P1 = 0xf7;break;case 2:cntEW = 1;P1 = 0xef;break;case 3:cntSN = 1;P1 = 0xfe;break;case 4:cntSN = 3;P1 = 0xfd;break;case 5:cntEW = 5;cntSN = 5;cnt_num = 0;cntP3_4 = 0;break;/秒数加1void addSecond(void)while(P3_5 = 0);cnt_key = 0;/记录长按键的参数清零switch(cntP3_4)case 1:if(k

19、eyMemory != greenEW + 10)/判断按键是否已经加10,如果没有加10则秒数加1,如果已经加10则不加1greenEW+;if(greenEW = 90)greenEW = 0;scdEW = greenEW;scdSN = greenEW + yellowEW + 1;break;case 2:if(yellowEW+ = 9)yellowEW = 0;scdEW = yellowEW;break;case 3:if(keyMemory != greenSN + 10)greenSN+;if( greenSN = 90) greenSN = 0;scdEW = green

20、SN + yellowSN + 1;scdSN = greenSN;break;case 4:if(yellowSN+ = 9)yellowSN = 0;scdSN = yellowSN;break;/秒数减1void subSecond(void)while(P3_6 = 0);cnt_key = 0;/记录长按键的参数清零switch(cntP3_4)case 1:if(keyMemory != greenEW - 10)/判断按键是否已经减10,如果没有减10则秒数减1,如果已经减10则不减1greenEW-;if(greenEW = -1)greenEW = 89;scdEW = gr

21、eenEW;scdSN = greenEW + yellowEW + 1;break;case 2:if(yellowEW- = 0)yellowEW = 9;scdEW = yellowEW;break;case 3:if(keyMemory != greenSN - 10)greenSN-;if(greenSN = -1) greenSN = 89;scdEW = greenSN + yellowSN + 1;scdSN = greenSN;break;case 4:if(yellowSN- = 0)yellowSN = 9;scdSN = yellowSN;break;/正常显示秒数vo

22、id display(void)cnt_num+;if(cnt_ctr = 10) cnt_ctr = 0; P3 = 0xff; P3 = ctrv;P2 = numdisEWv; /显示东西方向秒数P0 = numdisSNv; /显示南北方向秒数if(v+ = 1) v = 0; /闪烁显示秒数void dspFlash(void)cnt_flash+;if(cnt_flash = 90)greenEW = 0;keyMemory = greenEW + 10;/keyMemory用来标记秒数已经加10scdEW = greenEW;scdSN = greenEW + yellowEW

23、+ 1;break;case 3:greenSN = greenSN + 10;if(greenSN =90)greenSN = 0;keyMemory = greenSN + 10;scdEW = greenSN + yellowSN + 1;scdSN = greenSN;break;/长按减10秒void sub_10s(void)cnt_key = 0;switch(cntP3_4)case 1:greenEW = greenEW - 10;/长按秒数减10if(greenEW 0)greenEW = 89;keyMemory = greenEW - 10;/keyMemory用来标记

24、秒数已经减10scdEW = greenEW;scdSN = greenEW + yellowEW + 1;break;case 3:greenSN = greenSN - 10;if(greenSN 0)greenSN = 89;keyMemory = greenSN - 10;scdEW = greenSN + yellowSN + 1;scdSN = greenSN;break;/T0中断void t0(void) interrupt 1cnt_ctr+; if(cntP3_4 = 0)display();/正常显示秒数 if(cntP3_4 != 0)dspFlash();/闪烁显示秒

25、数 if(cnt_num = 4000) cnt_num = 0; if(scdEW- = 0) cntEW+;/东西向秒数减至0,标志位加1 if(scdSN- = 0) cntSN+;/南北向秒数减至0,标志位加1 switch(cntEW)case 1:scdEW = yellowEW;/东西向黄灯亮,显示黄灯秒数P1_3 = 1;P1_4 = 0;P1_5 = 1;cntEW+;/避免程序到此阻塞,故将其至为2break;case 3:/避免cntEW为2scdEW = greenSN + yellowSN + 1;/东西向红灯亮,显示红灯秒数P1_3 = 1;P1_4 = 1;P1_

26、5 = 0;cntEW+;/避免程序到此阻塞,故将其至为4break;case 5:/避免cntEW为4scdEW = greenEW;/东西向绿灯亮,显示绿灯秒数P1_3 = 0;P1_4 = 1;P1_5 = 1;cntEW = 0;break;switch(cntSN)case 1:scdSN = greenSN;/南北向绿灯亮,显示绿灯秒数P1_0 = 0;P1_1 = 1;P1_2 = 1;cntSN+;/避免程序到此阻塞,故将其至为2break;case 3:/避免cntSN为2scdSN = yellowSN;/南北向黄灯亮,显示黄灯秒数P1_0 = 1;P1_1 = 0;P1_

27、2 = 1;cntSN+;/避免程序到此阻塞,故将其至为4break;case 5:/避免cntSN为4scdSN = greenEW + yellowEW + 1;/南北向红灯亮,显示红灯秒数P1_0 = 1;P1_1 = 1;P1_2 = 0;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秒 disEW0 = scdEW/10; disEW1 = scdEW%10; disSN0 = scdSN/10;

28、disSN1 = scdSN%10;/主函数void main(void)TMOD = 0x02;/设置定时器0为工作方式2TH0 = 0x06;TL0 = 0x06;/初始化8位定时器 (256 - 6)*40000 = 1sEA = 1;/总中断允许ET0 = 1;/T0中断允许TR0 = 1;/打开T0中断EX0 = 1;/xiugai:开外部中断P1 = 0xf3;/东西向绿灯,南北向红灯P3_4 = 1;scdEW = greenEW;/设置东西向显示秒数scdSN = greenEW + yellowEW + 1;/设置南北向显示秒数while(1)if(P3_4 = 0)dela

29、y_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后不能正常加减void exter0() interrupt 0 /紧急中断按钮P1_2=0;P1_5=0;P1_3=1;P1_0=1;P2=0;P0=0; 5、实物的制作(二)基于数字电路原理的智能交通灯设计仿真

30、与Altium Designer PCB板电路实物制作1、 Multisim 10简介相信很多电子爱好者都对Multisim并不陌生吧?Multisim 10是加拿大图像交互技术公司(Interactive Image Technoligics简称IIT公司)推出的继EWB5.0之后电路仿真功能更强的电路仿真软件。他与第一个设计中Proteus属于同一类软件,但操作更为简洁,适合新手使用。 随着电子技术的飞速发展EWB5.0已远远不能够满足新的电子线路的仿真与设技的要求。因此IIT公司从EWB6.0版本开始,将专用于电路级仿真与设计的模块干脆更名为Multisim,意有万能仿真之功能。Mult

31、isim10在保留了EWB以往版本形象直观等诸多优点的基础之上,大大增强了软件的仿真测试和分析功能,同时还大大扩充了元件库中仿真元件的数量,特别是增加了若干个与实际元件相对应的建模精确的真实仿真元件模型,使得仿真设计的结果更精确、更可靠。本设计充分运用了数字电路的知识,通过对各种集成电路芯片的学习,查阅相关资料,并利用Multisim相比Proteus单元模块电路功能更为强大的特点,通过Multisim10环境里对电路进行设计,并把总体电路分成几个模块,先设计出模块电路,再通过Multisim10对模块电路进行封装,再封装后的模块绘制出交通管理系统的总体电路图,再对系统进行仿真测试,这样大大的

32、减少了工作量。2、 交通数字系统原理设计通过对系统的设计要求和功能分析,系统要控制红绿灯的交替、控制时间牌显示、控制黄灯闪动、有手动和自动控制。因此,该系统属于控制类电子电路系统。根据系统应实现的功能,可设计系统的控制方案组成框图,如图1-1所示。如图1-1所示,系统控制器是整个系统的关键部件,担负着接收输入信号,经过运算,产生控制输出功能,是交通管理系统的核心模块;输入模块包括时间初值输入,脉冲的输入和手动/自动选择输入模块;输出模块包括时间显示和信号灯显示模块。时间显示(数码管)数码管驱动器时间初值设定控制器信号灯控制器红黄绿信号灯脉冲产生与分频手动/自动选择图1-1 控制方案组成框图考虑

33、到本系统运行在“自动”时,有很多个环节的运作与东西南北方向通行的倒计时(对时钟脉冲作减计数)有关。例如减计数小于等于3s,黄灯闪动;减计数至0s,红绿灯交替并读入设定值;减计数至当前值,时间牌显示等。因此,选计数型控制器时合适的。具体应该选用输出是两位BCD码的减计数器。减计数至小与等于3s,黄灯闪动。这意味着,应能将0103s从计数结果中识别出来,故应有“3秒译码电路”承当对0103秒的译码任务;并有“黄灯闪动控制电路”控制黄灯的闪动。减计数至0s,红绿灯交替。与以上分析类似,应有“00秒译码电路”承当对00秒的译码任务;并有“红绿灯交替控制电路”控制红绿灯的交替。减计数至0s,读入设定值,

34、故应利用“00秒译码电路”的输入,使计数器的有效,以读入设定值。设定值分2060s5个档,故应有“设定值读入电路”,能根据开关的选位,给出相应的设定值。时间牌按秒显示,黄灯每秒闪动两次,故应有“秒脉冲和半秒脉冲发生器”为计数器和黄灯控制提供所需要频率的矩形脉冲。应有“时间显示电路”承担计数结果的显示任务,包括译码、驱动和高位灭零等。应有“信号灯驱动电路”承担信号灯(红、黄、绿灯)的发光任务。红绿灯的显示有“手动”和“自动”两种控制方式,故应有“手动/自动”选择电路。能根据“手动/自动”的选位,选择“自动显示”或“手动显示”信号,去控制红绿灯的显示。当系统在自动运行时,信号的的显示(每组显示时间

35、为20s)路程如图1-2所示。 20s20s东西红(南北绿)东西绿(南北红)黄灯闪黄灯闪3s3s图1-2 信号灯显示流程图 阶段:东西红灯(南北绿灯)亮。 阶段:东西红灯(南北绿灯)亮,且黄灯闪。 阶段:东西绿灯(南北红灯)亮。 阶段:东西绿灯(南北红灯)亮,且黄灯闪。4个阶段如图1-2箭头所示,周而复始,循环下去。综合上述考虑,我画出了交通管理系统的电路原理框图,如图1-3所示。图1-3交通管理系统电路原理控制框图时间显示减计数控制器3秒译码00秒译码初值设定信号灯驱动黄灯闪动控制红绿交替控制自动/手动选择自动显示手动显示东西红南北红手动+5V+5V灭牌灭牌图1-3交通管理系统电路原理控制框

36、图图1-3交通管理系统电路原理控制框图图1-3交通管理系统电路原理控制框图图1-3交通管理系统电路原理控制框图图1-3 交通数字系统电路原理控制框图3、 单元模块电路的设计在用Multisim10仿真之前,我把交通管理系统的硬件电路分为,1、时钟产生模块、2、初值输入模块、3、计数译码模块、4、数据选择模块和5、红绿灯切换模块,其他部件如开关、LED数码管放在整体电路中,以便观察输入和结果。1.时钟产生模块的电路首先,我在Multisim 10环境中创建了时钟信号产生电路,并添加模块的引脚,对仰脚相应的命名,保存模块,模块文件名为“555产生的时钟脉冲模块.ms10”模块图如图所示。 555产

37、生的时钟脉冲模块.ms102.初值输入模块设计和时钟产生模块电路的设计一样,首先创建初值输入模块电路,添加模块的输入输出引脚。保存文件,文件名为“输入设定值模块电路.ms8”。如图所示。输入设定模块电路.ms103.计数译码模块很上述的过程一样,创建其模块,保存文件名为“计数译码模块电路.ms10”。如图所示。计数译码模块电路.ms104.数据选择和红绿灯切换模块用同样的方法设计其电路,保存文件名为“手动自动模块.ms10”,如图所示。 手动自动选择模块.ms104、 总电路的设计与仿真功能实现由于电路图较复杂,因此将电路图分为上述4个模块,在插入这4个模块之后,并加入4511BD这两个二进制

38、转7段译码器,红、绿、黄灯以及个别逻辑门电路之后,组成一下总电路图: 总电路图.ms10l 自动计时交通灯:J4接上,J2接上,J5接下,控制J1可调节倒计时时间(2060秒)l 开始计时时,南北绿灯亮,东西红灯亮l 倒计时3秒到0秒时,黄灯闪烁。l 随后南北绿灯亮,东西绿灯亮,黄灯同理循环l 手动控制模式:用于堵车、行人请求通行或者紧急情况,J2接下后进入手动模式,若J4接上,南北红灯,东西绿灯;若J4接下,南北绿灯,东西红灯;若保持J4接下,J3接上,进入紧急情况状态,东西南北都亮红灯。 5、 PCB板及实物的制作由于在单片机的实物完成过程中,遇到了诸多问题与难题,例如使用万能板焊接电路时

39、导线较多,接头较密,很容易出现断裂或者断路的情况,并且元件松散,不稳定。因此在电路更为复杂元件更加繁多的情况下,我们采用了用Altium Designer绘制印制PCB板的方法来用于制作实物,原理图如下:l 关键点1:CL002BCD码译码显示器代替七段数码管+4511BD译码器+驱动器l 关键点2:三极管放大发光二极管亮度l 关键点3:添加辅助盲人通行的蜂鸣器CL002 的各个端子功能说明如下: BL:数字灯熄灭及显示状态控制端,在多位数中可用于位扫描显示控制。 RBI:多位数字中无效零值的熄灭控制信号输入端。 RBO多位数字中无效零值的熄灭控制信号输出端,用于控制下位数字的无效零值熄灭。该值为“无效零熄灭”工作状态下输出为 0电平,否则为 1 电平。 DPI:小数点显示及熄灭控制端。 LE:BCD码信息输入控制端,用于控制计数器 BCD码向寄存器传送。 QA、QB、QC、QD为寄存器 BCD码信

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁