资源描述
模拟交通灯设计报告
【摘要】
当今世界正处于一个自动化时代,交通灯控制等很多行业的设备都需要计算机来控制。因此,一个好的交通灯控制系统能在道路拥挤、违章控制等方面起到很大作用。
十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机STC89C52为中心器件来设计交通灯控制器,实现了红、黄、绿灯燃亮功能;红黄绿灯循环点亮。实现模拟交通灯的功能。本系统实用性强、操作简单、扩展功能强。
关键词:单片机(89C52) 交通灯 数码管 LED
一、 整体方案设计
1. 基本要求
在十字路的东西南北方向各设置一组红黄绿灯以及一个转向灯并设置一个两位数码管,编程实现十字路口红黄绿灯交替点亮与数码管倒计时显示。
2. 实现功能
1) 正常情况
东西车道与南北车道交替通行,每次通行时间为20秒,东西方向红灯亮30秒同时其方位的数码管倒计时30秒,南北向绿灯亮20秒之后黄灯闪5秒同时其方位的数码管倒计时25秒,之后南北向转向灯亮5秒数码管倒计时5秒。东西向绿灯亮20秒之后黄灯闪5秒同时南北向红灯亮30秒。
2) 紧急情况
a) 通过按压“禁止通行键”可使东西南北全部红灯,即全都不通,以应付突发情况。
b) 按压“东西紧急键”,则东西方向绿灯,南北方向红灯;再按一次解除东西紧急通行状态。按压“南北紧急键”,则南北方向绿灯,东西方向红灯;再按一次后解除南北紧急通状态。
c) 按压“东西转向键”,则东西转向灯开;按压“南北转向键”,则南北转向灯开。
3) 交通灯显示状态
东西方向(简称A方向)
南北方向(简称B方向)
状态说明
红灯
黄灯
绿灯
转向
红灯
黄灯
绿灯
转向
灭
灭
亮
灭
亮
灭
灭
灭
A方向通行,B方向禁行
灭
闪烁
灭
灭
亮
灭
灭
灭
A方向警告,B方向禁行
亮
灭
灭
亮
亮
灭
灭
灭
A方向左转
亮
灭
灭
灭
灭
灭
亮
灭
A方向禁行,B方向通行
亮
灭
灭
灭
灭
闪烁
灭
灭
A方向禁行,B方向警告
亮
灭
灭
灭
亮
灭
灭
亮
B方向左转
3. 总体设计方案框图
5v直流稳压电源
独立键盘控制
基于STC89C52的单片机最小系统
两位共阴极数码管
LED模拟交通灯
二、 方案原理
采用单片机STC89C52的I/O口P1口通过锁存器控制共阴极数码管,,在十字路口的四组红、黄、绿交通灯及转向灯中,由单片机P0口管脚分别控制,由于交通灯为发光二极管且阳极通过限流电阻和电源正极连接,因此I/O口输出低电平时,与之相连的灯会亮,并通过数码管显示时间倒计时。紧急情况的工作模式转换由人工控制
计时是利用单片机内部的一个T0定时器/计数器来实现,它的处理过程如下:首先设定单片机内部的一个定时器/计数器工作于定时方式,先对它的定时进行校准,校准为50ms,之后以20个定时溢出为标准为1s进行计时同时根据条件语句与循环语句对数码管的计时及LED的燃亮进行调控。
本系统共用4个两位数码管,数码管显示的信息用8个内存单元存放,这8个内存单元称为显示缓冲区。在本系统中数码管显示采用软件译码动态显示。在存储器中首先建立一张显示信息的字段码表,显示时,先从显示缓冲区中取出显示的信息,然后通过查表程序在字段码表中查出所显示的信息的字段码,从P1口输出,同时在P2口将对应的位选码输出选中显示的数码管,就能在相应的数码管上显示显示缓冲区的内容。
三、 硬件设计
1. 单片机最小系统
89C52单片机是硬件电路最核心的部分,时钟电路晶振使用11.0592HZ
2. 电源电路设计
电源使用自制+5V直流稳压电源
3. 数码管显示电路
数码管采用两位共阴极数码管,东西南北各一个
4. LED交通灯电路
东西南北各三个红黄绿LED模拟交通灯,外加一个转向灯
四、 软件设计
1. 程序流程图
主程序
开始
设置中断工作方式、触发方式、初始化
是否有中断
运行过程
执行中断
Y
N
中断结束,退出中断,返回
N
Y
Y
N
Y
Y
N
N
Y
运行过程
SN:绿灯(20),EW:红灯(30)
Num60是否到10
SN:黄灯亮,EW:红灯
Num60是否到5
SN:黄灯灭,EW:红灯,转向亮(5)
Num60是否到0秒
N
EW:绿灯(20),SN:红灯(30)
Num60是否到40
EW:黄灯亮(5),SN:红灯
Num60是否到35
EW:黄灯灭,EW:红灯,EW转向亮(5)
Num60是否到30s秒
N
数码管显
示
缓
冲
区
Y
Y
数码管显示程序
获取当前通行剩余时间送h、l
E/S/W/N状态送P1口
位选码送P3口
调用Delay延时
四位显示完?
返回主程序
T0中断
定时计数初值
50ms计数(num)加1
判断1S(num=20?)到否
Num=0
Num60--
恢复现场
中断返回
获取P2口信号
Key1==0
Key2==0
Key5==0
Key4==0
Key3==0
关闭/开始计数器
关闭/开始计数
关闭/开始计数
关闭/开始计数
关闭/开始计数
Keycts=1
Keycts=2
Keycts=3
Keycts=4
Keycts=5
红灯全亮
南北红
东西绿
南北绿
东西红
红灯全亮
东西转向
红灯全亮
南北转向
按键
2. 程序清单
#include<reg52.h>
sbit key1=P2^0;
sbit key2=P2^1;
sbit key3=P2^2;
sbit key4=P2^3;
sbit key5=P2^4;
unsigned char code table[]={
0x3f,0x0c,0x76,
0x5e,0x4d,0x5b,
0x7b,0x0e,0x7f,0x5f};
void delayms(unsigned int x);
void display(unsigned char x,unsigned char y,unsigned char a,unsigned char b);
void keyscan();
unsigned char keycts,num1,num11,num22,ge1,shi1,ge2,shi2;
char num60=60;
void main()
{
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
if(TR0==0)
{
if(keycts==1)
P0=0xbe;
else if(keycts==2)
P0=0xee;
else if(keycts==3)
P0=0xbb;
else if(keycts==4)
P0=0x3e;
else
P0=0xb6;
}
else
{
if(num60-40>0)
{
num11=num60-30;
num22=num60-35;
P0=0xee;
}
else if(num60-35>0)
{
num11=num60-30;
num22=num60-35;
if(num1<=10)
P0=0xde;
else
P0=0xfe;
}
else if(num60-30>0)
{
num11=num60-30;
num22=num60-30;
P0=0x3e;
}
else if(num60-10>0)
{
num11=num60-5;
num22=num60;
P0=0xbb;
}
else if(num60-5>0)
{
num11=num60-5;
num22=num60;
if(num1<=10)
P0=0xbd;
else
P0=0xbf;
}
else
{
num11=num60;
num22=num60;
P0=0xb6;
}
}
shi1=num11/10;
ge1=num11%10;
shi2=num22/10;
ge2=num22%10;
display(shi1,ge1,shi2,ge2);
keyscan();
}
}
void display(unsigned char x,unsigned char y,unsigned char a,unsigned char b)
{
P1=table[x];
P3=0xfe;
delayms(1);
P1=table[y];
P3=0xfd;
delayms(1);
P1=table[a];
P3=0xfb;
delayms(1);
P1=table[b];
P3=0xf7;
delayms(1);
}
void delayms(unsigned int x)
{
unsigned int i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void T0_time()interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num1++;
if(num1==20)
{
num1=0;
num60--;
if(num60==0)
num60=60;
}
}
void keyscan()
{
if(key1==0)
{
delayms(10);
if(key1==0)
{
while(!key1);
TR0=~TR0;
keycts=1;
}
}
if(key2==0)
{
delayms(10);
if(key2==0)
{
while(!key2);
TR0=~TR0;
keycts=2;
}
}
if(key3==0)
{
delayms(10);
if(key3==0)
{
while(!key3);
TR0=~TR0;
keycts=3;
}
}
if(key4==0)
{
delayms(10);
if(key4==0)
{
while(!key4);
TR0=~TR0;
keycts=4;
}
}
if(key5==0)
{
delayms(10);
if(key5==0)
{
while(!key5);
TR0=~TR0;
keycts=5;
}
}
}
五、 总结
我们对本次制作的作品还是比较满意的,经过两周的设计、分析和焊接,我们做出了所需要的东西,终于圆满地完成此次比赛的作品。虽然在这个过程中也遇到一些困难,但通过与同学的交流和自己查资料,我们对电子设计有了更深的体会。通过本次比赛我们感觉到自己对各种元器件的功能特性不是很熟悉,在用到所需元件时都要进行查阅,在今后不仅要增加自己的理论学习,还要进一步提高自己的动手能力,全面地提高自己的电子设计的能力。
在这次比赛中,我们要感谢芯空科协给我们提供的机会,在此期间,我们不仅学到了许多新的知识,而且也开阔了视野,提高了自己的动手能力。最后,我还要感谢帮助过我的学长,他们也为我们解决了不少我们不太明白的设计上的难题。
六、 参考文献
【1】 郭天祥 《新概念51单片机C语言教程》 电子工业出版社,2011
【2】 杨欣,莱·诺克斯,王玉凤,刘湘黔 《电子设计从零开始(第二版)》 清华大学出版社,2010
【3】 谭浩强 《C程序设计(第三版)》 清华大学出版社,2005
附件:模拟交通灯器件清单
名称
规格
数量
单片机
STC89C52
1
单片机插座
40引脚
1
锁存器
74HC573
1
锁存器插座
20引脚
1
晶振
11.0592MHZ
1
按键
6
数码管
两位共阴极
4
发光二极管
红、黄、绿
16
变压器
220V ~ 6V
1
杜邦线
若干
二极管
1N4007
4
电解电容
1000μF
2
瓷介电容
0.1μF
3
瓷介电容
30pF
2
电阻
10k
2
电阻
4.7k
4
电阻
1k
1
电阻
350Ω
9
排阻
10k
1
焊锡丝
若干
1. 基于C8051F单片机直流电动机反馈控制系统的设计与研究
2. 基于单片机的嵌入式Web服务器的研究
3. MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究
4. 基于模糊控制的电阻钎焊单片机温度控制系统的研制
5. 基于MCS-51系列单片机的通用控制模块的研究
6. 基于单片机实现的供暖系统最佳启停自校正(STR)调节器
7. 单片机控制的二级倒立摆系统的研究
8. 基于增强型51系列单片机的TCP/IP协议栈的实现
9. 基于单片机的蓄电池自动监测系统
10. 基于32位嵌入式单片机系统的图像采集与处理技术的研究
11. 基于单片机的作物营养诊断专家系统的研究
12. 基于单片机的交流伺服电机运动控制系统研究与开发
13. 基于单片机的泵管内壁硬度测试仪的研制
14. 基于单片机的自动找平控制系统研究
15. 基于C8051F040单片机的嵌入式系统开发
16. 基于单片机的液压动力系统状态监测仪开发
17. 模糊Smith智能控制方法的研究及其单片机实现
18. 一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制
19. 基于双单片机冲床数控系统的研究
20. 基于CYGNAL单片机的在线间歇式浊度仪的研制
21. 基于单片机的喷油泵试验台控制器的研制
22. 基于单片机的软起动器的研究和设计
23. 基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究
24. 基于单片机的机电产品控制系统开发
25. 基于PIC单片机的智能手机充电器
26. 基于单片机的实时内核设计及其应用研究
27. 基于单片机的远程抄表系统的设计与研究
28. 基于单片机的烟气二氧化硫浓度检测仪的研制
29. 基于微型光谱仪的单片机系统
30. 单片机系统软件构件开发的技术研究
31. 基于单片机的液体点滴速度自动检测仪的研制
32. 基于单片机系统的多功能温度测量仪的研制
33. 基于PIC单片机的电能采集终端的设计和应用
34. 基于单片机的光纤光栅解调仪的研制
35. 气压式线性摩擦焊机单片机控制系统的研制
36. 基于单片机的数字磁通门传感器
37. 基于单片机的旋转变压器-数字转换器的研究
38. 基于单片机的光纤Bragg光栅解调系统的研究
39. 单片机控制的便携式多功能乳腺治疗仪的研制
40. 基于C8051F020单片机的多生理信号检测仪
41. 基于单片机的电机运动控制系统设计
42. Pico专用单片机核的可测性设计研究
43. 基于MCS-51单片机的热量计
44. 基于双单片机的智能遥测微型气象站
45. MCS-51单片机构建机器人的实践研究
46. 基于单片机的轮轨力检测
47. 基于单片机的GPS定位仪的研究与实现
48. 基于单片机的电液伺服控制系统
49. 用于单片机系统的MMC卡文件系统研制
50. 基于单片机的时控和计数系统性能优化的研究
51. 基于单片机和CPLD的粗光栅位移测量系统研究
52. 单片机控制的后备式方波UPS
53. 提升高职学生单片机应用能力的探究
54. 基于单片机控制的自动低频减载装置研究
55. 基于单片机控制的水下焊接电源的研究
56. 基于单片机的多通道数据采集系统
57. 基于uPSD3234单片机的氚表面污染测量仪的研制
58. 基于单片机的红外测油仪的研究
59. 96系列单片机仿真器研究与设计
60. 基于单片机的单晶金刚石刀具刃磨设备的数控改造
61. 基于单片机的温度智能控制系统的设计与实现
62. 基于MSP430单片机的电梯门机控制器的研制
63. 基于单片机的气体测漏仪的研究
64. 基于三菱M16C/6N系列单片机的CAN/USB协议转换器
65. 基于单片机和DSP的变压器油色谱在线监测技术研究
66. 基于单片机的膛壁温度报警系统设计
67. 基于AVR单片机的低压无功补偿控制器的设计
68. 基于单片机船舶电力推进电机监测系统
69. 基于单片机网络的振动信号的采集系统
70. 基于单片机的大容量数据存储技术的应用研究
71. 基于单片机的叠图机研究与教学方法实践
72. 基于单片机嵌入式Web服务器技术的研究及实现
73. 基于AT89S52单片机的通用数据采集系统
74. 基于单片机的多道脉冲幅度分析仪研究
75. 机器人旋转电弧传感角焊缝跟踪单片机控制系统
76. 基于单片机的控制系统在PLC虚拟教学实验中的应用研究
77. 基于单片机系统的网络通信研究与应用
78. 基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究
79. 基于单片机的模糊控制器在工业电阻炉上的应用研究
80. 基于双单片机冲床数控系统的研究与开发
81. 基于Cygnal单片机的μC/OS-Ⅱ的研究
82. 基于单片机的一体化智能差示扫描量热仪系统研究
83. 基于TCP/IP协议的单片机与Internet互联的研究与实现
84. 变频调速液压电梯单片机控制器的研究
85. 基于单片机γ-免疫计数器自动换样功能的研究与实现
86. 基于单片机的倒立摆控制系统设计与实现
87. 单片机嵌入式以太网防盗报警系统
88. 基于51单片机的嵌入式Internet系统的设计与实现
89. 单片机监测系统在挤压机上的应用
90. MSP430单片机在智能水表系统上的研究与应用
91. 基于单片机的嵌入式系统中TCP/IP协议栈的实现与应用
92. 单片机在高楼恒压供水系统中的应用
93. 基于ATmega16单片机的流量控制器的开发
94. 基于MSP430单片机的远程抄表系统及智能网络水表的设计
95. 基于MSP430单片机具有数据存储与回放功能的嵌入式电子血压计的设计
96. 基于单片机的氨分解率检测系统的研究与开发
97. 锅炉的单片机控制系统
98. 基于单片机控制的电磁振动式播种控制系统的设计
99. 基于单片机技术的WDR-01型聚氨酯导热系数测试仪的研制
100. 一种RISC结构8位单片机的设计与实现
101. 基于单片机的公寓用电智能管理系统设计
102. 基于单片机的温度测控系统在温室大棚中的设计与实现
103. 基于MSP430单片机的数字化超声电源的研制
104. 基于ADμC841单片机的防爆软起动综合控制器的研究
105. 基于单片机控制的井下低爆综合保护系统的设计
106. 基于单片机的空调器故障诊断系统的设计研究
107. 单片机实现的寻呼机编码器
108. 单片机实现的鲁棒MRACS及其在液压系统中的应用研究
109. 自适应控制的单片机实现方法及基上隅角瓦斯积聚处理中的应用研究
110. 基于单片机的锅炉智能控制器的设计与研究
111. 超精密机床床身隔振的单片机主动控制
112. PIC单片机在空调中的应用
113. 单片机控制力矩加载控制系统的研究
项目论证,项目可行性研究报告,可行性研究报告,项目推广,项目研究报告,项目设计,项目建议书,项目可研报告,本文档支持完整下载,支持任意编辑!选择我们,选择成功!
项目论证,项目可行性研究报告,可行性研究报告,项目推广,项目研究报告,项目设计,项目建议书,项目可研报告,本文档支持完整下载,支持任意编辑!选择我们,选择成功!
单片机论文,毕业设计,毕业论文,单片机设计,硕士论文,研究生论文,单片机研究论文,单片机设计论文,优秀毕业论文,毕业论文设计,毕业过关论文,毕业设计,毕业设计说明,毕业论文,单片机论文,基于单片机论文,毕业论文终稿,毕业论文初稿,本文档支持完整下载,支持任意编辑!本文档全网独一无二,放心使用,下载这篇文档,定会成功!
18
展开阅读全文