51单片机实现交通灯控制程序51单片机实现交通灯控制程序
2010-04-28 23:02
当出现交通事故时,按下单片机右侧开关,所有红灯亮,交通停止,通行时间保
持,弹起开关,交通接停止时的时间继续进行 #include
#include
#define unchar unsigned char
#define unint unsigned int
sbit key=P3^2;
unchar code dis[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x9...
51单片机实现交通灯控制程序
2010-04-28 23:02
当出现交通事故时,按下单片机右侧开关,所有红灯亮,交通停止,通行时间保
持,弹起开关,交通接停止时的时间继续进行 #include
#include
#define unchar unsigned char
#define unint unsigned int
sbit key=P3^2;
unchar code dis[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,0xff
};
unint i,j,k; unint s;
unchar h;
void delay(unint c);
void cut0(); void cut1(); void cut2(); void cut3(); void cut4(); void cut5(); void cut6(); void cut7(); void main() {
TMOD=0X06;
TH0=0Xff;
TL0=0xff;
TR0=1;
EA=1;
EX0=1;
EX1=1;
ET0=1;
P1=0x00;
P3=0xff;
P0=0xf6;
P2=0xf5;
for(h=29;h>0;h--)
{ for(s=24;s>0;s--)
{
cut0();
P3=0xfc;
P1=0xff;
P3=0xfd;
P1=dis[h/10];
delay(1);
P3=0xfc;
P1=0xff;
P3=0xfe;
P1=dis[h%10];
delay(1);
}
}
for(h=4;h>0;h--)
{
cut1();
P2=0xf3;
delay(10);
P2=0xf7;
delay(10);
P3=0xfc;
P1=0xff;
P3=0xfe;
P1=dis[h%10];
delay(20);
}
P2=0xee;
for(h=29;h>0;h--)
{ for(s=24;s>0;s--)
{
cut2();
P3=0xfc;
P1=0xff;
P3=0xfd;
P1=dis[h/10];
delay(1);
P3=0xfc;
P1=0xff;
P3=0xfe;
P1=dis[h%10];
delay(1);
}
}
for(h=4;h>0;h--)
{
cut3();
P2=0xde;
delay(10);
P2=0xfe;
delay(10);
P3=0xfc;
P1=0xff;
P3=0xfe;
P1=dis[h%10];
delay(20);
}
P2=0xf6;
P0=0xf5;
for(h=29;h>0;h--)
{ for(s=24;s>0;s--)
{
cut4();
P3=0xfc;
P1=0xff;
P3=0xfd;
P1=dis[h/10];
delay(1);
P3=0xfc;
P1=0xff;
P3=0xfe;
P1=dis[h%10];
delay(1);
}
}
for(h=4;h>0;h--)
{
cut5();
P0=0xf3;
delay(10);
P0=0xf7;
delay(10);
P3=0xfc;
P1=0xff;
P3=0xfe;
P1=dis[h%10];
delay(20);
}
P0=0xee;
for(h=29;h>0;h--)
{ for(s=24;s>0;s--)
{
cut6();
P3=0xfc;
P1=0xff;
P3=0xfd;
P1=dis[h/10];
delay(1);
P3=0xfc;
P1=0xff;
P3=0xfe;
P1=dis[h%10];
delay(1);
}
}
for(h=4;h>0;h--)
{
cut7();
P0=0xde;
delay(10);
P0=0xfe;
delay(10);
P3=0xfc;
P1=0xff;
P3=0xfe;
P1=dis[h%10];
delay(20);
}
}
void delay(unint c)
{
while(c--)
for(j=1500;j>0;j--);
}
void cut0() {
key=1;
if(key==0)
while(1)
{
P2=0xf6;
key=1;
if(key==1)
{
P2=0xf5;
break ;
}
}
}
void cut1() {
key=1;
if(key==0)
while(1)
{
P2=0xf6;
key=1;
if(key==1)
{
P2=0xf7;
break ;
}
}
}
void cut2() {
key=1;
if(key==0)
while(1)
{
P2=0xf6;
key=1;
if(key==1)
{
P2=0xee;
break ;
}
}
}
void cut3() {
key=1;
if(key==0)
while(1)
{
P2=0xf6;
key=1;
if(key==1)
{
P2=0xfe;
break ;
}
}
}
void cut4() {
key=1;
if(key==0)
while(1)
{
P0=0xf6;
key=1;
if(key==1)
{
P0=0xf5;
break ;
}
}
}
void cut5() {
key=1;
if(key==0)
while(1)
{
P0=0xf6;
key=1;
if(key==1)
{
P0=0xf7;
break ;
}
}
}
void cut6() {
key=1;
if(key==0)
while(1)
{
P0=0xf6;
key=1;
if(key==1)
{
P0=0xee;
break ;
}
}
}
void cut7() {
key=1;
if(key==0)
while(1)
{
P0=0xf6;
key=1;
if(key==1)
{
P0=0xfe;
break ;
}
}
}
本文档为【51单片机实现交通灯控制程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。