张鑫炎 交通灯设计_第1页
张鑫炎 交通灯设计_第2页
张鑫炎 交通灯设计_第3页
张鑫炎 交通灯设计_第4页
张鑫炎 交通灯设计_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、河南城建学院本科课程设计报告河南城建学院微机原理与接口技术课程设计报告题目:交通灯设计姓 名: 张鑫炎 学 号: 094413154 专业班级: 建筑电气与智能化 指导老师: 董燕飞、张洛花 所在院系: 电气与信息工程学院 2015年12月24日一、评语(根据学生答辩情况及其报告质量综合评定)。二、评分指导教师签字: 年 月 日 摘要在日常生活中,交通信号灯的使用,市交通得以有效管理,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。并且随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来

2、使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。本设计是采用STC89C51单片机以及单片机最小系统和74HC573电路以及外围的按键和数码管显示等部件,设计一个基于单片机的交通灯设计。本设计主要分为以下几个模块:初始化程序、主程序、定时中断程序等,整套电路模块由控制系统模块、通行灯输出控制显示模块、时间显示模块等模块组成。通过本设计可以实现一个十字路口的车辆及行人的交通管理,本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,按键可以通行时间的加、减和繁忙状态等功能。共五个二位阴极数码管,东南西北各一个显示时间,能进行倒计时显示和通行时间的显示

3、。五组数码管的阴极利用三极管的开关作用,通过单片机的IO口进行控制,阳极接到74HC573芯片上,通过P0口控制74HC573芯片,起到驱动放大作用。共32个发光二极管,指示通行状态。本系统实用性强、操作简单、扩展功能强。 关键词:交通灯,单片机,显示,计时目录1 系统总体方案设计 1.1方案一3 1.2方案二3 1.3方案三3 1.4综合比较32 硬件电路设计及芯片简介 2.1 系统硬件总电路构成 42.2 STC89C51单片机概述 42.3 单片机引脚介绍 62.4 单片机最小系统 92.5 LED循环说明 92.6 芯片介绍 103 单元电路设计 3.1 主控制系统 11 3.2 时钟

4、电路 11 3.3 复位电路 12 3.4 时钟显示模块 12 3.5 按键模块 13 3.6 中断服务模块 14 3.7 信号灯模块 144 软件仿真 Proteus7.8仿真165课程设计体会 课程设计总结及体会 21参考文献附1:元器件清单 23附2:源程序代码 24附3:总原理图( 另见大纸附图)1系统总体方案设计1.1 方案一采用标准STC89C51单片机作为控制器;通行倒计时显示采用3位LED数码管;左拐、直行以及行人3种通行指示灯采用双色高亮发光二极管;LED显示采用动态扫描以节省端口数。紧急模式下采用实时中断完成。行驱动采用4/16译码器74HC573生成16条行选通信号线,再

5、经过驱动器驱动对用的行线。每条行线上需要较大的驱动电流,应选用大功率三极管作为驱动管,按照以上系统构架设计,耗电较少,可靠性高等特点。1.2 方案二采用AT89C2052单片机作为控制器,通行倒计时显示采用16×16点阵LED发光管,左拐、右拐、直行以及行人4种通行指示也采用16×16点阵双色LED发光管。该系统设计框架如下图所示。列驱动采用74LS595以实现串行端口拓展,行驱动采用4/16译码器74LS154生成16条行选通信号线,再经过驱动器驱动对用的行线。每条行线上需要较大的驱动电流,应选用大功率三极管作为驱动管,这种设计方案显示逼真,单片机占用端口资源少;缺点是需

6、要大量的硬件,电路复杂,耗电量大,在模型制作中较少采用。1.3方案三采用AT89C2051单片机作为控制器,通行倒计时及左拐、右拐、直行、杏仁通行指示采用单块LCD液晶点阵显示器。这种方案设计占用单片机的端口较少,硬件也少,耗电也最少;虽然显示图案很精美,但由于亮度泰安,晚上还得开背光,所以采用较少。1.4综合比较通过以上综合分析可以看出,方案1.1具有综合设计有点,因此本次交通灯设计采用方案1设计。2 硬件电路设计及芯片简介2.1系统硬件总电路构成实现本设计要求的具体功能,可以选用stc89C51单片机及外围器件构成最小控制系统,32个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,16个

