Red de conocimiento informático - Conocimiento del nombre de dominio - ¡Urgente! ! ! ¿Algún experto tiene la información y el programa fuente de la pantalla LCD CA12864K? ¡Muchas gracias! !

¡Urgente! ! ! ¿Algún experto tiene la información y el programa fuente de la pantalla LCD CA12864K? ¡Muchas gracias! !

◇ Tipo: módulo LCD de matriz de puntos 128*64

◇ Biblioteca de caracteres chinos estándar nacional nivel 2 incorporada

◇ Tamaño total: 93*70 mm

◇ Tamaño del área de visualización: 70,7*38,8 mm

◇ Voltaje de funcionamiento: 5 V

◇ Retroiluminación: CCFL, LED, EL

◇ Temperatura: temperatura normal, temperatura amplia

◇ Película amarillo-verde opcional, película gris, película azul

◇ Conversión gratuita entre puertos serie y paralelo

ca12864k paralelo programa de puerto (prueba simple)

#define lcd_port P0

#define rs P1_3

#define rw P1_4

#define e P1_5

#define cs1 P1_6

#define cs2 P1_7

#define bool bit

#define uc unsigned char

# define nop _nop_()

#include lt;at89x51.hgt;

#include lt;intrins.hgt;

#include lt;math .hgt;

código uc manzana[]={0x30, 0x50, 0xd0, 0x90, 0xf0, 0x30, 0x80, 0x60, 0x3c, 0xe8, 0x20, 0xa0, 0xe0, 0x70, 0x00, 0x00, 0x04 , 0x06, 0x03, 0x11, 0x13, 0x12, 0x18, 0x0c, 0x07, 0x01, 0x03, 0x06, 0x0c, 0x1c, 0x18, 0x18}

void lcd_wcmd(uc cs, uc cmd); /p>

void lcd_wdat(uc cs, uc dat);

void lcd_setcs(uc cs);

void lcd_ready();

void lcd_gotoxy(uc x, uc y, uc sline);

void lcd_reset();

void lcd_fill();

retraso nulo (int ue sin firmar) ;

p>

uc *p;

/*************************** *********** */

/** Descripción de la función: escribir comandos en la pantalla LCD, selección de chip cs, ***/

/** cmd comando***/

/** RS=0 RW=0 CS=Selección de chip E borde descendente***/

/********** ************ *************/

void lcd_wcmd(uc cs,uc cmd)

{ lcd_setcs(cs);

lcd_ready();

lcd_port=cmd;

rs=rw=0;

e=1 ;

nop;

nop;

rs=rw=0; p>

e=0;

cs1= 1; cs2=1;

}

/********** ******************* ******/<

/p>

/**Descripción de la función: escribir datos de visualización en LCD***/

/** cs: chip select dat: data***/

/ ** RS=1 RW=0 CS=selección de chip E=flanco descendente***/

/************************ ************/

void lcd_wdat(uc cs, uc dat)

{lcd_setcs(cs);

lcd_ready ();

lcd_port=dat;

rs=1;

rw=0;

e=1;

nop;

e=0;

cs1=1; cs2=1;

}

/** ************************************/

/**Descripción de la función: Establecer selección de chip* **/

/** cs=1 selecciona la primera pieza, ***/

/** cs=2 selecciona la segunda pieza***/

/************************************/

void lcd_setcs(uc cs)

{switch(cs)

{caso 1: cs1=0; descanso

caso 2: cs2=0;

}

}

void lcd_ready()

{lcd_port=0xff;

rs=0 ;

rw=1;

e=1;

nop;

mientras(lcd_portamp;0x80);

e =0;

}

void lcd_gotoxy(uc x, uc y, uc sline)

{uc cs; p>

tp=abs(x-63);

if(x-63gt;0)

cs=2;

else cs= 1;

p>

lcd_wcmd(cs, y 0xb8); //página=(yamp; 0x07) 0xb8

lcd_wcmd(cs, tp 0x40); = (xamp; 0x3f)|0x40

lcd_wcmd(cs, sline 0xc0);

}

void lcd_reset()

{ //uc i;

lcd_wcmd(1, 0x3f); //mostrar en

lcd_wcmd(2, 0x3f); p>

}

void lcd_fill()

{ uc a;

uc i, j, k=1

for(j=0; jlt; 8; j )

{

lcd_gotoxy(0,j,k);

for(i=0; ilt;32;i)

{lcd_wdat(1,a);

lcd_wdat(2,a);

a=*p;

p;

}

k =8;

}

}

retraso nulo (anular la firma

ned int ue)

{unsigned int i;

for(i=0;ilt;ue;i);

}

lcd_show()

{ lcd_wcmd(1, 0x30);

retraso(100); p>lcd_wcmd(1, 0x20); /////

lcd_wcmd(1, 0x0f);

lcd_wcmd(1, 0x01); (1, 0x07);

retraso(100);

lcd_wdat(1, 0x50);

lcd_wdat(1, 0x3a);

lcd_wdat(1,0x30);

lcd_wdat(1,0x31);

lcd_wdat(1,0x2e);

lcd_wdat(1,0x4c

lcd_wdat(1, 0x4d);

lcd_wdat(1, 0x00);

mientras }

; main()

{p=apple;

//lcd_reset();

lcd_show();

}