Red de conocimientos sobre prescripción popular - Remedios caseros - El programa en lenguaje C me ayuda a escribir cada comentario. Cuanto más claro escriba, más puntos obtendré. Es mejor escribir en un formato (como está escrita la primera oración). Esperando en línea.

El programa en lenguaje C me ayuda a escribir cada comentario. Cuanto más claro escriba, más puntos obtendré. Es mejor escribir en un formato (como está escrita la primera oración). Esperando en línea.

# include & ltre 51 . h & gt; /*Incluir el contenido del archivo "re51.h" en el programa*/

#define uchar unsigned char /*Definir el tipo de datos uchar como unsigned char */

#define unit unsigned int /*Definir el tipo de datos uint como un entero sin signo*/

Void delay1ms(uint t) /*Declarar e implementar la función denominada d delay 1ms El parámetro 1ms es uint, el valor de retorno es void*/

{

uint i, j /*Declara dos variables de tipo I y T*/

< p; >for(I = 0;I<t;I++) /*Determinar el número de ejecuciones de bucle en función del parámetro de entrada t*/

for(j = 0;j<120;j++);/* Ejecutar 120 vacío códigos para implementar la función de retardo*/

}

Void main() /*La función principal es una función de entrada del programa, que se ejecutará automáticamente cuando se ejecute el programa*/

{

uchar key, flag /*Definir los dos parámetros key y flag del tipo uchar*/

P2 = 0x0f; ¿Aquí y allá, presumiblemente en el archivo de encabezado al que se hace referencia? ¿No estás seguro de los archivos de encabezado a los que se hace referencia? */

flag = 0; /*Asignar valor de bandera 0*/

Al mismo tiempo (1) /*Ejecutar este bucle de forma inalámbrica*/

{

key = P2; /*Asignar /*key al valor de P2*//*No es responsable de adivinar*/

Key = key&0x0f/*Asignar el valor de Key a 0x0f se suma bit a bit y el resultado se asigna a Key. De hecho, los 4 bits superiores se borran y los 4 bits inferiores se retienen*/

If (Key!=0x0f) /*If la clave. no es 0x0f */

{

retraso 1 ms(10); /*Retraso 10MS, pero hay un problema.

Parece que hay una discrepancia entre corchetes aquí */

key = P2 /*La clave está asignada al valor de P2*/

Key=Key&0x0f/*Convertir el valor de la clave a 0x0f se suma bit a bit y el resultado se asigna a Key. De hecho, los 4 bits superiores se borran y los 4 bits inferiores se retienen*/

If(key==0x0f) /*If el valor de la clave. es igual a 0X0f*/

flag = 0 /*La bandera se asigna a 0*/

Else /*Si el valor de la clave no es igual a 0x0f*/

{

Switch(key) /*Juzga el valor de la clave*/

{

case 0x0e:flag = 1; /*Si es 0x0e, entonces la bandera se asigna a 1*/

Case 0x0d:flag=2;/*Si es 0x0d, la bandera se asigna a 2*/

Case 0x0b:flag=3 ;Break; /*Si es 0x0b, la bandera se asigna a 3*/

Caso 0x07: flag = 4;Break; la bandera está asignada a 4*/

/*No hay ningún problema gramatical al escribir de esta manera, pero generalmente es mejor tener un proceso predeterminado*/

}

}

}

if(bandera = = 1){ p 1 = 0x ff; retraso 1 ms(500); p 1 = 0x 00; 500);}/*Si el indicador es 1, asignar P1 es 0xff, retrasar 500 ms y asignar p1 a 0x00, luego retrasar 500 ms */

if(flag == 2){ p 1 = 0x aa ; retrasar 1 ms(300); p 1 = 0x 55; retrasar 1 ms(300);}/*Si el indicador es 2, asigne P1 a 0xaa, luego retrase 300 ms y asigne p1 a 0x55, y luego retrase 300 ms

if(flag = = 3){ p 1 = 0x0f; retraso 1 ms(200); p 1 = 0xf 0; retraso 1 ms(200);}/*Si el indicador es 3, asigne P1 a 0x0f, y luego configure p1 después de un retraso de 200 ms. Asignar a 0xf0, retrasar nuevamente 500 ms */

if(flag = = 4){ p 1 = 0x ff;}/*Si el indicador es 4, asigne P1 a 0xff*/

if(flag = = 0){ p 1 = 0x ff;}/*Si el indicador es 0, asigne P1 a 0xff*/

}

/ *El código es mejor en un formato normal, de lo contrario se verá muy agotador*/

/*Este programa modifica el valor de P1 en función del valor obtenido por P2. Supongo que si el valor de P2 se modifica dinámicamente, el valor de P1 se modificará, el impacto debería estar en los archivos de encabezado incluidos*/

}

.