基于单片机的交通灯的课程设计Word文档下载推荐.docx
《基于单片机的交通灯的课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的交通灯的课程设计Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
院(系):
机电工程学院
专业班级:
电气工程一班
学号:
指导教师:
宋东亚杨坤漓
成绩:
时间:
2012年11月17日至2012年12月22日
(4)在通常情在一个十字路口的两条主干道上,分别装上一套红、黄、绿3种信号灯。
(5)况下,一条主干道为绿灯,另一条主干道为红灯。
(6)采用定时器中断方式控制南北向、东西向交通灯,指示时间为25s,当时间为5s时绿灯亮,为3s时黄灯点亮,25s时间到,交通灯换向。
1引言
1.1背景
当今,红绿灯安装在个个道口上,已经成为疏导交通车辆最常见和最有效的手段。
但这个技术在19世纪就已经出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械般手势信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的会议大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两以旋转方式玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,是警察受伤,遂被取消!
电气启动的红绿灯出现在美国,这种红绿灯由红黄绿三色圆形的投光器组成,1914年始装于纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
信号灯的出现,使得交通得以有效的管理,对于疏导交通流量、提高道路通行能力、减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯时通行信号灯,面对绿灯的车辆可以直行,左转弯和右转弯,除非两一种标志禁止某一种转向。
左右转弯车辆必需让合法的正在路口内行驶的车辆和过人行横线的行人优先通行。
红灯是禁行信号灯,面对红灯的车辆必需在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已经十分接近停车线而不能安全停车的可以进入交叉路口!
1.2交通灯的意义
随着社会的进步发展,人来的消费水平的不断的提高。
小车也不断的增多,但是道路少,所以车辆行驶变得复杂。
为了使车辆行驶变得方便,使交通更安全,采用单片机控制交通灯实现,而且便于管理,对人类社会有重大意义。
2设计方案
2.1设计思路
利用单片机实现交通灯的控制,该任务分以下几个方面:
a实现红、绿、黄灯的循环控制。
要实现此功能需要表示三种不同颜色的LED灯分别接在P1个管脚,用软件实现。
b用数码管显示倒计时。
可以利用动态显示或静态显示,串行并出或者并行并出实现。
C实现急通车。
这需要人工实现,编程时利用到中断才能带到目的,只要有按钮按下,那么四个方向全部显示红灯,禁止以诶车辆通行。
当情况解除,让时间回到只能隔断处继续进行。
2.2总体设计框图
见图2-1:
3总体设计及核心部件简介
3.1总体设计图
3.2硬件设计
3.2.189cs51单片机概述
MCS-51单片机内部结构:
89CS51是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。
下图是80C51的基本结构:
89CS51单片机包含中央处理器、程序存储器(ROM)、数据存储器(定时/计数器、并行接口、串行接口和中断系统等极大单元及数据总线、地址总线和控制总线等三大总线,现在分别加以说明。
*中央处理器:
8位CPU,含布尔处理器;
时钟电路;
总线控制逻辑。
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统的工作,完成运算和控制输入输出等操控。
*数据存储器(RAM):
128KB数据存储器(RAM,可再扩64KB);
特殊功能寄存器SFR。
89CS51内部有128个8位用户数及存储单元和128个寄存器单元,他们是统一编址的,专营寄存器只能用于存放控制指令数据,用户只能访问,,而不能
用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户自定义的字型表。
*程序存储器(ROM):
4KB的程序存储器(ROM/EPROM/Flash,可扩至64KB);
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)结构。
3.2.280C51单片机的时钟
(1)振荡器和时钟电路
80C51内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路。
80C51的时钟产生方法有以下两种。
a内部时钟方式
利用芯片内部的振荡器,然后在引脚XTALl和XTAL2两端跨接晶体振荡器(简称晶振),就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路。
外接晶振时,Cl和C2的值通常选择为30pF左右;
Cl、C2对频率有微调作用,晶振或陶瓷谐振器的频率范围可在1.2MHz~12MHz之间选择。
为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得和单片机引脚XTALl和XTAL2靠近。
80C51时钟电路接线方法
b外部时钟方式
芯片类型
XTAL1
XTAL2
HMOS
接地
接片外时钟脉输入端
CHMOS
接片外时钟脉冲输入端
悬空
此方式是利用外部振荡脉冲接入XTALl或XTAL2。
HMOS和CHMOS单片机外时钟信号接入方式不同。
MCS-51系统的引脚说明:
MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,图二是它们的引脚配置,40个引脚中,正电源和底线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线和P3口线复用。
8951的抚慰方式可以自动复位,也可以是手动复位,见下图。
除此之外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可以接上没用电源,以保证单片机内部RAM的数据不丢失。
3.2.3硬件电路设计及描述
基于单片机设计的振荡电路和复位电路,加显示器件构成单片机系统,单片机通过P2.1~P2.6端口及P3.0P3.1端口的第二功能进行数据和信息的传输交换从而实现对外电路的控制
由7405及LED灯构成的交通信号显示电路,由89C51送来信号,经7405分析处理将信号送入LED显示灯
由八位移位寄存器74ls164及七段数码管构成的数字显示器件,由单片机输出信号经八位移位寄存器译码后送入数码显管,从而显示数字
3.3软件设计
3.3.1程序流程图:
如图所示。
3.3.2LED红绿灯显示
当P1端口输出高电平,即P1各端口=1时,根据发光二极管的单向导电性可知,这是发光二极管熄灭;
当P1个端口输出低电平,即P1各端口=0时,发光二极管亮。
我们可以使用SETB指令使P1各端口输出高电平,使用CLR指令时P各端口输出低电平。
至于循环需要软件控制,程序见附录。
4仿真和调试
4.1软件调试
4.2硬件调试
5设计体会和总结
在学习单片机理论课时候就感觉到内容很多,知识点很杂,十分繁琐。
在老师的讲解下,在通过自己的努力也更进一步了解了单片机的内部构造和工作原理,以及接外部电路的情况。
当然光有理论知识那只是“纸上谈兵”,还需要实际动手去实践。
真正把所学的用到日常生活中,理论联系实际,做出实物模型。
这次单片机实习,我选的是交通灯设计,通过这次设计我感觉到要想做成功,必须花时间多准备,查阅大量资料,认证分析每一步每一个模块要实现的功能,然后分步进行,最后正和一个整体。
通过这次实习,我们要对所做的事情有耐性,在编程的时候会有困难,也可能变得不一定成功,所以要经过多次调试,分析,改正,反复去做。
在这次实习中,经历了多次失败的洗礼,我明白在以后学习和实践中,我要努力掌握知识,多动手,多思考,以免在以后的学习工作中犯同样的错误。
6参考文献
【1】李全利《单片机原理及接口技术》第2版;
高等教育出版社
【2】王文杰徐文斌《单片机使用技术》;
冶金工业出版社
【3】《THDPJ-1-2实验指导书》
附录一:
程序
SECOND1EQU30H;
东西路口计时寄存器
SECOND2EQU31H;
南北路口计时寄存器
DBUFEQU40H;
显示码缓冲区1
TEMPEQU44H;
显示码缓冲区2
LED_G1BITP2.1;
东西路口绿灯
LED_Y1BITP2.2;
东西路口黄灯
LED_R1BITP2.3;
东西路口红灯
LED_G2BITP2.4;
南北路口绿灯
LED_Y2BITP2.5;
南北路口黄灯
LED_R2BITP2.6;
南北路口红灯
ORG0000H
LJMPSTART
ORG0100H
START:
MOVTMOD,#01H;
置T0为工作方式1
MOVTH0,#3CH;
置T0定时初值50ms
MOVTL0,#0B0H
CLRTF0
SETBTR0;
启动T0
CLRA
MOVP1,A;
关闭不相关的LED
LOOP:
MOVR2,#20;
置1s计数初值,50ms*20=1s
MOVR3,#20;
红灯亮20s
MOVSECOND1,#25;
东西路口计时显示初值25s
MOVSECOND2,#25;
南北路口计时显示初值25s
LCALLDISPLAY
LCALLSTATE1;
调用状态1
WAIT1:
JNBTF0,WAIT1;
查询50ms到否
恢复T0定时初值50ms
DJNZR2,WAIT1;
判断1s到否?
未到继续状态1
置50ms计数初值
DECSECOND1;
东西路口显示时间减1s
DECSECOND2;
南北路口显示时间减1s
DJNZR3,WAIT1;
状态1维持20s
MOVR2,#5;
置50ms计数初值5*4=20
MOVR3,#3;
绿灯闪烁3s
MOVR4,#4;
闪烁间隔200ms
MOVSECOND1,#5;
东西路口计时显示初值5s
MOVSECOND2,#5;
南北路口计时显示初值5s
WAIT2:
LCALLSTATE2;
调用状态2
JNBTF0,WAIT2;
DJNZR4,WAIT2;
判断200ms到否?
未到继续状态2
CPLLED_G1;
东西绿灯闪
DJNZR2,WAIT2;
判1s到否?
LCALLDISPLAY
DJNZR3,WAIT2;
状态2维持3s
MOVR3,#2;
黄灯闪烁2s
MOVR4,#4
MOVSECOND1,#2;
东西路口计时显示初值2s
MOVSECOND2,#2;
南北路口计时显示初值2s
WAIT3:
LCALLSTATE3;
调用状态3
JNBTF0,WAIT3;
查询100ms到否
恢复T0定时初值100ms
DJNZR4,WAIT3;
判断1s到否?
未到继续状态3
CPLLED_R2
DJNZR2,WAIT3
置100ms计数初值
DJNZR3,WAIT3;
状态3维持2s
红灯闪20s
WAIT4:
LCALLSTATE4;
调用状态4
JNBTF0,WAIT4;
DJNZR2,WAIT4;
未到继续状态4
DJNZR3,WAIT4;
状态4维持20s
红灯闪20ms
绿灯闪3s
WAIT5:
LCALLSTATE5;
调用状态5
JNBTF0,WAIT5;
DJNZR4,WAIT5;
未到继续状态5
CPLLED_G2;
南北绿灯闪
DJNZR2,WAIT5;
DJNZR3,WAIT5;
状态5维持3s
红灯闪2s
东西路口计时显示2s
南北路口计时显示2s
WAIT6:
LCALLSTATE6;
调用状态6
JNBTF0,WAIT6;
CLRTF0
DJNZR4,WAIT6;
未到继续状态6
CPLLED_R1
DJNZR2,WAIT6
DJNZR3,WAIT6;
状态6维持2s
LJMPLOOP;
大循环
STATE1:
SETBLED_G1;
状态1
CLRLED_Y1;
东西路口绿灯亮
CLRLED_R1
CLRLED_G2
CLRLED_Y2
SETBLED_R2;
南北路口红灯亮
RET
STATE2:
状态2
RET
STATE3:
CLRLED_G1;
状态3
CLRLED_R1
SETBLED_Y1;
STATE4:
状态4
CLRLED_Y1
SETBLED_R1;
东西路口红灯亮
SETBLED_G2;
南北路口绿灯亮
CLRLED_R2
STATE5:
状态5
CLRLED_Y1
STATE6:
状态6
CLRLED_G2
CLRLED_R2
SETBLED_Y2;
DISPLAY:
MOVA,SECOND1;
数码显示,东西路口计时寄存器
MOVB,#10;
十六进制数拆成两个十进制数
DIVAB
MOVDBUF+3,A
MOVA,B
MOVDBUF+2,A
MOVA,SECOND2;
MOVDBUF+1,A
MOVDBUF,A
MOVR0,#DBUF
MOVR1,#TEMP
MOVR7,#4
DP10:
MOVDPTR,#LEDMAP
MOVA,@R0
MOVCA,@A+DPTR
MOV@R1,A
INCR0
INCR1
DJNZR7,DP10
MOVR0,#TEMP
MOVR1,#4
DP12:
MOVR7,#8
DP13:
RLCA
MOVP3.0,C
CLRP3.1
SETBP3.1
DJNZR7,DP13
DJNZR1,DP12
LEDMAP:
DB3FH,06H,5BH,4FH,66H,6DH;
0,1,2,3,4,5
DB7DH,07H,7FH,6FH,77H,7CH;
6,7,8,9,A,B
DB58H,5EH,7BH,71H,0,40H;
C,D,E,F,,-
END
附录二:
实验整体电路图
附录三:
元器件表
器件代码
器件名称
器件数量
7SEG-COM-CAT-GRN\CATHODE
七段数码显管
红绿各一个
74LS164.IE
八位移位寄存器
4个
7405
反相器
6个
AT80C51
单片机
1个
CAP
电容
2个
CAP-ELEC
极性电容
RES
电阻
CRYSTAL
晶振
LED
显示灯
红黄绿各4个
POWER/GROUND
地/电源
若干