#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();
}
}
这个是简单交通灯实验 在开发板上没有现象 请大虾们指点指点不胜感激
|