7、红和绿灯指示人行道的通行状态,8个LED东西南北各两个构成倒计时显示模块,2个LED显示当前通行时间,3个按键组成时间设置和繁忙状态。本系统以单片机为核心,组成一个处理、自动控制为一身的闭环控制系统。系统硬件电路由单片机、状态灯、LED显示、驱动电路、按键等组成。其系统的总体设计框图如下图所示。其中P0,P2,用于送显LED数码管的型和位,P1用于控制红绿黄发光二极管,XTAL1和XTAL2接入晶振时钟电路,REST引脚接上复位电路,P3用于口按键控制。STC89C1串行口计算机按钮开关数码管指示灯三极管2.2 STC89C51单片机概述单片微型计算机是随着微型计算机的发展而产生和发展的。自从

8、1975 年美国德克萨斯仪器公司的第一台单片微型计算机( 简称单片机)TMS-1000 问世以来,迄今为止,单片机技术已成为计算机技术的一个独特分支,单片机的应用领域也越来越广泛,特别是在工业控制中经常遇到对某些物理量进行定时采样与控制的问题,在仪器仪表智能化中也扮演着极其重要的角色。STC89C51单片机学习板是一款基于8位单片机处理芯片STC89C51RC的系统。STC89C51RC是采用8051核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率为80MHz,片内含8K Bytes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-

9、51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。STC89C51RC系列单片机是单时钟/机器周期(1T)的兼容8051 内核单片机,是高速/ 低功耗的新一代8051 单片机。 89C52单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等极大单元及数据总线、地址总线和控制总线等三大总线。单片机是在集成电路芯片上集成了各种元件的微型计算机,这些元件包括中央处理器CPU、

10、数据存储器RAM、程序存储器ROM、定时/计数器、中断系统、时钟部件的集成和I/O接口电路。由于单片机具有体积小、价格低、可靠性高、开发应用方便等特点,因此在现代电子技术和工业领域应用较为广泛,在智能仪表中单片机是应用最多、最活跃的领域之一。在控制领域中,现如今人们更注意计算机的底成本、小体积、运行的可靠性和控制的灵活性。在各类仪器、仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,提高计算机的运算速度,简化仪器仪表的硬件结构,提高其性能价格比。80C51单片机主要功能特性:· 增强型1T 流水线/精简指令集 结构8051 CPU· 片内8kROM(可扩充64

11、kB外部存储器)· 32个双向I/O口· 256x8bit内部RAM(可扩充64kB外 部存储器)· 2个16位可编程定时/计数器· 时钟频率3.5-12/24/33MHz· 向上或向下定时计数器· EEPROM 功能· 6个中断源· 5.0V工作电压· 全双工串行通信口· 看门狗· 空闲和掉电节省模式· 4层优先级中断结构2.3单片机引脚介绍单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储

12、器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。MCS-51系统的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,图3是它们的引脚配置,40个引脚中,正电源和底线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。VCC:STC89C52电源正端输入,接+5V。GND:电源地端。XTAL1: 单芯片系统时钟的反相放大器输入端。XTAL2: 系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一

13、20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。RESET:STC89C51的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。EA/Vpp:"EA"为英文"External Access"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须

14、接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。PSEN:此为"Program Store Enable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。STC89C52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。PORT0(P0.0P0.7):

15、端口0是一个8位宽的开路汲极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0A7)及数据总线(D0D7)。设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0A7,再配合端口2所送出的A8A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。PORT2(P2.0P2.7):端口2是具有内部提升电路的双向I/O端

16、口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在STC89C52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8A15,这个时候P2便不能当做I/O来使用了。PORT1(P1.0P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。PORT3(P3.0P

17、3.7):端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下: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,外部数据存储器的读取信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PR

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

19、存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)单片机引脚图如下:P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4Y1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1GNDPDIPVCCP0.0/AD0P0.1/AD1

20、P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7EA/VPPALE/PROGPESNP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A8403938373635343332313029282726252423222112345678910111213141516171819202.4单片机最小系统单片机芯片内还有一项主要内容就是并行I/O口。STC89C51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,

