Red de conocimiento del abogados - Preguntas y respuestas jurídicas - LCD1602 muestra el programa de cadena de caracteres chinos

LCD1602 muestra el programa de cadena de caracteres chinos

#include lt;reg51.hgt;

#define uchar unsigned char

#define uint unsigned int

uchar xpos, ypos ;

sbit clave=P2^0;

sbit rs=P3^0

sbit rw=P3^1;

sbit e=P3^2;

void nop(){}

void delay(uint z) //Retraso

{

uint x, y;

for(x=z;xgt;0;x--)

for(y=112;ygt;0;y--); /p>

}

void check() //Ocupado

{

rs=0

rw =1;

e=0;

P1=0xff

e=1; p> nop();

while(P1amp;0x80){}

}

void wrc(uchar com) //Escribir comando

{

verificar();

rs=0

rw=0

e=1; p>

P1=com;

nop();

e=0

nop();

void wrd(uchar date) //Escribir datos

{

check();

rs=1;

rw=0;

e=1;

P1=fecha

nop(); 0;

nop();

}

void init() //Inicialización

{

wrc(0x38);

wrc(0x01);

wrc(0x0c);

wrc(0x06); /p>

void lcdpos() //Posicionamiento del puntero de dirección de datos internos

{

xposamp;=0x01;

yposamp;=0x1f ; /p>

if(xpos==0x00)

wrc(ypos|0x80

else

wrc((ypos 0x40) |0x80); );

}

void lcdw(uchar x, uchar y, uchar *s) //Escribe una cadena en las coordenadas especificadas

{ xpos=x ;

for(ypos=y;yposlt;20;ypos)

{ lcdpos();

wrd(*s);

p >

s;

<

p> }

}

void main()

{

init();

cgram(

while(1)

{

lcdw(0, 0, "######### "); p>

p>

lcdw(1,1,"!!!!!!!!!");

lcdw(2,2,"amp;amp;amp;amp ;amp;amp ;amp;amp;amp;amp; ");

lcdw(3, 3, "$$$$$$$$$$ ");

}

}