AT89C52单片机交通灯设计1.docx

上传人:b****6 文档编号:6943975 上传时间:2023-01-12 格式:DOCX 页数:11 大小:272.42KB
下载 相关 举报
AT89C52单片机交通灯设计1.docx_第1页
第1页 / 共11页
AT89C52单片机交通灯设计1.docx_第2页
第2页 / 共11页
AT89C52单片机交通灯设计1.docx_第3页
第3页 / 共11页
AT89C52单片机交通灯设计1.docx_第4页
第4页 / 共11页
AT89C52单片机交通灯设计1.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

AT89C52单片机交通灯设计1.docx

《AT89C52单片机交通灯设计1.docx》由会员分享,可在线阅读,更多相关《AT89C52单片机交通灯设计1.docx(11页珍藏版)》请在冰豆网上搜索。

AT89C52单片机交通灯设计1.docx

AT89C52单片机交通灯设计1

摘要...................................................................2

1交通信号灯控制系统设计任务和性能指标................................3

1.1设计任务........................................................3

1.2性能指标........................................................3

2交通信号灯控制系统设计方案...........................................3

2.1设计思路......................................................3

2.1.1设计思路...................................................3

2.1.2功能设计...................................................3

2.2总体设计........................................................3

2.2.1通行方案设计...............................................4

2.2.2硬件设计方案...............................................4

2.2.3软件设计方案...............................................5

3交通信号灯控制系统硬件设计..........................................5

3.1系统硬件框图...................................................5

3.2单元电路设计....................................................6

3.2.1单片机最小系统............................................6

3.2.2信号灯显示电路............................................7

3.2.3倒计时显示电路............................................7

3.2.4电路原理图.................................................8

4交通信号灯控制系统程序设计.........................................8

4.1C语言程序编写...................................................8

5个人小结.............................................................12

6参考文献............................................................12

 

摘要

交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。

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

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

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

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

本设计系统就是由单片机最小系统、交通灯状态显示系统、LED数码显示系统、复位电路和按键操作电路等几大部分组成。

系统除具有基本的交通信号灯功能外,还具有倒计时、时间调整和紧急情况处理等功能,较好的模拟实现了十字路口可能出现的状况。

软件上采用KEILC编程,主要编写了主程序,LED数码管显示程序,中断程序,延时程序等。

经过整机调试,实现了对十字路口交通灯的模拟。

1交通信号灯控制系统设计任务和性能指标

1.1设计任务

利用单片机设计一个十字路口交通信号灯控制系统,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,并有倒计时系统显示信号灯转换时间。

用红、绿、黄发光二极管作信号灯,两位八段数码管显示时间来控制交通信号灯的变化。

1.2性能指标

(1)东西和南北方向的车辆交替通行,任意时刻只有一个方向通行,以黄灯闪烁来转换。

(2)系统开始运行时设置每次放行13秒,其中有3秒是黄灯闪烁提醒行人和车辆禁止通行。

2交通信号灯控制系统设计方案

2.1设计思路

2.1.1设计思路

(1)分析目前交通路口的基本控制技术以及各种通行方案,并以此为基础提出自己的交通控制的初步方案。

(2)确定系统交通控制的总体设计,包括,十字路口具体的通行禁行方案设计以及系统应拥有的各项功能。

(3)选择器件,大体分配各个器件及模块的基本功能要求,设计主控电路、显示电路,信号灯状态电路,按键电路等。

(4)进行软件系统的设计,对于本系统,采用C语言编写,深入了解定时器,中断以及延时原理后,完成软件的编写。

2.1.2功能设计

本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示,通行时间调整和紧急情况处理等功能。

2.2总体设计

单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。

2.2.1通行方案设计

十字路口分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。

其具体状态如图所示。

说明:

黑色表示亮,白色表示灭。

交通状态从状态1开始变换,直至状态4然后循环至状态1,周而复始。

S1东西通行S2东西禁行过渡状态

S3南北通行S4南北禁行过渡状态

通过对具体的十字路口交通信号灯状态的演示分析,可以把这四个状态归纳如下:

状态S1:

东西方向绿灯亮,允许通行,南北方向红灯亮,禁止通行;

状态S2:

东西方向绿灯转黄灯闪烁,允许通行,南北方向红灯亮,禁止通行;

状态S3:

东西方向红灯亮,禁止通行,南北方向绿灯亮,允许通行;

状态S4:

东西方向红灯亮,禁止通行,南北方向绿灯转黄灯闪烁,允许通行;

依据上述分析,东西的通行时间为状态S1和状态S2的时间之和,南北的通行时间为状态S3和状态S4的时间之和。

2.2.2硬件设计方案

2.2.2.1AT89C52单片机芯片简介

AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。

