单片机课程设计交通灯资料.docx
- 文档编号:23799077
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:23
- 大小:486.18KB
单片机课程设计交通灯资料.docx
《单片机课程设计交通灯资料.docx》由会员分享,可在线阅读,更多相关《单片机课程设计交通灯资料.docx(23页珍藏版)》请在冰豆网上搜索。
单片机课程设计交通灯资料
目录
1绪论1
1.1交通灯概述1
1.2设计思想及基本功能1
2总体方案设计2
2.1方案设计2
2.2方案比较3
2.3方案选取3
3硬件电路设计3
3.1总体设计电路3
3.2交通灯电路3
3.3倒计时显示电路4
3.4按键控制电路设计5
4系统程序设计6
4.1主程序软件设计7
4.2中断服务程序设计9
4.3显示子程序设计…………………………………………………………104.4按键子程序设计…………………...……………………………………11
5系统的调试与检测12
总结13
参考文献13
附录14
附录A系统原理图14
附录B系统模拟图15
附录C程序代码16
1绪论
1.1交通灯概述
近年来,随着我国国民经济的快速发展,我国机动车辆发展迅速,而城镇道路建设由于历史等各种原因相对滞后,交通拥挤和堵塞现象时常出现。
如何利用当今计算机和自动控制技术,有效地疏导交通,提高城镇交通路口的通行能力,减少交通事故是很值得研究的一个课题。
目前,国内的交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯加上一个倒计时的显示器来控制行车。
图1.1所示为交通灯:
图1.1交通灯
1.2设计思想及基本功能
思想:
1、通过交通信号灯控制系统的设计,掌握80C51传输数据的方法,以控制发光二极管的亮与灭以及数码管的显示;
2、用80C51作为输出口,控制十二个发光二极管熄灭,模拟交通灯管理.
3、通过单片机控制设计,熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高动脑和动手的能力;
4、完成控制系统的硬件设计、软件设计、仿真调试。
功能:
1、控制的主、支干道交替通行,通行时间可设定;
2、绿灯变红灯时,黄灯先亮并闪烁,并倒计时5秒;;
3、十字路口每个方向设有数字显示时间提示;
4、紧急开关K1,智能开关K2K3;
2总体方案设计
2.1方案设计
根据查阅的资料和现实生活中的应用,我认为用两种方案可实现交通灯的功能:
方案
(一)采用plc系统进行控制
原理框图如图2-1
图2-1方案
(一)的原理框图
调时、紧急情况处理
方案
(二)采用51单片机做控制器,设计出定时交通灯系统,原理框图如图2-2。
图2-2方案
(二)的原理框图
2.2方案比较
方案
(一)plc主要用于强电方面的工业控制,或者整条流水线控制。
虽然系统稳定,但是造价太高,功耗较大。
方案
(二)由51单片机芯片作为控制器,通过软件来控制一些引脚来驱动数码管的显示。
这样的系统稳定性较好,精度较高,性价比较高,且和本学期学习课程关系密切。
2.3方案选取
对于生活上的简单应用而言,方案2完全符合应用要求,况且性价比高,有实际的研究意义,故选择方案
(二)。
3硬件电路设计
1.总体设计电路
2.交通灯电路
3.倒计时显示电路
4.按键控制电路设计
3.1总体设计电路
总体设计电路如图3-1。
图3-1总体设计电路图
3.2交通灯电路
为了方便实验,可以用发光二极管作为交通灯来使用,单片机的I/O接口直接和交通灯(发光二极管)连接。
在十字路口的四组红、黄、绿三色交通灯中,东西方向道路上的两组同色灯连接在一起,南北方向道路上的两组同色的灯也彼此连接在,受单片机P1.0~P1.5控制。
单片机的I/O接口与交通灯电路的具体连接方式为:
P1.0~P1.2分别接东西方向的红、黄、绿共6个放光二极管,P1.3~P1.5分别接南北方向的红、黄、绿共6个发光二极管。
12个发光二极管采用了共阳极的连接方式,因此I/O口输出低电平时,与之相连的发光二极管会亮,I/O口输出高电平是,相应的发光二极管会灭。
上述设计原理图如图3-2,
图3-2交通灯电路
3.3倒计时显示电路
有序AT89C51单片机的I/O作为输出时,具有较强吸收电流能力,因此我们可以选用共阳型数码管,这样由单片机的I/O就可以直接驱动,从而简化硬件电路的设计。
四个路口倒计时显示被置在同一时刻显示相同的数字,期中P0口用来显示时间的十位,P2口用来显示时间的个位;东西南北四个方向共四个路口,令DS1和DS2是一组,DS3和DS4是一组,DS5和DS6是一组,DS7和DS8是一组。
考虑到AT89C51单片机所能提供I/O接口的数量以及该控制系统所需要的I/O的个数并结合我们的实际能力,数码管在本系统采用的是静态显示。
所谓静态显示,就是当显示器显示某一字符时,相应的数码管恒定地导通或截止。
采用静态显示时。
占用CPU的资源较少,单片机只要把要显示的字符代码发送到接口电路即可,直到要显示新的数据时,再发送新的字形码。
显示电路原理图如图3-3。
图3-3显示电路的电路图
3.4按键控制电路设计
该系统的K1、K2、K3三个按键分别于单片机的P3.0、P3.1、P3.6相接,
按键控制电路原理图如图3-4。
图3-4按键控制电路图
4系统程序设计
系统程序设计主要包括主程序,中断控制程序,显示子程序,按键子程序。
本章节系统介绍倒交通灯的主程序和子程序的设计流程,具体的程序代码见附录。
4.1主程序软件设计
十字路口的交通灯控制电路,要求东西方向(主干道)车道和南北方向(从干道)车道两条交叉道路上的车辆交替运行,时间可设置修改。
在绿灯转为红灯时,要求黄灯闪烁5s,才能变换运行车道。
紧急情况发生,如消防车、救护车等紧急车辆通过时,要求四个路口同时加亮黄灯闪烁,并且倒计时显示装置关闭,四个路口的信号灯全部变成红灯。
图4-1为主程序流程图
图4-1主程序流程图
4.2中断服务程序设计
按下K1,东西南北四个方向全红,也就是说,东西南北四个通道都不能通车,这是紧急情况,但救护车等特殊车辆可以通过。
50ms中断计算方法(适用于12MHz晶振):
T0的计数初值:
X0=M-计数值
=M-Tc/TP
=M-(Tc×fosc)/12
=65536-(50ms×1SMHz/12)
=15536
≈15535
=3CB0H
其中4E.0H单元存放3s钟控制标志位,4F.0H单元存放1s控制标志位;4D.0单元存放0.5秒控制标志位
60H和61H单元分别存放产生1s和3s的中断次数,当它们单元中的值为零时,分别表示1s和3s到,对4E.0H单元和4F.0H单元进行置1,62H单元用于产生0.5秒由于采用工作模式1,所以每次中断后,一定在中断程序中重装记数初值.图4-2为中断服务程序流程图。
图4-2中断服务程序流程图
4.3显示子程序设计
该交通灯控制系统在正常情况下,每60s循环一次,为方便提示路上行人及车辆交通灯转换的剩余时间,专门为控制系统设计了一个倒计时显示装置。
该显示装置选用七段数码管来显示交通灯转换的剩余时间,根据控制要求,每个路口需要两个数码管,这样四个路口就要求八个数码管。
图4.3为显示子程序流程图
。
图4.3显示子程序流程图
4.4按键子程序设计
键盘上的k1,k2,k3它们可以在特殊的交通情况下使用。
例如,当有紧急情况发生时,如消防车、救护车等紧急车辆通过时,按下K1键,四个路口同时加亮黄色信号灯并进行闪烁(闪烁时间为5秒)。
并且倒计时显示装置关闭,黄灯5s闪烁完成后,四个路口的信号灯全部变成红灯,从而保证紧急车辆的及时通过,待紧急车辆通过后,松开K1键,紧急情况消除,交通灯控制系统恢复正常工作;按下K2键,四个路口同时加亮黄色信号灯并进行闪烁(闪烁时间为5秒),并且倒计时显示装置关闭,黄色等5s闪烁完成后,只允许东西方向车辆准行、南北方向车辆禁行,松开K2键,交通灯控制系统又开始正常工作;按下K3键,四个路口同时加亮黄色信号灯并进行闪烁(闪烁时间为5秒),并且倒计时显示装置关闭,黄色等5s闪烁完成后,只允许南北方向车辆准行、东西方向车辆禁行,松开K3键,交通灯控制系统又开始正常工作。
图4.4为按键子程序流程图
图4.4按键子程序流程图
5系统的功能测试
5.1.硬件检测:
第一步:
目测,检查外部的各种元件或则电路是否有断点;
第二步:
用万用表测试。
先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象;
第三步:
加电检测。
给板加电,检测所有的插座或是器件的电源端是否符合要求的值;
第四步:
是联机检查。
因为只有用单片机开发系统才能完成对用户系统的调试。
5.2.软件调试:
软件调试是通过对用户程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。
程序后,编辑,查看程序是否有逻辑的错误。
总结
通过这两周的单片机课程设计,运用所学的知识,利用单片机控制原理设计了一个交通灯控制系统,我对单片机有了更深的体会。
我了解和掌握了一些简单的编程思想和对I/O口的使用。
这次课设通过单片机的I/O口来控制交通灯。
实现一些具体的功能和对特殊情况的处理。
通过这次的实践,我对单片机的I/O口的使用的条件有更深的理解,对单片机的各个管脚功能的理解也加深了,以及在常用编程设计思路技巧,特别是汇编语言的掌握方面都能向前迈了一大步。
这次的课程设计让我把单片机的理论知识用在实践中,实现了理论和实践相结合,从中更懂得理论是实践的基础,实践有着能检验理论的正确性,让我受益非浅,对我们以后参加工作或者继续学习将会产生巨大的帮助和影响。
自己以前只知道理论知识,对其如何在实践中应用并不了解,这次课程设计很好的将理论和实践结合起来让我收获很多。
我也发现了自己的很多不足,比如在编程时发现自己的知识是那么的薄弱,靠翻课本、查资料才行,对单片机各个接口的功能和结构的理解并不是非常深入。
经过这次实验我的编程技巧和对单片机的理解都有所增加。
在课设过程中遇到的硬件和软件问题都通过询问老师、同学和去图书馆、上网得到了解决。
参考文献
[1].《单片机原理与应用技术》余发山主编中国矿大出版社2007
[2].《微型计算机控制技术》赖寿宏主编机械工业出版社2002
[3].《单片机原理及应用》丁元杰主编机械工业出版社2001
[4].《单片机中级教程》张迎春主编北京航空航天出版社2004
附录
附录A交通灯系统原理图
附录B系统模拟调试图
南北通行
东西通行
黄灯闪烁
附录C程序代码
ORG0000H
LJMPMAIN
ORG001BH;定时器T1中断入口
LJMPIINT1
ORG0100H;主程序入口
;********;
;*主程序*;
;********;
MAIN:
MOVSP,#60H
MOVTMOD,#10H;定时器T1工作在方式1
MOVTH1,#9EH;给定时器T1赋初值
MOVTL1,#58H
SETBEA;开中断系统总开关
SETBET1;开定时器T1中断开关
SETBTR1;启动定时器T1
HERE:
MOV88H,#15H;设置中断循环次数
MOV33H,#3DH;设置倒计时显示数值
MOVP1,#0F3H;使交通灯东西绿,南北红
MOVR7,#37H
MM:
LCALLDISP
MOVA,P3;键盘扫描
CJNEA,#0FFH,READKEY
DJNZR7,MM
MOVP1,#0E1H;交通灯东西绿,南北红同时加亮黄灯
MOV20H,#02H
NN:
MOVA,P3
CJNEA,#0FFH,READKEY
SETBP1.1;黄灯进行5秒闪烁
SETBP1.4
LCALLDISP
CLRP1.1
CLRP1.4
LCALLDISP;调显示子程序
DJNZ20H,NN
SETBP1.1
SETBP1.4
LCALLDISP
MOVP1,#0DEH;交通灯南北绿,东西红
MOVR7,#37H
PP:
LCALLDISP
MOVA,P3
CJNEA,#0FFH,READKEY
DJNZR7,PP
MOVP1,#0CCH;交通灯南北绿,东西红同时加亮黄灯
MOV20H,#02H
QQ:
MOVA,P3;扫描P3口
CJNEA,#0FFH,READKEY
SETBP1.1
SETBP1.4
LCALLDISP
CLRP1.1
CLRP1.4
LCALLDISP
DJNZ20H,QQ
SETBP1.1
SETBP1.4
LCALLDISP
LCALLQW
QW:
SJMPHERE
RET
;****************;
;*1秒延时子程序*;
;****************;
DELAY:
MOVR1,#0AH
DELAY0:
MOVR2,#0C8H
DELAY1:
MOVR3,#0F8H
NOP
DELAY2:
DJNZR3,DELAY2
DJNZR2,DELAY1
DJNZR1,DELAY0
RET
;***************;
;键盘扫描子程序;
;***************;
READKEY:
MOVA,#0FFH
MOVP3,A
MOVA,P3
JNBACC.0,K1;判断K1键是否按下
JNBACC.1,K2;判断K2键是否按下
JNBACC.3,K3;判断K3键是否按下
RET
K1:
MOVP0,#0FFH;关断倒计时显示装置
MOVP2,#0FFH
LCALLXX
LCALLYY
SJMPREADKEY
K2:
MOVP0,#0FFH;关断倒计时显示装置
MOVP2,#0FFH
LCALLXX
LCALLYY1
SJMPREADKEY
K3:
MOVP0,#0FFH;关断倒计时显示装置
MOVP2,#0FFH
LCALLXX
LCALLYY2
SJMPREADKEY
XX:
MOV20H,#03H
LCALLBB
RET
;******************;
;*黄灯进行5秒闪烁*;
;******************;
BB:
SETBP1.1
SETBP1.4
LCALLDELAY
CLRP1.1
CLRP1.4
LCALLDELAY
DJNZ20H,BB
RET
YY:
MOVP1,#0F6H;四个路后均变成红灯
MOVA,#0FFH
MOVP3,A
MOVA,P3
JNBACC.0,YY;判断K1键是否仍然按下
LCALLQW
YY1:
MOVP1,#0F3H;东西方向亮绿灯,南北方向亮红灯
MOVA,#0FFH
MOVP3,A
MOVA,P3
JNBACC.1,YY1;判断K2键是否仍然按下
LCALLQW
YY2:
MOVP1,#0DEH;南北方向亮绿灯,东西方向亮红灯
MOVA,#0FFH
MOVP3,A
MOVA,P3
JNBACC.3,YY2;判断K3键是否仍然按下
LCALLQW
RET
;****************;
;*中断处理程序*;
;****************;
ORG0200H;中断程序入口地址
Liu:
DEC88H
MOVA,88H
CJNEA,#01H,BN;判断循环次数是否为1
MOV88H,#15H;重新给循环次数赋值
LCALLDISP
BN:
MOVTH1,#9EH;重新给定时器T1赋初值
MOVTL1,#58H
RETI
;************;
;*显示子程序*;
;************;
DISP:
DEC33H
MOVA,33H
CJNEA,#01H,DIR1
MOV33H,#3DH;重新给倒计时数赋初值
DIR1:
MOVB,#0AH
DIVAB;提取出倒计时数值的十位数和个位数
MOVDPTR,#TAB;字形表的入口地址
MOVCA,@A+DPTR;查表获取十位数的字型码
MOV30H,A
MOVA,B
MOVCA,@A+DPTR;查表获取个位数的字型码
MOV31H,A
MOVA,30H
MOVP0,A;将十位数字型码送到P0口
MOVA,31H
MOVP2,A;将个位数字型码送到P2口
LCALLDELAY
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H;字形表
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 交通灯 资料