Programación de lámparas
#include "reg51.h" //El archivo de encabezado contiene
//Definición de macro
#Definir uint entero sin signo
# Definir carácter uchar sin firmar
Cuando #define ON 0 //0, la luz está encendida.
#define OFF 1 //Se enciende a la 1.
//Definición de pin
//Luz amarilla en las carreteras Norte y Sur durante 3 segundos, luz roja durante 30 segundos, luz amarilla durante 3 segundos y luz verde durante 38 segundos.
//La luz amarilla de este a oeste es de 3 segundos, la luz verde es de 28 segundos, la luz amarilla es de 3 segundos y la luz roja es de 40 segundos.
sbit portdx _ yellow = p1^0; //luz amarilla este-oeste
sbit portdx _ red = p1^1; //luz roja este-oeste
sbit portdx _ green = p1^2; //luces verdes este y oeste
sbit port nb _ yellow = p1^3; //luces amarillas norte y sur
puerto sbit nb _ red = p1 ^4; //luz roja norte-sur
puerto sbit nb _ green = p1^5; //luz verde norte-sur
Retraso no válido (uint ms) //Retraso de milisegundos (AT89C52 @ 11.0592MHz)
{
uint ti
cuándo (milisegundos)
{
for(ti = 0;ti lt112;ti ){}//112
}
}
/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =/
Gerente General no válido (no válido)
{
Delay(400); //Retraso de inicio 400 ms.
while(1)
{
PortNB _ Yellow = ONPortNB _ Red = OFFPortNB _ Green = OFF//Las luces amarillas norte y sur están encendidas durante 3 segundos.
PortDX _ Amarillo = ONPortDX _ Rojo = OFFPortDX _ Verde = OFF//La luz amarilla este-oeste se enciende durante 3 segundos.
Retraso (3000);
PuertoNB _ Amarillo = APAGADOPuertoNB _ Rojo = ENCENDIDOPuertoNB _ Verde = APAGADO//Las luces rojas norte y sur están encendidas durante 28 segundos
PortDX _ Amarillo = OFFPortDX _ Rojo = OFFPortDX _ Verde = ON//Las luces verdes este y oeste están encendidas durante 28 segundos
Retraso (28000);
PortNB _ Amarillo = OFFPortNB _ Rojo = ONPortNB _ Verde = OFF//Las luces rojas norte y sur están encendidas durante 2 segundos.
PortDX _ Amarillo = ONPortDX _ Rojo = OFFPortDX _ Verde = OFF//La luz amarilla este-oeste está encendida durante 2 segundos.
Retraso (2000);
PortNB_Yellow = ONPortNB_Red = OFFPortNB_Green = OFF//Las luces amarillas norte y sur están encendidas durante 1 segundo.
PortDX _ Amarillo = ONPortDX _ Rojo = OFFPortDX _ Verde = OFF//La luz amarilla este-oeste está encendida durante 1 segundo.
Retraso (1000);
PuertoNB _ Amarillo = ONPortNB _ Rojo = OFFPortNB _ Verde = OFF//Las luces amarillas norte y sur estarán encendidas durante 2 segundos.
PortDX _ Amarillo = APAGADOPortDX _ Rojo = ENCENDIDOPortDX _ Verde = APAGADO//La luz roja este-oeste estará encendida durante 2 segundos.
Retraso (2000);
PortNB_Yellow = OFFPortNB_Red = OFFPortNB_Green = ON//Las luces verdes norte y sur están encendidas durante 38 segundos.
PortDX _ Amarillo = APAGADOPortDX _ Rojo = ENCENDIDOPortDX _ Verde = APAGADO//La luz roja este-oeste está encendida durante 38 segundos.
Retraso (3800);
}
}
1. Cuando es luz amarilla, las luces norte-sur y las luces este-oeste se encienden al mismo tiempo. La luz amarilla recuerda a los peatones o vehículos que el siguiente color de luz durará 3 segundos.
2. Cuando las luces norte-sur están en rojo, los vehículos que circulan por las carreteras norte-sur tienen prohibido pasar durante 30 segundos; cuando las luces norte-sur están en verde, los vehículos que circulan por las carreteras norte-sur están prohibidos; prohibido pasar durante 38 segundos.
3. Cuando el semáforo en la carretera este-oeste está en verde, el tráfico en la carretera este-oeste tardará 28 segundos; cuando el carril este-oeste está en rojo, el tiempo de tráfico en el este; -El carril oeste será de 40 segundos.
4. De esta forma, el tiempo y el orden de rojo, verde y amarillo que se muestran en la tabla anterior aparecen en secuencia, permitiendo a peatones y vehículos pasar de forma segura y fluida.