华南理工大学单片机课程设计说明书完整版交通灯控制.docx

上传人:b****5 文档编号:8336317 上传时间:2023-01-30 格式:DOCX 页数:23 大小:254.91KB
下载 相关 举报
华南理工大学单片机课程设计说明书完整版交通灯控制.docx_第1页
第1页 / 共23页
华南理工大学单片机课程设计说明书完整版交通灯控制.docx_第2页
第2页 / 共23页
华南理工大学单片机课程设计说明书完整版交通灯控制.docx_第3页
第3页 / 共23页
华南理工大学单片机课程设计说明书完整版交通灯控制.docx_第4页
第4页 / 共23页
华南理工大学单片机课程设计说明书完整版交通灯控制.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

华南理工大学单片机课程设计说明书完整版交通灯控制.docx

《华南理工大学单片机课程设计说明书完整版交通灯控制.docx》由会员分享,可在线阅读,更多相关《华南理工大学单片机课程设计说明书完整版交通灯控制.docx(23页珍藏版)》请在冰豆网上搜索。

华南理工大学单片机课程设计说明书完整版交通灯控制.docx

华南理工大学单片机课程设计说明书完整版交通灯控制

课程设计说明书

交通灯控制设计

 

院(系)

专业

班级

学生姓名

指导老师

 

2012年3月5日

华南理工大学

课程设计任务书

兹发给学生课程设计任务书,内容如下:

1.设计题目:

交通灯控制设计

2.应完成的项目:

(1)在LED数码管上显示倒计时秒的时间。

(2)通过LED模拟信号灯,信号灯分东西、南北两组,分别有“绿”、“黄”、

“红”三种颜色。

在4×4行列式键盘设置四个功能键,“启动”、“停止”按钮分别控

制信号的启动和停止。

“白天”、“黑夜”按钮控制信号灯白天和黑夜工作状态的转

换,白天按时序图工作,黑夜只有黄灯闪烁。

(3)完成系统硬件电路设计和系统软件设计。

3.参考资料以及说明:

(1)《单片机原理及应用教程》第二版机械工业出版社

(2)《单片机课程设计指导书》北京理工大学出版社

(3)《单片机课程设计指导》北京航空航天大学出版社

4.本设计任务书于20年月日发出,应于20年月日前完成,然后进行答辩。

专业教研室、研究所负责人审核年月日

指导教师签发年月日

课程设计评语:

 

课程设计总评成绩:

课程设计答辩负责人签字:

年月日

摘要

本系统能够真实模拟双干线交通信号的管理。

交通信号灯的控制电路中的核心是80C51单片机。

系统设置两组红、黄、绿灯,并配置两个三位LED数码管分别显示东西、南北方向的时间,LED数码管使用动态显示方式显示倒计时间。

硬件上由MCS51系列单片机、4×4行列式键盘、两个3位LED管、74LS573芯片、排阻和若干电阻组成。

LED显示器通过P0和P2口以共阴极接法连接,P0口作字形口,输出段码;P2口作字位口,输出位码。

P1口接4×4行列式键盘。

P3口外接6个发光二极管模拟交通指示灯,采用共阳极接法,相应口线输出高电平则“信号灯”灭,相应口线输出低电平则“信号灯”亮。

单片机通过XTAL1和XTAL2引脚外接12MHz晶振。

软件设计分为以下几个模块:

(1)键盘管理程序(包括键扫描、键处理程序)

(2)LED数码管显示程序

(3)控制交通灯程序

通过动态扫描法对键盘按键进行识别,当有功能键按下时执行相应的子程序。

按键抖动会引起按键命令的错误执行或重复执行,为确保对键的一次闭合仅处理一次,采用软件延时的办法避开抖动阶段,即检测到键闭合后延时5ms,只有再次检测到按键闭合才转入该键的处理程序。

系统使用T0、T1的模式1实现10ms定时,T0用于白天模式,T1用于黑夜模式。

在定时器中断程序里,先进行按键扫描,有键按下则转入相应子程序,无键按下时调用数码管显示子程序,并改变相应寄存器数值,定时1s时,令数码管显示时间减一,实现定时计数功能。

关键词:

交通信号灯控制,行列式键盘扫描,LED数码管动态显示,按键抖动

第一章绪论

1.1交通灯控制概述

单片机的基本结构是将微型计算机的基本功能部件全部集成在一个半导体芯片上。

单片机结构上的设计,在硬件、指令系统及I/O能力等方面都有独到之处,具有较强而有效的控制功能。

