模拟交通信号灯.docx

上传人:b****7 文档编号:25594829 上传时间:2023-06-10 格式:DOCX 页数:15 大小:162.85KB
下载 相关 举报
模拟交通信号灯.docx_第1页
第1页 / 共15页
模拟交通信号灯.docx_第2页
第2页 / 共15页
模拟交通信号灯.docx_第3页
第3页 / 共15页
模拟交通信号灯.docx_第4页
第4页 / 共15页
模拟交通信号灯.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

模拟交通信号灯.docx

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

模拟交通信号灯.docx

模拟交通信号灯

 

工程技术综合实践

项目设计报告

(电类)

 

项目:

模拟交通信号灯

A-3

西安理工大学工程训练中心

2011年6月10日

 

一概述

近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。

交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

本系统采用单片机AT89s52为中心器件来设计模拟交通信号灯,系统实用性强、操作简单、有扩展性。

二总体设计

通过控制单片机P1口管脚输出高低电平,实现红绿黄灯交替点亮和熄灭,并且用4只数码管显示十字路口两个方向的剩余时间,P0口为位选,P2口段选。

系统的工作符合一般交通灯控制要求。

1.交通灯控制系统设计

主要由单片机系统,发光二极管,数码管组成。

系统可以完成交通灯的基本功能。

系统除了基本功能外,还可以完成倒计时数字显示,使得功能在视觉效果上有更好的控制。

2.硬件设计

2.1时序图

图1时序图

三、电路图及设计文件

1.灯控制电路设计

观察图可以看出:

六组发光二极管(南北,东西各一组红、一组绿、一组黄)通过单片机P1口的高低电平控制。

用510欧姆的排阻起分压作用,让二极管正常发光。

图2LED显示部分

2.倒计时显示电路设计

前面已经分析过相向的灯的状态和倒计时都是相同的,所以为了节省,采用两组四个数码管作为倒计时显示,用三极管驱动数码管

图3数码管显示部分

3.单片机最小系统

单片机最小系统包括晶振和复位系统,晶振连接方式采用片内时钟振荡方式,在单片机18、19脚外接石英晶体和振荡电容,电容值为30p,复位系统接在单片机第九管脚,主要用来完成单片机的复位初始化操作。

图4单片机最小系统

2.2逻辑原理图

由于12个LED来实现红黄绿灯状态;采用两组二个数码管作为倒计时的显示;

 

图5电路原理图

 

2.3PCB板设计:

用ProtelDXP生成的PCB图如下:

图6PCB图

3.程序设计

#include//包含51单片机寄存器定义的头文件

UnsignedcharcodeTab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};

unsignedcharcodeTaba[80]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};

unsignedcharcodeTabb[80]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,

1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0};

unsignedcharcodeTabc[80]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,1,1,1,1};

unsignedcharcodeTabd[80]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

unsignedcharcodeTabe[80]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,

1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};

unsignedcharcodeTabf[80]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,1,1,1,1,

1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};

sbitnbr=P1^3;

sbitnby=P1^5;

sbitnbg=P1^4;

sbitdxr=P1^0;

sbitdxy=P1^2;

sbitdxg=P1^1//数码管显示0~9的段码表

unsignedchart0,t1;//记录中断次数

unsignedcharsecond,p;//储存秒

/***********************************************************************函数功能:

快速动态扫描延时,延时约0.6毫秒************************************************************************/

voiddelay(void)

{unsignedchari;

for(i=0;i<200;i++)

{};

}

/***********************************************************************

函数功能:

显示秒

入口参数:

k

出口参数:

************************************************************************/

voidDisplaySecond(unsignedchark)

{unsignedcharm;

if(k>3)

m=k-3;

elsem=k;

P2=0xbf;//P2.6引脚输出低电平,DS6点亮

P0=Tab[k/10];//显示十位

delay();

delay();

delay();

delay();

delay();

delay();

delay();

delay();

P2=0x7f;//P2.7引脚输出低电平,DS7点亮

P0=Tab[k%10];//显示个位

delay();

delay();

delay();

delay();

delay();

delay();

delay();

delay();

P2=0xef;//P2.7引脚输出低电平,DS7点亮

P0=Tab[m/10];//显示个位

delay();

delay();

delay();

delay();

delay();

delay();

delay();

delay();

P2=0xdf;//P2.7引脚输出低电平,DS7点亮

P0=Tab[m%10];//显示个位

delay();

delay();

delay();

delay();

delay();

delay();

delay();

delay();

P2=0xff;//关闭所有数码管

P0=0xff;//显示个位

delay();

delay();

delay();

delay();

delay();

delay();

delay();

delay();

}

