基于单片机交通信号灯设计说明.doc

上传人:可****阿 文档编号:42289470 上传时间:2022-09-15 格式:DOC 页数:22 大小:4.44MB
返回 下载 相关 举报
基于单片机交通信号灯设计说明.doc_第1页
第1页 / 共22页
基于单片机交通信号灯设计说明.doc_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《基于单片机交通信号灯设计说明.doc》由会员分享,可在线阅读,更多相关《基于单片机交通信号灯设计说明.doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、.单片机系统课 程 设 计成绩评定表设计课题 : 基于单片机的交通信号灯设计 学院名称 : 电气工程学院 专业班级 : 电气F1206 学生 : 学 号 : 指导教师 : 设计地点 : 31-510 设计时间 : 2014-12-292015-01-09 指导教师意见:成绩: 签名: 年 月 日20 / 22单片机系统课 程 设 计课程设计名称: 基于单片机的交通信号灯设计 专 业 班 级 : 电气F1206 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计地点: 31-510 课程设计时间: 2014-12-292015-01-09 单片机系统 课程设计任务书学生专业班级电气F1

2、206学号题 目基于单片机的交通信号灯设计课题性质工程设计课题来源自拟指导教师主要容(参数)利用89C51单片机设计交通信号灯系统,实现以下功能1、在正常的工作情况下,系统的红、黄、绿灯交替进行转换,而且在对应的LED显示器上可以以到计时的方式显示剩余时间。2、在紧急的情况下,两组交通灯同时为红灯,禁止所有的车辆通行,只允许特殊的车辆通过,当紧急的车辆通过后系统要可以通过手动按钮恢复以前的正常工作情况方式。任务要求(进度)第1-2天:熟悉课程设计任务与要求,查阅技术资料,确定设计方案。第3-4天:按照确定的方案设计单元电路。要求画出单元电路图,元件与元件参数选择要有依据,各单元电路的设计要有详

3、细论述。第5-6天:软件设计,编写程序。第7-8天:实验室调试。第9-10天:撰写课程设计报告。要求容完整、图表清晰、文理流畅、格式规、方案合理、设计正确,篇幅不少于6000字。主要参考资料1 迎新单片微型计算机原理、应用与接口技术(第2版)M:国防工业,20042 晶 主编 Prote199高级应用 人民邮电,2000 3 于海生 编著 微型计算机控制技术 清华大学2003.44 志良 编著 单片机原理与控制技术M 机械工业,20055 蒋方君 编著 在论循环时序电路的简便设计J 机电一体化,20056 徐维祥.单片微型机原理与应用 理工大学,2006审查意见系(教研室)主任签字: 年 月

4、日 目 录1 绪论31.1 交通信号灯概况31.2 本文研究容32 总体方案设计33 硬件电路53.1 时钟电路设计53.2 复位电路设计63.3 显示电路设计63.3.1 倒计时器电路设计63.3.2 红绿灯显示电路设计74 软件设计84.1 软件实现功能综述84.2 流程图设计84.2.1 主程序流程图设计84.2.2 中断流程图设计85 仿真电路96 总结12参考文献13附录A 系统原理图14附录B 源程序151 绪论 1.1 交通信号灯概况十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊,那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。由于传统的交通灯控制管理系

5、统一般有数字电路构成,电路复杂,体积大,成本高。而本系统采用单片机为主控元件,能够简单,方便的实现交通灯的控制管理。系统适应于十字路口道路。在正常的工作情况下,系统的红、黄、绿灯交替进行转换,而且在对应的LED显示器上可以以到计时的方式显示剩余时间。在紧急的情况下,两组交通灯同时为红灯,禁止所有的车辆通行,只允许特殊的车辆通过,当紧急的车辆通过后系统要可以通过手动按钮恢复以前的正常工作情况方式。进人正常的工作。因此,该系统设计方便、实用,而且硬件的元件连接又是十分的简单1.2 本文研究容所设计的交通灯管理系统主要有主控摸块(89C51单片机)。译码/驱动电路,时钟电路,交通灯模拟部分,紧急情况

6、手动控制部分与剩余时间显示部分等组成。利用单片机89C51定时功能,是红、黄、绿灯分别点亮和熄灭一段时间,并且通过与显示器的连接可以显示剩余时间。而且当出现特殊或紧急的情况时,可以通过紧急情况手动控制单元的按钮进行特别的处理,而当紧急的情况消失后,系统又可以通过解除按钮恢复正常工作。令其中断方式为1,当定时时间到时则立即执行中断程序,并转向下一个状态,同时调用显示子程序,在LED显示器上显示剩余时间。2 总体方案设计主要设计,通过单片机AT89C51对外设各个硬件进行连接,并通过软件的设计,对十字路口交通信号灯进行模拟控制。时钟电路,产生单片机工作所需要的时钟信号,为了保证同步工作方式的实现,