21、它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。单片机的4个I/O口都是8位双向口,这些口在结构和特性上是基本相同的,但又各具特点。STC89C51单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。在单片机内部有一振荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容C1和C2的作用是稳定频率和快速起振,电容值在5-30pF,典型

22、值为30pF。晶振CYS的振荡频率范围在1.2-12MHz间选择,典型值为12MHz和11.0592MHz。当在STC89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。时钟频率用6MHZ时C取22uF,R取1K。除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位

23、是通过RST端经过电阻与电源Vcc接通而实现的。2.5 LED循环说明为了便于说明,不妨将东西方向允许直行命名为状态1,东西方向允许左转命名为状态2,东西方向行车到南北方向行车的转换阶段命名为状态3,将南北方向允许直行命名为状态4,南北方向允许左转命名为状态5,南北方向行车到东西方向方向行车的转换阶段命名为状态6。假定左转绿灯点亮的时间为20s,直行绿灯点亮的时间为35s,黄灯点亮的时间为5s,则对方红灯的点亮时间为55秒。各个状态之间的变换情况如下:状态1 状态2 状态3 状态4 状态5 状态6 状态1具体显示周期如下:40s20s5s60s状态1状态2状态3状态4状态5状态6东西路口直行绿

24、灯亮左转绿灯亮黄灯亮缓行红灯亮禁行南北路口红灯亮禁行直行绿灯亮左转绿灯亮黄灯亮缓行60s4020s5s2.6芯片介绍74HC573是一款高速CMOS器件,74HC573引脚兼容低功耗肖特基TTL(LSTTL)系列。74HC573包含八路D 型透明锁存器,每个锁存器具有独立的D 型输入,以及适用于面向总线的应用的三态输出。所有锁存器共用一个锁存使能(LE)端和一个输出使能(OE)端。当LE为高时,数据从Dn输入到锁存器,在此条件下,锁存器进入透明模式,也就是说,锁存器的输出状态将会随着对应的D输入每次的变化而改变。当LE为低时,锁存器将存储D输入上的信息一段就绪时间,直到LE的下降沿来临。当OE

25、为低时,8个锁存器的内容可被正常输出;当OE为高时,输出进入高阻态。OE端的操作不会影响锁存器的状态。3 单元电路设计3.1主控制系统主控制器采用STC89C51单片机,STC89C51单片机及外围器件构成最小控制系统,32个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,16个红和绿灯指示人行道的通行状态,8个LED东西南北各两个构成倒计时显示模块,2个LED显示当前通行时间,3个按键组成时间设置和繁忙状态。本系统以单片机为核心,组成一个处理、自动控制为一身的闭环控制系统。系统硬件电路由单片机、状态灯、LED显示、驱动电路、按键等组成。其具体的硬件电路总图如图3-1所示。其中P0,P2,用

26、于送显LED数码管的型和位,P1用于控制红绿黄发光二极管,XTAL1和XTAL2接入晶振时钟电路,REST引脚接上复位电路,P3用于口按键控制。3.2时钟电路系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统

27、电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为30pF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。 (时钟电路)外部方式的时钟很少用,若要用时,只要将XTAL1接地,XTAL2接外部振荡器就行。对外部振荡信号无特殊要求,只要保证脉冲宽度,一般采用频率低于12MHz的方波信号。3.3复位电路使CPU进入初始状态,从0000H地址开始执行程序的过程叫系统复位。从实现系统复位的方法来看,系统复位可分为硬件复位和软件复位。硬件复位必须通过CPU外部的硬件电路给CPU的RESET端加上足够的时间高电位才能

28、实现。上电复位、人工按钮复位和硬件看门狗复位都是硬件复位。硬件复位后,各专用寄存器均被初始化,且对片内通用寄存器没有影响。软件复位就是用一系列指令来模拟硬件复位功能,最后通过转移指令使程序从0000H地址开始执行。对各专用寄存器的复位操作是容易的,也没必要完全模拟,可根据实际情况需要在主程序初始化完成。本次设计的复位是由外部的复位电路来实现的,即人工按钮实现。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。3.4 时间显示模块LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多位LED显示器,通常都是采用动态扫描的方法进行显示,

