自动控制交通灯C语言程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
SIGN=TIM;
}
if(KEY2==0)
{
delay(5);
while(KEY2==0)
{
seg1(TIM);
seg2(TIM-3);
}
delay(5);
TIM--;
if(TIM<4)
{
TIM=99;
}
SIGN=TIM;
}
if(KEY4==0)
{
delay(5);
while(KEY1==0);
delay(5);
TR1=1;
ET1=1;
TH1=(65535-500Fra Baidu bibliotek0)%255;
TL1=(65535-50000)/255;
}
void UT1_INIT()
{
EA=0;
TMOD=0X00;
TR1=0;
ET1=0;
TH1=0;
TL1=0;
}
void erro()
{
hong_D=0;
lv_D=1;
huang_D=1;
TIM=SIGN;
}
void INT()
{
EA=1;
TMOD=0X01;
TR0=1;
ET0=1;
TH0=0X3C;
TL0=0X2B;
}
void UINT()
{
EA=0;
TMOD=0X00;
TR0=0;
ET0=0;
TH0=0X00;
TL0=0X00;
}
void T1_INIT()
{
EA=1;
TMOD=0X10;
sbit DIG2=P2^7;
sbit EN2=P2^2;
sbit DIG3=P2^4;
sbit DIG4=P2^5;
sbit KEY1=P3^0;
sbit KEY2=P3^1;
sbit KEY3=P3^2;
sbit KEY4=P3^3;
sbit KEY5=P2^0;
sbit KEY6=P2^1;
void keyscan();
{
if(FLAG2)
{
huang_D=0;
huang_B=0;
}
else
{
huang_D=1;
huang_B=1;
}
if(KEY6==0)
{
delay(5);
while(KEY6==0);
delay(5);
break;
}
}
}
void keyscan()
{
if(KEY3==0)
{
delay(5);
UINT();
uint M,N;
void delay(uint n)
{
uint x,y;
for(x=n;x>0;x--)
for(y=110;y>0;y--);
}
void seg1(uint x)
{
DIG1=0;
P0=SMG[x/10];
delay(1);
DIG1=1;
P0=0X00;
DIG2=0;
P0=SMG[x%10];
hong_B=0;
lv_B=1;
huang_B=1;
BEEP=0;
P0=0x00;
while(KEY5!=0);
delay(5);
while(KEY5==0);
BEEP=1;
delay(5);
}
void night()
{
hong_D=1;
lv_D=1;
hong_B=1;
lv_B=1;
while(1)
bit FLAG,FLAG2;
sbit hong_D=P1^0;
sbit lv_D=P1^1;
sbit huang_D=P1^2;
sbit hong_B=P1^3;
sbit lv_B=P1^4;
sbit huang_B=P1^5;
sbit BEEP=P3^4;
sbit EN1=P2^3;
sbit DIG1=P2^6;
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
const uchar SMG[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6F};
uchar NUM,SIGN=10,TIM,TIM2;
INT();
break;
}
seg1(TIM);
seg2(TIM-3);
}
}
if(KEY5==0)
{
delay(5);
UINT();
while(KEY5==0);
delay(5);
erro();
INT();
}
if(KEY6==0)
{
delay(5);
UINT();
T1_INIT();
while(KEY6==0);
delay(1);
DIG2=1;
P0=0X00;
}
void seg2(uint x)
{
DIG3=0;
P0=SMG[x/10];
delay(1);
DIG3=1;
P0=0X00;
DIG4=0;
P0=SMG[x%10];
delay(1);
DIG4=1;
P0=0X00;
}
void init()
{
P1=0X00;
delay(5);
night();
UT1_INIT();
INT();
}
}
void main()
{
init();
delay(3000);
FLAG=1;
INT();
while(1)
{
if(TIM>3)
{
lv_D=FLAG;
huang_D=1;
hong_D=!FLAG;
lv_B=!FLAG;
huang_B=1;
seg2(TIM);
}
keyscan();
}
}
void time0() interrupt 1
{
TL0=0XB0;
TH0=0X3C;
NUM++;
if(NUM==20)
{
NUM=0;
TIM--;
if(TIM==0)
{
TIM=SIGN;
FLAG=!FLAG;
}
}
}
void time1() interrupt 3
while(KEY3==0);
delay(5);
if(TIM<4)
{
TIM=SIGN;
}
SIGN=TIM;
while(1)
{
if(KEY1==0)
{
delay(5);
while(KEY1==0)
{
seg1(TIM);
seg2(TIM-3);
}
delay(5);
TIM++;
if(TIM>99)
{
TIM=4;
{
TH1=0x3c;
TL1=0x2b;
TIM2++;
if(TIM2==10)
{
TIM2=0;
FLAG2=!FLAG2;
}
}
互相学习可以加QQ:842592293
hong_B=FLAG;
if(FLAG)
{
seg1(TIM);
seg2(TIM-3);
}
else
{
seg1(TIM-3);
seg2(TIM);
}
}
if(TIM<4)
{
lv_D=1;
huang_D=FLAG;
hong_D=!FLAG;
lv_B=1;
huang_B=!FLAG;
hong_B=FLAG;
seg1(TIM);
相关文档
最新文档