单片机原理与接口技术 课程设计基于单片机的多模式交通灯设计Word下载.docx
《单片机原理与接口技术 课程设计基于单片机的多模式交通灯设计Word下载.docx》由会员分享,可在线阅读,更多相关《单片机原理与接口技术 课程设计基于单片机的多模式交通灯设计Word下载.docx(20页珍藏版)》请在冰豆网上搜索。
二、总体要求:
本课程设计的题目机设计内容自选,学生可以根据平时的观察、了解单片机实际的应用系统,弄清其结构和功能,结合单片机课程及其他相关课程的知识,充分发挥自身的想象力和创造力,自行选定设计项目,但总体应达到以下要求:
1、用89S51CPU,12M时钟,常规的上电和手动复位电路
2、包括3个以上的独立式按键
3、至少2位LED数码显示器及其接口
4、一路蜂鸣器输出
5、至少有2路输入信号,可以是模拟量或数字量
三、课程设计具体要求:
选定好设计项目后,课程设计应达到以下要求
1、编写项目功能说明书,确定应用系统的功能和具体参数
2、设计电路原理图
3、制作硬件
4、设计和调试程序
5、课程设计报告
四、课程设计报告内容及要求
1、课程设计任务书
2、设计项目简介
3、电路原理图
4、系统功能描述
5、程序框图
6、程序清单
7、收获与体会
五、验收及评分标准
1、硬件制作20%
2、课程设计报告60%
3、功能展示及答辩20%
六:
参考题目:
1、基于单片机的智能电风扇控制器
2、基于单片机的多功能洗衣机程序控制器
3、基于单片机的多功能灯光控制器
4、基于单片机的单片机多机通信系统
5、基于单片机的智能温度控制系统
6、基于单片机的多功能数字电子钟
7、基于单片机的多功能防盗报警装置
2设计方案
2.1设计的思想
交通灯在安全行车过程中起着十分重要的作用,现在交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯,加上一个倒计时的显示计时器来控制行车,对于一般情况下的安全行车、车辆分流发挥着作用,但根据实际行车过程中出现的情况,如何全面有效地利用交通灯指示交通情况,我们尝试用单片机来控制交通灯,在软、硬件方面采取一些改进措施,,使交通灯在控制中灵活而有效。
硬件系统是指构成单片机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。
单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。
该交通灯拟系统的硬件部分主要由按键、显示和运算部分组成。
按照题目的设计要求,本课题需要使用LED数码管显示和扩展按键。
在该交通灯系统的设计中采用AT89C52单片机。
设计满足的基本功能
本系统由单片机系统、键盘、LED数码管显示、流水灯演示系统组成。
最后,系统要求实现如下的交通灯的功能:
1)南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,南北方向设有红绿黄灯和转向灯,东西方向只设有红绿黄灯,不设转向灯(如果有需要可以取消警报灯D6来设置)。
主干道绿灯同行时间为40s,转向灯通行时间为30s。
支干道每次通行间为40s,时间可在初始化中设置修改。
2)南北方向在绿灯转为转向灯时,要求黄灯先闪3s;
在转向转为红灯时,要求黄灯先闪5s。
东西方向在绿灯转为黄灯时,要求黄灯先闪5s。
3)东西方向、南北方向每次灯亮的时间都用显示器进行显示(采用倒计时的方法)。
4)复位按键S1,能在任何情况下返回初始设置
5)发生紧急情况,如交通意外或道路施工,需要车辆禁止通行时,系统能通过K1按键指挥交通停止,南北和东西方向同时显示红灯,并鸣响警报、亮起警报灯,提示行人车辆。
进入紧急模式并保留当时交通灯运行的情况,可以通过第二次按下K1恢复原来状态。
6)深夜路上没有行车的路口,可以设置夜间模式,系统通过K2按键切换到黄灯不停闪烁的模式,数码管只显示0000,不进行倒计时。
可以通过复位键进行返回。
7)当交通一个方向上有车而另另一个方向上无车时,系统能通过K3立即让有车道放行。
如果是东西通道无车而南北通道有车,按下K3能直接切换到南北绿灯;
如果是南北通道无车而东西方向上有车,按下K3能直接切换到东西绿灯。
根据设计功能及要求,我们可得系统的原理框图如图所示。
根据系统的原理框图,分别分析各部分电路的元器件的功能以及选择合适的元件。
2.显示部分电路设计
该设计采用如下所示的数码管,分别显示东西和南北灯的剩余时间,左边两位为东西,右边两位为南北。
该数码管为共阳接法(0脉冲有效),片选部分接单片机管脚的P2口和数码段显示部分接单片机管脚的P0口,具体的下见图。
2.时钟部分电路设计
时钟电路用于产生MCS-51单片机工作时所必须的时钟控制信号。
其内部电路在时钟信号控制下,严格地按时序执行指令进行工作。
在执行指令时,CPU首先要到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定操作。
本设计采用12MHz晶振和两个33Pf电容,他们构成一个稳定的自激振荡器。
该电容的大小影响振荡器频率的高低、振荡器的稳定性和起振的快速性。
为单片机提供标准时钟。
其中两个电容起微调作用。
如图所示:
2.复位部分电路设计
复位引脚RESET通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
复位电路通常采用上电自动复位和按钮复位两种方式,该设计采用的是上电直接复位。
其连接图如下图所示:
2.按键电路和流水灯电路
键盘是最常用的输入设备,本设计中键盘数目较少,且为安装方便,因此在本设计中采用独立式接法,由。
独立式实际上就是一组独立的按键,这些按键可直接与单片机的I/O口连接,即每个按键独占一条口线,这种接法简单。
本设计采用P1口控制二极管的发光情况,口线送低电平有效。
3软件设计
3.1交通灯亮灯方案
该交通信号灯控制系统的三种工作状态:
状态一:
东西方向红灯亮,南北方向绿灯亮。
表示东西方向上的车辆禁止通行,南北方向B车道允许通行。
最后3s的时候南北黄灯开始闪烁,表示南北方向上未过停车线的车辆停止通行,已过停车线的车辆继续通行。
状态二:
东西方向红灯,南北方向转向灯亮。
表示东西方向上的车辆禁止通行,南北方向B车道允许转向。
黄灯亮足规定时间间隔时,控制器发出状态转换信号,转到下一工作状态。
正常情况下该状态会持续30s,最后5s的时候南北黄灯开始闪烁。
状态三:
东西方向绿灯亮,南北方向红灯亮。
表示东西方向允许通行,东西方向上的车辆禁止通行,正常情况下该状态会持续40s,最后3s的时候南北黄灯开始闪烁。
本设计中采用独立式接法,由。
按键
键名
功能
P
K1键
紧急停止键
P3.3
K2键
夜间模式键
P3.4
K3键
转换模式键
当按下启动按钮K1并释放后,系统就进入紧急停止模式,东西和南北方向上都亮起红灯,并亮起警报灯,鸣响警报。
表示发生紧急状况,两边道路都禁止通车。
当按下启动按钮K2并释放后,系统就进入夜间模式,东西和南北方向上都为黄灯不停闪烁,能有效的节约能源,并依旧能起到提醒过往车辆和行人的效果。
当按下启动按钮K3并释放后,系统就进入转换模式,当一个方向上有车而另另一个方向上无车时,系统能立即让有车道放行。
紧急停止模式夜间模式
交通灯的状态表如下:
(其中0代表灯亮,1代表灯灭,0/1代表灯闪)
状态
(默认左东西右南北)
东西方向
南北方向
持续时间
绿
黄
警报
红
转向灯
D8
D7
D6
D5
D4
D3
D2
D1
红绿
1
40s
南北黄灯闪
0/1
3s
红转
30s
5s
绿红
东西黄灯闪
紧急停止红红
键控
夜间模式黄黄
4课程设计心得
课程设计是我们在课堂以外的另一种学习,它是对我们在课堂上所学的理论知识的深化。
每一次的课程实训都会给我带来很大的收获,这一次也不例外。
这次课程设计使我对以前所学的理论知识有了更近一步的理解,让我看到了书本知识在实际生活中的应用。
我和我的同学们都设计出了各种各样的东西,如密码锁、电子琴、抢答器等等,原来我们身边一些很常见的东西,它的内部程序就是这样的,真的让人欣喜万分,觉得很神奇。
在平时的理论学习中虽然我们能够分析书中所列出的程序,说出它所能实现的功能,但是在实现实际电路时却不如我们所想的那样,很多元器件在受到外界干扰的情况下,在性能方面会受到很大的影响,因此就得软硬件结合来平衡这种影响,使其能够正常工作。
经过这一个月的反复琢磨与修改,从查资料,整理资料到读程序,写程序,改程序,调试直至现在出成果,一切都充满了刻苦与艰辛,其间充满了挫折可是同时又伴随着欢乐。
令我感触最深的就是同学们倾心的帮助,一开始我写出来的程序怎么都运行不了,在板上运行时,数码管的显示只是一闪就消失了,让我很费解,我改了几天都解决不了,我几乎都要放弃了。
后来只好请教同学,原来是我的黄灯闪烁的程序造成了一个死循环,所以一运行到那里,程序就卡住了,不能再往下运行了,也无法调用display程序,所以没有显示。
在同学们的帮助下,我的问题得以解决,他们的无私精神更令我感动不已!
这次课程设计不仅培养我们的创新精神和和工程实践能力,提高我们的综合素质,还巩固我们在课堂上所学的知识,在实践中学习和进步,强化我们的实际动手操作能力。
现在我们将要步入大四了,经过这三年的对专业知识的学习,使我们对通信工程专业有了较为全面的认识和理解,通过这次的课程设计,我认识到只是学习理论知识是远远不足的,我们要真正切身感受本专业的实际应用才能真正有利于我们专业知识的学习。
参考文献
[1]《单片机原理与接口技术》肖金球主编,清华大学出版社出版社
[2]《MCS-51系列单片机原理及应用.》张毅刚,刘杰.哈尔滨工业大学出版社
附录一:
源程序代码
ORG0000H
LJMPMAIN
ORG0003H;
外部中断入口
LJMPINT0
ORG000BH;
定时中断入口
LJMPTT0
NBFEQU00H;
南北通行标志位
DXFEQU01H;
东西通行标志位
STOPEQU02H;
紧急停止标志位
ZHFEQU03H;
立即转换标志位
NIGEQU04H;
夜间模式标志位
YELEQU05H;
夜间模式时,黄灯闪烁标志位
ORG0030H
MAIN:
CLRNBF
CLRDXF
SETBSTOP
CLRZHF
CLRNIG
CLRYEL
MOVR2,#20;
定时器中断20次为1s
MOVTMOD,#01H;
初始化定时器
MOVTL0,#0B0H
MOVTH0,#3CH
SETBEA;
中断允许
SETBET0;
T0中断允许
SETBTR0;
T0定时器开始计数
SETBEX0;
外部中断0允许
SETBIT0;
设置外部中断0的触发方式,为边沿触发
MOVDPTR,#TAB;
数值首地址放入DPTR中
MOV25H,#40;
南北和东西通行时间初始化
MOV26H,#70
MOV30H,#40
MOV31H,#70
MOV32H,#30;
南北左转灯时的时间初值
MOV33H,#40;
南北变成红灯,东西变成绿灯的时间处置
MOVP1,#0E7H;
灯的初始化
MOV27H,#0E7H
LOOP:
LCALLDISPLAY;
循环执行显示子程序
AJMPLOOP
;
————————延时5ms与1ms————————
DELAY5ms:
MOVR1,#1
MOVR0,#250
DELAY1:
DJNZR0,$
DJNZR1,DELAY1
RET
DELAY1ms:
MOVR1,#2
DELAY2:
DJNZR0,$
DJNZR1,DELAY2
————————数码管显示程序——————————
DISPLAY:
MOVP2,#0F7H;
选中东西方向的十位数码管(为数码管左起第一位)
MOVA,26H;
送入数码管显示
MOVB,#10
DIVAB
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY1ms
MOVP2,#0FBH;
选中东西方向的个位数码管(为数码管左起第二位)
MOVA,B
MOVP2,#0FDH;
选中南北方向的十位数码管(为数码管左起第三位)
MOVA,25H;
把显示数据送入数码管显示
MOVP0,A
MOVP2,#0FEH;
选中南北方向的个位数码管(为数码管左起第四位)
MOVA,B;
—————————按键扫描程序——————————————
JNBP3.3,KEY_K2;
查询第二个按键K2是否按下
JNBP3.4,KEY_K3;
查询第三个按键K3是否按下
AJMPKEY_R;
没有键按下则返回
KEY_K2:
LCALLDELAY5ms
JNBP3.3,MODE_NIGHT
AJMPKEY_R
MODE_NIGHT:
CPLNIG;
K2进入夜间模式
KEY_K3:
JNBP3.4,MODE_SWITCH
MODE_SWITCH:
CPLZHF;
K3进入立即转换模式
KEY_R:
RET
————————定时中断处理程序————————
WAIT_1S:
LJMPTT0_R
TT0:
PUSHACC;
保护现场
PUSHPSW
CLRTR0;
关定时器及中断标志位并重新赋值
CLRTF0
MOVTH0,#3CH
DJNZR2,WAIT_1S;
判断1s时间是否到达
到达重新赋值
JNBNIG,SWITCH
;
——————夜间模式,黄灯闪烁——————
NIGHT:
MOV25H,#0;
倒计时置0
MOV26H,#0
CPLYEL
JNBYEL,NO_LIGHT;
设置黄灯的闪烁
MOVP1,#0DDH;
黄灯亮
MOV27H,#0DDH
LJMPTT0_R
NO_LIGHT:
MOVP1,#0FFH;
黄灯灭
MOV27H,#0FFH
————————立即转换模式—————————
SWITCH:
JNBZHF,CXD_OUT;
ZHF=1进入该模式
JBDXF,CXD;
通过判断标志位,选择切换模式
MOV25H,#41;
转换成东西绿,南北红
MOV26H,#41
MOVP1,#7EH
MOV27H,#7EH
SETBDXF
AJMPCXD_OUT
CXD:
MOV25H,#41;
转换成东西红,南北绿
MOV26H,#71
MOVP1,#0E7H
CLRDXF
CXD_OUT:
CLRZHF;
清除标志位
——————————————————————————
POINT1:
DEC25H;
南北方向通行时间减1
MOVA,25H
JUDGE1:
JBDXF,POINT2;
判断是否东西通行
———南北方向上的绿灯变成转向灯,黄灯闪3s——————
YELLOW11:
CJNEA,#3,YELLOW12;
倒数第3s,黄灯亮
JBNBF,YELLOW12
MOVP1,#0C7H
MOV27H,#0C7H
YELLOW12:
CJNEA,#2,YELLOW13;
倒数第2s,黄灯灭
JBNBF,YELLOW13
MOVP1,#0E7H
MOV27H,#0E7H
YELLOW13:
CJNEA,#1,YELLOW21;
倒数最后1s,黄灯亮
JBNBF,YELLOW21
MOV27H,#0C7H
————南北方向上的转向变成红灯,黄灯闪5s————
YELLOW21:
CJNEA,#5,YELLOW22;
倒数第5s,黄灯亮
JNBNBF,YELLOW22
MOVP1,#097H
MOV27H,#097H
YELLOW22:
CJNEA,#4,YELLOW23;
倒数第4s,黄灯灭
JNBNBF,YELLOW23
MOVP1,#0B7H
MOV27H,#0B7H
YELLOW23:
CJNEA,#3,YELLOW24;
JNBNBF,YELLOW24
MOV27H,#097H
YELLOW24:
CJNEA,#2,YELLOW25;
JNBNBF,YELLOW25
YELLOW25:
CJNEA,#1,TestA1;
JNBNBF,TestA1
MOV27H,#097H
————————————————————————
TestA1:
JNZPOINT2
CPLNBF;
如果通行时间结束则对标志位取反
JUDGE2:
JBNBF,TURN_1;
判断(25H)为0后该进入的下一状态
MOV25H,33H;
设置东西绿,南北红的初始时间
MOVP1,#7EH
MOV27H,#7EH
POINT2:
DEC26H;
东西方向通行时间减一
MOVA,26H
——————东西方向上变红灯,黄灯闪5s—————
YELLOW31:
CJNEA,#5,YELLOW32;
JNBDXF,YELLOW32
MOVP1,#07CH
MOV27H,#07CH
YELLOW32:
CJNEA,#4,YELLOW33;
JNBDXF,YELLOW33
MOVP1,#07EH
MOV27H,#07EH
YELLOW33:
CJNEA,#3,YELLOW34;
JNBDXF,YELLOW34
YELLOW34:
CJNEA,#2,YELLOW35;
JNBDXF,YELLOW35
MOV27H,#7EH
YELLOW35:
CJNEA,#1,TESTA2;
JNBDXF,TESTA2
MOVP1,#7CH
MOV27H,#7CH
—————————————————————————
TESTA2:
JNZTT0_R;
检测东西方向时