课程设计交通灯的现实电路的设计.doc

上传人:文库蛋蛋多 文档编号:4150561 上传时间:2023-04-07 格式:DOC 页数:32 大小:1.38MB
返回 下载 相关 举报
课程设计交通灯的现实电路的设计.doc_第1页
第1页 / 共32页
课程设计交通灯的现实电路的设计.doc_第2页
第2页 / 共32页
课程设计交通灯的现实电路的设计.doc_第3页
第3页 / 共32页
课程设计交通灯的现实电路的设计.doc_第4页
第4页 / 共32页
课程设计交通灯的现实电路的设计.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《课程设计交通灯的现实电路的设计.doc》由会员分享,可在线阅读,更多相关《课程设计交通灯的现实电路的设计.doc(32页珍藏版)》请在三一办公上搜索。

1、目 录1 绪论12 总体方案设计22.1 课题研究主要内容22.2课题的设计思路32.3 总体方案组成和说明43 硬件电路设计及描述53.1 单片机最小系统53.2按键接口电路的设计83.3 指示电路的设计93.4 显示电路的设计93.5 按键电路103.6 PCB印刷图114 软件设计124.1 软件流程图124.2 交通灯程序清单154.3 软件仿真264.4 误差分析264.5设计心得体会27致 谢28参考文献29附 录A:30附 录B:30附 录C:301 绪论近年来,随着汽车数量的猛增,我国大中型城市的城市交通,正面临着严峻的考验,从而导致交通问题日益严重,其主要表现如下:交通事故频

2、发,对人类生命安全造成极大威胁;交通拥堵严重,导致出行时间增加,能源消耗加大;空气污染和噪声污染程度日益加深等。日常的交通堵塞成为人们司空见惯而又不得不忍受的问题。在这种背景下,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制系统已经成为当前的主要任务。和谐的城市交通具有很重要的现实意义。城市交通是城市经济生活的命脉,是衡量一个城市文明进步的标志,对于城市经济的发展和人民生活水平的提高起着十分重要的作用。作为城市交通网的重要组成部分, 交叉口是道路通行能力的瓶颈和交通阻塞及事故的多发地。城市的交通拥堵,大部分是由于交叉口的通行能力不足或没有充分利用造成的,这导致车流中

3、断、事故增多、延误严重。对交叉口实行科学的管理与控制是交通控制工程的重要研究课题,是保障交叉口的交通安全和充分发挥交叉口的通行能力的重要措施,是解决城市交通问题的有效途径。2 总体方案设计本设计的重点是交通灯的现实电路的设计,另外还包含了单片机的最小系统,电源电路以及设计的核心单元单片机。在设计前要先对各部分电路设计方案进行选择,本章对采用哪种方案及如何选择芯片做出了具体的说明,并最终给出了总体框图和设计思路。2.1 课题研究主要内容本设计以单片机为核心,通过Proteus professional软件进行模拟仿真,以此来实现交通灯控制系统的模拟功能,从而达到有效的控制交通状况的目的。设计内容

4、及要求:设计一个具有特定功能的十字路口交通灯。该交通灯上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。按开始键则开始工作,按结束键则返回“P.”状态。要求甲车道和乙车道两条交叉道路上的车辆交替运行,甲车道为主车道,每次通车时间为60秒,乙车道为次车道,每次通车时间为30秒,要求黄灯亮3秒,并且1秒闪烁一次。有应急车辆出现时,红灯全亮,应急车辆通车时间10秒,同时禁止其他车辆通过针对以上要求,着重要完成以下几个方面的内容:对于系统的硬件设计,主要包括:单片机基本系统电路设计;显示、按键电路设计;对于系统的软件设计,主要包括:系统主程序的设计;统几个中断子程序的设计;系统软件流程

5、图;Proteus professional软件的模拟仿真等内容;针对本次设计中所存在的问题,提出部分改进意见和下一步所要研究的目标。最后,总结了设计过程的收获与不足并展望了未来。2.2课题的设计思路图2-1 交叉路口结构图 交叉字路口是城市交通运输的咽喉,如何使各种交通流顺畅地通过是城市交通信号控制系统成功与否的关键。随着现代城市的发展,交通流量的增加,现在的大中城市都以六车道居多,本方案即以六车道为控制对象,其结构如图2-1所示:本设计主要是关于交通灯的智能控制,车辆行驶时共有直行、左转、右转三个方向,通过数码管对倒计时间的显示和红、绿、黄三色灯的指示,以达到交通顺畅通行的目的。同时,可以