7、电路应在唯一的时钟信号控制下严格工作。AT89C51通过连接硬件,并对信号做出处理。锁存器,锁存信息。74LS373,外设扩展CPU并行接口。LED,显示剩余时间。交通灯,指示车辆通行。图2.1 交通灯总设计方案框图所设计的交通灯管理系统主要有主控摸块(89C51单片机)。译码/驱动电路,时钟电路,交通灯模拟部分,紧急情况手动控制部分与剩余时间显示部分等组成。2.2AT89C51AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。

8、AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。单片机的引脚除了电源、复位、时钟接入和用户I/O口外,其余引脚都是为了实现系统扩展而设置的。这些引脚构成了三总线结构,即16位地址总线(AB)、8位数据总线(DB)和8位控制总线(

9、CB)。数据总线:DOD7、PA0PA7、PB0PB7、PC0PC7,此32条数据总线均为双向三态,其中D0D7用于传送CPU与74ls373之间的命令与数据,PAOPA7、PB0PB7、PC0PC7分别于ABC3口对应,用于74ls373与外设之间的数据传送数据。控制线:、RESET:读信号,输入信号线,低电平有效。表示CPU对74LS373进行读操作。:写信号,输入信号线,低电平有效。表示CPU对74LS373进行写操作。RESET:复位信号,输入信号线,高电平有效。寻址线:、A0、A1:片选信号,输入信号线,低电平有效。3 硬件电路3.1 时钟电路设计时钟电路由一个晶体振荡器12MHZ和

10、两个33PF的瓷片电容组成。时钟电路产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格工作。单片机芯片部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2,在芯片外部通过两个引脚跨接晶体振荡器和微调电容,形成反馈电路,可得时钟电路图(图3.1)。 图3.1 时钟电路图振荡电路产生的振荡脉冲并不直接使用,而是经分频后再为系统所用振荡脉冲经过二分频后才作为系统的时钟信号。在二分频的基础上再三分频产生ALE信号,再二分频的的基础上再六分频得到机器周

11、期信号。晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的的晶振,晶振的振荡频率直接影响单片机的处理速度,频率越大单片机处理速度越快。本设计采用11.0592MHz,图中用约等于12MHz。起振电容C1、C2一般采用1533uF,并且电容离晶振越近越好,晶振离单片机越近越好。本设计中C1、C2采用33uF。3.2 复位电路设计单片机在启动时都需要复位,以使CPU与系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个

12、机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。采用专用复位电路芯片构成复位电路在实际应用系统中,为了保证复位电路可靠的工作,常将RC电路接施密特电路后再接入单片机复位端;或采用专用的复位电路芯片。复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用1030uF,容值越大需要的复位时间越短。(如图3.2)图3.2复位电路图3.3 显示电路设计3.3.1 倒计时器电路设计倒计时器的电路原理图主要有CPU核、实时日历时钟芯片和现实与其驱动电路三部分组成。交通信号灯模拟控制的硬件电路如图3.3.1所示。从图中可以看出,交通信号

13、灯的控制通过单片机的P1口实现。当端口给出高电平时,相应的指示灯才亮;而当端口给出低电平时,相应的指示灯处于灭的状态。图3.3.1倒计时器显示电路3.3.2 红绿灯显示电路设计其中在本次设计中,红绿灯显示电路分别由红黄绿三种颜色发光二极管显示,选用共阴极的LED,由于P0口有上拉电阻,所以选用O直接驱动,在共阴极端用NPN型的三极管扩流,简化了电路的复杂度。(如图3.3.2)图3.3.2 红绿信号灯显示电路图4 软件设计4.1 软件实现功能综述交通信号灯模拟控制的软件设计也比较简单。其基本思路是利用软件延时,对相应信号灯的点亮时间加以控制。4.2 流程图设计4.2.1 主程序流程图设计图4.2

14、.1主程序流程图4.2.2 中断流程图设计本设计的中断程序的功能是在有重要车辆通过时,相应车道的信号灯持续为绿灯,而对应车道的信号灯则持续为红灯,直到重要车辆通过后,恢复正常点亮规律图4.2.2 中断程序流程图5 仿真电路本设计通过proteus 仿真节省了大量的做实物的时间,为能够短时间做好设计提供了很大帮助。ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机与其外围电路组成的系统

15、的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。根据功能要求分别仿真各种情况下的亮灯情况,具体如下:如图5.1仿真图所示,正常情况下主干道方向亮绿灯,主干道放行。支干道方向亮红灯,支图5.1红灯仿真图如图5.2所示主干道方向亮黄灯3秒,支干道方向亮红灯:图5.2黄灯仿真图如图5.3仿真图所示,有紧急车通过时按

