单片机课设报告 交通灯设计含程序.docx
- 文档编号:7804771
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:18
- 大小:228.64KB
单片机课设报告 交通灯设计含程序.docx
《单片机课设报告 交通灯设计含程序.docx》由会员分享,可在线阅读,更多相关《单片机课设报告 交通灯设计含程序.docx(18页珍藏版)》请在冰豆网上搜索。
单片机课设报告交通灯设计含程序
单片机课程设计报告
题目:
现代交通灯的设计
专业:
电气工程及其自动化
班级:
电气081
学号:
3080421032
姓名:
梁鑫涛
指导老师:
王水鱼
2010年秋季学期
起止时间:
2011年1月10日至2011年1月14日
平时(10%)
任务完成(30%)
答辩(30%)
课程设计(30%)
总评成绩
目录
1引言
2设计目的
3设计思路………………………………………………………………
4硬件设计………………………………………………………
5软件设计………………………………………………………
6总结…………………………………………………………
7源代码………………………………………………………
8仿真图………………………………………………………
参考文献
引言
当今,红绿灯安装在个个道口上,已经成为疏导交通车辆最常见和最有效的手段。
但这个技术在19世纪就已经出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械般手势信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的会议大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两以旋转方式玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,是警察受伤,遂被取消!
电气启动的红绿灯出现在美国,这种红绿灯由红黄绿三色圆形的投光器组成,1914年始装于纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
信号灯的出现,使得交通得以有效的管理,对于疏导交通流量、提高道路通行能力、减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯时通行信号灯,面对绿灯的车辆可以直行,左转弯和右转弯,除非两一种标志禁止某一种转向。
左右转弯车辆必需让合法的正在路口内行驶的车辆和过人行横线的行人优先通行。
红灯是禁行信号灯,面对红灯的车辆必需在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已经十分接近停车线而不能安全停车的可以进入交叉路口!
一设计目的
1.进一步了解MCS51单片机的原理及结构
2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。
4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
5.通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。
二设计思路
2.1设计思路
利用单片机实现交通灯的控制,该任务分以下几个方面:
a实现红、绿、黄灯的循环控制。
要实现此功能需要表示三种不同颜色的LED灯分别接在P1个管脚,用软件实现。
b用数码管显示倒计时。
可以利用动态显示或静态显示,串行并出或者并行并出实现。
C实现急通车。
这需要人工实现,编程时利用到中断才能带到目的,只要有按钮按下,那么四个方向全部显示红灯,禁止以诶车辆通行。
当情况解除,让时间回到只能隔断处继续进行。
2.2总体设计框图
见图一:
三硬件设计
1.1LED循环电路设计
1.189cs51单片机概述
MCS-51单片机内部结构:
89CS51是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。
89CS51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等极大单元及数据总线、地址总线和控制总线等三大总线,现在分别加以说明。
*中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统的工作,完成运算和控制输入输出等操控。
*数据存储器(RAM):
89CS51内部有128个8位用户数及存储单元和128个寄存器单元,他们是统一编址的,专营寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户自定义的字型表。
*程序存储器(ROM):
89CS51共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
*定时/计数器(ROM):
89CS51有两个16位的可编程定时/计数器,一时想定时或计数产生中断用于控制程序转向。
*并行输入输出(I/O)口:
89CS51共有4组8位I/O口(P0、P1、P2或P3),用于对外数据传输。
*全双工串行号:
89CS51内置一个全双行串行通信口,用于与其它设备间的串行数据传输,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
*中断系统:
89CS51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,客满著不同的控制要求,并具有2级优先级别选择。
*时钟电路:
89CS51内置最高频率高达12Hz的时钟电路,用于产生整个单片机运行的脉冲时序,但89CS51单片继续外置震荡电容。
单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。
MCS-51系统的引脚说明:
MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,图二是它们的引脚配置,40个引脚中,正电源和底线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用
图二
8951的抚慰方式可以自动复位,也可以是手动复位,见下图。
除此之外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可以接上没用电源,以保证单片机内部RAM的数据不丢失。
在编程时,EA/Vpp脚还需加上21V的编程电压。
1.2LED循环说明
东西、南北两干道交于一个十字路口,各干道有一组红、绿、黄三色的指示灯,指挥车辆和行人的安丘按通行。
红灯禁止通行,绿灯亮允许通行。
黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西,南北两干道的公共停车时间。
25s
3s
2s
25s
3s
2s
东西通道
红灯亮
红灯亮
红灯亮
绿灯亮
绿灯闪
黄灯亮
南北通道
绿灯亮
绿灯闪
黄灯亮
红灯亮
红灯亮
红灯亮
上表说明东西路口哈珀能够灯亮,南北路口绿灯亮,同时开始25s倒计时。
25s倒计时结束后开始5s倒计时,南北铝扣绿灯闪烁,计时至最后2s时,南北路口黄灯亮。
完成一次这样的循环要30s。
30s结束,南北路口红灯亮,东西路口绿灯亮,并重新30s倒计时,依次循环
1.3倒计时显示电路
1.374LS164芯片
74LS164用于扩展并行输出口。
用89CS51串行口外接164串入-并出移位寄存器扩展8位并行口。
8位并行口的每位分别接到数码显示管的不同显示端。
74LS164芯片管脚排列如下图,管脚1、2相连共同接单片机管脚RXD,8管脚接单片机管脚TXD,9管脚接高电平,7管脚接地,14管脚接高电平,其他管脚依次接数码显示管管脚。
1.4急通车电路
为了实现此功能,利用单片机中断达到目的。
利用一个手动按钮开关接至单片机外部中断0,同时在软件设计时将其设为最高优先级。
当有按键按下,四方全为红灯,同时将终端位置的PSW、ACC进栈保护。
当再按下按钮,将PSW、ACC出栈,回到原来的位置继续执行。
四软件设计
4.1程序流程图:
如图八所示。
图八
4.2LED红绿灯显示
如图三所示,当P1端口输出高电平,即P1各端口=1时,根据发光二极管的单向导电性可知,这是发光二极管熄灭;当P1个端口输出低电平,即P1各端口=0时,发光二极管亮。
我们可以使用SETB指令使P1各端口输出高电平,使用CLR指令时P各端口输出低电平。
至于循环需要软件控制,程序见附录。
4.3倒计时显示
此处采用LED静态显示方式,当显示器显示某个字符时,相应的段恒定的导通或截止,直到显示另个字符为止。
89C51的串行口RXD和TXD为一个全双工串行通信口,但工作在方式0下可作同步移位寄存器,其数据由RXD端串行输出或输入;而同步移位时钟由TXD端串行输出,在同步时钟的作用下,实现由串行到并行的数据通信。
在不需要使用串行通信的场合,利用串行口加外围芯片74LS164就可构成一个或多个并行输入\输出口,用于串——并转换或显示器LED驱动。
此利用后者。
4.4急通车控制
将一按钮接到单片机外部中断0端口。
另一端接地,通过在程序里设置外部中断0为最高优先级。
当检测到有按钮按下时,产生中断,停止刚才的程序,转向中断执行。
在此过程必须利用PUSH、POP指令保护现场,这样当情况解除可以回到原来的地方继续执行。
源程序代码
SECOND1EQU30H;东西路口计时寄存器
SECOND2EQU31H;南北路口计时寄存器
DBUFEQU40H;显示码缓冲1
TEMPEQU44H;显示码缓冲2
LED_G1BITP1.0;东西路口绿灯
LED_Y1BITP1.1;东西路口黄灯
LED_R1BITP1.2;东西路口红灯
LED_G2BITP1.5;南北路口绿灯
LED_Y2BITP1.6;南北路口黄灯
LED_R2BITP1.7;南北路口红灯
ORG0000H
LJMPSTART
ORG0003H
LJMPINTO0
ORG0100H
START:
MOVTMOD,#01H;置T0工作方式1
MOVTH0,#3CH
MOVTLO,#0B0H
CLRTFO
SETBTRO;启动T0
SETBEX0
SETBPX0;设置外中断0高优先级
SETBEA
LOOP:
MOVR2,#20;置1s计数初值
MOVR3,#20;红灯亮20S
MOVSECOND1,#25;东西路口计时显示初值25s
MOVSECOND2,#25;南北路口计时显示初值25s
LCALLDISPLAY
LCALLSTATEL;调用状态1
WAIT1:
JNBTF0,WAIT1;查询50ms到否
CLRTF0
MOVTH0,#3CH;恢复T0定时初值50ms
MOVTL0,#0B0H
DJNZR2,WAIT1;判断1s到否?
未到继续状态1
MOVR2,#20;置50ms计数初值
DECSECIND1;东西路口显示时间减1
DECSECOND2;南北路口显示时间减1
LCALLDISPLAY
DJNZR3,WAIT1;状态1维持20s
MOVR2,#5;置50ms计数初值
MOVR3,#3;绿灯闪烁3s
MOVR4,#4;闪烁间隔200ms
MOVSECOND1,#5;东西路口计时显示初值5s
MOVSECOND2,#5;南北路口计时显示初值5s
LCALLDISPLAY
WAIT2:
LCALLSTATE2;调用状态2
JNBTF0,WAIT2;查询50ms到否
CLRTF0
MOVTH0,#3CH;恢复T0定时初值50ms
MOVTL0,#0B0H
DJNZR4,WAIT2;判断200ms到否?
未到继续状态2
CPLLED_G1;东西绿灯闪烁
MOVR4,#4;闪烁200ms
DJNZR2,WAIT2;判断1s到否?
未到继续状态2
MOVR2,#5;置50ma计数初值
DECSECOND1;东西路口显示时间减1
DECSECOND2;南北路口显示时间减1
LCALLDISPLAY
DJNZR3,WAIT2;状态2维持3s
MOVR2,#20;置50ms计数初值
MOVR3,#2;黄灯闪烁2s
MOVSECOND1,#2;东西路口计时显示初值2s
MOVSECOND2,#2;南北路口计时显示初值2s
LCALLDISPLAY
WAIT3:
LCALLSTATE3;调用状态3
JNBTF0,#3CH;查询100ms到否
CLRTF0
MOVTH0,#3CH;恢复T0定时初值100ms
MOVTL0,#0B0H
DJNZR2,WAIT3;判断1s到否?
未到继续状态3
MOVR2,#20;置100ms计数初值
DECSECOND1;东西路口显示时间减1
DECSECOND2;南北路口显示时间减1
LCALLDISPLAY
DJNZR3,WAIT3;状态3维持2s
MOVR2,#20;置50ms计数初值
MOVR3,#20;红灯闪烁20s
MOVSECOND1,#25;东西路口计时显示初值25s
MOVSECOND2,#25;南北路口计时显示初值25s
LCALLDISPLAY
WAIT4:
LCALLSTATE4;调用状态4
JNBTF0,WAIT4;查询100ms到否
CLRTF0
MOVTH0,#3CH;恢复T0定时初值100ms
MOVTL0,#0B0H
DJNZR2,WAIT4;判断1s到否?
未到继续状态4
MOVR2,#20;置100ms计数初值
DECSECOND1;东西路口显示时间减1
DECSECOND2;南北路口显示时间减1
LCALLDISPLAY
DJNZR3,WAIT4;状态4维持2s
MOVR2,#5;置50ms计数初值
MOVR3,#4;红灯闪烁20s
MOVR3,#3;绿灯闪烁3s
MOVSECOND1,#25;东西路口计时显示初值5s
MOVSECOND2,#25;南北路口计时显示初值25s
LCALLDISPLAY
WAIT5:
LCALLSTATE5;调用状态5
JNBTF0,WAIT5;查询100ms到否
CLRTF0
MOVTH0,#3CH;恢复T0定时初值100ms
MOVTL0,#0B0H
DJNZR4,WAIT5;判断200ms到否?
未到继续状态5
CPLLED_G2;南北绿灯闪烁
MOVR4,#4;闪烁200ms
DJNZR2,WAIT5;判断1s到否?
未到继续状态5
MOVR2,#5;置100ms计数初值
DECSECOND1;东西路口显示时间减1
DECSECOND2;南北路口显示时间减1
LCALLDISPLAY
DJNZR3,WAIT5;状态5维持3s
MOVR2,#20;置50ms计数初值
MOVR3,#20;红灯闪烁2s
MOVSECOND1,#25;东西路口计时显示初值5s
MOVSECOND2,#25;南北路口计时显示初值5s
LCALLDISPLAY
WAIT6:
LCALLSTATE6;调用状态4
JNBTF0,WAIT6;查询100ms到否
CLRTF0
MOVTH0,#3CH;恢复T0定时初值100ms
MOVTL0,#0B0H
DJNZR2,WAIT6;判断1s到否?
未到继续状态6
MOVR2,#20;置100ms计数初值
DECSECOND1;东西路口显示时间减1
DECSECOND2;南北路口显示时间减1
LCALLDISPLAY
DJNZR3,WAIT6;状态6维持3s
LJMPLOOP
STATE1:
;状态1
SETBLED_G1;东西路口路灯亮
CLRLED_Y1
CLRLED_R1
CLRLED_G2
CLRLED_Y2
SETBLED_R2;南北路口红灯亮
RET
STATE2:
;状态2
CLRLED_Y1
CLRLED_R1
CLRLED_G2
CLRLED_Y2
SETBLED_R2;南北路口红灯亮
RET
STATE3:
;状态3
CLRLED_G1
CLRLED_R1
CLRLED_G2
CLRLED_Y2
SETBLED_R2;南北路口红灯亮
SETBLED_Y1;东西路口黄灯亮
RET
STATE4:
;状态4
CLRLED_G1
CLRLED_Y1
SETBLED_R1;东西路口红灯亮
SETBLED_G2;南北路口绿灯亮
CLRLED_Y2
CLRLED_R2
RET
五总结
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
通过课设发现了许多原来看书没有发现的问题,明白了自己对单片机的理解真的只是皮毛而已,要想学好这门课,必须通过理论联系实际的方法,多实践,多想多问才能更好地讲知识理解透,运用好。
中间解决问题的过程,也锻炼了我们的耐性和思考能力,这是十分宝贵的经验
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导和同学的共同努力下,终于游逆而解。
同时,在老师那里我学得到很多实用的知识,在次我表示感谢!
同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
程序仿真
参考文献
[1]叶挺秀.应用电子学[M].杭州:
浙江大学出版社,1994
[2]朱承高.电工及电子技术手册[M].北京:
高等教育出版社,1990
[3]阎石.数字电子技术基础(第三版)[M].北京:
高等教育出版社,1989
[4]周润景.PEOTEUS在MCS-51&ARM7系统中的应用百例[M].北京:
电子工业出版社,2006
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机课设报告 交通灯设计含程序 单片机 报告 交通灯 设计 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)