模拟交通灯设计报告.docx

上传人:b****5 文档编号:12224334 上传时间:2023-04-17 格式:DOCX 页数:18 大小:210.94KB
下载 相关 举报
模拟交通灯设计报告.docx_第1页
第1页 / 共18页
模拟交通灯设计报告.docx_第2页
第2页 / 共18页
模拟交通灯设计报告.docx_第3页
第3页 / 共18页
模拟交通灯设计报告.docx_第4页
第4页 / 共18页
模拟交通灯设计报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

模拟交通灯设计报告.docx

《模拟交通灯设计报告.docx》由会员分享,可在线阅读,更多相关《模拟交通灯设计报告.docx(18页珍藏版)》请在冰豆网上搜索。

模拟交通灯设计报告.docx

模拟交通灯设计报告

模拟交通灯设计报告

 

组员:

孟宇伟,侯晨涛,孙玉鼎

 

【摘要】

当今世界正处于一个自动化时代,交通灯控制等很多行业的设备都需要计算机来控制。

因此,一个好的交通灯控制系统能在道路拥挤、违章控制等方面起到很大作用。

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。

那么靠什么来实现这井然秩序呢?

靠的就是交通信号灯的自动指挥系统。

交通信号灯控制方式很多。

本系统采用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.总体设计方案框图

 

二、方案原理

采用单片机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.程序流程图

 

 

 

 

 

2.程序清单

#include

sbitkey1=P2^0;

sbitkey2=P2^1;

sbitkey3=P2^2;

sbitkey4=P2^3;

sbitkey5=P2^4;

unsignedcharcodetable[]={

0x3f,0x0c,0x76,

0x5e,0x4d,0x5b,

0x7b,0x0e,0x7f,0x5f};

voiddelayms(unsignedintx);

voiddisplay(unsignedcharx,unsignedchary,unsignedchara,unsignedcharb);

voidkeyscan();

unsignedcharkeycts,num1,num11,num22,ge1,shi1,ge2,shi2;

charnum60=60;

voidmain()

{

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;

elseif(keycts==2)

P0=0xee;

elseif(keycts==3)

P0=0xbb;

elseif(keycts==4)

P0=0x3e;

else

P0=0xb6;

}

else

{

if(num60-40>0)

{

num11=num60-30;

num22=num60-35;

P0=0xee;

}

elseif(num60-35>0)

{

num11=num60-30;

num22=num60-35;

if(num1<=10)

P0=0xde;

else

P0=0xfe;

}

elseif(num60-30>0)

{

num11=num60-30;

num22=num60-30;

P0=0x3e;

}

elseif(num60-10>0)

{

num11=num60-5;

num22=num60;

P0=0xbb;

}

elseif(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();

}

}

voiddisplay(unsignedcharx,unsignedchary,unsignedchara,unsignedcharb)

{

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);

}

voiddelayms(unsignedintx)

{

unsignedinti,j;

for(i=x;i>0;i--)

for(j=110;j>0;j--);

}

voidT0_time()interrupt1

{

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

num1++;

if(num1==20)

{

num1=0;

num60--;

if(num60==0)

num60=60;

}

}

voidkeyscan()

{

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

焊锡丝

若干

 

欢迎您的下载,

资料仅供参考!

 

致力为企业和个人提供合同协议,策划案计划书,学习资料等等

打造全网一站式需求

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1