单片机交通灯课程设计

上传人:仙*** 文档编号:33891247 上传时间:2021-10-19 格式:DOC 页数:28 大小:634.44KB
返回 下载 相关 举报
单片机交通灯课程设计_第1页
第1页 / 共28页
单片机交通灯课程设计_第2页
第2页 / 共28页
单片机交通灯课程设计_第3页
第3页 / 共28页
点击查看更多>>
资源描述
单片机接口设计交通灯专业:电气工程及其自动化班级:姓名:学号:2012.06.20摘 要11.引言22.总体设计方案22.1.设计思路22.1.1.设计目的22.1.2.设计任务和内容32.1.3.芯片简介52.2.设计方框图83.设计原理分析83.1.交通灯显示时序的理论分析83.2电路模块113.2.1. 数码管显示模块113.2.2.复位电路153.2.3.晶振电路164.总结165.参考文献166.附录176.1.附录1:程序清单和硬件电路图17摘 要交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。本系统采用单片机AT80C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、LED数码显示系统、复位电路等几大部分组成。系统除基本的交通灯功能外,还具有倒计时等功能,较好的模拟实现了十字路口可能出现的状况。软件上采用C51编程,主要编写了主程序,LED数码管显示程序,中断程序延时程序等。经过整机调试,实现了对十字路口交通灯的模拟。关键字:电子线路 AT80C51 LED 交通灯2.总体设计方案2.1 设计思路2.1.1 设计目的(1)加强对单片机和汇编语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。(2)用单片机模拟实现具体应用,使个人设计能够真正使用。(3)把理论知识与实践相结合,充分发挥个人能力,并在实践中锻炼。(4)提高利用已学知识分析和解决问题的能力。(5)提高实践动手能力。2.1.2设计任务和内容1.设计任务单片机采用用AT80C51芯片,由于实验用的单片机要求,这次实验要求:1、显示要求与十字路口要求一直2、有倒计时3、用6位数码管显示:左2位表示左转弯,中间2位表示直行,右2位表示右转弯;2个数码管中其中1个表示灯(用H L U分别表示红、绿、黄),另一个数码管用于倒计时。4、本机地址为0AH,当接到上位机发的0AH时,则回发0AH当接到上位机发的AAH时,则将当前状态发给上位机,当前状态自己定义并分类2.设计内容(1)硬件系统设计说明及原理图。(2)软件流程图及软件清单。(3)编写程序并将调试好的程序固化到单片机中,能够实现通信设计方框图整个设计以AT80C51单片机为核心,由数码管显示,LED数码管显示,复位电路组成。硬件模块入图2-1。AT89C51单片机数码管显示数码管选通晶振电路复位电路交通模式:条件有限,只能实现单方向交通控制,但是不会出现交通事故情况。具体要求:单方向,有左转,直行,右转。每个方向用两个数码管表示,一个用作红绿灯表示,另一个作为时间倒计时。具体时间安排是方向状态时间状态时间状态时间状态时间状态时间状态时间左转红5绿3黄4黄3红4红2直行绿5黄3红8红7红4红2右转绿9绿4绿1红5红2绿22.1.3芯片简介80C51单片机引脚图及引脚功能介绍首先我们来介绍一下单片机的引脚图及引脚功能(如下图所示), 引脚的具体功能将在下面详细介绍单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。 电源: VCC - 芯片电源,接+5V; VSS - 接地端; 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 控制线:控制线共有4根, ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ALE功能:用来锁存P0口送出的低8位地址 PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 PSEN:外ROM读选通信号。 RST/VPD:复位/备用电源。 RST(Reset)功能:复位信号输入端。 VPD功能:在Vcc掉电情况下,接备用电源。 EA/Vpp:内外ROM选择/片内EPROM编程电源。 EA功能:内外ROM选择端。 Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。 I/O线80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。复位P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。2.2设计方框图晶振源数码管倒计时显示AT80C51路口红绿灯灯3.设计原理分析3.1 交通灯显示时序的理论分析对于一个交通路口来说,首先是安全性能,再者是最短的时间内达到最大的车流量,就算是达到了最佳的性能。先设定一些标号如图21 所示。说明:此图为直方图,上边为北路口灯,右边为东路口灯,下边为南路口灯,左边为西路口灯。 图22 所示为一种红绿灯规则的状态图,分别设定为S1、S2、S3、S4,交通灯以这四的状态为一个周期,循环执行(见图23)。图21请注意图21b和图21d,它们在一个时间段中四个方向都可以通车,这种状态能在一定的时间内达到较大的车流量,效率特别高。依据上述的车辆行驶的状态图,可以列出各个路口灯的逻辑表,由于相向的灯的状态图是一样的,所以只需写出相邻路口的灯的逻辑表;根据图23 可以看出,相邻路口的灯它们的状态在相位上相差180。1.1. 电路模块数码管显示(1) 动态显示方式:动态显示方式是指一位一位地轮流点亮每位显示器(称为扫描),即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。通过调整电流和时间参数,可以既保证亮度,又保证显示。若显示器的位数不大于8位,则显示器的公共端只需一个8位I/O口进行动态扫描(称为扫描口),控制每位显示器所显示的字形也需一个8位口(称为段码输出)。不管是红绿灯灯,还是时间显示都是数码管,所以都是动态显示。程序初始化:中断设置,初始值设定外中断进入:进入循环,与关断循环状态变换:单方向红路灯变化及左右转数码管显示:数码管的选通与显示多机通信:实现与上位机的通信,状态传输28数码管显示子程序:XS:MOV A,R1 ;显示,数码管的显示,首先是十进制转换 MOV B,#10 ;将R1.R2.R3转化成十进制 DIV AB MOV 30H,B MOV A,R2 MOV B,#10 DIV AB MOV 31H,B MOV A,R3 MOV B,#10 DIV AB MOV 32H,B MOV A,R3 ;数码管 的显示 MOV DPTR,#LEDMAP MOVC A,A+DPTR PUSH A MOV DPTR,#8002H MOV A,#1H MOVX DPTR,A POP A MOV DPTR,#8004H MOVX DPTR,A CALL DELAY MOV DPTR,#8002H MOV A,#2H MOVX DPTR,A MOV A,42H MOV DPTR,#8004H MOVX DPTR,A CALL DELAY MOV A,R2 MOV DPTR,#LEDMAP MOVC A,A+DPTR PUSH A MOV DPTR,#8002H MOV A,#4H MOVX DPTR,A POP A MOV DPTR,#8004H MOVX DPTR,A CALL DELAY MOV DPTR,#8002H MOV A,#8H MOVX DPTR,A MOV A,41H MOV DPTR,#8004H MOVX DPTR,A CALL DELAY MOV A,R1 MOV DPTR,#LEDMAP MOVC A,A+DPTR PUSH A MOV DPTR,#8002H MOV A,#10H MOVX DPTR,A POP A MOV DPTR,#8004H MOVX DPTR,A CALL DELAY MOV DPTR,#8002H MOV A,#20H MOVX DPTR,A MOV A,40H MOV DPTR,#8004H MOVX DPTR,A CALL DELAY RET3.2.1红绿灯显示模块本实验状态调节:BB: MOV R1,#05H ;BB是显示,其中先赋值,嵌套了时间中断,调用时间中断。 MOV R2,#05H MOV R3,#09H ;下边的都是相同的,时间的不同是用最短时间,然后重复赋值,实现的 MOV 40H,#76H MOV 41H,#38H ;BB.MM.NN.FF.OO.ZZ.XX都是显示程序,直接赋值调用时间程序,R1.R2.R3.在程序里一秒减一。 MOV 42H,#38H ;并且调用XS(显示),显示即为数码管显示程序 LCALL T0 MM:LCALL XS CJNE R1,#00H,MM MOV R1,#03H MOV R2,#03H MOV R3,#04H MOV 40H,#38H MOV 41H,#3EH MOV 42H,#38H LCALL T0 NN:LCALL XS CJNE R1,#00H,NN MOV R1,#04H MOV R2,#08H MOV R3,#01H MOV 40H,#3EH MOV 41H,#76H MOV 42H,#38H LCALL T0 FF:LCALL XS CJNE R3,#00H,FF MOV R1,#03H MOV R2,#07H MOV R3,#05H MOV 40H,#3EH MOV 41H,#76H MOV 42H,#76H LCALL T0 OO:LCALL XS CJNE R1,#00H,OO MOV R1,#04H MOV R2,#04H MOV R3,#02H MOV 40H,#76H MOV 41H,#76H MOV 42H,#76H LCALL T0ZZ:LCALL XS CJNE R3,#00H,ZZ MOV R1,#02H MOV R2,#02H MOV R3,#02H MOV 40H,#76H MOV 41H,#76H MOV 42H,#38H LCALL T0 XX:LCALL XS CJNE R3,#00H,XX LJMP INT0 T0:SETB TR0 ;时间T0中断,R1.R2.R3.运行一次减一 MOV TH0,#3CH MOV TL0,#0B0H DJNZ R0,YY MOV R0,#0AH DEC R2 DEC R3 DEC R1YY:RETI3.2.2 复位电路复位方式有多种,本设计采用按键复位。接线图如图程序3.1复位电路,框图在设定的定时时间内,89S52必须在RST引脚产生一个由高到低的电平变化,以清内部定时器. 3.2.3 晶振电路晶振电路原理图如3-2:3-2晶振模块原理图选取原则:传统做法,但能够实现所需,即最简单也最是实用。电容选取30pF,晶振为30MHz。4.总结通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。本次课程设计的过程是艰辛的,不过收获却是很大的。在设计过程中,会出现了一些问题,但经过思考都一一解决了,如:首先是对于题目的审视,全部由数码管显示,并且有左右转,首先是确定是单方向的控制。再者是显示的规则与顺序,我们之间也进行了相当时间的讨论,也一起去十字路口看过相关的显示,但是单个数码管显示是有限的,所以最终定了一个比较合理的方案,实现路口的正常交通,不产生交通事故。还有代码的编写,首先确定代码需要的中断,顺序,结构,还是与前面实验的有相关的联系,借鉴相关程序进行了比较。状态显示并且是时间变化的现实,不同步,使用一个定时器,是比较困难的。所以采用了,不同段,不同赋值的方法,实现现实的连续。通信的程序,因为没有硬件与上位机连接,所以一直没法调试,小组的几个人也都讨论了相关的程序。每个人都写了一段,但是相关协议必须是与上位机相同的,所以,最后才把通信程序写好,与上位机连接后还是没有实现,跳不出通信程序。最后发现通信程序,串行中断进入之后最后没有中断返回,而是内部跳转,经组内成员检查发现并及时改正。经过调试修改都一一解决,程序顺利完成,并实现了其功能。由于单片机板有限,实验调试时拷进程序实现了红绿灯的显示正常。进行复位等的操作。之前没注意,在试验箱的晶振是6M的,之后单片机是12M的,所以时间是有些不同,之后改的双倍的。综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以及和周围同学交流。当然,通过这次课程设计,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我。2. 参考文献1李朝青.单片机原理及接口技术(第3版).2005年10月2.蔡朝洋.单片机控制实习与专题制作3.楼然苗.单片机课程设计指导4.赵广林.电路设计与制版3. 附录3.1. 附录1:程序清单 ORG 000H ;主程序 AJMP MAIN ORG 0003H ;外中断 LJMP INT0 ORG 000BH ;时间中断 LJMP T0 ORG 0023H ;串口中断 LJMP TX LEDMAP: DB 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h DB 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h ; 八段管显示码 ORG 0060H MAIN:MOV TMOD,#21H ;T1方式1,T0方式0 MOV SCON,#0F0H ;串口允许接收 MOV TH1,#0FAH MOV TL1,#0FAH ;自动重装载 SETB TR1 MOV PCON,#00H ;波特率不变化 MOV IE,#90H ;开中断允许 MOV TH0,#3CH ;定时1S MOV TL0,#0B0H MOV R0,#0AH ;循环十次 MOV R5,#02H ;设置初值 MOV R6,#02H SETB EX0 ;T0设置 SETB IT0 SETB ET0 INT0:JNB TR0,BB ;判断是否开中断 CLR TR0 ;关闭中断 MOV R1,#00H MOV R2,#00H MOV R3,#00H MOV 40H,#00H MOV 41H,#00H MOV 42H,#00H LCALL XS JMP MAIN BB: MOV R1,#05H ;BB是显示,其中先赋值,嵌套了时间中断,调用时间中断。 MOV R2,#05H MOV R3,#09H ;下边的都是相同的,时间的不同是用最短时间,然后重复赋值,实现的 MOV 40H,#76H MOV 41H,#38H ;BB.MM.NN.FF.OO.ZZ.XX都是显示程序,直接赋值调用时间程序,R1.R2.R3.在程序里一秒减一。 MOV 42H,#38H ;并且调用XS(显示),显示即为数码管显示程序 LCALL T0 MM:LCALL XS CJNE R1,#00H,MM MOV R1,#03H MOV R2,#03H MOV R3,#04H MOV 40H,#38H MOV 41H,#3EH MOV 42H,#38H LCALL T0 NN:LCALL XS CJNE R1,#00H,NN MOV R1,#04H MOV R2,#08H MOV R3,#01H MOV 40H,#3EH MOV 41H,#76H MOV 42H,#38H LCALL T0 FF:LCALL XS CJNE R3,#00H,FF MOV R1,#03H MOV R2,#07H MOV R3,#05H MOV 40H,#3EH MOV 41H,#76H MOV 42H,#76H LCALL T0 OO:LCALL XS CJNE R1,#00H,OO MOV R1,#04H MOV R2,#04H MOV R3,#02H MOV 40H,#76H MOV 41H,#76H MOV 42H,#76H LCALL T0ZZ:LCALL XS CJNE R3,#00H,ZZ MOV R1,#02H MOV R2,#02H MOV R3,#02H MOV 40H,#76H MOV 41H,#76H MOV 42H,#38H LCALL T0 XX:LCALL XS CJNE R3,#00H,XX LJMP INT0 T0:SETB TR0 ;时间T0中断,R1.R2.R3.运行一次减一 MOV TH0,#3CH MOV TL0,#0B0H DJNZ R0,YY MOV R0,#0AH DEC R2 DEC R3 DEC R1YY:RETI XS:MOV A,R1 ;显示,数码管的显示,首先是十进制转换 MOV B,#10 ;将R1.R2.R3转化成十进制 DIV AB MOV 30H,B MOV A,R2 MOV B,#10 DIV AB MOV 31H,B MOV A,R3 MOV B,#10 DIV AB MOV 32H,B MOV A,R3 ;数码管的显示 MOV DPTR,#LEDMAP MOVC A,A+DPTR PUSH A MOV DPTR,#8002H MOV A,#1H MOVX DPTR,A POP A MOV DPTR,#8004H MOVX DPTR,A CALL DELAY MOV DPTR,#8002H MOV A,#2H MOVX DPTR,A MOV A,42H MOV DPTR,#8004H MOVX DPTR,A CALL DELAY MOV A,R2 MOV DPTR,#LEDMAP MOVC A,A+DPTR PUSH A MOV DPTR,#8002H MOV A,#4H MOVX DPTR,A POP A MOV DPTR,#8004H MOVX DPTR,A CALL DELAY MOV DPTR,#8002H MOV A,#8H MOVX DPTR,A MOV A,41H MOV DPTR,#8004H MOVX DPTR,A CALL DELAY MOV A,R1 MOV DPTR,#LEDMAP MOVC A,A+DPTR PUSH A MOV DPTR,#8002H MOV A,#10H MOVX DPTR,A POP A MOV DPTR,#8004H MOVX DPTR,A CALL DELAY MOV DPTR,#8002H MOV A,#20H MOVX DPTR,A MOV A,40H MOV DPTR,#8004H MOVX DPTR,A CALL DELAY RET TX:JNB RI,$ ;通讯,多机通讯程序,判断是否接到的是0A,若是0A那么返回0A。接通 CLR RI ;接收到0AA.开始传送状态,左转直行,右转状态 MOV A,SBUF CJNE A,#0AH,HH CLR SM2 JMP II HH:SETB SM2 II:CJNE A,#0AAH,XX0 JMP YY0 XX0:CJNE A,#55H,ZZ0 RETI ZZ0:MOV A,#0AH MOV SBUF,A JNB TI,$ CLR TI RETI ;判断 YY0:MOV A,41H CJNE A,76H,HL MOV A,#110 ADD A,31H MOV SBUF,A JNB TI,$ CLR TI EXD:MOV A,40H CJNE A,76H,EHL MOV A,#110 ADD A,30H MOV SBUF,A JNB TI,$ CLR TI MOV A,#120 ADD A,32H MOV SBUF,A JNB TI,$ CLR TI RETI EHL:CJNE A,38H,EHH MOV A,#120 ADD A,30H MOV SBUF,A JNB TI,$ CLR TI MOV A,#120 ADD A,32H MOV SBUF,A JNB TI,$ CLR TI RETI EHH:MOV A,#130 ADD A,30H MOV SBUF,A JNB TI,$ CLR TI MOV A,#120 ADD A,32H MOV SBUF,A JNB TI,$ CLR TI RETI HL:CJNE A,38H,HH0 MOV A,#120 ADD A,31H MOV SBUF,A JNB TI,$ CLR TI EEXD:MOV A,40H CJNE A,76H,EEHL MOV A,#110 ADD A,30H MOV SBUF,A JNB TI,$ CLR TI MOV A,#120 ADD A,32H MOV SBUF,A JNB TI,$ CLR TI RETI EEHL:CJNE A,38H,EEHH MOV A,#120 ADD A,30H MOV SBUF,A JNB TI,$ CLR TI MOV A,#120 ADD A,32H MOV SBUF,A JNB TI,$ CLR TI RETI EEHH:MOV A,#130 ADD A,30H MOV SBUF,A JNB TI,$ CLR TI MOV A,#120 ADD A,32H MOV SBUF,A JNB TI,$ CLR TI RETI HH0:MOV A,#130 ADD A,31H MOV SBUF,A JNB TI,$ CLR TI EEEXD:MOV A,40H CJNE A,76H,EEEHL MOV A,#110 ADD A,30H MOV SBUF,A JNB TI,$ CLR TI MOV A,#120 ADD A,32H MOV SBUF,A JNB TI,$ CLR TI RETI EEEHL:CJNE A,38H,EEEHH MOV A,#120 ADD A,30H MOV SBUF,A JNB TI,$ CLR TI MOV A,#120 ADD A,32H MOV SBUF,A JNB TI,$ CLR TI RETI EEEHH:MOV A,#130 ADD A,30H MOV SBUF,A JNB TI,$ CLR TI MOV A,#120 ADD A,32H MOV SBUF,A JNB TI,$ CLR TI RETI GG:RETI DELAY:DJNZ R5,DELAY ;孤立的延时子程序 ,上边的为通讯程序 DJNZ R6,DELAY MOV R5,#2 MOV R6,#2 RET END3.2. 附录2:电路设计总图硬件图
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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