6、通过按键来控制倒计时的长短,实现智能控制人流高峰和低谷时,交通灯运行的状态。单片机的特点:(1)控制系统在线作用。单片机的控制作用可分为两个方面:一是离线控制,二是在线控制。(2)软硬件结合。单片机的引入使控制系统大大“软化 1”,相比其他计算机应用问题,单片机控制应用中的硬件内容较多,所以单片机控制应用有软硬结合的特点。(3)应用现场环境恶劣。通常单片机应用现场的环境比较恶劣,电磁干扰、电源波动、冲击振动、高低温等因素都会影响系统的工作的稳定。此外,无人值守的环境也会对单片机系统的稳定性和可靠性提出更高的要求。所以稳定和可靠在单片机的应用中具有格外重要的意义。(4)应用的广泛性。在生活和生产

7、的各个领域中,凡是有自动控制要求的地方都会有单片机的身影出现。其应用领域包括工业自动化方面、仪器仪表方面、家用电器方面、信息和通信产品方面以及军事装备方面。综上所述,单片机的稳定性,可靠性都有着很好的保证,它也具有一定的精度,且低电压、低功耗。从经济方面考虑,也最为合适。所以此次设计选用单片机为核心控制器。选择ATMEL公司的AT89S52单片机最合适。 2.3 总体方案组成和说明单片机模块是整个系统的核心部分,在这样一个模拟交通灯系统中,需要有时钟电路模块提供基准震荡频率 2以及单片机基本系统、指示电路、显示电路、键盘电路、电源电路、下载线电路设计。系统基本原理方框图如图2-2所示:单片机数

8、码显示电 源复 位 下载线按 键LED指示图 2-2系统基本原理方框图由上总体方框图可以看到此次设计硬件电路有六大部分所构成,围绕以主控部分发挥各自的功能。只有这几部分有机结合才可以很好的实现本次设计的的。3 硬件电路设计及描述本系统的硬件结构主要由单片机系统、键盘电路、电源电路、显示电路、LED指示电路等五部分组成。下面对以上六部分进行逐一介绍。3.1 单片机最小系统单片机最小系统主要组成部分包括:AT89S52单片机、时钟电路、复位电路。单片机是本设计的核心部分,它是整个系统能够正常运行的控制中心。系统采用美国ATMEL公司的AT89S52单片机,其内部含有可重复编程的Flash存储器,可

9、进行1000次擦写操作,故在开发过程中可以十分容易进行程序的修改,大大缩短了开发周期。AT89S52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。AT89S52单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。下面是对单片机AT89S52主要特性进行了一些描述。 AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系

10、统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

11、空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89S52芯片引脚图见图3-1。系统结构框图如图3-2所示: 图3-1 AT89S52的引脚图图3-2 AT89S52系统结构框图AT89S52单片机有一个用于构成内部振荡器的反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件的话,XTAL2可以不接,而从XTAL1接入,如图3-3所示。 图3-3 外部振荡电路连接图外接晶体以及电容C1、

12、C2构成并联谐振电路 3,接在放大器的反馈回路中,内部振荡器产生自激振荡,一般晶振可在212MHz之间任选。对外接电容值虽然没有严格的要求,但电容的大小多少会影响振荡频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性。外接晶体时,C1和C2通常选30pF左右;外接陶瓷谐振器时,C1和C2的典型值为47pF。单片机在开机时都需要复位,以便中央处理器CPU以及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。51的RST引脚是复位信号的输入端。复位电平是高电平有效,持续时间要有24个时钟周期以0上。本系统中单片机时钟频率为6MHz则复位脉冲至少应为4us。方案一:上电复位电路上电瞬间

13、,RST端的电位与Vcc相同,随着电容的逐步充电,充电电流减小,RST电位逐渐下降。上电复位所需的最短时间是振荡器建立时间加上二个机器周期,在这段时间里,振荡建立时间不超过10ms。复位电路的典型参数为:C取10uF,R取2k,故时间常数=RC=1010210=20ms足以满足要求。其电路如图3-5所示。 图3-5 上电复位电路连接图方案二:外部复位电路按下开关时,电源通过电阻对外接电容进行充电,使RES端为高电平,复位按钮松开后,电容通过下拉电阻放电,逐渐使RET端恢复低电平。 图3-6 手动上电复位电路连接图考虑到电路对复位电路的要求不高,且尽量使电路简单,故采用方案一:上电复位电路。3.