16、下按键K0时,主、支干道均亮红灯特殊指示灯亮:图5.3特殊指示灯仿真图6 总结在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但

17、在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这次设计以单片机AT89C51作为城市交通灯的控制核心,模拟定周期交通信号灯的工作状态。以单片机89c51为主,设计连接数据存储器,复位电路,时钟电路。对输入输出接口进行设计连接。本系统就是充分利用了AT89C51的I/O引脚。系统采用51系列的AT89C51单片机和可编程并行I/O接口芯片74ls373为中心器件来设计交通信号灯控制器,实现了AT89C51单片机的设置交通信号灯点亮时间的功能;交通灯的点亮采用了 LED;电源则接220V交流电源,最后对各个程序进行软件的设计编程。并对所设计的容进行仿真,测试。系统设计简便、实用、

18、操作简单、程序设计简便。参考文献1 迎新单片微型计算机原理、应用与接口技术(第2版)M:国防工业,20042 晶 主编 Prote199高级应用 人民邮电,2000 3 于海生 编著 微型计算机控制技术 清华大学2003.44 志良 编著 单片机原理与控制技术M 机械工业,20055 蒋方君 编著 在论循环时序电路的简便设计J 机电一体化,20056 徐维祥.单片微型机原理与应用 理工大学,2006附录A 系统原理图系统原理图附录B 源程序主程序清单ORG0000H AJMPMAIN ORG00013H LJMPINT9 跳到跳到特种车辆自动服务程序.数字显示代码.TAB:DB3FH,6H,5

19、BH,4FH,66H,6DH,7DH,7H,7FH,6FH/*主程序*/ORG0300H MAIN:MOV25H,#60南北通行时间初始值,存到25H单元MOV26H,#30东西通行时间初始值,存到26H单元 SETBIT0外部中断一边沿触发 MOVIE,#8FH开中断.南北绿灯东西红灯.NBLD:MOVR1,25H为南北方向显示时间做准备NBLD1: MOV20H,R1南北通行时间60秒(25h)=60(NBLD即东西绿灯) MOVP2,#1EH点亮南北绿灯东西红灯 MOVA,R1ADDA,#3 MOV21H,A为东西方向显示时间做准备 LCALLDISP1显示通行所剩时间,其中有0.5秒延

20、时 LCALLDISP1 再次显示以便数码管不闪,且再延时0.5秒以便凑够一秒 DJNZR1,NBLD1判断60秒是否已完,若未完则从新显示、延时 .南北黄灯闪东西红灯.ShanHD:MOVR2,#3黄灯闪亮3秒HD:MOVP2,#1DH点亮黄灯 MOV22H,R2为显示时间做准备 LCALLDISP2黄灯闪亮剩时显示其中延时0.5秒 MOVP2,#1FH熄灭黄灯 LCALLDISP2显时,且再延时0.5秒以便凑够1秒 DJNZR2,HD判断3秒是否已完,若未完则从新闪灭、延时和显示.南北红灯东西绿灯.DXLD:MOVR3,26H东西通行30秒(26H)=30,(DXLD即东西绿灯)DXLD1

21、: MOVP2,#33H点亮南北红灯东西绿灯 MOV24H,R3为东西方向显示时间做准备 MOVA,R3 ADDA,#3 MOV23H,A为南北方向显示时间做准备LCALLDISP3时间显示其中有0.5秒延时LCALLDISP3凑够1秒时间DJNZR3,DXLD1判断30秒是否已完.南北红灯东西黄灯闪.ShanHD1:MOVR2,#3转入黄灯闪亮3秒HD1:MOV22H,R2为显示做准备 MOVP2,#2BH点亮南北红灯东西黄灯 LCALLDISP2显示时间,并延时0.5秒 MOVP2,#3BH点亮南北红灯关闭东西黄灯 LCALLDISP2显时,且再延时0.5秒以便凑够1秒 DJNZR2,HD

22、1判断3秒是否到,若未到继续闪灭东西黄灯 AJMPNBLD主程序到此完.延时程序.DELAY3:MOVR6,#15ms延时(5ms=50*50*2us) DE61:MOVR0,#1DE71:DJNZR0,DE71DJNZR6,DE61RET DELAY:ACALLDELAY110ms延时ACALLDELAY1RET DELAY1:MOVR6,#505ms延时,(5ms=50*50*2us) DE6:MOVR0,#50 DE7:DJNZR0,DE7 DJNZR6,DE6RET.南北通行的时间显示子程序.DISP1:MOVP0,#0熄灭数码管 MOVR7,#25以下调用四次5毫秒延时程序,故25*

