交通灯课程设计南京工程学院Word文档下载推荐.docx
- 文档编号:17383655
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:16
- 大小:92.17KB
交通灯课程设计南京工程学院Word文档下载推荐.docx
《交通灯课程设计南京工程学院Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《交通灯课程设计南京工程学院Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
1、A3区A0、A1是地址锁存器对应P0.0、P0.1输出引脚;
2、A3区各片选信号线地址X围:
片选
地址X围
CS1
0F000H~0FFFFH
CS5
0B000H~0BFFFH
CS2
0E000H~0EFFFH
CS6
0A000H~0AFFFH
CS3
0D000H~0DFFFH
CS7
09000H~09FFFH
CS4
0C000H~0CFFFH
CS8
08000H~08FFFH
摘要
近年来随着科技的飞速发展,单片机的应用正在不断深入。
在自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。
那么靠什么来实现这井然秩序呢?
靠的就是交通信号灯的自动指挥系统。
交通信号灯控制方式很多。
本系统采用MSC-51系列单片机8051和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能;
红黄绿灯循环点亮,绿灯闪烁警示(交通灯信号通过PA口输出);
具有紧急通道的功能;
本系统实用性强、操作简单、扩展功能强。
关键词:
单片机交通灯紧急通道
1.功能描述:
使用8051单片机及可编程并行接口芯片Intel8255A实现一个模拟交通灯系统。
(1).交通信号灯的变化规律为:
(2).紧急通道功能,采用外部中断技术实现,当/INT0下降沿触发有效时,各路口灯全亮,延时5秒,以供急救车通过。
(3).可以采用软件延时,精确计算延时,减小误差。
2.系统方案设计:
2.1MSC-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。
图2
MCS-51的引脚说明:
MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
现在我们对这些引脚的功能加以说明:
如图3
图3
Pin9:
RESET/
复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。
初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。
RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。
然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。
8051的复位方式可以是自动复位,也可以是手动复位,见下图4。
此外,RESET/Vpd还是一复用脚,
掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。
图4
Pin30:
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.28255芯片简介
8255可编程并行接口芯片简介:
8255可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7~PA0、PB7~PB0和PC7~PC0。
其内部还有一个控制寄存器,即控制口。
通常A口、B口作为输入输出的数据端口。
C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。
它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。
8255可编程并行接口芯片方式控制字格式说明:
8255有两种控制命令字;
一个是方式选择控制字;
另一个是C口按位置位/复位控制字。
其中C口按位置位/复位控制字方式使用较为繁难,说明也较冗长,故在此不作叙述。
方式控制字格式说明如表1:
D7
D6
D5
D4
D3
D2
D1
D0
D7:
定工作方式标志,1有效。
D6、D5:
A口方式选择
00—方式0
01—方式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次
2s
10s
表2说明:
3.2系统硬件设计
选用设备8051单片机一片,8255并行通用接口芯片一片,7红、黄、绿交通灯各两个,开关键盘、连线若干。
3.2.1系统总框图如下:
图5
3.2.2交通灯硬件线路图:
图6
说明:
图1-1位交通灯管理系统的实物连线图,其中8051的A0,A1与8255的A0,A1端口相连接,8255的片选地址为CS1,即0F000H-0FFFFH,8255的PA端口与G6区的8盏灯相连接,8051的中断端口选用INT0。
3.2.3系统工作原理:
各种状态下的东西向和南北向的亮灯情况通过8051的片选地址传输给8255的PA口,PA口的灯根据8051中的值的变化而有规律的变化,其延迟时间和是否闪烁,由软件延迟控制,这样可以做到可以采用软件延时,精确计算延时,减小误差。
4.软件设计:
4.1时间的程序设置:
(1)首先设置1秒的软件延迟,延迟1秒则要读指令N次,指令周期为1us,所以可以得到,
(2)所以R4,R5,R6均设为100,利用循环嵌套,达到延迟1秒的设计目的,程序如下:
DELAY:
MOVR4,#100
D1:
MOVR5,#100
D2:
MOVR6,#100
DJNZR6,$
DJNZR5,D2
DJNZR4,D1
RET
(3)东西向绿灯南北向红灯和东西向红灯南北向绿灯两种情况下的时间延迟设置:
由于软件延迟的时间是1s,根据设计要求,在上述良种情况下的时间是10s,所以我设计的依据是调用软件延迟,每调用一次,相当于灯亮1s,故要达到设计的要求,就要循环10次,利用R0的循环达到设计目的,子程序如下:
SS:
LCALLDELAY
DJNZR0,SS
MOVR0,#0AH
(4)东西向绿灯南北向红灯和东西向红灯南北向绿灯两种情况下的绿灯闪烁设置:
东西向绿灯南北向红灯情况下,由G6区的面板可知,东西向的绿灯在ACC的第7位,所以只要对ACC.7取反8次,所以R1取08H,就可以达到闪烁4次的效果,为了使效果明显,故在闪烁过程中引用软件的延迟,程序如下:
QQ:
CPLACC.7
MOVXDPTR,A
LCALLDELAY
DJNZR1,QQ
MOVR1,#08H
东西向红灯南北向绿灯情况下,由G6区的面板可知,南北向的绿灯在ACC的第3位,所以只要对ACC.3取反8次,所以R1取08H,就可以达到闪烁4次的效果,为了使效果明显,故在闪烁过程中引用软件的延迟,程序如下:
WW:
CPLACC.3
DJNZR1,WW
RET
(5)东西向黄灯南北向红灯和东西向红灯南北向黄灯两种情况下的亮灯时间设置:
由于软件延迟的时间是1s,根据设计要求,在上述两种情况下的时间是2s,所以我设计的依据是调用软件延迟,每调用一次,相当于灯亮1s,故要达到设计的要求,就要循环2次,利用R2的循环达到设计目的,子程序如下:
ZZ:
DJNZR2,ZZ
MOVR2,#02H
4.2紧急通道功能的设计;
利用中断设计来实现紧急通道的功能,选用INT0中断端口,下降沿的时候触发中断,进入中断子程序后,要保存中断前的亮灯状态和整个系统的程序状态,所以我选用了堆札的方法,利用PUSP和POP语句。
在主程序中的中断端口设计:
SETBEA
SETBEX0
SETBIT0
中断子程序的设计:
INT_T0:
PUSHPSW
PUSHACC
MOVA,#03H
YY:
DJNZR3,YY
MOVR3,#05H
POPACC
POPPSW
RETI
4.3主程序设计—路口灯状态转换
十字路口六种状态时PA端口的值,如下表:
东西方向
南北方向
X1
X2
绿
黄
红
1
由上表可以知道,状态1,状态2的亮灯情况一致,均为6FH,状态3的亮灯为AFH,状态4的亮灯情况是D7H,状态5,状态6的亮灯情况是一致的,均为DBH。
程序如下;
LOOP:
MOVDPTR,#0F000H
MOVA,#6FH
MOVXDPTR,A
LCALLSS
LCALLQQ
MOVA,#0AFH
MOVXDPTR,A
LCALLZZ
MOVA,#0D7H
LCALLWW
MOVA,#0DBH
SJMPLOOP
4.4程序流程图:
图7图8
4.5程序源代码
ORG0000H
LJMPSTART
ORG0003H
LJMPINT_T0
ORG000BH
START:
MOVDPTR,#0F003H
MOVA,#80H
MOVSP,#70H
MOVR0,#0AH
MOVR1,#08H
MOVR2,#02H
SETBEA
SETBEX0
SETBIT0
SJMPLOOP
PUSHACC
MOVA,#03H
YY:
DJNZR3,YY
POPACC
POPPSW
RETI
SS:
DJNZR0,SS
RET
QQ:
LCALLDELAY
DJNZR1,QQ
WW:
DJNZR1,WW
RET
ZZ:
DJNZR2,ZZ
DELAY:
D1:
D2:
DJNZR6,$
DJNZR5,D2
DJNZR4,D1
END
6.心得体会:
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节。
这次单片机原理及其接口技术实习总共进行了一周,在这些日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。
但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。
因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。
我们首先理解了在这次设计任务中我们所要完成的任务,即交通灯的设计。
在设计它的程序之前,要弄懂它的工作原理、工作过程以及各个芯片的功能。
设计出电路原理图,且根据要求设计出工作程序。
“纸上得来终觉浅,绝知此事要躬行!
”在短暂的实习过程中,让我深深的感觉到自己在实际运用中的专业知识的匮乏,刚开始的一段时间里,对一些工作感到无从下手,茫然不知所措,这让我感到非常的难过。
在学校总以为自己学的不错,一旦接触到实际,才发现自己知道的是多么少,这时才真正领悟到“学无止境”的含义。
当然在一开始是很困难的,尤其是对一个基本知识学的不扎实的同学来讲,对所需要的芯片的功能不够理解,对一些简单的基本程序没有认真去理解搞懂以至在拿到课设题目是一脸茫然。
我在拿到这课题时也有类似地感觉,无从下手。
当我认真的把书上一些主要的各个部分地程序认真的理解了一遍,在老师的指点下,终于写出了正确的,可执行的程序代码,在运行操作过程中,发现了一些不合适的代码,经过修改完善,终于完成了实习所要求的指标。
总结这次实习,我觉得我这周很充实,在理论课上的学到的知识在这一周充分的和实践结合了起来,发现了学习中遗漏的知识点,对于已经有所了解的知识有了更进一步认识,收益匪浅。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 课程设计 南京 工程学院