单片机 交通灯控制.docx
- 文档编号:11268955
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:21
- 大小:190.97KB
单片机 交通灯控制.docx
《单片机 交通灯控制.docx》由会员分享,可在线阅读,更多相关《单片机 交通灯控制.docx(21页珍藏版)》请在冰豆网上搜索。
单片机交通灯控制
课程设计说明书
(2009/2010学年第二学期)
课程名称:
单片机应用课程设计
题目:
交通灯控制器
专业班级:
学生姓名:
学号:
指导教师:
王立国 韩昱段广玉苗敬利
设计周数:
第17、18周
设计成绩:
2010年7月8日
目 录
1、课程设计要求及设计目的——————————————————————————3
1.1任务分析———————————————————————————————3
1.2设计目的————————————————————————————3
2、软件设计————————————————————————————————3
2.1系统分析———————————————————————————————3
2.2系统设计——————————————————————————————3
2.3程序————————————————————————————————6
3、硬件设计————————————————————————————————12
3.1硬件器件介绍—————————————————————————————12
3.2硬件电路设计—————————————————————————————14
交通灯控制器电路原理图——————————————————————————15
交通灯控制器电路PCB图——————————————————————————16
3.3系统调试——————————————————————————————17
4、课程设计总结——————————————————————————————18
5、参考文献————————————————————————————————18
6、致谢——————————————————————————————————18
1.要求
我们组的题目是交通灯控制器,即通过单片机实现对交通灯的控制,实验要求如下
(1)A道和B道上均有车辆要求通过时,AB道轮流放行。
A道放行1分钟,B道放行1分钟;A、B道黄灯在转换间歇各闪烁3秒
(2)A道和B道有相应的数码管显示秒数。
(3)有紧急车辆要求通过时,系统要能使禁止普通车辆通行,AB道均为红灯,紧急车由KI开关模拟。
1.1任务分析
主要任务
本设计的主要任务为设计一个以MCS-51单片机为核心的最小且实用应用系统,实现有时间显示的定时交通信号灯控制。
要求
(1)A道放行:
绿灯放行1分钟,同时B道红灯亮1分钟。
(2)闪烁:
A道黄灯闪烁3秒,同时B道红灯继续亮3秒。
(3)B道放行:
B道绿灯亮1分钟,同时A道红灯亮1分钟。
(4)闪烁:
B道黄灯闪烁3秒,同时A道红灯继续亮3秒。
技术要求
十字路口的四组红、绿交通灯受MCS-51单片机I/O口的控制,试验时皆由发光二极管替代,紧急车请求通过的信号由人工(KI)控制,以中断方式输入单片机,即正常模式转入到紧急模式。
正常模式
系统工作时,按照任务分析的四种状态循环进行,同时进行倒计时显示作为时间提示,使人们能够直观地把握时间。
紧急模式
没有急车时,信号灯按正常模式运行。
有紧急情况时,通过人工控制开关发出信号使交通灯处于紧急模式,当交通信号灯处于紧急模式下时,不管原来信号灯的状态如何,一律强制让两方向的红灯点亮,禁止其它普通车辆暂停通行。
1.2课程设计目的
1.进一步熟悉和掌握单片机的结构及工作原理。
2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。
4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
5.通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。
2.软件设计
2.1系统分析
软件分三部分,即主程序、定时器T0中断程序、外部中断1中断程序。
主程序为上电初始化和现实部分,定时器T0中断程序实现时间显示值得改变和交通灯的控制转换,外部中断为紧急车辆通过的控制。
2.2系统设计
(1)主程序
主程序完成定时器的初始化、初始化外部中断、工作模式选择的任务。
主程序的流程图如下:
(2)循环显示子程序
(3)定时计数器中断处理
定时计数器T0为一秒计时,当定时计数器T0产生溢出中断时,处理器转入中断处理程序。
在中断处理程序中首先重置定时器初值,之后判断1s定时时间是否到,若到应则将秒定时大变量重置初值同时将通行时间变量减1,否则跳过,再判断是否到通行时间的最后五秒,若到则将处于通态的路口的绿灯改为黄灯亮,没有则跳过;然后判断通行时间是否到0s,若到则将进行预置数重置、关闭黄灯和翻转方向标志位等操作。
定时计数器中断服务流程图如下:
(4)外部中断1的处理
当有紧急车辆要求通过时,紧急车请求通过的信号由人工控制,以外部中断1的方式输入到单片机。
单片机暂停前工作响应中断。
外部中断1程序流程图:
2.3程序:
;定时器0方式1定时1s
ResultEQU50H
FLAGEQU20H
org0000h
ljmpmain
org0003h
ljmpinterrupt0
org000bh
ljmpint0
;-------------------主程序初始化----------------------
main:
;定时器初始化
movtmod,#01h
movth0,#3ch
movtl0,#0b0h
movIE,#10000010b;EA=1,IT1=1
movr2,#10
;外部中断初始化
setbpx0
setbex0;设置中断允许
setbit0;边沿触发方式,负跳变有效
setbFLAG
setbtr0
;------------------交通灯循环显示主程序-----------------
loop:
mov2ah,#60
;输出此状态的编码值
;一个方向的60秒
loop1:
lcallBinToBcd
lcalldisp
movp1,#1bh;;;状态编码
loop11:
jnbflag,ergency1
mova,2ah
cjnea,#0h,loop1
;一个方向的3秒钟
mov60h,#3
mov2ah,#3
movp1,#1dh;;;状态编码
loop2:
lcallBinToBcd
lcalldisp
loop22:
jnbflag,ergency2
mova,2ah
cjnea,60h,next1
dec60h
cplp1.1
next1:
cjnea,#0h,loop2
;-----------------------------------------------
;另一个方向的60秒钟
mov2ah,#60
loop3:
lcallBinToBcd
lcalldisp
movp1,#36h;;;状态编码
loop33:
jnbflag,ergency3
mova,2ah
cjnea,#0h,loop3
;另一个方向的3秒钟
mov60h,#3
mov2ah,#3
movp1,#2eh;;;状态编码
loop4:
lcallBinToBcd
lcalldisp
loop44:
jnbflag,ergency4
mova,2ah
cjnea,60h,next2
dec60h
decr1
cplp1.4
next2:
cjnea,#0h,loop4
ljmploop
;------------------4种紧急情况----------------
ergency1:
clrtr0
movp1,#21h
lcalldisp
;该行输出禁止通行状态指示灯
movp1,#21h
jnbflag,ergency1
setbtr0
ljmploop11
ergency2:
clrtr0
movp1,#21h
lcalldisp
;输出禁止通行状态指示灯
movp1,#21h
jnbflag,ergency2
setbtr0
ljmploop22
ergency3:
clrtr0
movp1,#21h
lcalldisp
;输出禁止通行状态指示灯
movp1,#21h
jnbflag,ergency3
setbtr0
ljmploop33
ergency4:
clrtr0
movp1,#21h
lcalldisp
;输出禁止通行状态指示灯
movp1,#21h
jnbflag,ergency4
setbtr0
ljmploop44
;------------------------延时1s------------------------
int0:
djnzr2,exit
movr2,#10
dec2ah
exit:
movtl0,#0b0h
movth0,#3ch
reti
;------------------------外部中断----------------------
interrupt0:
clrtr0
cplFLAG;取反FLAG
setbtr0
reti
;---------------------两位数码显示---------------------
DISP:
movr0,#Result
loopn:
;关闭所有位显示
setbp2.0
setbp2.1
;查表,先输出段码
mova,@r0
MOVp0,a
;再选取位
clrp2.1
CALLdelay
setbp2.0
setbp2.1
incr0
mova,@r0
movp0,a
clrp2.0
calldelay
ret
;----------------------显示延时-----------------------
delay:
movR7,#01H
dl:
movR6,#01H
dl2:
djnzR6,dl2
djnzR7,dl
ret
;立即数到段码转换
BinToBcd:
mova,2ah
movb,#10
divab
movDPTR,#TABLE
movca,@a+dptr;查ASCII表
movResult,a
mova,b;恢复A
movca,@a+dptr;查ASCII表
movResult+1,a
ret
TABLE:
DB0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h;-----------
END
3硬件设计
3.1硬件器件介绍
(1)、数码管
数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点).
本设计用到的共阳极数码管有9只脚(如右图),左侧8只,下边1只,GND为接电源端,将数码管和MCS-51P0口对应的引脚通过510Ω的电阻连接起来再用单片机控制便正确显示数字。
GND端并联后通过三极管与电源正极相联
共阳极的LED显示管的发光二极管的阳极连在一块,当某个发光二极管的阴极为低电平的时候,发光二极管点亮,相应的段被显示出来,为了使LED显示器不同的符号和数字,就要把不同段的发光二极管点亮,这样就要为LED显示器提供代码,因为这些代码可以使LED相应的段发光,从而显示不同的字型,因而该代码称之为段码。
(2)MCS-51简介
图3-1是单片机MCS-51的内部结构总框图。
它可以划分为CPU、存储器、并行口、串行口、定时/计数器和中断逻辑几个部分。
●CPU由运算器和控制逻辑构成。
其中包括若干特殊功能寄存器(SFR)。
●MCS-51时钟有两种方式产生,即内部方式和外部方式。
(如图3-2所示)
●MCS-51在物理上有四个存储空间:
片内/片外程序存储大路、片内/片外数据存储器。
片内有256B数据存储器RAM和4KB的程序存储器ROM。
除此之外,还可以在片外扩展RAM和ROM,并且和有64KB的寻址范围。
●MCS-51内部有一个可编程的、全双工的串行接口。
它串行收发存储在特殊功能寄存器SFR的串行数据缓冲器SBUF中的数据。
●MCS-51共有3个(P0、P1、P2口)8位并行I/O端口,共24个引脚。
P0口双向I/O口,用于分时传送低8位地址和8位数据信号;P1、P2口均为准双向I/O口;其中P2口还用于传送高8位地址信号。
●MCS-51内部有两个16位可编程定时器/计数器T0、T1。
最大计数值为216-1。
工作方式和定时器或计数器的选择由指令来确定。
●中断系统允许接受5个独立的中断源,即两个外部中断,两个定时器/计数器中断以及一个串行口中断。
c.外部特性(引脚功能)
AT89S51芯片有29条引脚,双列直插式封装:
●Vcc(40):
电源+5V
●Vss(20):
接地
●XTAL1(19)和XTAL2(18):
使用内部振荡电路时,用来接石英晶体和电容;使用外部时钟时,用来输入时钟脉冲。
●P0口(39—32):
双向I/O口,既可作地址/数据总线口用,也可作普通I/O口用。
●P1口(1—8):
准双向通用I/O口。
●P2口(21—28):
准双向口,既可作地址总线口输出地址高8位,也可作普通I/O口用。
3.2硬件电路设计
本次课程设计的内容是设计一个用于道路交叉口交通控制的电路图。
本次设计课题主要由复位电路、晶体振荡电路、驱动电路,位选电路等组成。
主要元器件有MCS-51、PNP、数码管、晶体振荡器、按键。
(1)复位电路的实现
当正常工作时单片机接低电平正常工作,当按下按键,单片机接通高电平,实现复位功能。
(2)晶体振荡电路的实现
电容C1、C2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了震荡器的功能。
由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。
(3)时间动态显示电路的实现
分别通过两个9012来传段码和利用P2口来实现位选
(4)驱动电路的实现
通过9012来实现译码驱动的功能,把BCD码转化成段码显示。
(5)交通灯电路的实现
用P10,P11,P12,P13,P14,P15口分别控制红.黄.绿各两个灯,实现对交通灯的控制
(6)位选电路的实现
通过P2.0,P2.1经过两个三极管放大来实现对十位.个位的位选,分别控制两个数码管的显示。
交通灯控制器电路原理图
交通灯控制器电路PCB图
3.3系统调试
本系统的软件规模较小,通过仿真器对各个模块进行在线调试,通过自下到上的方法,单独调好每一个模块,最后完成了完整的系统调试。
由于充分利用了MCS-51单片机,提高了系统的可靠性和稳定性,硬件控制电路简单,系统体积小,调试和维护方便,软件部分可根据具体情况修改程序中的参数,能通过上位机和其他智能设备监视和控制两车道的通行情况,通过共享其他交通监视设别的信号实时检测道路情况,使紧急车辆能及时顺利通过,对灵活有效地利用交通灯控制行车安全、车辆分流、减少交通事故的发生有一定的实际意义。
本设计的上位机软件有待于进一步该改进,其他部分也还要做进一步完善,以使其能够适应现代交通的高速发展。
(1)硬件调试:
硬件调试是利用DVCC实验与开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。
硬件调试可分为静态调试与动态调试两步进行。
a.静态调试是在用户系统未工作时的一种硬件检测。
第一步:
目测。
检查外部的各种元件或者是电路是否有断点。
第二步:
用万用表测试。
先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。
第三步:
加电检测。
给板加电,检测所有插座或是器件的电源端是否符合要求的值
第四步:
联机检查。
因为只有用单片机开发系统才能完成对用户系统的调试。
b.动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。
动态调试的一般方法是由近及远、由分到合。
由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。
当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。
由分到合的调试既告完成。
由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。
调试时,仍采用去掉无关元件的方法,逐层调试下去,就可以定位故障元件了。
(2)软件调试:
软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。
4.课程设计总结
经过两周的课程设计,我深刻了解到单片机的重要性。
单片机是我们专业的主要专业课之一,虽然在学期初我对这门课程没有什么兴趣,觉得那些程序枯燥无味,但是经过这次课程设计,我发现其实单片机还是一门很有趣的课程。
我们课程设计分为:
电路图设计阶段;电路板焊接阶段;程序设计调试阶段;电路板调试阶段。
电路图设计阶段使我熟练掌握了protel软件的应用,同时也锻炼了我们对于所学电路的熟练程度。
电路板焊接阶段锻炼了我们上学期末学习的焊接技术,在这一阶段我们巩固了这一技术。
程序设计调试阶段使我们进一步熟悉了汇编语言的编程步骤,也了解了一些程序的功能,在对单片机中汇编语言程序的应用上有了很深的了解。
电路板调试过程中,我们认识到此阶段前的准备活动是很重要的,尤其是焊接过程,注意不要虚焊,短接电路器件。
通过这次课程设计我了解了单片机应用对我们专业的重要性,也看到了小组同学合作的重要性。
我在这次设计中学到了很多知识,谢谢各位老师对我们的悉心指导!
.
5、参考文献
【1】吴炳胜主编《80C51原理与应用技术》
【2】张毅刚主编《单片机原理及应用》
【3】钟睿主编《MCS-51单片机原理及应用开发技术》等
6、致谢
课程设计
评语
课程设计
成绩
指导教师
(签字)
年月日
真诚的感谢指导老师的辛勤指导和小组成员的合作。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 交通灯控制 交通灯 控制