1 / 12
文档名称:

单片机交通灯实验报告.docx

格式:docx   大小:240KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机交通灯实验报告.docx

上传人:jiyudian11 2022/8/31 文件大小:240 KB

下载得到文件列表

单片机交通灯实验报告.docx

相关文档

文档介绍

文档介绍:一、实验目的
通过仿真和实物搭建相结合,完成交叉口交通灯的设计,并掌握C51编程的 操作。
二、 实验内容及要求
模拟控制就是以红、绿、黄色 4 组 6 个发光二极管表示交通信号灯。每组有两位数码 倒计时显示。
正常情况下A、B道轮按下 {
delay(10);
if(add==0)
{
if(num==1) //增加数值
{
nn=1; temp1++; sum1=temp1;
if(temp1==100)
{ temp1=0;
} display(temp1);
}
if(num==2) //增加数值
nn=1;
temp2++; sum2=temp2;
if(temp2==100)
{
temp2=0;
} display(temp2);
}
if(num==3)
{
flag1=0; flag=0; display(temp1);
}
}
while(!add);
delay(5);
while(!add);
}
/*减少键或选择东西方向键*/
if(jian==0)
{
delay(10);
if(jian==0)
{
if(num==1)
{
nn=1;
//改变交通灯方向
//判断 add 是否按下
//增加数值
temp1--; sum1=temp1; if(temp1==-1) {
temp1=100;
} display(temp1);
}
if(num==2) //增加数值
{
nn=1;
temp2--; sum2=temp2;
if(temp2==-1)
{ temp2=100;
} display(temp2);
}
if(num==3) //改变交通灯方向
{
flag=1;
flag1=1; display(temp2);
}
} while(!jian);
delay(5);
while(!jian);
}
if(flag==0) //交通灯
{
ered=1;
ngreen=1;
nred=0;
egreen=0;
while((temp1>=0&&temp1<5&&nn==0)||(temp2>=0&&tem
p2<5&&nn==0))
{
// egreen=1;
eyellow=0;
delay(500);
eyellow=1;
delay(500);
}
}
if(flag==1)
{
nred=1;
egreen=1;
ered=0;
ngreen=0;
while((temp1>=0&&temp1<5&&nn==0)||(temp2>=0&&t emp2<5&&nn==0))
{
// ngreen=1;
nyellow=0;
delay(500);
nyellow=1;
delay(500);
}
}
}
}
void timer0() interrupt 1 //定时器 0
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time++;
if(time==10)
{
time=0;
if(flag1==0)
{
temp1--;
if(temp1==-1)
{
temp1=sum1;
flag=~flag;
flag1=~flag1; } if(flag!=1) display(temp1); else display(temp2);
}
else
{
temp2--;
if(temp2==-1)
{
temp2=sum2;
flag=~flag;
flag1=~flag1; } if(flag!=0) display(temp2); else display(temp1);
}
if(flag2==1)
{
// temp1=number;
// sum1=temp1;
// flag1=0;
}
else
if(flag2==2)
{
// temp2=number;
// sum2=temp2;
// flag1=1;
}
}
}
void UARTInterrupt(void) interrupt 4 {
if(RI)
{
RI = 0; flag2++;
if(flag2==3)
fl