交通灯课程设计交通信号灯控制的设计

上传人:仙*** 文档编号:28319727 上传时间:2021-08-25 格式:DOC 页数:26 大小:423.52KB
返回 下载 相关 举报
交通灯课程设计交通信号灯控制的设计_第1页
第1页 / 共26页
交通灯课程设计交通信号灯控制的设计_第2页
第2页 / 共26页
交通灯课程设计交通信号灯控制的设计_第3页
第3页 / 共26页
点击查看更多>>
资源描述
课程设计任务书一、设计题目 交通信号灯控制的设计二、设计目的1 巩固单片机技术课程所学的有关知识。2 通过硬件设计、软件设计,使学生掌握用单片机组成应用系统的方法,提高软件设计能力。3 掌握单片机用于各种功能控制的方法。4 学会产品设计方法。三、设计要求1. 绘出仿真原理图、编写出源程序并调试。2. 要求实现绿灯亮20S放行后,黄灯闪烁4S警告,然后依次按北、西、南、东向转换。四、设计步骤 1. 按要求画出硬件连线图。 2画出程序流程图。3编写源程序。4进行软件调试,检查功能是否完善。 5. 完成proteus仿真。5、 提高部分 1. 保证车辆在一定时间内可以向三个方向行驶。 2. 人行道也给出红绿灯指示。第一章 设计任务分析和系统方案论证1.1 交通灯变化规律的分析按照常规我们假设一个十字路口为东西南北走向。初始状态为状态1,南北方向绿灯通车,东西方向红灯。经过一段时间(假定60S)转换状态2,南北方向绿灯熄灭转亮黄灯,延时3S,东西方向仍然红灯。再转换到状态3,东西方向绿灯通车,南北方向红灯。过一段时间(30S)转换到状态4,东西方向绿灯熄灭转亮黄等灯,延时3S,南北方向仍然红灯。最后循环至南北绿灯,东西红灯。在这些状态下有时钟倒计时供行人和司机查看时间。在实际生活中,根据不同交通道路的通车情况有不同的变化规律。比如有的路口是三叉路口,有的道路分主干道与次干道等。不同的路况有不同的通车情况,需设计者根据实际情况来设计交通灯的亮和灭。考虑到实际情况,本次设计对设计任务做了适当的扩充来满足更高的要求。1.2 系统的方案论证 1.2.1 设计任务交通信号灯控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并且用数码管显示时间。用8051做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。设计框图如图2-1。 图2-1 设计框图 1.2.2 方案介绍本系统是交通灯的控制设计,所以要了解实际交通灯的变化情况和规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1东西红灯,南北绿灯通车。过一段时间转状态2南北绿灯灭,黄灯闪烁几次,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯灭,闪几次黄灯,南北仍然红灯。最后循环至状态1。本系统就是利用了AT89C51芯片的I/O引脚。系统采用美国ATMEL公司生产的单片机AT89C51,以及其它芯片来设计交通灯控制器,实现了红灯亮60秒,绿灯50秒,黄灯闪烁10秒。P1输出口设置红、绿灯燃亮的功能和P2输出口设置实现在七段数码管上的时间显示。简单的来说,就是用单片机控制二极管的闪灭亮和显示时间。第二章 交通灯系统硬件的设计2.1 单片机介绍2.1.1系统框图复位电路时钟电路51单片机红绿灯显示1位LED数码管显示电路电源电路按键输入电路图2-1 硬件系统框图单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过几代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。以下是对AT89C51单片机介绍:AT89C51是MCS-51系列单片机的典型产品,其包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。MCS-51单片机基本结构示意图3-1。时钟电路SFR和RAMROMCPU定时/计数器并行端口中断系统串行端口系 统 总 线时钟源T0 T1P0 P1 P2 P3TXD RXD INT0 INT1图2-2 单片机基本结构2.1.2 电源电路图2-3 电源电路2.2 时钟与复位电路的设计 图2-4 复位与时钟电路图单片机本身是一个复杂的同步时序系统,为保证同步工作方式的实现,单片机必须有时钟信号以使其系统在时钟信号的控制下按时序协调工作。单片机的时钟电路由振荡电路和分频电路组成。振荡电路是通过输入引脚XTAL1和输出引脚XTAL2在芯片外并接石英晶体和两只电容组成的。石英晶体为一感性元件,与电容构成振荡回路,为片内放大器提供正反馈和振荡所需的相移条件,从而构成一个稳定的自激振荡器。晶振频率范围为1.2-33MHz,我们选择12MHz晶振。电容范围为30pF左右,我们选择33pF。振荡电路产生的振荡信号并不直接为单片机所用,而要经过分频电路的分频后再使用。二分频后为系统的时钟信号,再三分频产生ALE信号,在二分频的基础上再六分频得到机器周期信号。复位是单片机的硬件初始化操作。经复位后,单片机系统才能开始正常工作。复位方式有加电复位和手动复位,复位电路又有上电复位、按键电平复位和按键脉冲复位3种。大家可以根据实际情况采用不同的复位方式,图2-1所示为我们设计的时钟(上图)与复位电路(下图)仿真图。2.2.1发光二极管指示灯电路该电路部分是交通信号灯的主要显示部分。采用发光二极管构成,按交通规划分红、黄、绿三种颜色。发光二极管直接与单片机的I/O端口相连,绿灯和黄灯控制器还有红灯控制器的控制信号都是由秒脉冲发生器给出的。如图35所示。 图2-5 发光二极管电路2.3 单片机定时器/计数器的应用 2.3.1定时器/计数器定时器/计数器是单片机中最常用、最重要的功能模块之一。89S52单片机中有两个16位定时器/计数器,分别为T0和T1。因为单片机为8位,所以要把16位定时器分解为4个8位定时器,依次为TL0、TL1、TH0、TH1。本次设计只用到定时器,计数脉冲来自单片机内部,采用12MHz晶振,即每微妙计数器加一。2.3.2定时器/计数器的相关寄存器 与定时器/计数器相关的寄存器有定时器/计数器工作方式寄存(TMOD)、定时器/计数器控制寄存器(TCON)。TCON在本次设计中不是重点,故只将其简单列出,如表2-1所示。重点介绍TMOD,位定义及位地址表示如表2-2所示。 表2-1 TCON寄存器的位定义及位地址分配位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT0 表2-2 TMOD寄存器的位定义及位地址分配B7HB6HB5HB4HB3HB2HB1HB0HGATEC/M1M0GATEC/M1M0GATE:门控位。GATE0,仅由运行控制位TRX1来启动定时器/计数器运行;GATE1,由TRX1和外部中断引脚上的高电平共同来启动定时器/计数器运行。C/T:定时器模式和计数器模式选择位。C/T0,为定时器模式;C/T1,为计数器模式。M1M0:工作方式选择位(在后面介绍)。2.3.3 定时器/计数器的4种工作方式定时器/计数器的4种工作方式下的逻辑结构如表2-3所示。表2-3 定时器/计数器的4种工作方式下的逻辑结构表 M1M2工作方式00方式0,为13位定时器/计数器01方式1,为16位定时器/计数器10方式2,为初值自动重装的8位定时器/计数器11方式3,仅T0有效,将T0分为两个8位定时器/计数器此次设计采用定时器0工作方式1,故在此详述。方式1是16位计数结构的工作方式,计数器由TH0的全部8位和TL0的全部8位构成,计数范围是1-65536。定时时间计算公式为:2.4 其他元器件的应用 在交通灯控制系统中,还用到了以下几个器件:74LS04与非门,共阳极LED显示管,排阻。与非门主要用在人行道红绿灯中用于减少口的使用,显示管用于显示倒计时,排阻用于拉高P0口。这样,硬件方面的设计就到此结束,整个系统的电路图在附录A,下一章将介绍软件的设计。第三章 交通灯系统软件的设计3.1 主程序流程图程序流程图是描述程序运行流程的一种图表。用它描述算法,直观形象,能较清晰地表达各处理之间的关系。它不仅描绘程序从头到尾的运行顺序,也描述程序运行过程中的所有可能发生的状况。 开 始初始化变量 主干道绿开始亮,次干道红灯亮,延迟60秒。主干道继续红灯,次干道绿灯开始变黄灯,延迟2秒。主干道黄灯开始亮,次干道继续亮红灯,延迟2秒。主干道继续红灯,次干道黄灯开始闪亮3秒。主干道开始变成绿灯,次干道变成红灯主干道黄灯闪亮3s,次干道继续红灯,延迟3秒。主干道红灯,次干道绿灯,延迟30秒。有应急车经过,全部红灯,等待10秒钟让应急车辆通过图3-1 主程序流程图主程序的编写比较简单,因而其流程图也不会很复杂,图3-1所示即为主程序流程图3.2 INT0中断服务程序框图 开 始是否 结 束1s次数(ones_counter)加一,50ms次数(fifms_counter)清零。50ms次数(fifms_counter)是否到20次 中断程序主要就是完成1s的计数和定时器的初始化问题,其流程图如图3-2所示:重赋计数初值,50ms次数(fifms_counter)加1。图3-2 中断程序流程图定时器初始化程序如下:定时器T0设定为工作方式1,初始值为TH0=0x3CH,TL0=0xB0H。每一秒显示一次,中断服务程序如下:ORG000BHZDFW:PUSHPSWSETBRS1SETBRS0INCR3CLRTR0MOVTH0,#3CHMOVTL0,#0B0HSETBTR0CJNER3, #9,EXITSETB22H.0EXIT:POPPSWRETI3.2.1按键扫描处理子程序的设计图3-3 按键扫描子程序流程图程序如下:;键扫描子程序区KEY:LCALLKSJNZLK1LJMPBBLK1:LCALLDISPLCALLDISPLCALLKSJNZLK2LCALLDISPLJMPBBLK2:MOVB,20HLK3:LCALLKSJZLK4LCALLDISPLJMPLK3LK4:LCALLDISPLCALLDISPLCALLKSJZLK5LJMPLK4LK5:MOV 20H,BBB:RET第四章 proteus仿真调试4.1设计完成原理图 在电路连接完成后,将写好的程序放入单片机,运行可以清楚且非常明显的显示出跟主程序一样的效果。参考文献1 刘高轈.单片机实用技术M.北京:清华大学出版社,2004.2 丽凤.单片机原理及接口技术M.北京:北京交通大学出版社,2004.3 何立民.单片机应用技术大全M.北京:北京航空航天大学出版社,1994.4 张毅坤.单片微型计算机原理及应用M.西安:西安电子科技大学出版社,1998.5 吴金戎,沈庆阳.8051单片机实践与应用M.北京:清华大学出版社, 2003.6 余锡存.单片机原理及接口技术M.陕西:西安电子科技大学出版社,2000.7 雷丽文.微机原理与接口技术M.北京:电子工业出版社,1997.8 李华.MCS-51系列单片机实用接口技术M.北京: 北京航空航天大学出版社,19939 周航慈.单片机应用程序设计技术M.北京: 北京航空航天大学出版社,1991.10 何立民 MCS-51系列单片机应用系统设计M.北京:北京航空航天大学出版社, 1995. 附录A 交通灯控制系统原理图附录B PCB图附录 C 总程序清单;*:;堆栈栈底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个按键S2至S9分别依次接在P1.0至P1.7口线; ;*; ;子程序;DISP(数码管显示子程序);DL(1毫秒延时子程序,晶振频率12MHz);*;常数表格;TAB(共阳数码管字型代码表);DISBH(系统提示符P.字型代码序号表);*;中断服务程序;*;键功能程序;*;数据存储器变量及常量单元定义;*;伪指令定义区 ;*;系统起始程序区 ORG0000HSTART: LJMP MAINORG 000BHLJMP ZDFWORG0030HMAIN: MOVSP,#7FHMOVPSW, #00HMOVR0,#20HMOVR2,#96ML:MOVR0, #00HINCR0DJNZ R2,ML ;初始化以及清零/ML0: MOVR1,#08HMOVDPTR,#DISPH0MOVR0,#78HML1: MOVA,#00HMOVCA,A+DPTRMOVR0,AINCR0INCDPTRDJNZR1,ML1 LOOPA: LCALLDISP ;显示“P.”字符 LCALLKEY ;调用键扫程序JB20H.0, S2GN ;如果20H.0为1(也即按下了按键s2)则转移到键功能程序S2GNLJMPLOOPA/BIAOZHIEQU 39HSECGE EQU40H;将40H单元用常量SECGE定义表示个位SECSHI EQU41H;将41H单元用常量SECSHI定义表示十位;*;键功能程序区S2GN:CLR RS1;寄存器为第1组SETBRS0MOV 39H,#1T10:MOV77H,#60 MOVP3,#11011110B;主干道绿开始亮,次干道红灯亮MOV7DH,#10HMOV7CH,#10HMOV SECGE,#9MOVSECSHI,#5AA1: MOV7FH,SECGEMOV7EH,SECSHIT11: LCALLDELAY2LCALLDELAY2LCALL SJCHULI DJNZ 77H, AA1/MOV 39H,#2MOVR0,#2MOVP3,#11011101B;主干道黄灯开始亮,次干道继续亮红灯MOVSECGE,#5MOVSECSHI,#0AA2:MOV7FH,SECGEMOV7EH,SECSHIMOV7DH,#10HMOV7CH,#10HLCALLSJCHULIT2:LCALLDELAY2LCALLDELAY2DJNZR0,AA2 ;延时2s/MOVR0,#3MOV 39H, #3T3:MOVP3,#11011111B;主干道黄灯闪亮3s,次干道继续红灯LCALLDELAY2MOV 39H, #4MOVP3,#11011101BLCALLDELAY2MOV78H,SECGEMOV79H,SECSHIMOV7AH,#10HMOV7BH,#10HLCALLSJCHULIDJNZR0,T3;延时3s/MOVR0,#30MOV 39H, #5MOVP3, #11110011B ;主干道红灯,次干道绿灯MOVSECGE,#9MOVSECSHI,#2MOV7FH,#10HMOV7EH,#10HAA3: MOV7DH,SECGEMOV7CH, SECSHIT4:LCALLDELAY2LCALLDELAY2LCALLSJCHULIDJNZR0,AA3;延时30s/MOVR0,#2MOV39H,#6 MOVP3,#11101011B ;主干道红灯,次干道黄灯MOVSECGE,#5MOVSECSHI,#0AA4: MOV7FH,SECGEMOV7EH,SECSHIT5:LCALLDELAY2LCALLDELAY2DJNZR0, AA4 ;延时2s/MOVR0,#3 ;主干道红灯,次干道黄灯闪3sMOV 39H,#7T6:MOVP3,#11111011BLCALLDELAY2MOV 39H,#8MOVP3,#11101011BLCALLDELAY2LCALLSJCHULIMOV7DH,SECGEMOV7CH,SECSHIDJNZR0,T6 ;延时3sLJMP S2GNSJCHULI: PUSH PSW;堆栈保护 PUSHACC SETBRS1;使用第二组寄存器 CLRRS0 MOVR0,SECGE MOVA,SECSHI SWAPA ORLA,R0 ;到此处实现合字功能 SUBBA,#01H;实现减一功能 MOVR0,A ANLA,#0FH;屏蔽掉高四位 MOVSECGE,A ;将底四位送给个位SECGE MOVA,R0 SWAPA ;高低字节交换 ANLA,#0FH ;屏蔽功能 MOVSECSHI,A ;给十位送数 LCALLPAND ;调用判断 POPACC POPPSW RET/判断子程序,判断数字的合法性/PAND: PUSHACC ;堆栈保护 CLRCY ;进位清零 MOVA,SECGE SUBBA,#09H ;个位的数与9作差 JBCCY,K2 ;如果出现借位(数据合法)则转向K2,没有(数据非法)则循序执行K1: MOVA,SECGE SUBBA, #06H ;对非法数据进行减6,得到合法数据 MOVSECGE,A K2: MOVA,SECSHI CLRCY SUBBA,#10;十位的数与10作差 JBCCY,K4 ;如果出现借位(数据合法)则转向K2,没有(数据非法)则循序执行 K3: MOVA,SECSHI SUBBA, #06H ;对非法数据进行减6,得到合法数据 MOVSECSHI,A K4: POPACC RET;*;表格区DISPH0: DB10H,10H,10H,10H,10H,10H,10H,11H;字符“P.”序号表TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H ;0-8 DB 90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH ;9,A,B,C,D,E,F,灭,“P.”;*;键扫描子程序区KEY:LCALLKSJNZLK1LJMPBBLK1:LCALLDISPLCALLDISPLCALLKSJNZLK2LCALLDISPLJMPBBLK2:MOVB,20HLK3:LCALLKSJZLK4LCALLDISPLJMPLK3LK4:LCALLDISPLCALLDISPLCALLKSJZLK5LJMPLK4LK5:MOV 20H,BBB:RET;*;键处理子程序KS:PUSHPSWCLRRS1SETBRS0MOVP1,#0FFHMOVA,P1CPLAMOV20H,ACLRRS1CLRRS0POPPSWRET/;显示子程序;DISP: PUSHACC;压入堆栈PUSHDPHPUSHDPLPUSHPSWCLRRS1SETB RS0MOVDPTR,#TAB;显示字符代码首地址送往DPTRMOVR1,#78HMOVR2,#08H;循环次数,即驱动管的个数MOVR3,#0FEH;位控代码(从右往左显示)DISP1: MOVA,R1 MOVCA,A+DPTRMOVP0,A;送段空码INCR1MOVP2,R3;送位控码LCALLDELAY ;延时调用MOVA,R3RLAMOVR3,ADJNZR2, DISP1;循环判断DISP2:POPDPH ;出栈POPDPLPOPACCPOPPSWRET/;延时1ms子程序(晶振频率12MHz)DLDELAY: MOVR5,#02HMOVR6,0FFHLOOP1:DJNZR6,LOOP1LOOP2:DJNZR5,LOOP2RET;延时500ms子程序(定时器以中断方式工作)DELAY2: PUSHACCPUSHPSWSETBRS1SETBRS0MOVR3,#00HCLR22H.0MOVTH0,#3CHMOVTL0,#0B0HMOVTMOD,#01HLCALLKEYJB20H.1,OUTSETBEASETBET0SETBTR0LCALLKEYJB20H.1,OUTLOOPD:JB22H.0,EXIT0LCALLKEYJB20H.1,OUT LCALLDISPLJMPLOOPDOUT:SETB20HEXIT0:POP PSWPOPACCJBC20H,BB1LJMP BB0BB1:LCALLS3GNBB0: RETS3GN:NOPMOVP3,#11101011BMOV76H, #10AA5: LCALL DELAY2CPLP3.7LCALLDELAY2CPLP3.7DJNZ 76H, AA5 MOVR5, 39HCC1: CJNER5, #1, CC2 MOVP3,#11011110B AJMPOUT2CC2:CJNER5, #2, CC3MOVP3,#11011101BAJMPOUT2CC3:CJNER5, #3, CC4MOVP3,#11011111BAJMPOUT2CC4:CJNER5, #4, CC5MOVP3,#11110011BAJMPOUT2CC5: CJNE R5, #5, CC6MOVP3,#11110011BAJMPOUT2CC6:CJNE R5, #6, CC7MOVP3, #11101011BAJMPOUT2CC7:CJNE R5, #7, CC8MOVP3, #11111011BAJMPOUT2CC8:CJNE R5, #8, OUT2 MOVP3, #11101011BSETBP3.7OUT2:RET;中断服务程序ZDFW: PUSHPSWSETBRS1SETBRS0INCR3CLRTR0MOVTH0,#3CHMOVTL0,#0B0HSETBTR0CJNER3, #9,EXITSETB22H.0EXIT: POPPSWRETI END26
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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