#include "reg52.h"
typedef unsigned char u8 ; //定義變量參//
typedef unsigned int u16 ;
sbit RED_A=P0^2; //A方向紅燈
sbit YELLOW_A=P0^3;//A方向黃燈
sbit GREEN_A=P0^4;//A方向綠燈
sbit REDC_A=P0^0; //A方向人行道紅燈
sbit GREENC_A=P0^1; //A方向人行道綠燈
sbit RED_B=P0^5;
sbit YELLOW_B=P0^6;
sbit GREEN_B=P0^7;
sbit REDC_B=P2^0;
sbit GREENC_B=P2^1;
void delay5s(void) //誤差 0us
{
unsigned char a,b,c;
for(c=165;c>0;c--)
for(b=100;b>0;b--)
for(a=150;a>0;a--);
}
void delay30s(void) //誤差 0us
{
unsigned char a,b,c,n;
for(c=254;c>0;c--)
for(b=232;b>0;b--)
for(a=253;a>0;a--);
for(n=2440;n>0;n--);
}
void jiaotongdeng()
{
switch()
{
case1 RED_A=1;GREEN_B=1;GREENC_B=1;REDC_A=0;
//A方向紅燈 B向綠燈 B向人行道綠燈 A向行道紅燈 亮燈
RED_B=0;YELLOW_B=0;REDC_B=0;GREEN_A=0;GREENC_A=0; YELLOW_A=0 ;
//B向紅燈 B黃燈 B向行道紅燈 A向綠燈 A向黃燈 A向行道綠燈 熄燈
delay30s;
RED_A=~RED_A;GREEN_B=~GREEN_B;GREENC_B=~GREENC_B;REDC_A=~REDC_A
//A方向紅燈 B向綠燈 B向人行道綠燈 A向行道綠燈 閃亮燈
YELLOW_A=0;GREEN_A=0;GREENC_A= 0;RED_B=0;YELLOW_B=0;REDC_B=0
//A方向黃燈 綠燈 行道綠燈 B方向紅燈 黃燈 行道紅燈 熄燈
delay5s;
break;
case2 RED_B=1;GREEN_A=1;GREENC_A=1;REDC_B=0; //B向紅燈亮燈
RED_A=0;YELLOW_B=0;REDC_A=0;GREEN_B=0;GREENC_B=0; YELLOW_B=0 ; //熄燈
delay30s;
RED_B=~RED_B;GREEN_A=~GREEN_A;GREENC_A=~GREENC_A;REDC_B=~REDC_B;
//A方向紅燈 B向綠燈 B向人行道綠燈 A向行道綠燈 閃亮燈
YELLOW_B=0;GREEN_B=0;GREENC_B= 0;RED_A=0;YELLOW_A=0;REDC_A=0
//A方向黃燈 綠燈 行道綠燈 B方向紅燈 黃燈 行道紅燈 熄燈
delay5s;
break;
}
}
void main()
{
while(1)
{
jiaotongdeng();
}
}
這個是簡單交通燈實驗 在開發板上沒有現象 請大蝦們指點指點不勝感激
|