另一方面,单片机毕竟是一个芯片,只有外加所需的输入、输出设备,才可以构成实用的单片机应用系统[1]。

单片机由于体积小、功耗低、价格低廉,且具有逻辑判断、定时计数、程序控制等多种功能,广泛应用于智能仪表、可编程序控制器、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域[2]。

本课程设计交通灯控制系统采用单片机作为主控制器,外接必要的设备,模拟十字路口的车辆及行人的交通管理,有东西、南北方向的交通指示灯及用于倒计时的数码管,整个系统简单,价格低廉,并能真实模拟现实情况。

1.2主要研究工作

1.完成系统硬件电路设计

(1)单片机采用MCS51系列

(2)键盘为4×4行列式键盘,按键设有启动、停止、白天、黑夜功能键。

(3)两个3位的LED数码管,南北方向和东西方向个一个,用来显示时间。

2.完成系统软件设计

(1)键盘管理程序(包括键扫描、键处理程序)。

(2)LED数码管显示程序。

(3)控制交通灯程序

3.实现系统要求的功能:

(1)在LED数码管上显示倒计时秒的时间。

(2)采用LED模拟信号灯,信号灯分东西、南北二组,分别有“红”“黄”“绿”三种颜色。

其工作状态由单片机程序控制,“启动”、“停止”按钮分别控制信号灯的启动和停止。

“白天/黑夜”开关控制信号灯白天/黑夜转换。

按下“启动”按钮开始工作,按下“停止”按钮停止工作,“白天/黑夜”开关按下闭合时为黑夜工作状态,这时只有黄灯闪烁,断开时按时序控制图工作。

第二章基础知识介绍

2.1主控制器AT89C52

主控制器采用MCS51系列单片机AT89C52,AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元[3]。

MCS51单片机的内部基本结构框图如图2-1所示,由以下部分组成[4]:

(1)一个8位的微处理器(CPU)。

(2)片内数据存储器RAM(128B),用以存放可以读写的数据,如运算的中间结果、最终结果以及状态标志位等。

(3)片内程序存储器ROM(4KB),用以存放已编制好的程序及程序中用到的常数。

(4)四个8位并行I/O接口P0~P3,每个口既可以用作输入,也可以用作输出使用。

(5)两个定时器/计数器,每个定时器/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。

(6)五个中断源的中断控制系统,提供两个中断优先级,能实现两级中断嵌套。

(7)一个全双工串行异步通信接口,用于实现单片机之间或单机与微机之间的串行通信。

(8)片内振荡器和时钟产生电路,但需要外接石英晶体和微调电容,最高允许振荡频率为12MHz。

单片机内部各功能部件通过内部总线连接,传送地址信息、数据信息和控制信息,各功能部件分时使用总线,即所谓的内部单总线结构。

AT89C52与其他MCS51单片机的不同之处在于具有8KB可反复擦写(大于1000次)FlashROM以及3个16位可编程定时/计数器中断。

可反复擦写的FlashROM使得单片机能反复写入程序,使用更加地方便。

图2-1

2.2LED数码管模块

LED数码管是由若干个发光二级管组成显示字段的显示器件,有七段和“米”字段之分。

LED数码管有共阴极和共阳极两种,发光二极管的阳极接在一起的称为共阳极数码管,阴极接在一起的称为共阴极数码管。

一个数码管由8个发光二极管组成,其中,7个发光二极管a~g构成字型“8”的各个笔划,另一个dp发光二极管为小数点。

当某段发光二极管上施加一定的正向电压时,该段比划就亮;不加电压就暗。

另外,为了保护各段LED不被损坏,应该使其工作在安全电流下,故必须外加限流电阻。

本系统使用三位共阴七段数码管,其引脚如下图所示:

在实际应用中,LED数码管有静态显示和动态显示两种显示方式。

静态显示方式,即七段LED数码管在显示某一个字符时,相应的段恒定的导通或截止,直至换显其他字符为止。

LED的静态显示虽然有编程容易、管理简单等优点,但是静态显示所要占的I/O口资源很多,所以在显示的LED点较多的情况下,一般都采用动态显示方式,即在多位七段LED显示中,将所有位的段选线并联在一起,由8个I/O口来控制8个段。

而公共端(共阳极/共阴极)则分别由相应的I/O口控制,以实现各个位的分时选通。

由于所有的段选线并联到同一个I/O,由这个I/O口来控制,因此,若是所有的4位7段LED都选通的话,4位7段LED将会显示相同的字符。