29、其硬件连接方式如系统原理图。在动态方式中,逐个地循环地点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,但由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果完全一样。本次采用四组两个数码管,同时为了节省口资源,采用串口显示的方式驱动数码管。数码管的图示如图所示。在单片机系统中,通常用LED数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。 七段LED显示器由八个发光二极管组成。其中7个长条形的发光管排列成“日”字形,另一个圆点形的放光管在显示器的右下角作为显示小数点用,它能显示各种数字及部分英文字母。LED显示器有两种不同的形式

30、:一种是8个发光二极管的阳极都连在一起的,称为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称为共阴极LED。下图为共阴极LED显示器。 共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示各种字符。8个笔划段hgfedcba对应于一个字节(8位)的D7 D6 D5 D4 D3 D2 D1 D0,于是用8位二进制码就可以表示欲显示字符的字型代码。例如,对于共阴LED显示器,当公共阴极接地(为零电平),而阳极hgfedcba各段为0111011时,显示器显示"P"字符,即对于共阴极LED显示器,“

31、P”字符的字形码是73H。如果是共阳LED显示器,公共阳极接高电平。本系统采用动态扫描显示接口电路,动态显示接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM各自独立地受I/O线控制。CPU向字段输出口送出字型码时,所有显示器接收到相同的字型码,但究竟是哪个显示器亮,则取决于COM端。也就是说我们可以采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的

32、显示数据,不会有闪烁感。常用的LED显示器有LED状态显示器(俗称发光二极管)、LED七段显示器(俗称数码管)和LED十六段显示器。发光二极管可显示两种状态,用于系统状态显示;数码管用于数字显示;LED十六段显示器用于字符显示。本次设计采用共阴极的数码管接法。3.5按键模块在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入是与软件结构密切相关的过程。对于一组键或一个键盘,总有一个接口电路与CPU相连。CPU可以采用查询或中断方式了解有无将键输入,

33、并检查是哪一个键按下,将该键号送入累加器ACC,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。微机键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑关系。也就是说,它能提供标准的TTL逻辑电平,以便与通用数字系统的逻辑电平相容。机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。抖动时间的长短与开关的机械特性有关,一般为510 ms,在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须

34、采取去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。而在本次设计中,牵涉到的按键虽然较少,但是从经济角度考虑,以及结合实际情况,所以还是认为采用软件消抖比较合适。3.6中断服务模块当发生东西南北的绿灯都亮的情况时,那么系统产生中断,使所有的信号灯都熄灭,并发出报警信号。等故障解除后,可以恢复现场恢复到中断前的状态,也可以由人工复位按钮进行复位,使程序从新开始执行。其实这步也可以通过程序来实现,这样会更加方便,只是对程序的要求会更高,然而确实很方便的,只是由于水平有限,只能通过手动控制来实现,感到十分遗憾。关于中断这个部分,本次的设计只

35、是交通灯设计中很基础的部分,例如当特种车辆过十字路口等特殊状况,通过手动控制两个方向均亮起红灯,等特种车辆通过以后,再回复以前的交通指示状态。3.7信号灯模块下面的是信号灯的程序流程,先是S0:南北红灯亮,东西绿灯亮,持续时间20s;S1:南北红灯亮,东西绿灯闪三次,持续时间3s;S2:南北红灯亮,东西黄灯亮,持续时间2s;S3: 东西红灯亮,南北绿灯亮,持续时间25s;S4:东西红灯亮,南北绿灯闪三次,持续时间3s;S5:东西红灯亮,南北黄灯亮,持续时间2s。就这么依次循环。信号灯流程图如下图所示。开始东西红灯亮,持续55s,南北绿灯亮,持续15s南北黄灯5s,随后左转路灯15s,东西红灯继

36、续闪烁15s东西、南北方向黄灯闪烁,持续5s南北红灯亮,持续55s东西绿灯亮,持续15s东西黄灯5s,随后左转路灯15s,南北红灯继续闪烁15s东西、南北方向黄灯闪烁,持续5s 信号灯顺序流程图4 软件仿真状态一:东西机动车、行人禁行 南北机动车、行人通行状态二:南北黄灯闪烁(等待),东西机动车、行人禁行状态三:南北机动车左转、行人禁行,东西机动车、行人禁行状态四:南北黄灯闪烁(等待),东西机动车、行人禁行状态五:东西机动车、行人禁行,南北机动车、行人通行状态六:东西黄灯闪烁(等待),南北机动车、行人禁止通行状态七:东西机动车左转、行人禁行,南北机动车、行人禁行状态八:东西黄灯闪烁(等待),南

