51单片机红绿灯课程设计Word下载.docx
- 文档编号:17405778
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:15
- 大小:19.33KB
51单片机红绿灯课程设计Word下载.docx
《51单片机红绿灯课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《51单片机红绿灯课程设计Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
设计要求系统能调理灯亮时间,并可办理紧迫状况,我研究了两种方
案:
采纳8155扩展I/O口及键盘,显示等。
该方案的长处是:
使用灵巧可编程,而且有RAM,及计数器。
若用该
方案,可供给好多I/O口,但操作起来稍显复杂。
直接在I/O口线上接上按键开关。
因为该系统关于交通灯及数码管的控制,只用单片机自己的I/O口就
可实现,且自己的计数器及RAM已经够用。
综上所述,选择方案二。
单片机交通控制系统的通行方案设计
设在十字路口,分为东西向和南北向,在任一时辰只有一个方向通行,另一方向禁行,连续一准时间,经很短暂的过渡时间,将通行禁行方向对调。
其详细状态以以以下列图所示。
说明:
黑色表示亮,白色表示灭。
交通状态从状态1开始变换,直至状态6今后循环至状态1,循环往复,即以以以下列图:
图1交通状态
本系统采纳MSC-51系列单片机AT89C51作为中心器件来设计交通灯控制器。
实现以下功能:
初始东西绿灯亮,南北红灯亮,东西路口车通行,时隔24s,黄灯
闪耀6次。
今后,南北绿灯亮,东西红灯亮,方向开始通车,时隔
24s,南北黄灯闪耀6次,今后又切换成东西方向通车,这样重复。
当发生交通不测(中止产生)时,所有亮红灯,进行交通事故的办理。
当事故办理完成(再次按中止键),从头按上述方式工作。
当南北路口的流量大时,可以增添南北路口亮绿灯的时间,当东
西路口的流量大时,可以增添东西路口亮绿灯的时间,结束后调回正常状态。
下边我们可以用图表表示灯状态和行止状态的关系以下
东西南北四个路口均有红绿黄3灯和数码显示管2个,在任一个路口,遇红灯严禁通行,转绿灯赞同通行,今后黄灯亮警示行止状态将变换。
状态及红绿灯状态如表1所示。
0表示灭,1表示亮。
单片机智能交通灯控制系统的基本构成及原理
单片机设计智能交通灯控制系统,可用单片机直接控制交通讯号灯的状态变化,实现倒计时、紧迫状况办理与时间调整等功能。
(论文)
据此,本设计系统以单片机为控制核心,连结成最小系统,由按键设置模块产生输入,信号灯状态模块、LED倒计时模块接受输出。
系统的整体框图如上所示。
单片机上电后,系统进入正常工作状态,履行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上及时显示。
在此过程中随时经过键盘调用急停按键和时间调理中止。
交通灯系统硬件设计
此设计采纳的是AT89C51单片机为内部控制芯片,外面接有按键中止电路以及复位电路之外,还有4个两位数码管,用以倒计时和4个路口的灯,共12个LED灯。
四川信息职业技术学院毕业设计说明书
第
页5
第二章交通灯系统硬件设计
此设计采纳的是AT89C51单片机为内部控制芯片,外面接有按键中止电路以及复位电路之外,还有4个两位数码管,用以倒计时和4个路
口的灯,共12个LED灯。
系统框架图
电路板一块,AT89S51单片机一片,八段LED数码管四个。
发光二极管12个(4个绿的,4个红,4个黄的),8个电阻,2个电容,1个晶振,1个电解电容,1个按键开关。
(系统构造框图:
图)
MSC-51芯片简介
MCS-51单片机内部构造
8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的解说。
8051单片机包括中央办理器、程序存储器(ROM)、数据存储器(RAM)、准时/计数器、并行接口、串行接口和中止系统等几大单元及数据总线、地点总线和控制总线等三大总线,此刻我们分别加以说明:
·
中央办理器:
中央办理器(CPU)是整个单片机的核心零件,是8位数据宽度的办理
器,能办理8位二进制数据或代码,CPU负责控制、指挥和调动整个
单元系统协调的工作,完成运算和控制输入输出功能等操作。
数据存储器(RAM)
8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是一致编址的,专用寄存器只好用于寄存控制指令数据,用户只
能接见,而不可以用于寄存用户数据,所以,用户能使用的RAM只有
128个,可寄存读写的数据,运算的中间结果或用户定义的字型表。
LED显示数码管
八段LED显示器由八个发光二极管构成。
此中7个长条形的发光管排
列成“日”字形,另一个圆点形的放光管在显示器的右下角作为显示
小数点用,它能显示各样数字及部分英文字母。
LED显示器有两种不
同的形式:
一种是8个发光二极管的阳极都连在一同的,称为共阳极
LED显示器如图2-2所示;
另一种是8个发光二极管的阴极都连在一
起的,称为共阴极LED显示器
晶体振荡器
石英晶体振荡器的特色是振荡频次正确、电路构造简单、频次易调整,
作用是为系统供给基本的时钟信号。
我们在晶体某一方向加一电场,
进而在与此垂直的方向产活力械振动,有了机械振动,就会在相应的垂直面上产生电场,进而使机械振动和电场互为因果,这类循环过程向来连续到晶体的机械强度限制时,才达到最后坚固,这类压电谐振的频次即为晶体振荡器的固有频次。
附录
原程序代码
#include<
>
#defineuintunsignedint//宏定义
#defineucharunsignedchar//宏定义
ucharaa,cc,NBshi,NBge,DXshi,DXge,NBtemp,DXtemp;
//定义变量
sbitNBR=P3^0;
//南北红灯
sbitNBY=P3^1;
//南北黄灯
sbitNBG=P3^4;
//南北绿灯
sbitDXY=P3^5;
//东西黄灯
sbitDXG=P3^6;
//东西绿灯
sbitDXR=P3^7;
//东西红灯
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
//数字的代码从0-9
//数字的代码从0-9
voidinit();
//初始化子程序的声明
voiddisplayNB(ucharNBshi,ucharNBge);
//显示子程序的申
明voiddelay(uintz);
//延时子程序的声明
voidfenjieNB();
//南北数码管显示数字的分解函数voidfenjieDX();
//东
西数码管显示数字的分解函数
voidmain()
//显示子程序的声明
voiddelay(uintz);
//延时子程序的声明
//东西数码管显示数字的分解函数voidmain()
{
init();
//初始化子程序while
(1){
if(cc==82)//循环一次结束{cc=0;
//从头进行下一次循环
}
voiddelay(uintz)//带参数的延时函数
{ucharx,y;
//定义两个变量for(x=z;
x>
0;
x--)//循环延时
for(y=110;
y>
y--);
//循环延时
voidinit()//初始化子程序{EA=1;
//开总中止
ET0=1;
//赞同准时器0中止EX0=1;
//同不测面中止0中止TR0=1;
//启
动准时器0
TMOD=0x01;
//设置准时器0工作方式1
TH0=(65536-50000)/256;
//给准时器的高8为赋初值
TL0=(65536-50000)%256;
//给准时器的低8为赋初值
voidfenjieNB()//南北数码管显示数字的分解函数
{NBshi=NBtemp/10;
//将要显示的时间的十位赋给变量
NBge=NBtemp%10;
//将要显示的时间的个位赋给变量
NBtemp--;
voidfenjieDX()//东西数码管显示数字的分解函数
{DXshi=DXtemp/10;
DXge=DXtemp%10;
DXtemp--;
voiddisplayNB(ucharNBshi,ucharNBge)//带参数的数码管显示函数
//显示南北十位P2=0xfe;
P0=table[NBshi];
delay(5);
//显示南北个位
P2=0xfd;
P0=table[NBge];
delay(15);
voiddisplayDX(ucharDXshi,ucharDXge){
//东西十位
P2=0xfb;
P1=table[DXshi];
//东西个位
P2=0xf7;
P1=table[DXge];
voidtimer0()interrupt1//准时器0的中止函数
//重装计数初值
aa++;
if(aa==20)//判断准时1分钟能否到
aa=0;
//计数次数清0
if(cc==0)//南北亮红灯40秒,东西亮黄灯5秒
DXY=0;
//东西的黄灯亮
DXG=1;
//东西的绿灯不亮
DXR=1;
//东西的红灯不亮
NBY=1;
//南北的黄灯不亮
NBG=1;
//南北的绿灯不亮
NBR=0;
//南北的红灯亮
DXtemp=5;
//东西的黄灯亮5秒
NBtemp=40;
//南北的红灯亮40秒
elseif(cc==6)//南北连续亮红灯40秒,东西亮绿灯34秒
DXY=1;
//东西的黄灯不亮
DXG=0;
//东西的绿灯亮
DXtemp=34;
//东西的绿灯亮34秒
elseif(cc==41)//南北亮黄灯5秒,东西亮红灯40秒
DXR=0;
//东西的红灯亮
NBY=0;
//南北的黄灯亮
NBR=1;
//南北的红灯不亮
NBtemp=5;
//南北的黄灯亮5秒
DXtemp=40;
//东西的红灯亮40秒
elseif(cc==47)//南北亮绿灯34秒,东西连续亮红灯
40秒{
NBG=0;
//南北的绿灯亮
NBtemp=34;
//南北的绿灯亮34秒
fenjieNB();
//调用南北分解函数
fenjieDX();
//调用东西分解函数
cc++;
//判断亮灯的变量自加1
displayNB(NBshi,NBge);
//调用NB红灯40秒的显示程序
displayDX(DXshi,DXge);
//调用DX黄灯5秒的显示程序
voidJJZD()interrupt0//紧迫中止程序,南北东西都亮红灯
displayNB(0,0);
//南北数码管都显示0
displayDX(0,0);
//东西数码管都显示0
cc=0;
//重最开始显示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 红绿灯 课程设计