1、 华北水利水电学院 基于C51单片机 交通灯课程设计试验汇报 姓 名:田坤 班 级:125 专 业:电子信息科学和技术 指导老师:辛艳辉 刘明堂 1月16日 摘要 多年来,伴随科技飞速发展,单片机应用正在不停深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制单片机应用系统中,单片机往往作为一个关键部件来使用,正在不停应用到实际生活中,而且依据具体硬件结构软硬件结合,
2、加以完善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠就是交通信号灯自动指挥系统。交通信号灯控制方法很多。本系统采取MCS-51系列单片机STC89C51为中心器件来设计交通灯控制器,实现了经过信号灯对路面情况智能控制。从一定程度上处理了交通路口堵塞、车辆停车等候时间不合理、急车强通等问题。系统含有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛应用前景。 关键词:交通灯 单片机 数码管 一 .总体设计思绪 1.1设计目标及思绪 设计目标 了解交通灯管理基础工作原理,熟练掌握STC89C51工作原理和应用编程,熟悉
3、STC89C51单片机并行接口多种工作方法和应用,并了解计数器/定时器工作方法和应用编程外部中止方法,掌握多位LED显示问题处理。 设计思绪 (1)分析现在交通路口基础控制技术,提出自己交通控制初步方案。 (2)确定系统交通控制总体设计,增加了倒计时显示提醒。 (3)进行显示电路。 (4)进行软件系统设计。 1.2 实际交通灯显示时序及状态转换理论分析 图1所表示为红绿灯转换状态图。 S2 S1 S4 S3 图1 红绿灯状态转换图 状态 S1 S2 S3 S4 时间 30s 5s 30s 5s 东西道 红灯亮 红灯亮 绿灯亮 黄
4、灯亮 南北道 绿灯亮 黄灯亮 红灯亮 红灯亮 表1 十字路口指示灯燃亮方案 说明: (1)当东西方向为红灯,此道车辆严禁通行,东西道行人可经过;南北道为绿灯,此道车辆经过,行人严禁通行。时间为60秒。 (2)黄灯闪烁5秒,警示车辆和行人红、绿灯状态立即切换。 (3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆严禁经过,行人通行。 时间为80秒。 东西方向车流大 通行时间长。 (4)这么如上表时间和红、绿、黄出现次序依次出现这么行人和车辆就能安全通畅通行。 (5)此表可依据车流量动态设定红绿灯初始值。 共四种状态,分别设定为S
5、1、S2、S3、S4,交通灯以这四种状态为一个周期,循环实施以下图所表示: 图2 交通灯状态循环图 程序就是在上述四种状态下循环转化。一个周期四个状态,在正常模式下共花费1分10秒。 二.具体设计方案 2.1方案要求: 本设计要求和交通信号实际控制一致,采取LED模拟信号灯,信号灯分东西、南北二组,分别有红、黄、绿三色。其工作状态由程序控制,开启、停止按钮分别控制信号灯开启和停止。白天/黑夜转换开关可对信号进行控制转换。而且要求能用两位数码管(或一位数码管)来显示红灯或绿灯等候时间,在黄灯时候数码管不显示。信号灯控制要求以下: ⑴
6、假设东西方向交通繁忙为主干道,车流量为南北交通两倍。所以东西方向绿灯通行时间为是南北方向上两倍。 ⑵开始时东西方向绿灯先亮,南北为红灯。 ⑶按下开启按钮开始工作,,按下停止按钮,停止工作。白天/黑夜转换开关闭合时为黑夜工作状态,这时只有黄灯往返闪烁,断开为白天工作状态。白天工作状态要求:东西方向绿灯亮40s,然后黄灯闪三下(1下/秒,共5秒),然后红灯亮20s,而南北方向为红灯亮40s然后绿灯亮20s,然后黄灯也闪三下;如此周期循环下去。 示意图 2.2方案分析 依据十字路口交通灯要求,可将本系统分为三个模块,第一模块是控制模块,关键负责整个系统控制和运算,从而使各模块正常工作
7、第二个模块式显示模块包含LED灯和数码管;第三是电源模块,给各模块提供电源,让各模块工作。其系统设计结构图: 图3.系统设计结构图 2.3 89C51单片机引脚功效说明 89C51外部引脚图:(能够直接拷入ASM程序文件中,作注释使用,十分方便) ┏━┓┏━┓ P1.0 ┫1 ┗┛40┣ Vcc P1.1 ┫2 39┣ P0.0 P1.2
8、┫3 38┣ P0.1 P1.3 ┫4 37┣ P0.2 P1.4 ┫5 36┣ P0.3 P1.5 ┫6 35┣ P0.4 P1.6 ┫7 34┣ P0.5 P1.7 ┫8 33┣ P0.
9、6 RST/Vpd ┫9 32┣ P0.7 RXD P3.0 ┫10 31┣ -EA/Vpp(内1/外0 程序地址选择) TXD P3.1 ┫11 30┣ ALE/-P (地址锁存输出) -INT0 P3.2 ┫12 29┣ -PSEN (外部程序读选通输出) -INT1 P3.3 ┫13 28┣ P2.7
10、 T0 P3.4 ┫14 27┣ P2.6 T1 P3.5 ┫15 26┣ P2.5 -WR P3.6 ┫16 25┣ P2.4 -RD P3.7 ┫17 24┣ P2.3 X2 ┫18 23┣ P2.2 X1 ┫19 22
11、┣ P2.1 GND ┫20 21┣ P2.0 ┗━━━━┛ 引脚说明: ①电源引脚 Vcc(40脚):经典值+5V。 Vss(20脚):接低电平。 ②外部晶振 X1、X2分别和晶体两端相连接。当采取外部时钟信号时,X2接振荡信号,X1接地 ③输入输出口引脚: P0口:I/O双向口。作输入口时,
12、应先软件置“ 1”。 P1口:I/O双向口。作输入口时,应先软件置“ 1”。 P2口:I/O双向口。作输入口时,应先软件置“ 1”。 P3口:I/O双向口。作输入口时,应先软件置“ 1”。 ④控制引脚: RST/Vpd、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51控制总线。 RST/Vpd(9脚):复位信号输入端(高电平有效)。 第二功效:加+5V备用电源,能够实现掉电保护RAM信息不丢失。 A
13、LE/-PROG(30脚):地址锁存信号输出端。 第二功效:编程脉冲输入。 -PSEN(29脚):外部程序存放器读选通信号。 -EA/Vpp(31脚):外部程序存放器使能端。 第二功效:编程电压输入端(+21V)。 图6. 单片机8051内部结构 2.4单片机最小系统 时钟电路 图7. 时钟电路 XTAL1是片内振荡器反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方法时,时钟发生器对振荡脉冲二
14、分频,如晶振为12MHz,时钟频率就为6MHz。晶振频率能够在1MHz-24MHz内选择。电容取30PF左右。系统时钟电路设计是采取内部方法,即利用芯片内部振荡电路。AT89单片机内部有一个用于组成振荡器高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器输入端和输出端。这个放大器和作为反馈元件片外晶体谐振器一起组成一个自激振荡器。外接晶体谐振器和电容C1和C2组成并联谐振电路,接在放大器反馈回路中。对外接电容值即使没有严格要求,但电容大小会影响震荡器频率高低、震荡器稳定性、起振快速性和温度稳定性。所以,此系统电路晶体振荡器值为12MHz,电容应尽可能选择陶瓷电容,电容值约为22μF。在
15、焊接刷电路板时,晶体振荡器和电容应尽可能安装得和单片机芯片靠近,以降低寄生电容,愈加好地确保震荡器稳定和可靠地工作。 复位电路 在振荡器运行时,有两个机器周期(24个振荡周期)以上高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功效寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM00H处开始运行程序。复位是由外部复位电路来实现。片内复位电路是复位引脚RST经过一个斯密特触发器和复位电路相连,斯密特触发器用来抑制噪声,它输出在每个机器周期S5P2,由复位电路采样一次。复位电路通常采取上
16、电自动复位和按钮复位两种方法,此电路系统采取是上电和按钮复位电路。当初钟频率选择6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。复位操作不会对内部RAM有所影响。 常见复位电路以下图所表示: 图8. 复位电路图 显示电路 显示器普遍地用于直观地显示数字系统运行状态和工作数据,根据材料及产品工艺,单片机应用系统中常见显示器有: 发光二极管LED显示器、液晶LCD显示器、CRT显示器等。LED数码管是现在最常见显示器之一。发光二极管(LED)由特殊半导体材料砷化镓、磷砷化镓等制成,能够单独使用,也能够组装成份段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数
17、码管)由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清楚光。只要按规律控制各发光段亮、灭,就能够显示多种字形或号。LED数码管有共阳、共阴之分。本系统采取是两位共阴极数码管
三.电路图和程序
图10. 交通灯电路图
具体程序:
#include
18、 uint a; for(a=500;a>0;a--); } uchar code arry_duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void initial() { EA=1; ET0=1; TMOD=0x01; TH0=0x4c; TL0=0xd0; } void display(int Y) { shi=Y/10; ge=Y%10; TR0=1; while(shi|ge!=0) { P2=0xfe; P3=arry_duan[shi]; delay(
19、); P2=0xfd; P3= arry_duan[ge]; delay(); } TR0=0; } void timer0() interrupt 1 { TH0=0x4c; TL0=0xd0; num++; if(num==20) { num=0; ge--; if(ge==-1) { ge=9; shi--; } } } main() { initial(); while(1) { red=0; yel=0; gre=1; display(40); red=0; yel=1; gre=0; display(3); r
20、ed=1; yel=0; gre=0; display(20); red=0; yel=1; gre=0; display(3); } } 程序编译和.hex文件创建截图 仿真截图 四.试验心得体会 经过此次试验我复习了单片机程序编写,电路连接和程序调试仿真,愈加深刻感受到了单片机强大功效,经过试验也加强了动手操作能力,和同学一起愈加知道了相互合作关键性,以后我会愈加努力把本专业知识学好学精,争取为国家做到属于自己应做奉献。 五.课程设计参考资料 1.《电子系统综合设计》 郭勇 北京大学出版社 2.《数字电子技术基础》 阎石 高教出版社 3.《模拟电子技术基础》 童诗白 高教出版社 4. 《单片机原理及应用》 张毅刚 高等教育出版社






