Lenguaje C para microcontrolador, marque los comentarios de cada elemento al final, gracias.
sbit rs=p2^6 //La definición de bit define el sexto bit de P2 como RS, y luego la operación RS es equivalente a la Operación P2^6.
sbit rw=p2^5; //Igual que arriba
sbit e=p2^7; //Igual que arriba
Carácter sin signo ocupado; //Defina la variable ocupada como una variable de carácter sin signo.
Void delay(unsigned char asf) //Esta es una función de retraso, el asf entre paréntesis es el tiempo de retraso.
{ while(ASF-);}//Cuando asf & gt=1, siempre está en este bucle hasta ASF
Lcd_busy()//Esto está escribiendo una función, pero agregue void al frente para convertirlo en void lcd_busy().
{ RS = 0; RW = 1; e = 1; P0 = retraso 0x80 (0x ff); // Asigne 0 a RS, 1 a RW, 1 a e, retrasos de salida de puerto P0 0xff durante tanto tiempo.
If(P0==0X00)//instrucción de juicio if Cuando P0=0x00, ejecute la siguiente instrucción ocupada=0x00.
busy = 0x00 //Asigne 0 a ocupado
De lo contrario //Si lo anterior no es cierto, ejecute ocupado = 0x001.
busy = 0x 01; //Igual que arriba
}
Write_cmd(unsigned char cmd)//Crea una subfunción cuyo lema define cmd como una variable de carácter sin signo.
{
Ocupado = 1; //Igual que arriba
Mientras (ocupado) porque ocupado = 1, siempre ejecutará las declaraciones entre llaves a continuación . Te falta un paréntesis aquí.
{
LCD_busy(); //Llama a la función lcd_busy() anterior.
RS = 0; RW = 0; e = 0; P0 = cmd// Las tres primeras son declaraciones de asignación, las mismas que las anteriores, y la última es para dar el valor de cmd a P0.
Retraso (0x ff); la función de retraso es la anterior
e = 1; //Asignación general
Retraso (0x ff); arriba
e = 0; //Asignación normal
}
Lcd_cmd()//Crea una subfunción como arriba.
{
write _ cmd (0x 38); llama a la función write_cmd (unsigned char cmd) anterior, donde a cmd se le asigna un valor de 0x38.
write _ cmd(0x 08); //Igual que arriba
write _ cmd(0x 01); //Igual que arriba
write _ cmd (0x 06) ;//Igual que arriba
write _ cmd(0x0c); //Igual que arriba
write _ cmd(0x 84); //Igual que arriba
}
Lcd_date()//Esta función se refiere a lcd_busy() arriba.
{
ocupado = 1;
cuando(ocupado)
LCD _ ocupado(); RS = 1; RW = 0; e = 0; P0 = 0X62
retraso (0x ff);
Función principal Main()
{ LCD_cmd(); LCD_date(); while(1);} Llame a LCD_cmd(); Y (1) es un bucle infinito y la función se ha ejecutado hasta ahora.