Programa en lenguaje C para el diseño de sistemas de control de semáforos.
//Producido por: Xiaojun
# include & ltreg52.h & gt
#Definición en 1
#Definición cerrada 0
Unsigned int, t_Light
Indicador de carácter sin firmar
sbit sn_green=p1^0
sbit sn_amarillo=p1^1; ;
sbit sn_red=p1^2;
sbit ew_green=p1^3;
sbit ew_amarillo=p1^4;
p>
sbit ew_red=p1^5;
inicialización nula (void)
{
TMOD = 0x 01;
EA = 1;
ET0 = 1;
TR0 = 1;
TH0 =(65536-50000)/256;
TL0 = (65536-50000)% 256;
}
Administrador no válido (no válido)
{
init();
while(1)
{
Cambiar (bandera)
{
Caso 1: p> p>
SN _ Verde = ON
SN _ Amarillo = OFF
SN _ Rojo = OFF
EW _ Verde = OFF p>
EW _ Amarillo = APAGADO
EW _ Rojo = Encendido;
Pausa;
Caso 2:
SN _ Verde = APAGADO
SN _ Amarillo = encendido;
SN _ Rojo = APAGADO
EW _ Verde = APAGADO
EW _ Amarillo = Abierto;
EW _ Rojo = APAGADO
Pausa;
Caso 3:
SN _ Verde = APAGADO
SN _ Amarillo = APAGADO
SN _ Rojo = ENCENDIDO
EW _ Verde = Encendido;
EW _ Amarillo = APAGADO
EW _ Rojo = APAGADO
Pausa;
}
}
}
Temporizador no válido ( void) La interrupción 1 usa 0
{
TH0 = (65536-50000)/256
TL0 = (65536-50000)% 256; /p> p>
t++;
si (t==18)
{
t = 0;
t_light++ ;
if(t_Light & lt;=30)
{
bandera = 1;
}
else if(t _ Light & lt;=34)
{
bandera = 2;
}
else if(t_Light<88)
{
bandera = 3;
if(t_Light = = 88)t_Light = 0 ;
}
}
}