要使各个位的7段LED显示不同的字符,就必须采用动态扫描方法来轮流点亮每一位7段LED,即在每一瞬间只选通一位7段LED进行显示单独的字符。

在此段点亮时间内,段选控制I/O口输出要显示的相应字符的段选码,而位选控制I/O口则输出位选信号,向要显示的位送出选通电平(共阴极则送出低电平,共阳极则送出高电平),使得该位显示相应字符。

这样将四位7段LED轮流去点亮,使得每位分时显示该位应显示的字符。

由于人眼的视觉暂留时间为0.1秒,当每位显示的间隔未超过33ms时,并在显示时保持直到下一位显示,则由于人眼的视觉暂留效果眼睛看上去就像是4位7段LED都在点亮。

设计时,要注意每位显示的间隔时间,由于一位7段LED的熄灭时间不能超过100ms,也就是说点亮其它位所用的时间不能超过100ms,这样当有N位的7段LED用来显示时,每一位间隔的时间t就必须符合下面的式子:

t≦100ms/(N-1)

比如,现在使用3位,也就是N=3,则由式子可以算出t≦50ms,就是每一位的间隔时间不能超过33ms。

实际应用中,时间可以设得短一些,比如5ms[5]。

2.3键盘模块

在单片机应用系统中,用户要向计算机输入数据和命令,这些任务主要由键盘来完成。

键盘由若干个按键按一定规则组合而成,根据按键的识别方法分类,可分为编码键盘和非编码键盘,在单片机系统中多用非编码键盘。

键盘中的按键都是一个常开开关电路,是利用机械触点来实现按键的闭合和释放。

由于机械触点的弹性作用,触点在闭合和断开瞬间的电接触情况不稳定,造成了电压信号的抖动现象。

键的抖动时间一般为5~10ms。

这种现象会引起单片机对于一次键操作进行多次处理,因此须设法消除键接通或断时的抖动现象。

去抖动的方法有硬件和软件两种方法,本系统采用软件延时的方法来避开抖动阶段。

采用软件去抖动的方法是在单片机检测到有键按下时执行一个5~10ms的延时程序后再次检查该键电平是否仍保持闭合状态.如保持闭合状态,则确认为有键按下,否则按无键按下处理。

当检测到按键释放后,也同样要延时5~10ms,等待后沿抖动消失后才能转入该键的处理程序,只有这样才能保证当按键一次时,CPU仅做一次相应处理。

无论是编码键盘还是非编码键盘键盘都可分为独立连接式和矩阵式两类。

独立式键盘是每一个键对应I/O口的一根口线,各键是相互独立的。

独立式按键虽编程简单,但占用I/O口资源较多,不适合在按键较多的场合应用。

矩阵式键盘按矩阵方式连接,每条行线与列线的交叉处通过一个按键来连通,则只需N条行线和M条列线,即可组成N×M个键的键盘。

对于矩阵式的非编码键盘,常用的按键识别方法有两种:

扫描法和线翻转法,通常采用扫描法。

下面介绍一种“行扫描法”,行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,过程如下:

1.判断键盘中有无键按下,将全部行线置低电平,然后检测列线的状态。

只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。

若所有列线均为高电平,则键盘中无键按下。

2.判断闭合键所在的位置,在确认有键按下后,即可进入确定具体闭合键的过程。

其方法是:

依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。

在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。

若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键[6]。

2.474LS573

74LS573的原理:

74LS573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。

当使能为低时,输出将锁存在已建立的数据电平上。

输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。

这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。

特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器[7]。

74LS573的引脚功能表如下:

管脚号

功能

D0-D7

数据输入

LE

锁存使能输入(高电平有效)

OE

3态输出使能输入(低电平有效)

Q0-Q7

3态锁存输出

第三章系统硬件电路设计

整套电路系统由主控制系统电路、信号灯显示电路、数码管时间显示电路和矩阵式键盘电路等组成。

采用LED动态扫描的交通灯控制系统总电路原理图和印刷电路板图(PCB)如下所示:

图3-1

图3-2

3.1主控制系统电路

主控制器采用MCS51系列单片机AT89C52,是一款性能稳定的8位单片机。

AT89C52单片机内部由CPU、8KB的FlashROM、256B的RAM、4个8位的I/O并行端口、一个串行口、三个16位定时/计数器及中断系统等组成。

AT89C52外部需接时钟电路和复位电路,单片机才能正常工作。

此外,VCC引脚需接电源,GND引脚需接地,EA/VPP引脚需接上拉电阻连接到电源。