37、北机动车、行人禁行状态九:紧急模式,在遇到特种车辆时,按下禁止按钮,两个方向都亮起红灯,当特种车辆通过以后,交通灯情况回复正常以上就是本次交通灯的设计的仿真情况,设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,有左转功能,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。交通状态从状态1开始变换,直至状态8然后循环至状1,周而复始:直至状态8然后循环至状态。5 课程设计体会单片机这门课程是在大二下半学期学的,等到了大三开始单片机课程设计,我感觉有些内容有些陌生,周围的同学也有这种感觉。刚抽到课程设计题目时,我原本以为应该不麻烦的,因为我抽到

38、的是交通灯的控制,感觉大体是运用定时器及中断的原理来做。这类问题以前在单片机实验中做过类似的实验,所以大体感觉,交通灯的问题,用编程来解决,原理应该是很简单的。拿到题目后,我看了看后,感觉思路清晰了,用单片机中定时器和中断的知识即可。所以,我决定先完成程序设计部分,用汇编语言编程。在编程过程中,我感觉以前学过的一些单片机编程的某些语法不熟悉,所以还花了一些时间复习以前的内容。本次课程设计不必以前的实验操作,因为这次交通灯的控制要求实现的功能比以前复杂,不仅要有各个方向通行灯的定时指示,还需要有扩展功能,我将夜间模式换成了特种车运行模式。整个程序中,子程序的调用比较频繁,所以编程需要较强的逻辑性

39、。单片机是一门强调实践的课程,在学习单片机理论课时候就感觉到内容很多,知识点很杂,分繁琐。虽然老师的课上得不错,但是对于单片机内部结构还不是很理解。不过单片机综合设计这门课程给了我们一次实践的机会。通过这次设计逐渐了解了单片机的内部构造和工作原理,以及接外部电路的情况。通过实际动手去实践。真正把课堂上所学的用到日常生活中,理论联系实际,做出实物模型。这次单片机实习,我选的是交通灯设计,从代码的编写,做仿真到画电路原理图,PCB图,到最后的做实物,都是通过查阅资料,自己动手做。做完之后,感觉真正在这门课上学到了东西。动手能力得到了提高,对单片机的认识也加深了。 这次课程设计,在编程的时候会有困难

40、,也可能不一定成功,所以要经过多次调试,分析,改正,反复去做。经历了多次失败的洗礼,我明白在以后学习和实践中,我要努力掌握知识,多动手,多思考,以免在以后的学习工作中犯同样的错误。参考文献1楼然苗,李广飞,等.单片机课程设计指导M .北京:北京航空航天大学出版社,2007:115-1222罗印升,等.单片微机原理与应用M .北京:机械工业出版社,2012:20-1333皮大能,南光群,等.单片机课程设计指导书M .北京:北京理工大学出版社,2010:184-1954边海龙,孙永奎,等.单片机开发与典型工程项目实例详解J.北京:电子工业出版社,2008:143-160.5王为青,邱文勋,等. 5

41、1单片机开发案例精选J.北京:人民邮电出版社,2001,(5):45-47.6蒋辉平,周国雄,等.基于Proteus的单片机系统设计与仿真实例M.北京:机械工业出版社,2009: 33-1257蔡伟智,等.LED道路交通灯的研制,液晶与显示,第20卷第五期8蔡美琴,等.MCS-51系列单片机系统及其应用M.北京: 高等教育出版社,2004.2:34-95附1:元器件清单附2:汇编源程序 十字路口交通灯控制 C 程序*/#defineucharunsigned char#defineuintunsigned int#include<reg52.h>/*定义控制位*/sbit Time

