12864 papel
# incluir ltintrins.h gt
# incluir ltstdio.h gt
#Definir carácter sin firmar uchar
# define primero _ add r0//Define la posición inicial de visualización de los caracteres/caracteres chinos.
sbit lcd_rs=p2^2;
sbit lcd_rw=p2^3;
sbit lcd_e=p2^4;
sbit pcb=p2^5;
uchar i,j;
Retraso no válido (milisegundos)
{
Cuándo (milisegundos)
{
for(j = 0; j lt120; j
}
}
bit); lcd_busy()
{resultado de bits;
LCD_RS = 0;
LCD_RW = 1;
LCD_E = 1; >
Resultado = (bit) (P0 amp0x 80);
LCD _ E = 0;
Devolver resultado
}
LCD_wcmd(uchar cmd) no válido
{
mientras(LCD _ ocupado());
LCD _ RS = 0;
LCD_RW = 0;
P0 = cmd
LCD_E = 1;
LCD_E = 0 ;
}
void lcd_wdata(uchar dat)
{
mientras(LCD _ ocupado());
LCD_RS = 1;
LCD_RW = 0;
P0 = dat
LCD_E = 1;
LCD_E = 0;
}
void lcd_initial()
{
LCD_wcmd(0x 30
Retraso(1);
LCD _ wcmd); (0x0C); //Enciende la pantalla, cierra el cursor, sin parpadear.
Delay(1);
LCD _ wcmd(0x 06); //Especifica la dirección del movimiento del cursor al escribir o leer datos.
Delay(1);
LCD _ wcmd(0x 01);
Delay(10); //El retraso aquí es más largo, de lo contrario será así. afectar las operaciones posteriores.
}
/* - Comando para borrar la pantalla*/
void Clr_Screen()
{
//Ten en cuenta la apariencia de 0x34.
LCD _ wcmd(0x 01);
Retraso (100);
}
void _ FU(uchar code* s); )
{
mientras(*s!=0)
{ LCD _ wdata(*s);
s; /p>
Retraso (10);
}
}
Vacío 1()
{
LCD_wcmd(0x 30);
Retraso(300);
LCD_wcmd(0x 80 first_Addr);
zi _ FU(" 2065 438 03 03 26 ");
Retraso(300);
LCD _ wcmd(0x 90 primer _ Dirección);
Zi_FU("Eléctrico 08-17 "
Retraso(300);
LCD _ wcmd(0x 88 primer _ Dirección
Zi_ Fu ("Neqi"); >
Retraso (300);
LCD _ wcmd (0x 98 primer _ Dirección
Retraso (500);
zi _ FU( " 2065 438 02 . 5 . 30 ");
}
void main()
{
PCB = 1;
mientras(1)
{
LCD _ inicial();
Tiempo de retardo(1000);
clr _ Screen();
Sensación 1();
Retraso(3000);
for(I = 8;i gt0;i-)
{
LCD _ wcmd(0x 18); // Una o dos líneas cambian a tres o cuatro líneas y la pantalla LCD se divide en dos pantallas y media.
Retraso(1000);
}
clr _ Screen();
Sensación 1();
LCD_wcmd(0x 34);
LCD_wcmd(0x 04);
Retraso(3000);
LCD_wcmd( 0x 04); //Volver a normal
Retraso (3000);
LCD _ wcmd(0x 34);
LCD _ wcmd(0x 03) //Permitir entrada de dirección de desplazamiento.
for(I = 0x 40; i lt0x7fi)
{
lcd_wcmd(1); //Desplaza el contenido de la pantalla verticalmente.
Delay(600); //Aumentar el retraso de la pantalla
}
}
}