3.1.1时钟电路

时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:

内部振荡和外部振荡。

MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图3-1所示。

在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲[8]。

图3-3中,外接晶体以及电容C2和C3构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值为30pF左右,晶振频率约为12MHz。

图3-3

 

3.1.2复位电路

为了初始化单片机内部的某些特殊功能寄存器,必须利用复位电路,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。

单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。

复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈指针SP置为07H,SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。

复位操作有两种情况,即上电复位和手动(开关)复位。

本系统采用上电复位方式[9]。

图3-4中R1和Cl组成上电复位电路,其值R取为1KΩ,C取为10pF。

图3-4

3.2信号灯显示电路

P3口外接6个发光二极管模拟交通指示灯,采用共阳极接法,相应口线输出高电平则“信号灯”灭,相应口线输出低电平则“信号灯”亮。

为了保护发光二极管不被损坏,应该使其工作在安全电流下,故必须外加限流电阻,选用1k的电阻,如图3-5所示。

图3-5

3.3数码管时间显示电路

LED数码管通过P0和P2口以共阴极接法连接,如图3-6所示,P0作字形口,输出段码,故两个数码管的段码线对应并联在一起,由P0口控制数码管的显示。

P2口作字位口,输出位码。

其中,P2.0~P2.3分别控制两个数码管的个、十位显示,以实现各位的分时选通。

P0口是一个8位漏极开路型双向I/O口,在驱动NMOS或其他拉电流负载时,需外接上拉电阻,才能使该位高电平输出有效,故电路设计时,P0口需先接一个排阻,才能再连接其他部件。

P0口经排阻后,连接74LS573芯片,用于锁存数码管显示数字的信息,再连接到两个三位共阴数码管。

使用锁存器的原因是:

在数码管显示时,要维持一个数据的显示,往往要持续的快速的刷新。

在人类能够接受的刷新频率之内,大概每三十毫秒就要刷新一次。

这就大大占用了处理器的处理时间,消耗了处理器的处理能力,还浪费了处理器的功耗。

锁存器的使用可以大大的缓解处理器在这方面的压力。

当处理器把数据传输到锁存器并将其锁存后,锁存器的输出引脚便会一直保持数据状态直到下一次锁存新的数据为止。

这样在数码管的显示内容不变之前,处理器的处理时间和IO引脚便可以释放。

可以看出,处理器处理的时间仅限于显示内容发生变化的时候,这在整个显示时间上只是非常少的一个部分。

而处理器在处理完后可以有更多的时间来执行其他的任务。

这就是锁存器在数码管显示方面的作用:

节省了宝贵的MCU时间[10]。

图3-6

3.4矩阵式键盘电路

80C51单片机的并行口P1接4×4行列式键盘,其中P1.0~P1.3接列线,P1.4~P1.7接行线。

实际使用的功能键为:

“A”为启动功能按键,“B”为停止功能按键,“C”为白天功能按键,“D”为黑夜功能按键。

开机通电后,需按下“启动”键才能进入正常工作,默认为白天工作模式,在此之后按下“停止”键,则数码管和指示灯均不再显示,只有重新按下“启动”键才能重新正常工作;按下“黑夜”键,则由白天模式切换为黑夜模式,此时黄灯不停闪烁,再按下“白天”键,则切换到白天模式。

第四章电路板的制作

4.1设备介绍

电路板制作主要用的设备有:

(1)STR-FⅡ多功能环保型快速制板系统厂商:

福建时创电子科技有限公司

(2)钻孔机

4.1制作过程

此次制板采用曝光——显影——蚀刻——打孔——焊接元件的方法,过程大致如下:

(1)真空双面曝光,将已准备好的图纸和线路板放到曝光机中曝光。

在铜层上有一层感光材料,用曝光机将线路图打印到感光层上。

(2)取出已曝光好的电路板放到显影的容器中进行显影,该过程中由于时间把握不是很好,导致显影过度,部分铜上有小的孔洞,但并不影响电路板的使用。

(3)先将显影过的电路板用清水冲洗干净,再放到蚀刻的容器中进行蚀刻,双手控制电路板上下轻微振动有助于加快蚀刻的速度。

(4)使用打孔机进行打孔。

(5)焊接元件,先焊小的元件,再焊大的元件。

焊接时,先用焊枪对焊盘预热几秒钟,再送焊丝进行焊接,焊接好了,先移走焊丝,再移走焊枪。

第五章系统软件设计

程序的设计说明如下:

白天模式使用定时器T0(同时关闭定时器T1),选择模式1,定时时间为10ms,计算可得初值为:

