¡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();
}