Basado en un microcontrolador (depuración de Keil), ayuda a diseñar un programa en lenguaje C para el control de semáforos. Gracias. . (Las instrucciones de montaje son demasiado problemáticas)
#include?lt;reg51.hgt;
#define?uchar?unsigned?char
#define?uint?unsigned?int
sbit?RED_A=?P0^0;
sbit?YELLOW_A?=?P0^1;
sbit?GREEN_A?=?P0^2;
sbit?RED_B=?P0^3;
sbit?YELLOW_B?=?P0^4;
sbit?GREEN_B?=?P0^5;
uchar?Flash_Count?=?0,?Operation_Type=1;
void?DelayMS(uint?x)
{ uchar?i; ?for?(i=0;ilt;120;i);
}
void?Traffic_Light()
{ cambiar?(Operation_Type) { caso ?1:
RED_A=1; YELLOW_A=1;
RED_B=1; 2000);
Operation_Type=2;
interrupción; caso?2:
DelayMS(300);
YELLOW_A=!YELLOW_A ;GREEN_A=1;
if( Flash_Count!=10)?return;
Flash_Count=0;
Operation_Type=3;
romper; caso?3:
RED_A=0; GREEN_A=1;
RED_B=1; p>DelayMS(2000);
Operation_Type=4;
interrupción; caso?4:
DelayMS(300);
YELLOW_B=!YELLOW_B;GREEN_B=1;
if( Flash_Count!=10)?return;
Flash_Count=0;
Operation_Type=1; p>
p>
romper; }
}
void?main()
{ while(1)?Traffic_Light();
}
Consulte la ilustración del diagrama del circuito.