交通灯课程设计(南京工程学院).doc

上传人:jian****018 文档编号:9186105 上传时间:2020-04-03 格式:DOC 页数:13 大小:1.14MB
返回 下载 相关 举报
交通灯课程设计(南京工程学院).doc_第1页
第1页 / 共13页
交通灯课程设计(南京工程学院).doc_第2页
第2页 / 共13页
交通灯课程设计(南京工程学院).doc_第3页
第3页 / 共13页
点击查看更多>>
资源描述
目录课程设计任务书摘要功能概述系统方案设计MSC-51芯片简介8255芯片简介硬件设计交通管理的方案论证系统硬件设计系统工作原理软件设计时间的程序设置紧急通道功能的设计主程序设计路口灯状态转换程序流程图程序源代码运行效果心得体会参考资料 1课程设计应达到的目的本课程设计是在学生学习完单片机及其接口技术课程后进行的一次全面的综合练习。通过本次课程设计进一步巩固和加深对单片机课程的基本知识的理解,掌握使用单片机的基本技能,了解有关单片机应用系统开发的过程与方法,提高利用单片机软硬件解决实际问题的能力。2课程设计题目及要求本课题要求使用8051单片机及可编程并行接口芯片Intel8255A实现一个模拟交通灯系统。十字路口东西方向和南北方向各安装一组交通灯,其中东西方向红、绿、黄灯对应试验仪G6区发光二极管3、1、2;南北方向红、绿、黄灯对应试验箱G6区发光二极管4、5、6。要求:1、 交通信号灯的变化规律为:初始状态灯全灭;状态0:东西向绿灯亮,南北向红灯亮;延时10秒进入状态1状态1:东西向绿灯闪烁4次,南北向红灯亮;进入状态2状态2:东西向黄灯亮,南北向红灯亮;延时2秒进入状态3状态3:东西向红灯亮,南北向绿灯亮;延时10秒进入状态4状态4:东西向红灯亮,南北向绿灯闪烁4次;进入状态5状态5:东西向红灯亮,南北向黄灯亮;延时2秒进入状态0;如此循环往复2、 紧急通道功能,采用外部中断技术实现,当/INT0下降沿触发有效时,各路口灯全亮,延时5秒,以供急救车通过。急救车通过后,红绿灯恢复为中断发生前状态继续运行。3、 可以采用软件延时,精确计算延时,减小误差。说明: 1、A3区A0、A1是地址锁存器对应P0.0、P0.1输出引脚;2、A3区各片选信号线地址范围:片选地址范围片选地址范围CS10F000H0FFFFHCS50B000H0BFFFHCS20E000H0EFFFHCS60A000H0AFFFHCS30D000H0DFFFHCS709000H09FFFHCS40C000H0CFFFHCS808000H08FFFH摘要近年来随着科技的飞速发展,单片机的应用正在不断深入。在自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机8051和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能;红黄绿灯循环点亮,绿灯闪烁警示(交通灯信号通过PA口输出);具有紧急通道的功能;本系统实用性强、操作简单、扩展功能强。 关键词:单片机 交通灯 紧急通道1. 功能描述:使用8051单片机及可编程并行接口芯片Intel8255A实现一个模拟交通灯系统。十字路口东西方向和南北方向各安装一组交通灯,其中东西方向红、绿、黄灯对应试验仪G6区发光二极管3、1、2;南北方向红、绿、黄灯对应试验箱G6区发光二极管4、5、6。要求:(1).交通信号灯的变化规律为:初始状态灯全灭;状态0:东西向绿灯亮,南北向红灯亮;延时10秒进入状态1状态1:东西向绿灯闪烁4次,南北向红灯亮;进入状态2状态2:东西向黄灯亮,南北向红灯亮;延时2秒进入状态3状态3:东西向红灯亮,南北向绿灯亮;延时10秒进入状态4状态4:东西向红灯亮,南北向绿灯闪烁4次;进入状态5状态5:东西向红灯亮,南北向黄灯亮;延时2秒进入状态0;如此循环往复(2).紧急通道功能,采用外部中断技术实现,当/INT0下降沿触发有效时,各路口灯全亮,延时5秒,以供急救车通过。急救车通过后,红绿灯恢复为中断发生前状态继续运行。(3).可以采用软件延时,精确计算延时,减小误差。2. 系统方案设计:2.1 MSC-51芯片简介MCS-51单片机内部结构8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。下图是MCS-51系列单片机的内部结构示意图2。图2MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:如图3 图3Pin9:RESET/复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。 8051的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,RESET/Vpd还是一复用脚,掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。 图4Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。如果单片机是EPROM,在编程其间,将用于输入编程脉冲。Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。Pin31:EA/程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。在编程时,EA/脚还需加上21V的编程电压。 2.2 8255芯片简介8255可编程并行接口芯片简介: 8255可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7PA0、PB7PB0和PC7PC0。其内部还有一个控制寄存器,即控制口。通常A口、B口作为输入输出的数据端口。C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口A配合使用,可以用作控制信号输出或作为状态信号输入。8255可编程并行接口芯片方式控制字格式说明:8255有两种控制命令字;一个是方式选择控制字;另一个是C口按位置位复位控制字。其中C口按位置位复位控制字方式使用较为繁难,说明也较冗长,故在此不作叙述。方式控制字格式说明如表1: D7D6D5D4D3D2D1D0 D7:定工作方式标志,1有效。 D6、D5:A口方式选择 0 0 方式0 0 1 方式1 1 方式2 D4:A口功能 (1=输入,0=输出) D3:C口高4位功能 (1=输入,0=输出) D2:B口方式选择 (0=方式0,1=方式1) D1:B口功能 (1=输入,0=输出)D0:C口低4位功能 (1=输入,0=输出) 8255可编程并行接口芯片工作方式说明:方式0:基本输入输出方式。适用于三个端口中的任何一个。每一个端口输出。输出可被锁存,输入不能锁存。 方式1:选通输入输出方式。这时A口或B口的8位外设线用作输入或输出,C口的4条线中三条用作数据传输的联络信号和中断请求信号。 方式2 :双向总线方式。只有A口具备双向总线方式,8位外设线用作输入或输出,此时C口的5条线用作通讯联络信号和中断请求信号。3 硬件设计:3.1交通管理的方案论证东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。设东西道与南北道的车流量一样大,指示灯燃亮的方案如表2。状态1状态2状态3状态4状态5状态6东西绿南北红东西绿南北红东西黄南北红东西红南北绿东西红南北绿东西红南北黄10s 闪烁4次2s10s闪烁4次2s表2说明:(1).交通信号灯的变化规律为:初始状态灯全灭;状态0:东西向绿灯亮,南北向红灯亮;延时10秒进入状态1状态1:东西向绿灯闪烁4次,南北向红灯亮;进入状态2状态2:东西向黄灯亮,南北向红灯亮;延时2秒进入状态3状态3:东西向红灯亮,南北向绿灯亮;延时10秒进入状态4状态4:东西向红灯亮,南北向绿灯闪烁4次;进入状态5状态5:东西向红灯亮,南北向黄灯亮;延时2秒进入状态0;如此循环往复(2).紧急通道功能,采用外部中断技术实现,当/INT0下降沿触发有效时,各路口灯全亮,延时5秒,以供急救车通过。急救车通过后,红绿灯恢复为中断发生前状态继续运行。(3).可以采用软件延时,精确计算延时,减小误差。3.2系统硬件设计选用设备8051单片机一片,8255并行通用接口芯片一片,7红、黄、绿交通灯各两个,开关键盘、连线若干。321 系统总框图如下:图5322 交通灯硬件线路图: 图6 说明:图1-1位交通灯管理系统的实物连线图,其中8051的A0,A1与8255的A0,A1端口相连接,8255的片选地址为CS1,即0F000H-0FFFFH,8255的PA端口与G6区的8盏灯相连接,8051的中断端口选用INT0。323 系统工作原理:各种状态下的东西向和南北向的亮灯情况通过8051的片选地址传输给8255的PA口,PA口的灯根据8051中的值的变化而有规律的变化,其延迟时间和是否闪烁,由软件延迟控制,这样可以做到可以采用软件延时,精确计算延时,减小误差。4 软件设计:41时间的程序设置:(1) 首先设置1秒的软件延迟,延迟1秒则要读指令N次,指令周期为1us,所以可以得到, (2)所以R4,R5,R6均设为100,利用循环嵌套,达到延迟1秒的设计目的,程序如下:DELAY:MOV R4,#100 D1:MOV R5,#100 D2:MOV R6,#100 DJNZ R6,$ DJNZ R5,D2 DJNZ R4,D1 RET(3)东西向绿灯南北向红灯和东西向红灯南北向绿灯两种情况下的时间延迟设置: 由于软件延迟的时间是1s,根据设计要求,在上述良种情况下的时间是10s,所以我设计的依据是调用软件延迟,每调用一次,相当于灯亮1s,故要达到设计的要求,就要循环10次,利用R0的循环达到设计目的,子程序如下:SS:LCALL DELAY DJNZ R0,SS MOV R0,#0AH RET(4) 东西向绿灯南北向红灯和东西向红灯南北向绿灯两种情况下的绿灯闪烁设置:东西向绿灯南北向红灯情况下,由G6区的面板可知,东西向的绿灯在ACC的第7位,所以只要对ACC.7取反8次,所以R1取08H,就可以达到闪烁4次的效果,为了使效果明显,故在闪烁过程中引用软件的延迟,程序如下: QQ:CPL ACC.7 MOVX DPTR,A LCALL DELAY DJNZ R1,QQ MOV R1,#08H RET东西向红灯南北向绿灯情况下,由G6区的面板可知,南北向的绿灯在ACC的第3位,所以只要对ACC.3取反8次,所以R1取08H,就可以达到闪烁4次的效果,为了使效果明显,故在闪烁过程中引用软件的延迟,程序如下: WW:CPL ACC.3 MOVX DPTR,A LCALL DELAY DJNZ R1,WW MOV R1,#08H RET (5)东西向黄灯南北向红灯和东西向红灯南北向黄灯两种情况下的亮灯时间设置:由于软件延迟的时间是1s,根据设计要求,在上述两种情况下的时间是2s,所以我设计的依据是调用软件延迟,每调用一次,相当于灯亮1s,故要达到设计的要求,就要循环2次,利用R2的循环达到设计目的,子程序如下:ZZ:LCALL DELAY DJNZ R2,ZZ MOV R2,#02H RET42紧急通道功能的设计;利用中断设计来实现紧急通道的功能,选用INT0中断端口,下降沿的时候触发中断,进入中断子程序后,要保存中断前的亮灯状态和整个系统的程序状态,所以我选用了堆札的方法,利用PUSP和POP语句。Error! No bookmark name given.Error! No bookmark name given.在主程序中的中断端口设计:SETB EA SETB EX0 S ETB IT0中断子程序的设计: INT_T0:PUSH PSW PUSH ACC MOV A,#03H MOVX DPTR,A YY:LCALL DELAY DJNZ R3,YY MOV R3,#05H POP ACC POP PSW RETI4.3主程序设计路口灯状态转换 十字路口六种状态时PA端口的值,如下表:东西方向南北方向X1X2绿黄红红绿黄011011110110111110101111110101111101011111010111说明:由上表可以知道,状态1,状态2的亮灯情况一致,均为6FH,状态3的亮灯为AFH ,状态4的亮灯情况是D7H ,状态5,状态6的亮灯情况是一致的,均为DBH 。程序如下; LOOP: MOV DPTR, #0F000H MOV A, #6FH MOVX DPTR,A LCALL SS LCALL QQ MOV A, #0AFH MOVX DPTR, A LCALL ZZ MOV A, #0D7H MOVX DPTR, A LCALL SS LCALL WW MOV A , #0DBH MOVX DPTR, A LCALL ZZSJMP LOOP4.4程序流程图: 图7 图84.5程序源代码ORG 0000HLJMP STARTORG 0003HLJMP INT_T0ORG 000BHSTART: MOV DPTR, #0F003H MOV A, #80H MOVX DPTR, A MOV SP,#70H MOV R0,#0AH MOV R1,#08H MOV R2,#02H MOV R3,#05H SETB EA SETB EX0 SETB IT0LOOP: MOV DPTR, #0F000H MOV A, #6FH MOVX DPTR,A LCALL SS LCALL QQ MOV A, #0AFH MOVX DPTR, A LCALL ZZ MOV A, #0D7H MOVX DPTR, A LCALL SS LCALL WW MOV A , #0DBH MOVX DPTR, A LCALL ZZ SJMP LOOP INT_T0:PUSH PSW PUSH ACC MOV A,#03H MOVX DPTR,A YY:LCALL DELAY DJNZ R3,YY MOV R3,#05H POP ACC POP PSW RETI SS:LCALL DELAY DJNZ R0,SS MOV R0,#0AH RET QQ:CPL ACC.7 MOVX DPTR,A LCALL DELAY DJNZ R1,QQ MOV R1,#08H RET WW:CPL ACC.3 MOVX DPTR,A LCALL DELAY DJNZ R1,WW MOV R1,#08H RET ZZ:LCALL DELAY DJNZ R2,ZZ MOV R2,#02H RET DELAY:MOV R4,#100 D1:MOV R5,#100 D2:MOV R6,#100 DJNZ R6,$ DJNZ R5,D2 DJNZ R4,D1 RET END6.心得体会:课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节。这次单片机原理及其接口技术实习总共进行了一周,在这些日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。我们首先理解了在这次设计任务中我们所要完成的任务,即交通灯的设计。在设计它的程序之前,要弄懂它的工作原理、工作过程以及各个芯片的功能。设计出电路原理图,且根据要求设计出工作程序。“纸上得来终觉浅,绝知此事要躬行!”在短暂的实习过程中,让我深深的感觉到自己在实际运用中的专业知识的匮乏,刚开始的一段时间里,对一些工作感到无从下手,茫然不知所措,这让我感到非常的难过。在学校总以为自己学的不错,一旦接触到实际,才发现自己知道的是多么少,这时才真正领悟到“学无止境”的含义。当然在一开始是很困难的,尤其是对一个基本知识学的不扎实的同学来讲,对所需要的芯片的功能不够理解,对一些简单的基本程序没有认真去理解搞懂以至在拿到课设题目是一脸茫然。我在拿到这课题时也有类似地感觉,无从下手。当我认真的把书上一些主要的各个部分地程序认真的理解了一遍,在老师的指点下,终于写出了正确的,可执行的程序代码,在运行操作过程中,发现了一些不合适的代码,经过修改完善,终于完成了实习所要求的指标。总结这次实习,我觉得我这周很充实,在理论课上的学到的知识在这一周充分的和实践结合了起来,发现了学习中遗漏的知识点,对于已经有所了解的知识有了更进一步认识,收益匪浅。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑工程


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

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


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