单片机交通灯系统设计报告讲解Word格式文档下载.docx
- 文档编号:17843821
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:21
- 大小:287.88KB
单片机交通灯系统设计报告讲解Word格式文档下载.docx
《单片机交通灯系统设计报告讲解Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机交通灯系统设计报告讲解Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
2.1.1单片机STC89C51介绍·
2.1.28255芯片介绍·
7
2.1.3发光二极管·
9
2.1.4紧急放行按键·
2.2交通灯系统工作原理·
第3章硬件电路方案设计·
10
3.1设计方案·
3.2单元电路设计·
3.2.1时钟电路模块·
3.2.2单片机控制模块及紧急按键模块·
3.2.38255扩展模块·
12
3.2.4LED红绿灯显示·
13
第4章软件设计·
14
4.1单片机和8255资源使用情况·
4.2软件各模块介绍·
第5章调试与结果·
16
5.1软件调试·
5.2硬件调试·
18
第6章结论·
19
参考文献·
20
附录A·
21
附录B·
22
附录C·
23
第一章设计要求
1.1设计要求:
1、用单片机扩展一片8255,用12个发光二极管模拟一个十字交叉路口的红、
绿、黄灯,并设置二个紧急放行按键。
2、正常行驶时,东西或南北方向的灯按绿灯亮10秒,黄灯闪烁3秒,红灯
亮12秒控制。
3、当东西或南北方向的紧急放行按键按下时,如果禁行方向为红灯,则红灯继续维持12秒;
如果禁行方向为绿灯,则立即变为黄灯闪烁3秒;
如果禁行方向为黄灯,则黄灯继续维持。
1.2设计思路
1、分析目前交通路口的基本控制技术以及各种通行方案,并以此为基础提出自己的交通控制的初步方案。
2、确定系统交通控制的总体设计,包括,十字路口具体的通行禁行方案设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制能实现基本的交通功能,还有倒计时显示提示、紧急情况下,全面禁行、黄绿红灯及左转周期随时可调这三项特殊功能。
3、进行显示电路,按键电路的设计和对各器件的选择及连接,大体分配各个器件及模块的基本功能要求。
4、进行软件系统的设计,对于本系统,本人采用单片机汇编语言编写,对单片机内部结构和工作情况做了充足的研究,了解中断以及延时原理,总体上完成了软件的编写。
然后在开发板上进行硬件调试。
第二章系统组成及工作原理
2.1系统组成
本系统包括单片机主控模块、8255扩展模块、红绿灯显示模块、紧急放行按键模块。
系统框图如图2.1所示:
图2.1系统组成框图
2.1.1单片机STC89C51介绍
STC89C51提供以下标准功能:
8字节FLASH闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89c52可降至零赫兹的静态逻辑操作,并支持两种软件可选的节电上作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器.串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
STC89C52的引脚图如图2.2所示,下面是对部分引脚功能的介绍。
P0:
P0口是一组8位漏极开路型双向1/O口,也即地址/数据总线复用口。
作为输出口用时.每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
P0口也可以配置为复低位地址/数据总线和内存数据访问外部程序。
在这种模式下,P0具有内部上拉电阻。
在FLASH由编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P2:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电路。
对端口P2写“l"
,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(llt)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOvx@DPTR指令)时,P2送出高8位地址数据。
在访问8位地址的外部数据存储器、如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。
FLASH编程或校验时,P2亦接收高位地址和一些控制信号。
P3:
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用。
在flash编程和校验时,P3口也接收一些控制信号。
端口引脚第二功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INTO(外中断0)
P3.3INT1(外中断1)
P3.4TO(定时/计数器0)
P3.5T1(定时/计数器1)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
EA/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地).需注怠的是:
如果加密位LBI被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端)。
flash存储器编程时,该引脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VPP。
XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端.
XTAL2:
振荡器反相放大器的输出端。
图2.2STC89C51引脚图
2.1.28255芯片介绍
8255是可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:
与CPU连接部分、与外设连接部分、控制部分。
1、与CPU连接部分
根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。
由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0~A1。
此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。
8255引脚图如图2.3所示,各信号的引脚编号如下:
(1)数据总线DB:
编号为D0~D7,用于8255与CPU传送8位数据。
(2)地址总线AB:
编号为A0~A1,用于选择A、B、C口与控制寄存器。
(3)控制总线CB:
片选信号、复位信号RST、写信号、读信号。
当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。
2、与外设接口部分
根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。
各通道的引脚编号如下:
(1)A口:
编号为PA0~PA7,用于8255向外设输入输出8位并行数据。
(2)B口:
编号为PB0~PB7,用于8255向外设输入输出8位并行数据。
(3)C口:
编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。
3、控制器
8255将3个通道分为两组,即PA0~PA7与PC4~PC7组成A组,PB0~PB7与PC0~PC3组成B组。
如图7.5所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:
(1)A组控制器:
控制A口与上C口的输入与输出。
(2)B组控制器:
控制B口与下C口的输入与输出。
图2.38255引脚图
2.1.3发光二极管
发光二极管简称为LED。
由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。
在电路及仪器中作为指示灯,或者组成文字或数字显示。
磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。
发光二极管正极接高电平时,负极为低电平则灯亮。
2.1.4紧急放行按键
本系统需两个紧急按键,实现当某个方向车流量较大时延长放行时间或紧急改变放行方向。
2.2交通灯系统工作原理
东西、南北两干道交于一个十字路口,各干道有一组红黄绿三色的指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行,黄灯亮提示人们注意红、绿灯的状态即将切换,切黄灯点亮时间为东西、南北两干道的公共停车时间。
程序设置初始状态为东西方向绿灯、南北方向红灯,单片机执行程序,控制交通灯状态转换,包括延时,紧急放行。
扩展的8255PA口输出控制红黄绿等的亮灭。
第三章硬件电路方案设计
3.1设计方案
本设计采用单片机ATC89C51芯片扩展一片8255,实现交通灯的模拟控制。
选用频率为12MHz的晶振,则一个时钟周期为1us(T=12/12MHz)。
ATC89C51的P0口配置为复低位地址/数据总线与8255芯片的数据总线DB相连,P2送出高8位地址数据,外部中断INT0和INT1接紧急放行按键。
8255的PA口接发光二极管的负极,使PA口向外设输出8位并行数据,控制发光二极管的亮灭。
本实验包括四种状态:
S1:
东西绿灯亮,南北红灯亮
S2:
东西黄灯闪烁,南北红灯亮
S3:
东西红灯亮,南北绿灯亮
S4:
东西红灯亮,南北黄灯闪烁
3.2单元电路设计
3.2.1时钟电路模块
时钟电路如图3.1所示,电容选取30pF,晶振频率为12MHz,一个时钟周期为1us(12/12MHz)。
C2、C3为谐振电容,有起振作用。
图3.1时钟电路模块
3.2.2单片机控制模块及紧急按键模块
本系统中单片机作为核心控制元件,提供定时器和中断服务,定时器T0工作在方式1,P0和P2口是扩展8255的地址端,其中P2.7接8255片选信号,使能8255,P2.6、P2.5分别接8255的端口选择A1、A0。
紧急放行按键接外部中断,按下发送中断请求。
系统上电按初始化状态东西绿灯亮,南北红灯亮开始运行,通过定时器定时实现延时,达到红绿灯维持的时间,按下紧急按钮时,系统响应中断请求,执行中断服务程序,实现紧急放行。
具体硬件连线如图3.2和图3.3所示。
图3.2单片机控制模块
图3.3紧急按键模块
3.2.38255扩展模块
8255的D0~D7为数据总线,接单片机P0口,PA口设向外输出接红绿黄灯(PA.0-PA.5)。
在电路仿真时为了便于观察红绿黄灯维持时间,将PB口设输出,接数码管显示红绿灯时间,PC口低四位输出,接数码管显示黄灯时间。
因设计要求对数码管显示没有要求,在实体电路中省略数码管部分。
具体设计如图3.4和图3.5所示。
图3.48255扩展模块
图3.5数码管显示模块
3.2.4LED红绿灯显示
发光二极管正极接VCC,负极接8255PA口,低电平灯亮。
具体电路如图3.6所示:
图3.6红绿灯显示模块电路
第四章软件设计
4.1单片机和8255资源使用情况
编写汇编程序时,用到了单片机的外部中断0,并且让它以下降沿有效方式工作;
还用到定时器T0,让它工作在定时器方式1.P0、P2、P3口均有用到,且有用到P3口的第二功能。
P0、P2作为扩展8255的端口地址,8255的PA、PB、PC均作为外设输出,控制红黄绿灯的亮灭和数码管显示倒计时。
4.2软件各模块介绍
(1)延时子程序
延时程序实现延时1s,在显示函数中也有用到,由于时间比较短,就采用纯软件的方法延时。
定时初值的计算:
(65536-a)x1us=50ms,a=15536D=3CB0H
(2)按键处理和按键查询程序
按键处理程序主要是将从INT0、INT1取值向单片机发送中断请求,按键查询程序主要是判断按键是否有按下,如果有则调用按键处理程序。
(3)外部中断程序
本设计是用外部中断程序来实现紧急放行。
外部中断程序里面用到的延时1s和正常通车时用到的延时1s不是同一个延时函数,因为按键扫描时加在正常通车时的延时1s中,这样是为了防止其他按键影响中断服务的运行。
(4)数码管显示子程序
显示程序主要完成数码管的动态显示,相应的段控码送往8255的PB口及PC口。
实现显示需要的字符信息。
(5)主程序
主程序是程序的入口,在主程序中设置硬件电路的初始状态,按状态转换顺序写入各状态,且一直调用延时子程序和显示程序,实现通车时间的控制。
(6)主程序流程图
图4.1程序流程图
第5章调试与结果
5.1软件调试
软件调试主要是利用proteus仿真软件完成电路的搭建,运行以发现设计中的错误并及时改正。
在此过程中有数码管显示倒计时时间,PB口和PC口低四位对数码管输入段控码。
加载在C51单片机中的程序是在keil中编译生成的文件。
图5.1、图5.2、图5.3为仿真过程中的截图。
图5.1仿真运行截图
图5-1所示的状态是状态1,即东西方向绿灯,南北方向红灯,数码管左边两位显示的是东西绿灯倒计时时间,右边两位是显示黄灯倒计时时间。
若此时按下紧急放行按键则黄灯开始闪烁,东西绿灯灭,3S后变为东西红灯亮,南北绿灯亮如图5.2。
图5.2仿真运行截图
图5.3仿真运行截图
图5.3所示的状态是状态4,即东西红灯,南北黄灯闪烁,数码管显示的分别是东西红灯倒计时时间和黄灯倒计时时间。
5.2硬件调试
在软件仿真成功的基础上,领取元器件焊接实体电路。
硬件调试主要是检查是否有短路、断路、虚焊等,所以在焊接电路时便一边用万用表检测是否存在这些问题。
焊接完成后,使用单片机开发板将程序下载到单片机中,然后连接电源线和地线,上电观察系统工作现象。
下面是调试过程中遇到的一些问题及其解决办法。
(1)第一次上电调试的现象是十二个发光二极管全亮。
首先,检查电源与地线是否全部接上,是否有接反。
确认无误后继续对照原理图,检查各个器件之间的连接是否连接正确,尤其是单片机与8255之间的连线,结果也不存在问题。
最后检查连个芯片是否正常工作,通过查看C51的ALE4端是否有脉冲信号输出来判断单片机是否工作,结果发现单片机芯片是坏的,8255正常。
(2)更换芯片后重新上电调试,结果发光二极管全是暗的。
经过前面的检查几乎可以确定电路焊接是没有问题的,需要改变检查的思路。
首先,分析灯亮的条件是发光二极管的负极即8255的PA口对应的引脚要输出低电平,检测结果是PA口引脚均为高电平。
仔细分析得到的结论是:
在前一次上电调试时8255的PA口全部是高电平,而此次调试中没有接8255的复位信号,所以PA口仍是输出高电平。
将C51的RST引脚与8255的REST引脚连接后,再上电调试,系统正常工作,功能与设计要求相符。
第6章结论
此次课程设计实现的是一个交通灯模拟控制系统,用单片机扩展一片8255,用12个发光二极管模拟一个十字交叉路口的红、绿、黄灯,并设置二个紧急放行按键。
在正常情况下,东西、南北方向交替放行,绿灯维持10秒,红灯维持13秒,黄灯在绿灯灭后闪烁3秒。
当东西或南北方向的紧急放行按键按下时,如果禁行方向为红灯,则红灯继续维持12秒;
本系统能够正常工作,切能实现设计要求中的各功能,此次课程设计是成功的。
本次课程设计时间非常短暂,但获得的收获是非常大的。
通过动手实际操作,对编程和焊接有了新的认识。
本系统的程序不同于平时实验课上要求的简单程序,所以应该先编写各个模块的子程序,这样看起来简洁,增加了程序的易读性。
本次课程设计为两人一组,在编写程序、硬件电路设计、焊接、调试等过程中都是一起努力,增强了同学之间学习上的交流,可以互相弥补各自的不足,也培养了团队合作能力。
参考文献
[1]张先庭,等.单片机原理、接口与C51应用程序设计.北京:
国防工业出
版社,2011.12.
[2]楼然苗,等.51系列单片机设计实例.北京:
北京航空航天出版社,
2009.3.
[3]李广弟,等.单片机基础.北京:
北京航空航天出版社,2006.7.
[4]张友德,等.单片微型机原理、应用与实验.上海:
复旦大学出版社,2006.
[5]苏家健,等.单片机原理即应用技术.北京:
高等教育出版社,2004.
[6]李光飞.单片机课程设计实例指导.北京:
北京航空航天大学出版社,
2004.
附录A
表一元件清单
元件名称
性能参数
数量
STC89C51
1个
8255
电容
30pF
2个
47uF
电阻
10K
3个
330欧
12个
5K
发光二极管
红、黄、绿
各4个
晶振
12MHz
开关
附录B
整体电路图
附录C
程序清单
;
***主程序
ORG0000H;
起始伪指令
AJMPST
ORG000BH;
000BH为定时器0中断源服务程序入口地址
AJMPINT_0
ORG0100H
ST:
MOVSP,#67H
MOVR1,#00H
MOVTMOD,#01H;
选择定时器T0,方式1
SETBEA;
EA=1,开放中断
SETBET0;
ET0=1,T0的溢出中断允许
MOVDPTR,#7FFFH;
送8255控制口地址
MOVA,#80H;
送8255控制字,选择PA口方式0输出,PB
MOVX@DPTR,A口方式0输出,PC口输出
;
***状态1
LP:
MOVDPTR,#1FFFH;
8255A口地址
MOVA,#0DEH;
红绿灯初始状态,东西绿灯,南北红灯
MOVX@DPTR,A
SETB40H
CLR41H
MOV31H,#200
MOVR2,#10;
绿灯维持10S
MOV36H,#13;
红灯维持13S
ACALLDLY_S;
调用延时子程序
MOVR7,#03H
SETB41H
MOVR2,#2
***状态2
LP0:
MOVDPTR,#1FFFH
MOVA,#0EEH;
东西黄灯亮,南北红灯亮
MOV31H,#10
ACALLDLY_S;
MOVDPTR,#1FFFH
MOVA,#0FEH;
东西黄灯灭,南北红灯亮
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 交通灯 系统 设计 报告 讲解