42、_Show_LED2=P25;/Time_Show_LED2控制位sbit Time_Show_LED1=P24;/Time_Show_LED1控制位sbitEW_LED2=P23;/EW_LED2控制位sbitEW_LED1=P22;/EW_LED1控制位sbitSN_LED2=P21;/SN_LED2控制位sbitSN_LED1=P20;/SN_LED1控制位sbit SN_Yellow=P16;/SN黄灯sbit EW_Yellow=P12;/EW黄灯sbit EW_Red=P13;/EW红灯sbit SN_Red=P17;/SN红灯sbit EW_ManGreen=P30;/EW人行道

43、绿灯sbit SN_ManGreen=P31;/SN人行道绿灯sbit Special_LED=P26;/交通正常指示灯sbit Busy_LED=P27;/交通繁忙指示灯sbit Nomor_Button=P35;/交通正常按键sbit Busy_Btton=P36;/交通繁忙按键sbit Special_Btton=P37;/交通特殊按键 sbit Add_Button=P33;/时间加sbit Reduces_Button=P34;/时间减bit Flag_SN_Yellow; /SN黄灯标志位bit Flag_EW_Yellow;/EW黄灯标志位bitflag_jinji;charTi

44、me_EW;/东西方向倒计时单元charTime_SN;/南北方向倒计时单元uchar EW=60,SN=40,EWL=19,SNL=19; /程序初始化赋值,正常模式uchar EW1=60,SN1=40,EWL1=19,SNL1=19;/用于存放修改值的变量uchar code table10=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;/19段选码uchar code S9=0X28,0X48,0X98,0X48,0X82,0X84,0X89,0X84,0x88;/交通信号灯控制代码/*延时子程序*/void delay(uint

45、x)uint p;uchar q;for(p=0;p<x;p+)for(q=0;q<121;q+);/*显示子函数*/voidDisplay(void)char h,l;h=Time_EW/10;l=Time_EW%10; P0=tablel;EW_LED2=1;delay(1);EW_LED2=0; P0=tableh;EW_LED1=1;delay(1);EW_LED1=0;h=Time_SN/10;l=Time_SN%10;P0=tablel;SN_LED2=1;delay(1);SN_LED2=0; P0=tableh;SN_LED1=1;delay(1);SN_LED1=

46、0;h= EW1/10;l= EW1%10;P0=tablel;Time_Show_LED1=1;delay(1); Time_Show_LED1=0;P0=tableh;Time_Show_LED2=1;delay(1); Time_Show_LED2=0; void KEY()if(Add_Button=0) /时间加delay(20); if(Add_Button=0)EW1+=5;SN1+=5;SN1=EW1-20;EWL1=19;SNL1=19;if(EW1>=100)EW1=99;SN1=79;while(Add_Button=0) Display();if(Reduces_

47、Button=0) /时间减delay(20);if(Reduces_Button=0)EW1-=5;SN1-=5;SN1=EW1-20;EWL1=19;SNL1=19;if(EW1<=40) EW1=40;SN1=20;while(Reduces_Button=0) Display(); if(Nomor_Button=0)/测试按键是否按下,按下为正常状态delay(20);if(Nomor_Button=0)EW1=60;SN1=40;EWL1=19;SNL1=19;Busy_LED=0;/关繁忙信号灯Special_LED =0;/关特殊信号灯while(Nomor_Button

48、=0) Display(); if(Busy_Btton=0) /测试按键是否按下,按下为繁忙状态delay(20); if(Busy_Btton=0)EW1=45;SN1=30;EWL1=14;SNL1=14;Special_LED=0;/关特殊信号灯Busy_LED=1;/开繁忙信号灯while(Busy_Btton=0) Display();/*if(Special_Btton=0)/测试按键是否按下,按下为特殊状态 EW1=75; SN1=55;EWL1=19;SNL1=19;Busy_LED=0;/关繁忙信号灯 Special_LED =1;/开特殊信号灯 */if(Special_Btton=0)delay(50);if(Special_Btton=0)flag_jinji=flag_jinji;while(Special_Btton=0) Display();/*T0中断服务程序*/void timer0() interrupt 1 using 1static uchar count;TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+;if(count=10) if(Flag_SN_Yellow=1) /测试南北黄灯标志位 SN_Yellow=SN_Yellow; i

温馨提示

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

评论

0/150

提交评论