El microcontrolador c51 controla el programa 12864 (lenguaje c), que muestra algunas palabras o algunas imágenes simples. ¡Gracias de antemano!
#include
#define uchar unsigned char
#define uint unsigned int
sbit CS=P2^5; //señal de selección de chip
sbit SID=P2^6; //señal de datos
sbit SCLK=P2^7;
sbit RST=P2^2; //Señal de reinicio
sbit CH = P2^4; //Señal de selección en paralelo y en serie
/****** * ************************************************** ***********
* Nombre: retraso()
* Función: retraso, el tiempo de retraso es 100us * t.
* Entrada: t
* Salida: Ninguna
********************* * ************************************************* ** /
retraso nulo(unsigned int t)
{
unsigned int i,j;
for(i=0 ; i for(j=0; j<10; j++); } /******* * **************** ********************************** * ********* * Nombre: sendbyte() * Función: Enviar datos según el protocolo de comunicación serie del LCD * Entrada: zdata * Salida: Ninguna **** ************************* *** *******************************************/ void sendbyte(unsigned char zdata) { unsigned int i; for(i=0; i<8; i++) { if((zdata << i) & 0x80) { SID = 1; } p> más { SID = 0; } SCLK = 0; SCLK = 1; } } /****************** ******** ***************************************** * *** * Nombre: write_com() * Función: Escribir comando de puerto serie * Entrada: cmdcode * Salida : Ninguno ****************************************** ******* *** **********************/ void write_com(código cmd de caracteres sin firmar) { CS = 1; sendbyte(0xf8); sendbyte(cmdcode & amp; 0xf0); sendbyte ((cmdcode << 4) & 0xf0); retraso(2); } /*********** ******* ************************* ******************* ******* * Nombre: write_data() * Función: Escribir comando en serie * Entrada: cmdcode * Salida: Ninguna ****************************** ********** **** *****************************/ void write_data(dispd char sin firmar ata) { CS = 1; sendbyte(0xfa); sendbyte(Dispdata & 0xf0); sendbyte((Dispdata << 4) & 0xf0); retraso(2); } /****** ************* ************************************* ************ * Nombre: lcdinit() * Función: Función de inicialización * Entrada: cmdcode p> * Salida: Ninguna ******* ************************** ** *************************************/ void lcdinit( ) { RST = 0; retraso(100); RST = 1; retraso( 20000); write_com(0x30); retraso(50); write_com(0x0c); retraso( 50) ; } /******** ************************* ** ************************************* * Nombre: hzkdis () p> * Función: Mostrar cadena * Entrada: *s * Salida: Ninguna ** **** *** ************************************************* **** *************/ void hzkdis(código de caracteres sin firmar *s) { mientras (*s & gt; 0) { write_data(*s); s++; retraso(50); } } /*************************** ****** ************* ************************* * Nombre: Prueba() * Función: Mostrar subfunción * Entrada: Ninguna * Salida: Ninguna ************ ********************************** **** ************** *************/ prueba nula() { write_com(0x03); retraso(50); write_com(0x81); hzkdis(" HOT-51"); p> write_com(0x91); hzkdis("Placa de desarrollo del microcontrolador"); write_com(0x89); hzkdis(" ") ; write_com(0x98); hzkdis(" Dongliu Electronics "); >} /****************************************** ** **************************** * Nombre: Principal() * Función: Función principal * Entrada: Ninguna * Salida: Ninguna * Entrada de parámetros: Ninguna * Salida de parámetros: Ninguno Ninguno ****************************************** ******* ****************************/ void Main() { p> CH = 0; retraso(1); lcdinit(); retraso(10) ; while(1) { Prueba(); retraso(5000); } }