14、2按键接口电路的设计单片机使用的键盘分为独立式和矩阵式两种。方案一:矩阵式键盘适用于按键数量较多的场合,它有行线和列线组成,按键位于行、列的交叉点上。行、列线分别连接到按键开关的两端,而有键按下时,行线电平状态将由与此行线相连的列线电平决定,列线电平如果为低,则行线电平为低;反之,则为高。这一点是识别矩阵键盘按键是否被按下的关键。矩阵式键盘各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。方案二:矩阵式键盘也称行列式键盘,因为键的数目较多,所以键按行列组成矩阵。独立式键盘就是各按键相互独立,每个按键各接一根输入线,一根输入线上的按键工作状态不会影响其

15、他输入线上的工作状态。因次,通过检测输入线的电平状态可以很容易的判断哪个按键被按下了。独立式按键电路配置灵活,软件结构简单。但每个按键需占用一根输入口线,此种按键电路适用于按键较少或操作速度教高的场合独立式实际上就是一组相互独立的按键,这些按键可直接与单片机的I/O口连接,连接方法就是每个按键独立一条口线,各按键之间状态不会影响且接口简单。考虑到这个控制器中,设定的按键不多,为了使系统简单明了,在这里选择独立式按键。如图所示,SET键用来设置倒计时时间,SELECT用来选择“+”“”。图3-7 独立的按键电路连接图3.3 指示电路的设计指示很简单,采用LED(发光二极管),考虑到单片机端口常态

16、是高电平,设计采用低电平点亮发光管,如图3-8所示。I/O口的灌电流最大30mA左右,假设每根线20mA,C系列都低于20mA,假设单个发光管耐压2V(不同的管子不同,相差不多),系统采用5V供电,则限流电阻R的阻值为:实际选择200,实验发现发光二极管显示正常。通过程序来控制指示灯红、绿、黄的通断来模拟交通灯的指示作用。其电路图如图3-8所示。图3-8 指示电路部分电路图3.4 显示电路的设计数码管显示电路有多种方式,按照数据传输方式有两种:并行形式 4和串行形式,下面针对两种方式进行说明。本设计由两个8段共阳极的LED显示块组成,P0口接两块LED的段控,P2口接位控。与单片机接口电路硬件

17、连接图如图3-10所示。图3-10 显示部分连接图3.5 按键电路 交通灯控制电路,所需按键不多,就用单片机最小系统的三个键,电路如图3-11。 图 3-113.6 PCB印刷图4 软件设计4.1 软件流程图按交通灯的功能,系统程序必须具备按键扫描处理、实时数码管显示等任务。4.1.1 主程序的设计系统在上电复位后,先对档位寄存器赋默认值,并进行清除超时标志位,设置定时器及中断系统的工作方式等初始化工作。图4-1 主程序流程图4.1.2 按键扫描处理子程序的设计按键扫描处理子程序负责设置东西、南北走向的等待时间按,若有键按下,则做出相应的处理。图4-2 按键扫描子程序 键B功能子程序流程图 键

18、A功能子程序流程图4.2 交通灯程序清单 ;* *:;项目名称:交通灯的设计;设计者:凡文波 Num:08401140325;设计日期:2010年12月29日;*;堆栈栈底7FH;*;LED数码管显示器设定;P0.7-P0.0段控线,接LED的显示段dp,g,f,e,d,c,b,a;P2.7-P2.0位控线,从左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0);显示缓冲区设定从左至右依次为7FH,7EH,7DH,7CH,7BH,7AH,79H,78H(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0);*;独立式键盘设定;8个

19、按键S2至S9分别依次接在P1.0至P1.7口线; ;*; ;子程序;DISP(数码管显示子程序);DL(1毫秒延时子程序,晶振频率12MHz);*;常数表格;TAB(共阳数码管字型代码表);DISPH(系统提示符P.字型代码序号表);*;中断服务程序;*;键功能程序;* *;数据存储器变量及常量单元定义;*;伪指令定义区 ;* *;系统起始程序区 ORG 0000H START: LJMP MAIN;*;系统监控程序区ORG0030H MAIN: MOVSP,#5FH;确定堆栈区 MOVIE,#00H ;中断被禁止 MOVPSW,#00H MOVR0,#20H ;RAM区首地址MOV R7,

