毕业设计146湖南工程学院交通灯设计Word下载.docx
- 文档编号:22870516
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:25
- 大小:185.60KB
毕业设计146湖南工程学院交通灯设计Word下载.docx
《毕业设计146湖南工程学院交通灯设计Word下载.docx》由会员分享,可在线阅读,更多相关《毕业设计146湖南工程学院交通灯设计Word下载.docx(25页珍藏版)》请在冰豆网上搜索。
下图是MCS-51系列单片机的内部结构示意图
图2.2.1MCS-51系列单片机的内部
MCS-51的引脚说明:
MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
现在我们对这些引脚的功能加以说明
图2.2.2MCS-51引脚图
Pin9:
RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。
初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。
RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。
然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。
8051的复位方式可以是自动复位,也可以是手动复位,见下图4。
此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。
图2.3.38051的复位方式图
Pin30:
ALE/
当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。
而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。
更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。
如果单片机是EPROM,在编程其间,
将用于输入编程脉冲。
Pin29:
当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。
Pin31:
EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。
如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。
显然,对内部无程序存储器的8031,EA端必须接地。
在编程时,EA/Vpp脚还需加上21V的编程电压。
2.38255芯片简介
8255可编程并行接口芯片简介:
8255可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7~PA0、PB7~PB0和PC7~PC0。
其内部还有一个控制寄存器,即控制口。
通常A口、B口作为输入输出的数据端口。
C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。
它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。
8255可编程并行接口芯片方式控制字格式说明:
8255有两种控制命令字;
一个是方式选择控制字;
另一个是C口按位置位/复位控制字。
其中C口按位置位/复位控制字方式使用较为繁难,说明也较冗长,故在此不作叙述,需要时用户可自行查找有关资料。
方式控制字格式说明如表2.3:
表2.3
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条线用作通讯联络信号和中断请求信号。
2.4其他器件
2.4.1数共阴极的七段数码管。
图2.4.1阴极的七段数码管图
VT为双向晶闸管,当门极为高电平时晶闸管导通,该支路指示灯亮;
当门极为低电平时晶闸管关断,该支路指示灯灭。
2.4.274LS373芯片
3控制器硬件系统设计
3.1交通管理的方案论证
A、B两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行。
黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为A、B两干道的公共停车时间。
设A道比B道的车流量大,指示灯燃亮的方案:
如表3.1
6
45
5
25
……
主干道
黄灯亮
红灯亮
绿灯亮
支干道
表3.1说明
(1)当为黄灯时A、B两道同时为黄灯;
以提示行人或车辆下一个灯色即将到来时间5秒。
(2)当A到为红灯,A道车辆禁止通行,A道行人可通过;
B道为绿灯,B道车辆通过,行人禁止通行。
时间为45秒。
(3)当A道绿灯,A道车辆通行;
B道为红灯,B道车辆禁止通过,行人通行。
时间为25秒。
A道车流大通行时间长
(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。
(5)此表可根据车流量动态设定
3.2系统硬件设计
选用设备8031单片机一片选用设备:
8031弹片机一片,8255并行通用接口芯片一片,74LS07两片,共阴极的七段数码管两个双向晶闸管若干,7805三端稳压电源一个,红、黄、绿交通灯各两个,开关键盘、连线若干。
3.2.1交通灯控制线路图
图3.21交通灯控制线路图
3.2.2系统工作原理
(1)开关键盘输入交通灯初始时间,通过8031单片机P1输入到系统
(2)由8031单片机的定时器每秒钟通过P0口向8255的数据口送信息,由8255的PC口显示红、绿、黄灯的燃亮情况;
由8255的PA、PB口显示每个灯的燃亮时间。
(3)8031通过设置各个信号等的燃亮时间、通过8031设置,黄、绿、红时间依次为5秒、45秒、5秒、25秒、5秒循环由8031的P0口向8255的数据口输出。
(4)通过8031单片机的P3.0位来控制系统是工作或设置初值,当.牌位0就对系统进行初始化,为1系统就开始工作。
(5)8255PA口用于输出时间的个位,PB口用于输出时间的十位,由747S07驱动芯片驱动;
.而PC口用于输出各个灯的情况,它的末段连接双向晶闸管采用220V交流电压驱动。
4控制器的软件设计
4.1每秒钟的设定
延时方法可以有两种一中是利用MCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。
4.2计数器硬件延时
4.2.1计数器初值计算
定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。
他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。
因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:
TC=M-C
式中,M为计数器摸值,该值和计数器工作方式有关。
在方式0时M为213;
在方式1时M的值为216;
在方式2和3为28
计算公式
T=(M-TC)T计数---------------------------------------------------------------------------------------4.2.1
或TC=M-T/T计数----------------------------------------------------------------------------4.2.2
T计数是单片机时钟周期TCLK的12倍;
TC为定时初值
如单片机的主脉冲频率为TCLK12MHZ ,经过12分频
方式0 TMAX=213 *1微秒=8.192毫秒
方式1 TMAX=216 *1微秒=65.536毫秒
显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题.
1秒的方法
我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒.这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。
在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。
为零表示1秒已到可以返回到输出时间显示程序。
4.2.2相应程序代码
(1)主程序
定时器需定时50毫秒,故T0工作于方式1。
初值:
TC=M-T/T计数 =216 -50ms/1us=15536=3CBOH
ORG1000H
START:
MOVTMOD,#01H;
令TO为定时器方式1
MOVTH0,#3CH;
装入定时器初值
MOVTL0,#BOH ;
MOVIE, #82H;
开T0中断
SEBT TRO ;
启动T0计数器
MOV RO, #14H ;
软件计数器赋初值
LOOP:
SJMP$ ;
等待中断
(2)中断服务子程序
ORG 000BH
AJMP BRT0
ORG 00BH
BRTO:
DJNZR0,NEXT
AJMPTIME;
跳转到时间及信号灯显示子程序
DJNZ:
MOV RO,#14H ;
恢复R0值
MOVTH0,#3CH;
重装入定时器初值
MOVIE, #82H
RET1
END
4.3软件延时
MCS-51的工作频率为2-12MHZ,我们选用的8031单片机的工作频率为6MHZ。
机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。
我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。
具体的延时程序分析:
DELAY:
MOVR4,#08H延时1秒子程序
DE2:
LCALLDELAY1
DJNZR4,DE2
RET
DELAY1:
MOVR6,#0延时125ms子程序
MOVR5,#0
DE1:
DJNZR5,$
DJNZR6,DE1
RET
MOVRN,#DATA字节数数为2机器周期数为1
所以此指令的执行时间为2ms
DELAY1为一个双重循坏循环次数为256*256=65536所以延时时间=65536*2=131072us约为125us
DELAYR4设置的初值为8主延时程序循环8次,所以125us*8=1秒
由于单片机的运行速度很快其他的指令执行时间可以忽略不计。
4.4时间及信号灯的显示
4.4.18031并行口的扩展
8031虽然有4个8位I/O端口,但真正能提供借用的只有P1口,因为P2和P0口通常用于传送外部传送地址和数据,P3口也有它的第二功能。
因此,8031通常需要扩展。
由于我们用外输出时间时,时间的个位、十位、信号灯的显示都要用到一个I/O端口,显然8031的端口是不够,需要扩展。
扩展的方法有两种:
(1)借用外部RAM地址来扩展I/O端口;
(2)采用I/O接口新片来扩充,我们用8255并行接口信片来扩展I/O端口。
4.4.2显示原理:
当定时器定时为1秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值,重新进入循环。
4.4.38255输出信号的放大
要使行人能看见信号灯的情况,必须把8255输出的信号进行放大,这里我们用VT为双向晶闸管,当门极为高电平时晶闸管导通,该支路指示灯亮;
当门极为低电平时关断,该支路指示灯灭。
如图2
我们用连接7段数码管的方法来连接晶闸管
4.4.48255输出信号与信号灯的连接
LED灯的显示原理:
通过同名管脚上所加电平的高低来控制发光二极管是否点量而显示不同的字形如SP,g,f,e,d,c,b,a管角上加上7FH所以 SP上为0伏,不亮其余为TTL高电平,全亮则显示为8
采用共阴级连接:
其中PA0\PB0-a,
PA1\PB1-b,
PA2\PB2-c,
PA3\PB3-d,
PA4\PB4-e,
PA5\PB5-f,
PA6\PB6-g
PA7\PB7-SP接地
表4.4.4驱动代码表
显示数值
dpgfedcba
驱动代码(16进制)
00111111
3FH
1
00000110
06H
2
01011011
5BH
3
01001111
4FH
4
01100110
66H
01101100
6DH
01111100
7DH
7
00000111
07H
8
01111111
7FH
4.4.58255与8031的连接
用8031的P0口的p0.7连接8255的片选信号cs我们用8031的地址采用全译码方式,当p0.7=0时片选有效,其他无效,p0.1p0.1用于选择8255端口
P0.7p0.6p0.5p0.4p0.3p0.2P0.1P0.0
A7A6A5A4A3A2A1A0
1XXXXX0000H为8255的PA口
1XXXXX0101H为8255的PB口
1XXXXX1002H为8255的PC口
1XXXXX1103H为8255的控制口
由于8031是分时对8255和储存器进行访问所以8031的P0口不会发生冲突
4.5程序设计
4.5.1流程图如图所示
图4.5.1流程图
图4.5.2程序流程图
4.5.2程序源代码
R4存放黄灯时间503H(此时间可以动态设定)
R5存放红灯时间453CH
R6存放绿灯时间2550H
PC0显示黄灯信号
PC1显示红灯信号
PC2显示黄灯信号
8255工作于方式0
8255PA、PB、PC口输出PC控制字为10000000B(80H)
程序源代码:
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVR1,#03H初始化8255
MOVA,#80H
MOVX@R1,A
AGAIN:
MOVP3,#80H设置初值
MOVA,P3
JBACC.7,NEXT0
AGAIN1:
MOVP3,#40H
JBACC.6,RED
MOVP3,#0FH
MOVA,P3
ANLA,#0FH
MOVR3,A
AJMPAGAIN1
RED:
MOVR2,A
AJMPAGAIN
NEXT0:
MOVR1,#03H
NEXT1:
MOVDPTR,#TAB显示黄灯个位
MOVA,R1
MOVCA,@A+DPTR
MOVR1,#00H
MOVX@R1,A
MOVR1,#O
MOVDPTR,#TAB显示黄灯十位
MOVA,R0
MOVCA,@A+DPTR
MOVR1,#01H
MOVDPTR,#0C62H显示黄灯信号
MOVA,#00H
LCALL0F4E0H
ACALLDELAY
DJNZR0,NEXT1
MOVA,R3
MOVR0,A
NEXT2:
MOVDPTR,#TAB显示红灯个位
MOVDPTR,#TAB显示红灯十位
MOVX@R1,R0
MOVR1,#02H显示红灯信号
MOVA,#02H
ACALLDELAY延时1秒
DJNZR0,NEXT2
MOVA,R2
NEXT3:
MOVDPTR,#TAB显示绿灯个位
MOVDPTR,#TAB显示绿灯十位
MOVR1,#02H显示绿灯信号
ACALLDELAY延时1秒
DJNZR0,NEXT3
AJMPNEXT0
DELAY:
MOVR6,#0
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
END
5检测与调试
电子安装完毕,通常不宜急于通电,先要认真检查一下。
检查无误后再通电,
1.状态灯显示测试
当电路连接完毕后,将写好的测试程序刷写到芯片内,K1和K2分别给端口送高电平和
低电平,通电即可检测。
2.数码管的测试
将串口的和电路板上的接口连接,将写好的测试程序刷写到芯片内,开电源即可测试。
3.整体电路测试
系统上电,刷写好程序即可开始测试,观测一个周期(共计S1~S4四个状态,默认140
秒)灯的显示状态是否正常,同时观察倒计的计数是否正常。
检查的方法通常有两种方法:
(1)按照电路图检查安装的线路这种方法的特点是:
根椐电路图连线,按一定的顺序一一检查安装好的线路,由此,可比较容易出错线和少线的位置。
(2)按照实际线路来对照原理图电路方法。
把每个元件引脚的连线一次检查清,检查每个去处在电路图上是否存在,这种方法不但可以查出错线和少线,还容易查出多线。
为了防止出错,对于已查过的线通常应在电路图上做标记,最好用指针万用表“1欧姆”档或数字万用表测量“二极管档”的蜂鸣声来测量,而且直接测量元器件引脚,这样可以同时发现接触不良的地方
调试过程中,不但要认真观察和测量,还要于记录。
记录的内容包括实验条件,观察的现象,测量的数据等。
出现故障,要认真查找故障原因,切不可一遇故障解决不了的问题就拆掉线路重新安装。
只有有了大量的可靠实验记录并与理论结果加以比较,才能发现电路设计上的问题,完
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 146 湖南 工程学院 交通灯 设计