2.2.2.2AT89C52单片机引脚图

本系统选用Atmel公司的AT系列单片机AT89C52为中心器件设计交通信号灯控制器,实现了红绿灯循环点亮,绿灯变红灯中间为黄灯闪烁警示的功能。

每个方向采用红绿黄三色的LED灯的亮灭来模拟信号灯,采用两位八段共阳数码管,显示十字路口通行或禁止的剩余时间。

2.2.3软件设计方案

设计要求为:

首先南北方向红灯、东西方向绿灯亮,南北方向红灯13秒、东西方向绿灯9秒,相应的数码管显示对应的数字并读秒,同时南北方向红色的二极管和东西方向的绿色二极管接通点亮显示,当东西方向的绿灯时间到,则东西方向的绿灯转为黄灯,同时数码管显示黄灯的时间3秒,东西方向的黄色二极管接通点亮,此时南北方向的红灯不变。

南北方向的红灯和东西方向的黄灯时间同时到,此时南北方向的红灯跳转为绿灯,时间同样为9秒,东西方向有黄灯跳转为红灯,时间为13秒。

当南北方向的绿灯时间到,南北绿灯跳转为黄灯,东西方向的红灯不变,当南北方向的黄灯和东西方向的红灯时间到,南北方向的黄灯跳转为红灯,东西方向的红灯跳转为绿灯。

进入开始的状态,循环执行。

根据设计要求编写C语言程序。

软件采用KEILC语言完成。

3交通信号灯控制系统硬件设计

3.1系统硬件框图

根据设计的要求,单片机选用AT89C52,其内部带有8KB的FLASHROM,设计时无需外接程序存储器,为设计和调试带来极大的方便。

四个方向各采用三个不同色的LED灯和1个两位的数码管显示,来实现该方向的指示灯的点亮时间倒计时。

按键可以根据系统的需要进行操作。

 

系统硬件框图

3.2单元电路设计

3.2.1单片机最小系统

对51系列单片机来说,单片机要正常工作,必须具有五个基本电路,也称五个工作条件:

1、电源电路,2、时钟电路,3、复位电路,4、程序存储器选择电路,5、外围电路。

因此,单片机最小系统一般应该包括单片机、晶振电路、复位电路、外围电路等。

(1)电源电路设计

  单片机芯片的第40脚为正电源引脚VCC,一般外接+5V电压。

第20脚为接地引脚GND,常见电源电路设计如下图所示:

电源设计

  

(2)时钟电路设计

单片机是一种时序电路,必须要有时钟信号才能正常工作。

单片机芯片的18脚(XTAL2)、19脚(XTAL1)分别为片内反向放大器的输出端和输入端,只要在18脚(XTAL2)和19脚(XTAL1)之间接上一个晶振,再加上2个20PF的瓷片电容即可构成单片机所需的时钟电路,本设计就采用图所示时钟电路。

时钟电路

  (3)复位电路设计

单片机芯片的第9脚RST(Reset)是复位信号输入端。

单片机系统在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态等情况下都需要复位。

AT89C52单片机的复位靠外部电路实现,信号从RST引脚输入,高电平有效,只要保持RST引脚高电平2个机器周期,单片机就能正常复位。

复位电路

  (4)外围电路的设计

  外围电路的设计主要依据项目要实现的功能,本项目要实现的功能是用单片机控制交通信号灯。

3.2.2交通信号灯显示电路

本系统采用LED作为信号灯来使用,单片机的I/O口直接与LED连接。

在十字路口的四组红、黄、绿三色交通灯中,东西方向的同色灯连接在一起,南北方向的同色灯也彼此连接,受单片机AT89C52的P1.0—P1.5控制。

12个LED指示灯采用共阳极的连接方式,因此I/O口输出低电平时,与之相连的LED会亮,输出高电平时,LED熄灭。

3.2.3倒计时显示电路

该交通信号灯控制系统在正常工作情况下,为方便提示路上行人及车辆交通灯转换的剩余时间,专门为控制系统提供了一个倒计时的显示装置。

该装置采用2位八段数码管来显示,每个路口需要1个,共4个,在设计电路时,本系统采用用共阳数码管。

3.2.4电路原理图

 

4交通信号灯控制系统程序设计

4.1C语言程序编写

本系统程序采用KEILC编程,来控制交通信号灯的亮灭及时长。

程序如下:

/*#include*/

#include

#defineucharunsignedchar/*定义字符串类型为无符号型*/