20、 #96 ;RAM区单元个数 ML: MOV R0, #00H INC R0 DJNZ R7, ML ;清空00-7FH这96个单元;*;给最低位送P.指令,高7位送灭指令,再调显示子程序,并判断是否有某键按下 LOOP: MOV 78H,#0BH MOV79H,#0AH MOV7AH,#0AH MOV7BH,#0AH MOV7CH,#0AH MOV7DH,#0AH MOV7EH,#0AH MOV7FH,#0AH ;送P.指令,高7位送灭指令 LCALLDIR ;调显示子程序LCALLKEY ;调键扫子程序LCALLBIJIAO ;调用比较子程序LJMPLOOP ;*;键功能程序(初始化) K

21、EYA:MOVR5,#00H ;将会从00H加到第56秒 MOVP3,#7EH MOVR0,#00H MOVR1,#06H MOV78H,#00HMOV79H,#06H LCALLMIE LJMPLL ;*;下一段程序实现 当数是10的倍数时个位变9十位减1的操作(因交通灯倒计时) LP0:CJNER0,#00H,BJ1 ;个位不等于0转到BJ1MOVR0,#09H DECR1MOVA,R1MOV79H,ALCALLMIE ;再调用高6位“灭”段码LJMPLL BJ1: DECR0 ;将R0(个位)减1LJMPLL LL:MOVA,R0MOV78H,ALCALLDL1SINCR5MOVA,R5

22、CJNEA,#38H,LP0 ;*;本程序将第57秒的LED灯全灭(后一秒黄灯闪烁)MOVP3,#0FFH;LED灯全灭MOVR4,#75H LOOP6:MOV78H,#04H MOV79H,#00HLCALLMIE;再调用高6位“灭”段码 LCALLDIR LCALLKEY;调键扫LCALLBIJIAO1DJNZR4,LOOP6 ;第57秒全灭,下一秒闪黄灯;*;以下程序黄灯在58、59、60秒中闪烁3次;黄灯初亮0.5秒MOVP3,#0BDH MOVR4,#3AH LP1:MOV78H,#03HMOV79H,#00H;给显示缓存区低二位赋值“03”LCALLMIE;调用“灭”段码指令LCA

23、LLDIR;用显示子程序DIR延时LCALLKEYLCALLBIJIAO1;键扫后比较DJNZR4,LP1 ;延时0.5秒;*;黄灯灭0.5秒MOVR4,#3AH CPLP3.1 ;黄灯灭CPL P3.6 LP2:LCALLDIRLCALLKEYLCALLBIJIAO1DJNZR4,LP2 ;延时0.5秒;*;黄灯亮0.5秒MOVR4,#3AHMOV78H,#02HMOV79H,#00H;给显示缓存区低二位赋值“02”LCALLMIE CPLP3.1 ;黄灯亮CPLP3.6 LPB:LCALLDIRLCALLKEYLCALLBIJIAO1DJNZR4,LPB ;延时0.5秒;*;黄灯灭0.5秒

24、MOVR4,#3AH CPLP3.1 ;黄灯灭CPLP3.6 LPC:LCALLDIRLCALLKEYLCALLBIJIAO1DJNZR4,LPC ;延时0.5秒;*;黄灯亮0.5秒MOVR4,#3AHMOV78H,#01HMOV79H,#00H;给显示缓存区低二位赋值“01”LCALLMIE CPLP3.1 ;黄灯亮CPLP3.6 LPD:LCALLDIRLCALLKEYLCALLBIJIAO1DJNZR4,LPD ;延时0.5秒;*;黄灯最后灭0.5秒MOVR4,#3AH CPLP3.1 ;黄灯灭CPLP3.6 LPE:LCALLDIRLCALLKEYLCALLBIJIAO1DJNZR4,

25、LPE ;延时0.5秒;*;乙车道绿灯开始亮,甲车道红灯亮,大数程序注释同上程序MOVP3,#0DBH MOVR5,#1AH ;延时参数,延时26秒MOVR0,#00H MOVR1,#03H ;给十位送3,个位送0MOV78H,#00HMOV79H,#03H;再送一遍“30”LCALLMIE;调高6位“灭”LJMPLL1 LP3:CJNER0,#00H,BJ2 ;不等于0就将最低位减1MOVR0,#09H DECR1MOVA,R1MOV79H,ALCALLMIELJMPLL1 BJ2: DECR0LJMPLL1 LL1: MOVA,R0MOV78H,ALCALLDL1S DJNZR5,LP3