23、4*5毫秒=0.5秒 RP1:MOVA,20H南北方向要显示时间移到寄存器A MOVDPTR,#TAB 要显示的数字代码表首地址MOVB,#10 DIVAB要显示的时间与10相除,求出十位和个位 MOVCA,A+DPTR找到十位的显示代码 MOVP1,#00001110B;选择南北数码管十位片MOVP0,A送出十位显示代码LCALLDELAY1延时5ms以点亮数码管MOVA,B把个位数移到寄存器AMOVCA,A+DPTR找到个位数显代码 MOVP1,#00001101B选择南北数码管个位片 MOVP0,A送出个位数显示代码LCALLDELAY1延时5ms以点亮数码管 MOVA,21H东西方向要

24、显时间移到寄存器AMOVDPTR,#TAB要显示的数字代码表首地址MOVB,#10 DIVAB要显示的时间与10相除,求出十位和个位MOVCA,A+DPTR找到十位的显示代码MOVP1,#00001011B;选择东西数码管的十位片MOVP0,A送出十位显示代码LCALLDELAY1延时5ms以点亮数码管MOVA,B把个位数移到寄存器AMOVCA,A+DPTR找到个位的显示代码MOVP1,#00000111B选择东西数码管的个位片MOVP0,A送出个位显示码LCALLDELAY1 DJNZR7,RP1是否已循环25次RET .黄灯的时间显示子程序.DISP2:MOVP0,#0熄灭数码管 MOVR

25、7,#25以下调用两次0.01秒延时程序,RP2:MOVA,22H要显示的时间移到寄存器A MOVDPTR,#TAB要显示的数字代码表首地址 MOVB,#10 DIVAB要显示的时间与10相除,求十位和个位 MOVCA,A+DPTR找到十位的显示代码 MOVP1,#00001010B;选择南北数码管十位片和东西数码管十位片 MOVP0,A送出十位显示代码LCALLDELAY延时10ms以点亮数码管 MOVP1,#00000101B选择东西南北数码管个位片MOVA,B把个位数移到寄存器A MOVCA,A+DPTR找到个位数显示代码 MOVP0,A送出个位数显示代码LCALLDELAY延时10ms

26、一点亮数码管DJNZR7,RP2RET .东西通行的时间显示子程序.DISP3:MOVP0,#0熄灭数码管 MOVR7,#25以下调用4次调用延时程序,RP3:MOVA,23H要南北方向显示的时间移到寄存器A MOVDPTR,#TAB要显示的数字代码表首地址 MOVB,#10 DIVAB要显示的时间与10相除,求出十位和个位MOVCA,A+DPTR找到十位的显示代码MOVP1,#00001110B;选择南北数码管十位片 MOVP0,A送出十位显示代码LCALLDELAY1延时5ms以点亮数码管 MOVA,B把个位数移到寄存器AMOVCA,A+DPTR找到个位数显示代码MOVP1,#000011

27、01B;选择南北道数码管个位片MOVP0,A送出个位数显示代码 LCALLDELAY1延时5ms一点亮数码管MOVA,24H要东西方向显示的时间移到寄存器A MOVB,#10 DIVAB要显示的时间与10相除,求出十位和个位 MOVCA,A+DPTR找到十位的显示代码MOVP1,#00001011B MOVP0,A送出十位显示代码LCALLDELAY1延时5ms以点亮数码管MOVA,BMOVCA,A+DPTR MOVP1,#00000111B选择东西数码管个位片MOVP0,A送出个位显示代码LCALLDELAY1DJNZR7,RP3RET .特殊车辆通过的时间显示子程序.DISP4:MOVP0

28、,#0熄灭数码管 MOVR7,#50以下调用两次0.01秒延时程序,RP4:CLRP3.0 MOVA,27H要显示的时间移到寄存器AMOVDPTR,#TAB要显示的数字代码表首地址MOVB,#10 DIVAB要显示的时间与10相除,求出十位和个位MOVCA,A+DPTR找到十位的显示代码MOVP1,#00001010B;选择南北、东西数码管十位片MOVP0,A送出十位显示代码LCALLDELAY延时10ms以点亮数码管MOVA,B把个位数移到寄存器AMOVCA,A+DPTR找到个位数显示代码MOVP1,#00000101B;选择南北、东西数码管的个位片MOVP0,A送出个位数显示代码LCALLDELAY延时10ms一点亮数码管DJNZR7,RP4RET .特殊车辆通过,中断服务程序.INT9:PUSHP0PUSHACCCLRP3.0 MOVP2,#1BH点亮东西南北红灯 MOVR4,#15特殊车辆通过时间15秒QHD:MOV27H,R4为显示做准备LCALLDISP4显示时间MOVR5,#5BEEP:CLRP3.1LCALLDELAY3SETBP3.1DJNZR5,BEEPLCALLDELAY3DJNZR4,QHDSETBP3.0POPACCPOPP0RETI END

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

当前位置:首页 > 应用文书 > 工作计划

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

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