ucharcodea[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

ucharcodeb[4]={0x0D,0x0E,0x07,0x0B};/****P2口,低有效*/

ucharcodec[4]={0xDE,0xDD,0xF3,0xEB};/****P1口,低有效*/

charSN=10,WE=13;

charSN_G=10,WE_G=10,Y=3;

uchari,k=0,count=0;

voiddelay(uchart);/*定义函数*/

voidlight();/*定义函数*/

voidled();/*定义函数*/

/*程序初始化*/

voidinit(void)

{

/*12MHz*/

TMOD=0x01;/**计数器用模式1,为16位计数器*****/

TH1=(65536-50000)/256;/*0x3C*/

TL1=(65536-50000)%256;/*0xB0*//*计50000个数,用时50ms*/

IT0=1;/*外部中断0为边沿触发方式*/

ET0=1;/*允许T0中断*/

TR0=1;/*启动计数器*/

EA=1;/*CPU开放总中断*/

}

/*定时函数*/

voidtime1(void)interrupt1

{

TH0=0x3c;

TL0=0xb0;/*计50000个数,用时50ms*/

count++;/*自增运算*/

if(count>=20)/*当count大于或等于20时,历时1s,执行程序*/

{

SN--;/*自减运算*/

WE--;/*自减运算*/

count=0;/*清零*/

if(SN==0||WE==0)/*当SN=0或者WE=0时,执行程序*/

{

k++;/*自增运算*/

if(k>3)/*当k>3时,执行程序*/

k=0;/*清零*/

switch(k)/*switch语句*/

{

case0:

SN=SN_G,WE=SN_G+Y;break;/*南北方向显示时间为南北方向绿灯通行时间,东西方向显示时间为南北方向绿灯通行时间加黄灯闪亮时间*/

case1:

SN=Y,WE=Y;break;/*东西南北方向显示时间均为黄灯闪亮时间*/

case2:

SN=WE_G+Y,WE=WE_G;break;/*南北方向显示时间为东西方向绿灯通行时间加黄灯闪亮时间,东西方向显示时间为东西方向绿灯通行时间*/

case3:

SN=Y,WE=Y;break;/*东西南北方向显示时间均为黄灯闪亮时间*/

}

}

}

}

/*延时t毫秒*/

voiddelay(uchart)

{

uchari;

for(t;t>0;t--)

{

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

{}

}

}

/*交通灯函数*/

voidlight()

{

P1=c[k];/*交通灯对应着k的值变化*/

if(P1==c[1]&&count==0)/*当南北方向亮黄灯且count=0时,执行程序*/

{

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;/*延时50ms*/

P1=0xDF;/*南北方向黄灯熄灭,东西方向亮红灯*/

}

else

if(P1==c[3]&&count==0)/*当东西方向亮黄灯且count=0时,执行程序*/

{

TH1=(65536-300000)/256;

TL1=(65536-300000)%256;/*延时50ms*/

P1=0xFB;/*南北方向亮红灯,东西方向黄灯熄灭*/

}

}

/*数码管函数*/

voidled()

{

P2=b[0],P0=a[SN%10];/*显示南北方向个位*/

delay(5);/*延时*/

P2=b[1],P0=a[SN/10];/*显示南北方向十位*/

delay(5);/*延时*/

P2=b[2],P0=a[WE%10];/*显示东西方向个位*/

delay(5);/*延时*/

P2=b[3],P0=a[WE/10];/*显示东西方向十位*/

delay(5);/*延时*/

}

voidmain(void)

{

init();/*调用程序初始化函数*/

for(;;)/*无条件循环*/

{

light();/*调用交通灯函数*/

led();/*调用数码管函数*/

}

}

5个人小结

这次是很有意义的一次课程设计,从原理图设计到软件仿真,我从中收获了许多。

刚开始设计时,我就在校门口仔细观察交通灯的转换,经过研究思考最终得到了上述的交通灯状态转换表。

在程序编写上,我选择了用KEILC语言进行编程。

在整个程序的编写过程中,采用模块化,编一个子程序仿真一个,通过Keil和proteus两个软件来实现的。

Keil帮助检查程序是否存在语法错误之类的问题,同时可以生成hex文件,供proteus软件仿真使用。

通过一周的课程设计,使我更深入的学习了AT89C52单片机。

6参考文献

[1]张毅坤.单片微型计算机原理及应用,西安电子科技大学出版社1998

[2]夏继强.单片机实验与实践教程.北京:

北京航空航天大学出版社,2001

[3]彭伟.单片机C语言程序设计100例.北京:

电子工业出版社,2009

[5]雷丽文.微机原理与接口技术.北京:

电子工业出版社,2001

[6]于永.51单片机C语言常用模块与综合系统设计.北京:

电子工业出版社,2007

[7]谭浩强.C语言程序设计.北京:

清华大学出版社,2005

[8]于永.51单片机C语言常用模块与综合系统设计.北京:

电子工业出版社,2007

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

当前位置:首页 > 幼儿教育 > 唐诗宋词

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

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