26、;延时26秒;*;第27秒全灭,下一秒闪黄灯MOVP3,#0FFH ;第27秒全灭,下一秒闪黄灯 MOV78H,#04HMOV79H,#00HMOVR0,#04HMOVR1,#00HLCALLMIELCALLDL1S MOVP3,#0BDH MOV78H,#03HMOV79H,#00HMOVR0,#03HMOVR1,#00HLCALLMIE LCALLDL05S;*;黄灯亮灭,亮灭3次 CPLP3.1 ;黄灯亮灭,亮灭3次CPLP3.6LCALLDL05SCPLP3.1CPLP3.6MOV78H,#02HMOV79H,#00HMOVR0,#02HMOVR1,#00HLCALLMIELCALLD

27、L05SCPLP3.1CPLP3.6LCALLDL05SCPLP3.1CPLP3.6MOV78H,#01HMOV79H,#00HMOVR0,#01HMOVR1,#00HLCALLMIELCALLDL05S CPLP3.1CPLP3.6LCALLDL05SLJMPKEYA;返回KEYA;*;应急车辆红灯亮区 KEYB: MOV21H,P3 PUSHPSWSETBRS1SETBRS0;保护作用 MOVP3,#7BH MOVR7,#09H;延时参数MOV79H,#01HMOV78H,#00HMOVR0,#00HMOVR1,#01H;以上赋值“10”LCALLMIE;调“灭”指令 LCALLDL1S2

28、MOVR0,#09HMOVR1,#0AHLOOP5:MOV78H,R0MOV79H,R1;9赋给显示缓存区LCALLMIELCALLDL1S2DECR0DJNZR7,LOOP5;显示9次,分别为9、8 1POPPSWLCALLMIEMOVP3,21HRET;*;子程序;键扫后判断是否为某一键按下,在无键按下功能范围内使用BIJIAO: MOVA,20H CJNEA,#02H,LP00 ;B键按下就执行KEYB程序 LJMPKEYB LP00: CJNEA,#01H,LP01 LJMPKEYA LP01: RET ;无键按下返回;*;键扫后判断是否为某一键按下,在KEYA功能范围内使用 BIJI

29、AO1: MOVA,20H CJNEA,#01H,LP02 RET LP02: CJNEA,#02H,LP03 ;B键按下就执行KEYB程序 LJMPKEYB LP03: RET ;无键按下返回;*;键盘扫描子程序KEY KEY:LCALLKEYCHULI ;调P1口数据处理子程序 JZEXIT ;没有键按下,转返回LCALLDIRLCALLDIR ;调显示子程序去抖动LCALLKEYCHULI JZEXIT ;没有键按下,转返回MOVB,20H ;保存取反后的键值KEYSF:LCALLKEYCHULI ;调P1口数据处理子程序JZKEY1 ;键释放,转恢复键值LCALLDIR LJMPKEY

30、SF ;等待键释放 KEY1:MOV20H,B ;键值送20H保存 EXIT:RET ;子程序返回;P1口数据处理子程序KEYCHULI KEYCHULI:PUSHPSW SETBRS1 CLRRS0 ;保护MOVP1,#0FFH ;先向P1口写1MOVA,P1 ;读P1口数据CPLA ;P1口数据取反ANLA,#03H MOV20H,A ;保存取反后的键值CLRRS1CLRRS0POPPSWRET ;恢复,返回;*;显示子程序DIR:PUSHPSWSETBRS0CLRRS1MOVR3,#00HMOVR0,#78H DIR0:MOVDPTR,#TAB2;查表位控代码MOVA,R3MOVCA,A+DPTRMOVP2,AMOVDPTR,#TAB1;查表段控代码MOVA,R0MOVCA,A+DPTRMOVP0,ALCALLDL;延时1msINCR3INCR0;位控、段控码向高位循环CJNER3,#08H,DIR0POPPSWRET;*;显示字符段选码表(共阳极代码) TAB1: DB 0C0H, 0F9H,0A4H,0B0H,99H,92H,82H,0F

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号