Red de conocimiento informático - Conocimiento sistemático - Programación de lámparas

Programación de lámparas

//El siguiente código ha sido depurado por el software Keil C51.

#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.