单片机课程设计交通灯.docx
《单片机课程设计交通灯.docx》由会员分享,可在线阅读,更多相关《单片机课程设计交通灯.docx(25页珍藏版)》请在冰豆网上搜索。
单片机课程设计交通灯
单片机课程设计-交通灯
单片机课程设计
——交通灯
姓名:
学院:
专业:
班级:
学号:
第一章绪论
随着我国社会经济的发展,城市化、城镇化进程的加快,道路交通堵塞问题日趋严重,如何对交通进行合理的管理和调度而尽可能减少堵车现象成为目前我国很多地方尤其是特大城市急需解决的问题,显然交通灯在其中起着不可或缺的作用。
本文就控制交通灯的方法进行了讨论,分析了各种方案的性价比,并用软、硬件加以实现。
而后,对六车道以上道路的“十字交叉路口交通灯控制”进行了分析。
最后,还对城市交通灯网的控制进行了展望。
希望能给有关政府部门一些参考,更好地改善我们的城市交通。
现今的交通发展迅速,车辆极具增加,马路不断扩宽,人行横道相对较少。
在车流量较大的地段即便有人行横道,行人也很难通过马路。
行人自控指示灯系统可以有效的改善这种状况。
特别是像北京这样的大都市,经济飞速发展,车辆繁多,人口密集。
缓解交通已成为当务之急.例如在我们新校区西门口(塔南路)就是这种情况,每天进出校门的学生特别多,大多还需要穿过这条繁忙的高速公路,这为学校师生带来大大的不便.该系统主要应用于交通领域,具有较高的实用价值。
该系统利用红灯,黄灯,绿灯来指挥车辆和行人,以达到车辆停止,行人通行的目的,减少了交通拥挤现象,为行人节省了时间,即保证行人过马路时的安全,也减轻了交管部门的负担。
本产品面对公共交通设施,并不注重经济收益,而是注重以后潜在的发展,从而带动相关产业。
用户可以完全掌握行人自控指示灯系统的操作方法,以及各个按键的作用科学技术的突飞猛进直接把我们带进了信息化的社会,计算机的应用已普及到经济和社会生活的各个领域.
第二章设计要求与任务
第一节目的和要求:
1、实验要求:
编写程序,以89c52的端口作为输出口,控制4个双色LED灯(可发红、绿、黄光),模拟十字路口交通灯管理。
2、实验目的:
(1)学习I/0口扩展方法;掌握89c52的工作原理以及编程方法,了解软件与硬件的调试技术。
(2)学习模拟交通灯控制方法;
(3)学习双色LED灯的使用;
第二节设计任务和设计内容:
(CPU均采用89c52)
1.软件延时实现模拟路口交通灯控制:
(如图1)
实验效果:
软件延时控制A﹑C路口红灯,B﹑D路口绿灯亮60秒;然后A﹑C路口不变,B﹑D路口绿灯闪5下,然后B﹑D路口黄灯亮;再变为A﹑C路口绿灯,B﹑D红灯延时3秒;然后A﹑C路口绿灯闪5下,再黄灯亮,B﹑D不变。
再循环······。
并将绿灯剩余时间显示在LED上(该项编程可将其结果显示在计算机屏幕上代替)。
2.89c52定时器控制模拟交通灯:
实验效果:
软件延时控制A﹑C路口红灯,B﹑D路口绿灯亮50秒;其余要求和第1点中的相同。
第三章设计方案及评估论证
第一节题意分析:
虽然题目是四个路口,其实这是用于人行横道处的
交通灯,也可用于不允许拐弯的主﹑副街道的交叉口处。
如图1所示,B、D方向是双向车道;A、C方向是人行横道。
或者将BD看作主街道,而AC看作副街道,也是可以的。
第二节工作原理说明:
1.工作原理说明:
此方案是通过并行接口芯片89c52A和计
算机的硬件连接,以及通过软件延时的方法进行软件
编程,来实现十字路口交通灯的模拟控制。
如图2(89c52A芯片)所示,1.主控制单片机
主控单片机采用一片AT89C52。
根据题目要求,充分利用了单片机灵活控制的优点,发挥其优势功能,采用单片机控制信号灯和数码管的显示,提高了系统的灵活性,设置方便。
利用单片机产生的时钟信号控制交通信号灯达到控制路口通行时间的效果。
AT89C52提供以下标准功能:
8K字节Flash闪速存储器,256字节内部RAM,40个I/O口线,3个16位定时/计数器,一个6向量两极中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
AT89C52单片机引脚配置如图2所示:
(图289c52A芯片)
图2
2.LED显示器件工作原理
LED显示器件是通过发光二极管显示字段的器件。
在单片机控制系统中常用的是由7段LED数码管,它的显示块中有8个发光二极管,7个发光二极管组成字符“8”,1个发光二极管构成小数点,因此有人称7段LED数码管为8段显示器。
LED数码管的管脚配置如图3所示。
LED数码管有共阴极和共阳极两类,如图4所示。
共阴极LED数码管的发光二极管的阴极共地,如图4(a),当某个发光二极管的阳极电压为高电平时,二极管发光;而共阳极LED数码管是发光二极管的阳极共接,如图4(b),当某个二极管的阴极电压为低电平时,二极管发光。
图3LED数码管管脚配置图(a) 共阴极(b) 共阳极
图4两类LED数码管
第三节、组装及调试
根据所设计的电路原理图焊接电路板,并用万用表检测接线是否有错误。
当焊接的电路板正确时,应用伟福(WAVE)仿真器进行调试,检查该交通灯控制系统是否与设计思想一致,并测试程序运行结果的正确性以及各个按键功能是否符合预定要求。
七、元器件列表
名称
型号
数量
电阻
510Ω
23
电阻
5.1KΩ
7
电容
30PF/22PF
2/1
二极管
12
数码管
4
开关
8
三极管
4
晶振
1
第四章软件支持和编程
第一节程序设计
①流程图:
如图2所示,有的书上直到最后一步才有“是否有键按下?
”的选择语句,而我认为应该是每个状态后都有这样的判断,这样便于处理特殊紧急情况,正如后面的源程序中所示。
第二节调试记录及结果分析:
调试结果如图7所示:
图(7)
(1)在上机调试中发现,由于此软件延时的时间均为估算时间,不是特别准确,对于交通要求特别高的地方不宜采用。
如果是放到一个大的交通灯系统中,会影响到各个交通灯的运行时间,可能整个系统对交通的指挥调度会大大偏离理论计算,不能有效地防止和消除交通堵塞现象;
(2)当出现紧急情况,在特种车(如消防车、救护车)正要通过时,这种软件延时方式就不能完成;
(3)可以看到,此方案用了12个发光LED,若是六车道以上的交通路口,就要36个灯,成本不合算不说,更是让司机、行人眼花缭乱。
(4)这不是一个十字路口,不能拐弯。
但是,可以看到以上方案的一般性,只要将程序里的数据排列或规律稍加修改就可应用到任何一个路口的某一个方向上的交通灯上了,这就是用软件实现的好处,可移植性很强。
第五章总结
经过这一周的课程设计,我确定一个方向----关于交通灯系统设计,我认真查阅资料,学习关于这方面的知识,比如说要了解89c52芯片中各个引角的功能,怎么样去使用89c52这个可编程并行接口芯片,怎么样用89c52这个地址锁存器来存储高位地址和低位地址以及交通有哪些规则.在上学期理论学习的基础上,又下了一次苦工夫,算是明白了设计一个系统的过程;也让我体会到要想成功地设计某个东西,光学好专业知识是不够的,必须要系统的知识,无论在哪方面都要有个明白的概念,只有这样才不至于在设计过程中摸不着头脑,知道去哪些是需要查的资料,还有一点,我觉得我在芯片编程方面,特别是在初始化方面是我最大的困难,或许是我的汇编语言学得不够呛好,我只能借助参考资料,查每一条指令的作用与功能,这样一来又巩固了我的对汇编语言的了解.
如此,我体会到学习理论知识固然重要,但在你学完了之后,你不在实践中运用你所学的知识,我想学是白学了,过一段时间后,你可能什么都记不起来了,或许在学心里只有一个概念,认为这个知识我曾经学得不错,我现在怎么想不起来了,一心想依赖课本;如果我们用实践来学习知识,你会努力地去搜索你想要需要的东西,即使是过了一段时间后,你也会记得你曾经对这点不明白认真地查阅过,你不会忘记!
一句话,课程设计对我们很重要!
.
第六章参考文献:
余发山编著.单片机原理及应用技术.徐州:
中国矿业大学出版社,2003.12
蔡美琴,张为民编.MCS—51系列单片机系统及其应用.北京:
高等教育出版社,1994
陈奥初,窦振中编著.单片机应用系统设计与实践.北京:
北京航空航天大学出版社,1991
顾滨等编著.单片微型计算机原理、开发及应用.北京:
高等教育出版社,2000.8(2002重印)
付程序:
ORG0000H
LJMPMAIN
ORG0003H
LJMPTIME1
ORG000BH
LJMPTIME2
ORG0013H
LJMPTSH
ORG0030H
MAIN:
MOVSP,#40H
MOVP2,#00H
MOVP1,#0FFH
MOV20H,#08H
MOV21H,#02H
MOV22H,#00H
MOV23H,#12H
MOV24H,#02H
MOV25H,#00H
CLRC
MOVA,20H
SUBBA,24H
MOV25H,A
CLRC
MOVA,23H
SUBBA,21H
MOV22H,A
MOV26H,#00H
MOV27H,#00H
MOV28H,#00H
MOV29H,#00H
MOV2AH,#00H
MOV2BH,#00H
MOV2CH,#00H
MOV2DH,#00H
MOV2EH,#00H
MOV30H,#00H
MOV31H,#00H
MOV32H,#00H
MOV33H,#00H
MOVTCON,#00H
MOVIE,#87H
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
MOVR7,#20
SETBTR0
HHF0:
MOV26H,20H
MOV2BH,25H
MOVP1,#9EH
HHF1:
ACALLDISP1
MOVA,2BH
CJNEA,#0,HHF1
MOV2AH,24H
MOVP1,#0AEH
HHF2:
ACALLDISP2
MOVA,2AH
CJNEA,#0,HHF2
MOV28H,22H
MOV29H,23H
MOVP1,#0B3H
HHF3:
ACALLDISP3
MOVA,28H
CJNEA,#0,HHF3
MOV27H,21H
MOVP1,#0B5H
HHF4:
ACALLDISP4
MOVA,27H
CJNEA,#0,HHF4
LJMPHHF0
DISP1:
MOVA,2BH
MOVB,#10
DIVAB
MOV30H,B
MOV31H,A
MOVA,26H
MOVB,#10
DIVAB
MOV32H,B
MOV33H,A
ACALLDISP
RET
DISP2:
MOVA,2AH
MOVB,#10
DIVAB
MOV30H,B
MOV31H,A
MOVA,26H
MOVB,#10
DIVAB
MOV32H,B
MOV33H,A
ACALLDISP
RET
DISP3:
MOVA,29H
MOVB,#10
DIVAB
MOV30H,B
MO