单片机控制红绿灯系统.docx
- 文档编号:29538586
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:13
- 大小:111.62KB
单片机控制红绿灯系统.docx
《单片机控制红绿灯系统.docx》由会员分享,可在线阅读,更多相关《单片机控制红绿灯系统.docx(13页珍藏版)》请在冰豆网上搜索。
单片机控制红绿灯系统
1、方案论证
1.1设计任务
设计基于单片机的智能交通红绿灯控制系统,要求能通过按键或遥控器设置系统参数,系统运行时,“倒计时等信息”能通过数码管或点阵发光管显示,设计时应考虑交通红绿灯控制的易操作性及智能性。
以单片机的最小系统为基础设计硬件,用汇编语言、或C语言设计软件。
通过本设计可以培养学生分析问题和解决问题的能力,掌握Mcs51单片机的硬件与软件设计方法,从而将学到的理论知识应用于实践中,为将来走向社会奠定良好的基础。
东西(A)、南北(B)两干道交于一个十字路口,各干道有一组红、黄、绿三个指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行,黄灯亮时车辆及行人小心通过。
红灯的设计时间为45秒,绿灯为40秒,黄灯为5秒,黄灯亮时蜂鸣器响。
1.2方案介绍
采用分模块设计的思想,程序设计实现的基本思想是一个计数器,选择一个单片机,其内部为一个计数,是十六进制计数器,模块化后,通过设置或程序清除来实现状态的转换,由于每一个模块的计数多不是相同,这里的各模块是以预置数和计数器计数共同来实现的,所以要考虑增加一个置数模块,其主要功能细分为,对不同的状态输入要产生相应状态的下一个状态的预置数,如图中A道和B道,分别为次干道的置数选择和主干道的置数选择。
2、交通灯系统硬件设计
2.1单片机概述
单片机是由运算器、控制器、存储器、输入设备以及输出设备共五个基本部分组成的。
单片机是把包括运算器、控制器、少量的存储器、最基本的输入输出口电路、串行口电路、中断和定时电路等都集成在一个尺寸有限的芯片上。
通常,单片机由单个集成电路芯片构成,内部包含有计算机的基本功能部件:
中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
2.2系统构成
电路板一块,AT89S51单片机一片,7448芯片2片,七段数码管八个。
发光二极管6个(2个绿的,2个红的,2个黄的),100欧姆电阻20个,2个按键,2个开关,51K欧姆电阻2个,5V稳定电源1个,3个电容。
系统结构框图:
图1系统结构框图
系统工作流程:
(1)程序初始,通过两个传感器来判断南北与东西方向车辆通行情况。
(2)情况判定后由AT89S51单片机p2口输出二进制信号控制红绿黄灯亮的情况。
(3)确定那些灯亮后,由对应的七段数码管来进行到计时显示。
由p1口输出来控制七段数码管的显示。
(5)LED采用5V的直流电来驱动,低电平。
3芯片介绍及部分电路说明
3.1AT89S51芯片
选用的AT89S51与同系列的AT89C51在功能上有明显的提高,最突出是的可以实现在线的编程。
用于实现系统的总的控制。
其主要功能列举如下:
1)为一般控制应用的8位单片机
2)晶片内部具有时钟振荡器(传统最高工作频率可至33MHz)
3)内部程式存储器(ROM)为4KB
4)内部数据存储器(RAM)为128B
5)外部程序存储器可扩充至64KB
6)外部数据存储器可扩充至64KB
7)32条双向输入输出线,且每条均可以单独做I/O的控制
8)6个中断向量源
9)2组独立的16位定时器
10)1个全双工串行通信端口
11)8751及8752单芯片具有数据保密的功能
12)单芯片提供位逻辑运算指令
图2AT89C52芯片
3.2数码管显示部分电路
七段显示译码器输出低电平有效,用以驱动共阳极显示器。
该集成显示译码器设有多个辅助控制端,以增强器件的功能,可将单片机输出的四位二进制数转换成10进制数与七段数码管显示对应,用于显示0—9的数字。
图3数码管显示电路
其中LT为测试输入。
3.3红绿LED信号显示灯
LED灯的显示原理:
通过同名管脚上所加电平的高低来控制发光二极管是否点亮。
如下图:
图4红绿LED信号显示
3.4蜂鸣器电路
这个电路主要用于黄灯亮时蜂鸣器响五秒。
图5蜂鸣器电路
4交通灯软件设计
4.1程序设计流程图
程序设计框图
图6程序设计框图
4.2源程序代码
程序代码分为几个模块:
中断模块,循环模块,延时模块。
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitW0=P0^3;
sbitW1=P0^0;
sbitW2=P0^1;
sbitW3=P0^2;
sbitBuzzer=P0^4;
/***************************路口1*****************************************/
sbitRED1=P2^0;
sbitYELLOW1=P2^1;
sbitBULLE1=P2^2;
/**************************路口2******************************************/
sbitRED2=P2^7;
sbitYELLOW2=P2^6;
sbitBULLE2=P2^5;
/****************设置红绿灯标志位****************************************/
ucharFlage0,Flage1,Flage2,Flage3;
uintn1,n2,n3,n4;
ucharcodeTable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
voidDelay_us(uintus);
voidDisplay(ucharNum1,ucharNum2,ucharNum3,ucharNum4);
voidInit_Chip(void);
intmain()
{
Init_Chip();
while
(1)
{
if(Flage2==0)
{
Display(n3/100,n3%100/10,n4/100,n4%100/10);
RED1=0;YELLOW1=1;BULLE1=1;
RED2=1;YELLOW2=1;BULLE2=0;
if(Flage1==1)
{
RED1=0;YELLOW1=1;BULLE1=1;
RED2=1;YELLOW2=0;BULLE2=1;
Buzzer=0;
Display(0,n2/10,n4/100,n4%100/10);
}
Buzzer=1;
}
if(Flage2!
=0)
{
Display(n4/100,n4%100/10,n3/100,n3%100/10);
RED1=1;YELLOW1=1;BULLE1=0;
RED2=0;YELLOW2=1;BULLE2=1;
if(Flage1==1)
{
RED1=1;YELLOW1=0;BULLE1=1;
RED2=0;YELLOW2=1;BULLE2=1;
Buzzer=0;
Display(n4/100,n4%100/10,0,n2/10);
}
Buzzer=1;
}
}
return0;
}
/**********************初始化********************************************/
voidInit_Chip(void)
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
RED1=0;YELLOW1=1;BULLE1=1;
RED2=1;YELLOW2=1;BULLE2=0;
n2=50;n3=450;n4=500;
}
/***********************显示*********************************************/
voidDisplay(ucharNum1,ucharNum2,ucharNum3,ucharNum4)
{
W0=0;
Delay_us(5);
P1=Table[Num1];
W0=1;
W1=0;
Delay_us(5);
P1=Table[Num2];
W1=1;
W2=0;
Delay_us(5);
P1=Table[Num3];
W2=1;
W3=0;
Delay_us(5);
P1=Table[Num4];
W3=1;
}
/***************************延时*****************************************/
voidDelay_us(uintus)
{
uintx,y;
for(x=us;x>0;x--)
for(y=110;y>0;y--);
}
/************************中断服务程序************************************/
voidtimer0()interrupt1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;//================50ms初
n1++;
if(n1%50==0)
{
Buzzer=~Buzzer;
}
if(n1==15)
{
n1=0;
n2--;
n3--;
n4--;
if(n2==0)
{
n2=0;
Flage0=1;
Flage1=0;
}
if(n3==0)
{
n2=50;
n3=450;
Flage0=0;
Flage1=1;
}
if(n4==0)
{
n2=50;
n3=450;
n4=500;
Flage0=0;
Flage1=0;
Flage2=~Flage2;
}
}
}
5、改进意见
6、心得体会
7、参考文献
参考文献
[1]胡汉才.单片机原理及其接口技术.清华大学出版.1996
[2]蔡美琴.MCS-51系列单片机系统及其应用.高等教育出版社.2004.2
[3]蒋万君.在论循环时序电路的简便设计.机电一体化.2005.5
[4]何立民.MCS-51系列单片机应用系统设计.北京航空航天大学出版社.1995.
[5]李华.MCS-51系列单片机实用接口技术.北京航空航天大学出版社.1993
[6]周航慈.单片机应用程序设计技术.北京航空航天大学出版社.1991.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 控制 红绿灯 系统