TL0=#0F0H,TH0=#0D8H。

黑夜模式使用定时器T1(同时关闭定时器T0),选择模式1,定时时间为10ms,计算可得初值为:

TL0=#0F0H,TH0=#0D8H。

程序中使用的寄存器含义说明:

R3,用于南北方向计时;R4,用于东西方向计时;R5,用于黄灯闪烁计时1.2s;R6,用于计时1s;R7,用于延迟程序。

系统的信号灯控制时序如下图所示:

绿1

黄1

红1

绿2

黄2

红2

20S6S40S6S

东西线、南北线的交通指示灯状态及相应的控制码如下表所示:

状态

持续时间/s

南北线

东西线

控制码

绿灯

黄灯

红灯

绿灯

黄灯

红灯

P3

P3.5

P3.6

P3.7

P3.0

P3.1

P3.4

1

20

11001111(#0CFH)

2

6

闪亮

10101111(#0AFH)

3

40

01111110(#07EH)

4

6

闪亮

01111101(#07DH)

5

(1)

20

11001111(#0CFH)

黑夜

不定

闪亮

闪亮

10111101(#0BDH)

本程序主要分为三个部分:

1、主程序:

交通信号灯的控制程序,默认按白天模式运行。

2、LED数码管显示程序:

采用动态显示模式,调用定时器T0,每10ms动态显示一次;

3、键盘管理程序:

分为键盘扫描程序以及键盘处理程序,其中,在每次动态显示与黑夜黄灯闪烁的间隔间不断调用键盘扫描程序。

各程序的流程图及程序代码如下:

1、主程序:

ORG0000H

AJMPMAIN1;转主程序

ORG000BH

LJMPDSHI1;转定时器0服务子程序

ORG001BH

LJMPDSHI2;转定时器1服务子程序

ORG0100H

MAIN1:

MOVP1,#0F7H;按键扫描,有键按下则延时消抖

MOVA,P1

ORLA,#0FH

CPLA

JNZD5

SJMPMAIN1

D5:

MOVR7,#20H;消抖处理,确有键按下则转判断按键程序

D6:

DJNZR7,D6

MOVP1,#0F7H

MOVA,P1

ORLA,#0FH

CPLA

JNZPDUAN3

SJMPMAIN1

PDUAN3:

MOVP1,#0F7H;判断启动键是否按下,是则开始工作,否则继续扫描

MOVA,P1

JNBACC.4,MAIN

AJMPMAIN1

MAIN:

MOVSP,#50H;主程序

MOVIE,#8AH;允许中断

MOVTMOD,#11H;设置定时方式1

MOVTL0,#0F0H;定时10ms

MOVTH0,#0D8H

CLRTR1;关闭黑夜模式定时器

SETBTR0;打开白天模式定时器

ZTAI1:

MOVR3,#20;东西向红灯亮,南北向绿灯亮

MOVR4,#26

MOVP3,#0CFH

ZTAI12:

LCALLJPAN

CJNER3,#00,ZTAI12;是否够20s

ZTAI2:

MOVR3,#6;东西向红灯亮,南北向黄灯闪

MOVP3,#0AFH

ZTAI21:

MOVR5,#00H

ZTAI22:

LCALLJPAN

CJNER5,#64H,ZTAI22;是否够6s

CPLP3.6

CJNER3,#00H,ZTAI21

ZTAI3:

MOVR3,#46;东西向绿灯亮,南北向红灯亮

MOVR4,#40

MOVP3,#07EH

ZTAI32:

LCALLJPAN

CJNER3,#06,ZTAI32;是否够40s

ZTAI4:

MOVR4,#6;东西向黄灯闪,南北向红灯亮

MOVP3,#07DH

ZTAI41:

MOVR5,#00H

ZTAI42:

LCALLJPAN

CJNER5,#64H,ZTAI42;是否够6s

CPLP3.1

CJNER4,#00H,ZTAI41

SJMPZTAI1;返回,继续执行主程序

2、LED数码管显示程序:

DISP:

MOVB,#0AH;显示子程序

MOVA,R3

DIVAB

MOV79H,A

MOV7AH,B

MOVA,79H

MOVDPTR,#LEDMAP

MOVCA,@A+DPTR

MOVP0,A

MOVP2,#11110111B

CALLDELAY

MOVA,7AH

MOVDPTR,#LEDMAP

MOVCA,@A+DPTR

MOVP0,A

MOVP2,#11111011B

CALLDELAY

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1