单片机 交通灯.docx
《单片机 交通灯.docx》由会员分享,可在线阅读,更多相关《单片机 交通灯.docx(18页珍藏版)》请在冰豆网上搜索。
单片机交通灯
目录
目录1
摘要2
第1章单片机原理及接口技术课程设计大纲3
1.1设计题目3
1.2设计目的3
1.3任务手段3
1.4达到目标3
第2章交通灯信号系统概述4
2.1问题的提出4
2.2路口信号灯简介4
2.3周期说明5
第3章交通信号控制系统硬件设计6
3.1硬件说明及组成6
3.2引脚与控制6
3.3程序说明7
3.4硬件电路原理图7
第4章交通信号控制系统软件设计9
4.1软件概述9
4.2汇编语言指令说明9
4.3工作方式寄存器9
4.4MCS-51的中断10
4.5七段显示代码10
4.6软件设计流程图12
4.7程序清单13
总结17
参考文献18
摘要
在日常生活中,交通信号灯的使用,使交通得以有效管理,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
随着我国社会经济的发展,城市化、城镇化进程的加快,道路交通堵塞问题日趋严重,如何对交通进行合理的管理和调度而尽可能减少堵车现象成为目前我国很多地方尤其是特大城市急需解决的问题,显然交通灯在其中起着不可或缺的作用。
20世纪80年代以来,国际上单片机的发展迅速,其应用不断深入,新技术层出不穷,从目前来看,单片机技术的发展和应用已经逐渐成为一个国家工业发展水平的标志之一。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
城市交通灯的单片机控制是单片机控制技术较为基础、简单、也是最为常见的应用之一,结合对实际交通控制的需要,通过合理的软件及硬件的设计及选择,从而满足实际控制的要求,并尽量达到现代化交通灯控制系统所应具备的功能:
1)提高现有公路的交通效率;
2)改善道路交通安全;
3)减少能量消耗和环境污染;
4)收集交通信息,提供交通情报;
5)强化交通执法和交通指挥。
关键词:
单片机,控制,交通灯。
第1章单片机原理及接口技术课程设计大纲
1.1设计题目
新城大街与博学路十字路口交通信号灯控制。
1.2设计目的
利用MCS-51系列单片机加一些外围设备,设计一个多路口交通信号自动管理开环控制系统。
1.3任务手段
选用MCS-51系列单片机加一些外围电路配以继电器,实现硬件电路整体设计。
通过设计硬件电路结合软件编程实现功能,硬件选用要结合实际,力求经济合理,软件部分易采用模块化程序设计方法。
绘出系统逻辑图,硬件原理图,程序流程图并编制程序。
1.4达到目标
实现基本交通信号控制功能,要确保使用安全,操作方便,实践主干线,支干线,红灯,黄灯,绿灯,熄亮的顺序控制,留有硬件和软件接口,方便二次开发与升级。
电气与电子信息工程学院
指导教师:
***
2011年6月11日
第2章交通灯信号系统概述
2.1问题的提出
传统的路口交通信号控制采用的是固定的定时系统,一旦安装就无法改变通行和停止的时间。
我们希望在交通路口上,车流量大的时候通行的时间长,从而缓解交通压力;而车流量小的时候减少通行和停止时间,可以节省时间并且使交通变得更方便。
因此,我们就必须想办法改变交通路口的定时时间。
单片机正可以实现这一功能,它安全准确,很少出现故障。
随着科学技术的日益发展,单片机将会有非常广大的扩展潜力,我们可以增加对车流的遥感技术,从而更方便人们的生活。
2.2路口信号灯简介
红旗街与湖西路交汇处交通信号灯简介:
新城大街走向和博学路走向均各有两列信号灯,左转向控制灯和直行控制灯。
编号分别为新城大街左转红灯RL0、新城大街左转黄灯YL0、新城大街左转绿灯GL0,新城大街直行红灯R0、新城大街直行黄灯Y0、新城大街直行绿灯G0;博学路左转红灯RL1、博学路左转黄灯YL1、博学路左转绿灯GL1,博学路直行红灯R1、博学路直行黄灯Y1、博学路直行绿灯G1。
变化过程中,新城大街方向相对的信号灯变化相同,博学路方向相对的信号灯变化相同。
示意图见图2-1。
博
学
路
新城大街
新城大街
博
学
路
图2-1新城大街与博学路交汇路口示意图
2.3周期说明
初始状态,RL0、YL0、RL1、G1亮;
计时56秒后,G1灭,Y1亮;
计时02秒后,RL1、Y1灭,GL1、R1亮;
计时30秒后,GL1灭,YL1亮;
计时02秒后,R0、YL1灭,G0、RL1亮;
计时56秒后,G0灭,Y0亮;
计时02秒后,RL0、Y0灭,GL0、R0亮;
计时30秒后,GL0灭,YL0亮;
计时02秒后,YL0、R1灭,返回到初始状态并循环,总周期为180秒。
注:
此十字路口一共有8列信号灯,每列信号灯都有红黄绿三种颜色依次排列,而且每列只能有一盏灯亮,不可以有两盏或两盏以上同时亮的情况。
第3章交通信号控制系统硬件设计
3.1硬件说明及组成
MCS-51系列单片机中的8051内部有4KB的掩模ROM程序存储器,能体现“单片”的简练,用户可以将自己编写的程序写入单片机的ROM中进行现场实验与应用。
引脚20为Vss接地;
引脚40为Vcc,操作时为+5V电源;
引脚19为XTAL1,是内部振荡器电路反相放大器的输入端,是外接晶体的一个引脚;
引脚18为XTAL2,是内部振荡器电路反相放大器的输出端,是外接晶体的另一端;
引脚9为PST/Vpd,当振荡器运行时,在此脚上出现两个机器周期的高电平,使单片机复位,在Vcc掉电期间,此引脚可接上备用电源,由Vpd向内部RAM提供备用电源,保持内部RAM中的数据;
引脚14(P3.4)、15(P3.5)是16位可编程的定时器/计数器;
引脚29为/SPEN是外部程序存储器读选通信号输出端,在从外部程序存储器取指令期间,机器周期内两次有效;
引脚30为ALE/-PROG正常操作时为ALE功能,提供地址的低字节锁存到外部锁存器,ALE以不变的频率(振荡器频率的1/6)周期性的发出正脉冲信号;
引脚31为/EA,/EA为内部程序存储器和外部程序存储器选择端,当/EA为高电平时,访问内部程序存储器,低电平时则反之;
继电器为12个固态继电器,对12个P/I口进行控制。
P3.0、P3.1接显示计时器,显示计时器由74LS164(2个)、74LS07(16个)和LED(共阳2个)组成。
限流电阻的大小约为2KΩ(16个)。
3.2引脚与控制
P1.0控制RL0P1.6控制RL1
P1.1控制YL0P1.7控制YL1
P1.2控制GL0P2.0控制GL1
P1.3控制R0P2.1控制R1
P1.4控制Y0P2.2控制Y1
P1.5控制G0P2.3控制G1
3.3程序说明
1.计数器方式时间常数计算:
T0为方式1工作时,由TH0和TH1组成一个16位计数器。
当计数器到
时就会产生溢出,设时间常数数值为X,当发生一次外界事件就溢出,则
。
2.定时器方式时间常数计算方式1工作时,定时时间为0.1s,时钟振荡频率为2MHz。
计算一个机器周期:
设时间常数为X,则
,化为二进制数为:
X=1011111011100110,X=BEE6H。
100ms计数,本程序需要定时1s,所以调用中断10次。
3.4硬件电路原理图
通过前面对交通灯信号控制系统的说明,结合其硬件电路原理图如图3-1所示:
图3-1交通灯信号控制系统硬件电路原理图
第4章交通信号控制系统软件设计
4.1软件概述
本次设计,编写软件使用的是汇编语言,因为汇编语言是面向机器硬件的语言,助记符指令和机器指令一一对应,用汇编语言编写的程序效率高,占用存储空间小,运行速度快,能写出最优化的程序,能直接管理和控制硬件设备(功能部件),它能处理中断,也能直接访问存储器及I/O接口电路。
红旗街与湖西路交汇处交通信号灯的流程图如图4-1所示。
4.2汇编语言指令说明
LJMP功能:
长跳转指令
SJMP功能:
相对转移指令
LCALL功能:
长调用指令
MOV功能:
内部数据传送指令
MOVC功能:
程序存储器内容送累加器(查表指令)
SETB功能:
位变量置“1”指令
CLR功能:
累加器清零指令
CJNZ功能:
比较不相等转移指令
DJNZ功能:
减1不为0转移指令
ADD功能:
不带进位的加法指令
DEC功能:
减1指令
DIV功能:
除法指令
SCON功能:
串行口控制寄存器
JNB功能:
如果直接寻址位的值为0,则执行转移
RETI功能:
从中断返回指令
RET功能:
返回指令
4.3工作方式寄存器
工作方式寄存器TMOD:
TMOD为T0、T1的工作方式寄存器,其各位的格式如下:
由图可见,TMOD的高4位用于T1,低4位使用于T0,4种符号的含义如下:
GATE:
门控制位。
GATE和软件控制位TR,外部引脚信号INT的状态,共同控制定时器/计数器的打开或关闭。
GATE为1时,定时器的受外部引脚输入电平的控制;GATE为0时,定时器计数不受外部引脚输入电平的控制。
C/
:
定时器/计数器选择位。
C/
=1,为外部事件计数器方式;C/
=0,为定时器方式。
M1,M0:
工作方式选择位,定时器/计数器的4种工作方式由M1,M0设定。
4.4MCS-51的中断
中断的定义:
CPU正在执行主程序时,单片机外部或内部发生的某一事件(如外部设备产生的一个电平的变化,一个脉冲沿的发生或内部计数器的计数溢出等)请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转到中断服务处理程序处理所发生的事件。
中断服务处理程序处理完该事件后,再回到原来被中止的地方,继续原来的工作(例如,继续执行被中断的主程序),这称为中断。
中断的工作:
保护现场、恢复现场、中断返回。
中断的优点:
大大提高了CPU的工作效率。
五个中断请求源:
(1)/INT0-外部中断请求0,由引脚/INT0输入,中断请求标志为IE0。
(2)/INT1-外部中断请求1,由引脚/INT1输入,中断请求标志为IE1。
(3)定时器/计时器T0溢出中断请求,中断请求标志为TF0。
(4)定时器/计时器T1溢出中断请求,中断请求标志为TF1。
(5)串行口中断请求,中断请求标志为T1或RI。
4.5七段显示代码
七段代码是用七段发光二极管显示一个数,该数对应的代码为七段代码,此为共阳接法,相应段“0”电平时,该段亮。
具体图如下:
16进制数代码表
16进制数
七段显示代码
0
C0H
1
F9H
2
A4H
3
B0H
4
99H
5
92H
6
82H
7
F8H
8
80H
9
98H
A
88H
B
83H
C
C6H
D
A1H
E
86H
F
8EH
4.6软件设计流程图
图4-1新城大街与博学路交汇处交通信号灯的流程图
4.7程序清单
RESET:
ORG0000H
LJMPMAIN;复位入口转主程序
ORG000BH
LJMPT0ZD;转T0中断服务程序
ORG0100H
XSH:
MOVA,R7;将R7的内容传送给A
MOVB,#0AH;0AH传送给B
DIVAB;A与B做除法指令
MOV5EH,A;将A的内容传送给5EH
MOVA,B;将B的内容传送给A
MOV5FH,A;将A的内容传送给5FH
DIR:
MOVSCON,#00H;串行口控制寄存器SCON清零
MOVR5,#02H;发02H给R5
MOVR0,#5FH;将5FH给R0,5FH-58H为显示缓冲器
DL0:
MOVA,@R0;将R0的内容送给A,取出要显示的数
MOVDPTR,#TAB;加上偏移量
MOVCA,@A+DPTR;取出字形
MOVSBUF,A;将A的内容传送给数据缓冲器SBUF显示字形
DL1:
JNBT1,DL1;通过发送终端标志T1判断送出完否
CLRT1;送出完,T1清零
DECR0;取下一个数
DJNZR5,DL0
RET;返回
TABDB:
C0;“0”
F9;“1”
A4;“2”
B0;“3”
99;“4”
92;“5”
82;“6”
F8;“7”
80;“8”
90;“9”
88;“A”
83;“B”
C6;“C”
A1;“D”
86;“E”
8F;“F”
ORG0200H
MAIN:
MOVR6,#00H;主程序初始化
MOVR7,#00H
MOVSP,#60H
SETBEA;EA=1,CPU开放中断
SETBET0;ET0=1,T0溢出允许中断
MOVTMOD,#01H;方式寄存器以方式1工作
MOVTL0,#0E6H;T0置初值
MOVTH0,#0BEH
LOOP:
SETBP1.0;RL0左转红灯亮
SETBP1.3;R0直行红灯亮
SETBP1.6;RL1左转红灯亮
SETBP2.3;G1直行绿灯亮
LOOP1:
MOVR7,#38H
LCALLXSH;调用显示程序
LOOP11:
CJNZR7,#00H,LOOP11
CLRP2.3;G1直行绿灯灭
SETBP2.2;Y1直行黄灯亮
LOOP2:
MOVR7,#02H
LCALLXSH
LOOP22:
CJNZR7,#00H,LOOP22
CLRP1.6;RL1左转红灯灭
CLRP2.2;Y1直行黄灯灭
SETBP2.0;GL1左转绿灯亮
SETBP2.1;R1直行红灯亮
LOOP3:
MOVR7,#1EH
LCALLXSH;调用显示程序
LOOP33:
CJNZR7,#00H,LOOP33
CLRP2.0;GL1左转绿灯灭
SETBP1.7;YL1左转黄灯亮
LOOP4:
MOVR7,#02H
LCALLXSH
LOOP44:
CJNZR7,#00H,L00P44
CLRP1.3;R0直行红灯灭
CLRP1.7;YL1左转黄灯灭
SETBP1.5;G0直行绿灯亮
SETBP1.6;RL1左转红灯亮
LOOP5:
MOVR7,#38H
LCALLXSH
LOOP55:
CJNZR7,#00H,LOOP55
CLRP1.5;G0直行绿灯灭
SETBP1.4;Y0直行黄灯亮
LOOP6:
MOVR7,#02H
LCALLXSH
LOOP66:
CJNZR7,#00H,L00P66
CLRP1.0;RL0左转红灯灭
CLRP1.4;Y0直行黄灯灭
SETBP1.2;GL0左转绿灯亮
SETBP1.3;R0直行红灯亮
LOOP7:
MOVR7,#1EH
LCALLXSH
LOOP77:
CJNZR7,#00H,LOOP77
CLRP1.2;GL0左转绿灯灭
SETBP1.1;YL0左转黄灯亮
LOOP8:
MOVR7,#02H
LCALLXSH
LOOP88:
CJNZR7,#00H,LOOP88
CLRP1.1;YL0左转黄灯灭
CLRP2.1;R1直行红灯灭
SJMPLOOP
T0ZD:
MOVTLO,#0E6H
MOVTH0,#0BEH;设置100ms时钟中断
INCR6
MOVA,R6
CJNZA,#10H,FH;不够10个100ms转移至FH
DECR7;R7的内容每1秒减1
MOVR6,#00H;R6清零
LCALLXSH;调用显示程序
FH:
RETI;中断返回
总结
计算机技术的发展对整个社会的发展有很大的影响,单片机的出现更是加速了计算机在各个领域的应用。
它以其特定的结构和性能越来越普遍的应用到国民经济的各个领域。
这次的课程设计就是应用单片机去解决实际问题的设计。
结合以前学过的课程,运用了大量的微机原理及单片机的知识来对此次课程设计进行设计和说明,对以前的知识进行了巩固,达到学以致用,不局限于书本的知识,开阔了眼界。
理论联系实际使我认识到自身的不足。
对以后的学习生活起到了指导的作用。
在此次课程设计中我遇到了很多的困难,不过在老师的指导下自己慢慢的解决了一个又一个的问题,虽然自己的身上还有很多的不足,不过较以前的我已经提高了很多。
在此感谢老师的细心指导和同学们的帮助。
在以后的学习生活中我会更加努力!
参考文献
[1]齐志才.MCS-51系列单片机原理及接口技术[M].北京:
中国建筑工业出版社,2009
[2]何立民.单片机应用系统设计[M].北京:
北京航空航天大学出版社,1990
[3]刘华东.单片机原理及应用[M].北京:
电子工业出版社,2003
[4]王义军.单片机原理及应用习题与实验指导书[M].北京:
中国电力出版社,2006
[5]刘乐善.微型计算机接口技术及应用[M].武汉:
华中科技大学出版社,2000
[6]张毅刚.新编MCS-51单片机应用系统设计[M].哈尔滨:
哈尔滨工业大学出版社,2006
[7]沈德金.接口电路与应用程序实例[M].北京:
北京航空航天大学出版社,1990
[8]李朝青.单片原理及接口技术(修订版)[M].北京:
北京航空航天大学出版社,1998