硬件连基于AT89C51单片机的交通信号灯控制系统文档格式.docx
- 文档编号:21757197
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:16
- 大小:37.18KB
硬件连基于AT89C51单片机的交通信号灯控制系统文档格式.docx
《硬件连基于AT89C51单片机的交通信号灯控制系统文档格式.docx》由会员分享,可在线阅读,更多相关《硬件连基于AT89C51单片机的交通信号灯控制系统文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
}
}
voidTraffic_lignt()
switch(Operation_Type)
case1:
RED_A=1;
YELLOW_A=1;
GREEN_A=0;
RED_B=0;
YELLOW_B=1;
GREEN_B=1;
DelayMS(2000);
Operation_Type=2;
break;
case2:
DelayMS(200);
YELLOW_A=~YELLOW_A;
if(++Flash_Count!
=10)
return;
Flash_Count=0;
Operation_Type=3;
case3:
RED_A=0;
GREEN_A=1;
RED_B=1;
GREEN_B=0;
Operation_Type=4;
case4:
YELLOW_B=~YELLOW_B;
Operation_Type=1;
voidmain()
while
(1)
Traffic_lignt();
一、设计目的:
在完成“单片机原理及应用”课程的学习后,通过设计小型的单片机应用系统,加深对所学知识的理解和提高单片机系统的设计能力。
二、设计任务和要求:
1、设计任务:
设计基于AT89C51单片机的十字路口交通灯控制电路。
2、具体要求:
(1)设计硬件电路,包括:
单片机最小系统、2位LED数码管显示器、3个按钮的键盘(SET、UP、DOWN)、12个led指示灯(红黄绿三种颜色,东西并联、南北并联),等。
(2)基本功能:
要求东西方向(A方向)车道和南北方向(B方向)车道两条交叉道路上的车辆交替通行,每次通行时间为N秒(红灯、绿灯亮的时间为N秒,N≤60S),可以设置。
在绿灯转为红灯时,要求黄灯先亮3秒(固定),才能交换运行车道。
剩余秒数显示:
2位LED数码管,倒计时方式:
(N+3)~1可选的扩展功能:
黄灯亮时,要求0.5s闪烁一次。
A方向、B方向的通行时间可以不同,如:
A方向通行50s,B方向通行30s。
AT89X51.H>
unsignedchartemp;
unsignedcharkey;
unsignedchari,j;
unsignedcharSTH0;
unsignedcharSTL0;
unsignedintcodetab[]={64021,64103,64260,64400,
64524,64580,64684,64777,
64820,64898,64968,65030,
65058,65110,65157,65178};
voidmain(void)
TMOD=0x01;
ET0=1;
EA=1;
while
(1)
P3=0xff;
//将P3口取出
P3_4=0;
//使P3_4为低电平,这样可以判断第一竖排有没有键按下
temp=P3;
temp=temp&
0x0f;
if(temp!
=0x0f)//有键按下
for(i=50;
i>
i--)
for(j=200;
j>
j--);
//延时
=0x0f)//再判断是否有键按下
switch(temp)//判断是哪个键按下
case0x0e:
key=0;
break;
case0x0d:
key=1;
case0x0b:
key=2;
case0x07:
key=3;
P1_0=~P1_0;
P0=table[key];
STH0=tab[key]/256;
//找出键对应的频率的时间,作为定时器中断初始值
STL0=tab[key]%256;
TR0=1;
while(temp!
=0x0f)
TR0=0;
P3_5=0;
//跟上面差不多,现在是判断第二排的按键
switch(temp)
key=4;
key=5;
key=6;
key=7;
P3_6=0;
key=8;
key=9;
key=10;
key=11;
P3_7=0;
key=12;
key=13;
key=14;
key=15;
voidt0(void)interrupt1using0
TH0=STH0;
TL0=STL0;
思路:
红灯停,绿灯行,黄灯闪烁提示行人红绿灯即将切换。
四个方向各有一个红、黄、绿显示和两个数码管。
东西道为人行道(20秒),南北道为车行道(60秒),黄灯延时最后三秒时,闪烁并切换。
三、硬件电路设计
此电中路设计采用AT89C51单片机,74LS47(数码管驱动)74LS373(数码管驱动输出锁存),8个数码管显示其延时值,四个红、黄、绿指示灯。
硬件设计关键在于,延时显示时,要考虑到当个位数字显示时,要确保十位数字显示输出的不变。
因此,可加输出锁存器。
在延时最后三秒时,要让黄灯进行闪烁,并同时显示数字(这一步在软件设计上很关键)。
四、软件程序(C语言)
以下是整个设计的软件程序,直接可以编译成*。
Hex代码。
通过以上电路,下载到单片机,可直接运行。
//*****************************//
//程序名:
十字路口交通灯控制
//编写人:
黄庭剑
//初写时间:
2009年1月2日
//程序功能:
南北为车行道,延时60秒;
东西方向为人行道,延时20秒,且在最后3秒黄灯显示2秒钟再实现切换.
//CPU说明:
AT89C51型单片机;
24MHZ晶体振荡器
//完成时间:
2009年1月6日
#include<
stdio.h>
reg51.h>
intrins.h>
sfrp0=0x80;
sfrp1=0x90;
sfrp2=0xA0;
sfrp3=0xb0;
//这部分内容其实在“#include<
”里已经有,但里面定义的必须区分大小写,在这里,因为我程序采用的是小写,reg51.h里对各个端口与寄存器的定义都是大写,所以在编译连接时,会报错,所以,在本设计程序里,我只用到了端口,在这里也就只定义了四个,而没有去改reg51.h里面的内容。
其实两者是一样的。
sbitsw=p0^0;
sbitOE=P0^6;
sbitLE=P0^7;
//74LS373锁存器控制端定义
chardisplay[]={0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99};
//p1口的数码管时间显示调用,利用74L74BCD码,8位驱动输出;
//函数声明begin
voiddelay1(intcount);
voiddelay_long(intnumber1,intnumber2);
voidpeople_car_drive();
//函数声明end
//***********************//延时子程序
voiddelay1(intcount)
{inti;
for(i=count;
{;
}
voiddelay_long(intnumber1,intnumber2)
inta,b;
for(a=number1;
a>
a--)
for(b=number2;
b>
b--)
{_nop_();
//**********************//延时子程序
voidpeople_car_drive()
intp_1=2,i,j=9,p_2=6;
//****************//行人通行时,延时20秒
p2=0x09;
//南北红灯亮
p3=0x24;
//东西绿灯亮
while(p_1-->
0)
{LE=1;
OE=0;
if(p_1==0){OE=1;
}//当十位数减到0时,只显示个位数
p1=display[p_1];
delay1(1000);
LE=0;
j=9;
for(i=10;
{
if(p_1==0&
&
j==3)break;
//减到3时退出循环,让其黄灯闪烁显示
p1=display[j--];
delay_long(16000,2);
if(sw==1)return;
}
//*******************************************************************************//
p2=0x12;
//南北黄灯闪烁三秒,以提醒行人注意
p3=0x12;
p1=display[3];
delay_long(8000,1);
p2=0x00;
p3=0x00;
delay_long(14000,1);
p1=display[2];
p1=display[1];
//*****************以下是车辆通行时延时60秒//
p2=0x24;
//南北绿灯亮
p3=0x09;
//东西红灯亮
while(p_2-->
if(p_2==0){OE=1;
p1=display[p_2];
if(p_2==0&
//减到2时退出循环
//南北黄灯闪烁三秒完毕
voidmain()//主函数入口处
p0=0x01;
p1=0x00;
//初始化各端口
{while
(1)
if(sw==0)
{people_car_drive();
else
//关闭所有交通灯}
参考:
1
|评论
.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 硬件 基于 AT89C51 单片机 交通 信号灯 控制系统
![提示](https://static.bdocx.com/images/bang_tan.gif)