voidmain(void)//主函数

{

TMOD=0x11;//使用定时器T0

TH0=(65536-46083)/256;//将定时器计时时间设定为46083×1.085微秒//=50000微秒=50毫秒

TL0=(65536-46083)%256;

TH1=(65536-46083)/256//将定时器计时时间设定为46083×1.085微秒

TL1=(65536-46083)%256;

EA=1;//开启总中断

ET0=1;

ET1=1;

TR0=1;

TR1=1;

second=20;

t0=0;

t1=0;

p=0;

while

(1)

{DisplaySecond(second);//调用秒的显示子程序

nbr=Taba[p];

nby=Tabb[p];

nbg=Tabc[p];

dxr=Tabd[p];

dxy=Tabe[p];

dxg=Tabf[p];

}

}

//********************************************************

//函数功能:

定时器T0的中断服务程序

//*******************************************************

voidtimer0(void)interrupt1

{TH0=(65536-46083)/256;//重新给计数器T0赋初值

TL0=(65536-46083)%256;

t0++;//每来一次中断,中断次数int_time自加1

if(t0==20)//够20次中断,即1秒钟进行一次检测结果采样

{t0=0;//中断次数清0

second--;//秒加1

if(second==0)

second=20;//秒等于60就返回0

}

}//函数功能:

定时器T0的中断服务程序

//*******************************************************

voidtimer1(void)interrupt3

{TH1=(65536-46083)/256;//重新给计数器T0赋初值

TL1=(65536-46083)%256;

t1++;//每来一次中断,中断次数int_time自加1

if(t1==10)

{t1=0;

p++;

if(p==80)

p=0;

}

}

三.元器件清单

元器件清单如下表所示:

序号

名称

规格

型号

单位

数量

单价

(元)

1

单片机

直插式

AT89S52

1

15

2

IC锁紧座

40P

DIP40

1

1

3

晶振

12MHz

49S

1

0.5

4

电阻

10K1K

7

0.1

5

数码管

0.36英寸

红色共阳

4

1

6

按键

6*6*5

1

0.5

7

锁存器

DIP20

74HC573

1

7

8

排阻

DIP-9

510欧

1

1

9

自锁开关

5.8mm*5.8mm

1

0.5

10

三极管

NPN

C9013

4

0.5

11

LED

Ф5

红、黄、绿

各2

0.1

12

瓷片电容

30P

2

0.5

13

电解电容

25v10uf

1

0.2

14

盒子

120*122*55mm

11—93

1

19

表4元器件清单

总花费:

53.2元

四、测试、数据及结果分析

1.状态灯显示测试

当电路连接完毕后,将写好的测试程序刷写到芯片内,分别给P1口送高电平和低电平,通电即可检测。

检测结果:

南北方向红灯亮20s,同时东西方向先绿灯亮15s再闪烁2s,接着东西方向黄灯亮3s;东西方向红灯连续亮20s,在此同时南北方向绿灯先亮15s再闪烁2s,再变为黄灯亮3s。

这样一个循环就结束了,后面依次重复此过程。

此结果符合交通灯设计,完全正确。

2.数码管的测试

将写好的测试程序刷写到芯片内,开电源即可测试。

检测结果:

数码管部分虽然可以亮,但是没有按照程序的要求,而是随意变化。

3.整体电路测试

系统上电,刷写好程序即可开始测试,观测一个周期内灯的显示状态是否正常,同时观察倒计的计数是否正常,并按复位键观察复位系统是否正常工作。

检测结果:

灯的部分工作正常,而数码管部分只是亮,没有达到预期效果。

按下复位键,程序可以从头开始执行。

以上结果除数码管部分外一切正常。

交通灯工作实景:

图7成品图

五、产品说明

本产品外形简单,价格低廉,美观大方,实用性强,时间变换合理,操作简单,且可以根据路况人流更改程序来调节时间,以达到时间合理利用。

使用说明:

将电源插到普通插座上,再按下开关,交通灯即可正常工作。

按下复位开关,交通灯将恢复初始状态,重新执行程序。

六、总结

经过十五周的努力后,我们通过团结合作终于完成了模拟交通信号灯的项目,从对单片机一窍不通开始,慢慢学习对单片机有了一定的了解和掌握。

我们的项目用单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。

但是在我们设计和调试的过程中还存在一些问题,数码管的部分还不能按照要求实现倒计时,主要原因是硬件设计时没有考虑周到,导致数码管不能按照程序要求变化。

 

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

当前位置:首页 > 经管营销 > 经济市场

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

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