You are on page 1of 18

MICROCONTROLADORES

MICROCONTROLADORES

PROYECTO No. 3

OBJETIVO GENERAL Disear, simular e implementar un sistema microcontrolado para visualizar datos usando LCD de caracteres y los PICs 16F84A y 16F628A.

VISUALIZACIN DE DATOS MEDIANTE LCD DE CARACTERES


Este material est destinado exclusivamente para los estudiantes de la asignatura de Microcontroladores, siendo su distribucin sin fines de lucro.

FUNDAMENTO TERICO

Los display de caracteres LCD, son mdulos prefabricados que contienen controladores incluidos. Estos displays cuentan con un bus de datos y un bus de control, para el manejo de estos dispositivos el compilador MikroC PRO, tiene una librera predefinida para el control de estos LCD. La apariencia fsica y la vista en ISIS de estos LCD es la que se puede apreciar en las siguientes grficas:

Los displays LCD, permiten graficar los caracteres contemplados en el cdigo ASCII. Adems del cdigo ASCII, los displays LCD admiten graficar hasta 8 caracteres diseados por el desarrollador, otra caracterstica fundamental de los LCD, es la conexin del bus de datos, fsicamente tienen 8 bits, pero es posible configurar las conexiones con solo 4 bits. La conexin de 8 bits implica una mayor cantidad de cables para su uso, pero la velocidad de trabajo es mayor, por consiguiente la conexin de 4 bits minimiza las conexiones pero disminuye la velocidad de trabajo. La librera predefinida en MikroC PRO, funciona con la configuracin de 4 bits. Para ver la librera predefinida para este dispositivo y otros que tiene MikroC PRO se debe hacer clic en la paleta de herramientas ubicada en la parte derecha del programa, est paleta se identifica con una pestaa que tiene el titulo: Library Manager. Al hacer clic en est pestaa se despliega un men que muestra las diferentes libreras habilitadas para el microcontrolador que se est trabajando. En este nuevo men se identifica el tem LCD, posteriormente se puede hacer clic en cualquiera de las funciones que contiene la librera para ver la ayuda correspondiente. La apariencia visual de est paleta se puede apreciar en la siguiente imagen:

Luis Cabezas Tito

Microcontroladores

Pgina 1

La implementacin del display LCD, requiere del uso de instrucciones y comandos secunciales para la configuracin y desempeo del display, sin embargo la librera de MikroC PRO, minimiza este trabajo dado que est se encarga de hacer todas ests configuraciones, haciendo mucho ms simple el trabajo del desarrollador. Como primer paso para el uso del LCD, se requiere definir los pines de conexin y la ejecucin de la funcin predefinida de inicio del LCD; Lcd_Init(). La definicin de los pines de conexin la asume el desarrollador de forma arbitraria segn su criterio. Para cumplir este objetivo se usa la declaracin de constantes antes de la funcin main. Para cambiar los pines solo se requiere cambiar el nombre de las declaraciones del ejemplo anterior. Como se puede ver en la declaracin inicial solo se necesitan 6 pines para gobernar el LCD, con 4 bits de datos y 2 bits de control, el display cuenta con un tercer pin de control denotado como WR, este pin permite leer si el display est ocupado realizando alguna operacin o permite escribir comandos y caracteres. Para fines de la librera este pin no es requerido, y simplemente se conecta a referencia. Por ltimo se debe invocar la funcin de inicio del display dentro de la funcin main despus de la configuracin de puertos. Los pines de la LCD, no se deben configurar, est tarea ya la realiza la funcin: Lcd_Init(). El programa final se muestra a continuacin:

Luis Cabezas Tito

Microcontroladores

Pgina 2

Terminada la edicin del cdigo anterior el LCD, se inicializa y debe quedar listo para empezar a graficar caracteres, posicionndose en la primera fila y primera columna, mostrando el cursor parpadeante. Los displays de caracteres se fabrican en diversas formas y colores se pueden conseguir con pantallas de color verde, azul, y amarillo. Se fabrican con distribuciones de caracteres de forma matricial como 2 filas, 16 columnas estos se conocen como 2x16, y de la misma forma se pueden encontrar de 1x16, 2x16, 2x8, 2x20, 4x20, entre otros. Para los ejemplos empleados en este captulo se usar el display de 4x20. Para iniciar la simulacin del display LCD, se debe buscar el dispositivo LM044L, y el PIC 16F84A en el simulador ISIS. La referencia LM044L en ISIS corresponde a un LCD de 4x20. Finalmente se realizan las conexiones como se muestra en el siguiente circuito:

Luis Cabezas Tito

Microcontroladores

Pgina 3

El display LCD cuenta con un pin denominado Vee, este pin funciona como controlador de contraste de la pantalla, pero para fines de la simulacin no tiene efecto, este pin puede ser conectado a referencia para generar el mayor contraste, algunas pantallas de gran tamao requieren de un voltaje negativo externo para el control de este contraste, en sntesis, cuanto ms negativo sea el voltaje en Vee ms oscuro ser el contraste en la pantalla. Para fines prcticos el contraste se puede ajustar por medio de un potencimetro como se ve en la siguiente circuito:

El paso siguiente es imprimir en la pantalla informacin, para este objetivo se pueden usar cuatro funciones. Dos de estas funciones permiten imprimir caracteres, y las otras dos imprimen cadenas de texto. Para imprimir los caracteres se puede hacer de dos maneras, la primera simplemente imprime los caracteres en el orden consecutivo que asume el display, y la siguiente funcin imprime los caracteres en la fila y columna que se designe por el desarrollador.

Luis Cabezas Tito

Microcontroladores

Pgina 4

PROGRAMAS PARA IMPLEMENTARSE CON EL PIC 16F84A


PROGRAMA 1: PARA IMPRIMIR CARACTERES: La primera funcin de impresin de caracteres es: Lcd_Chr_Cp(char out_char); cuando est funcin es invocada imprime en la pantalla el carcter correspondiente al cdigo ASCII, que est en el parmetro de entrada out_char. Con la impresin de un nuevo carcter la pantalla LCD, incrementa automticamente el cursor en una posicin. Para contextualizar el funcionamiento de esta funcin observe y analice el siguiente ejemplo: //Pines de salida para el LCD sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D7 at RB3_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D4 at RB0_bit; //Bits de configuracin TRIS sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D7_Direction at TRISB3_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D4_Direction at TRISB0_bit; void main(void) { Lcd_Init(); //Inicio del LCD. Lcd_Chr_Cp('A'); //Ests funciones imprimen letra a letra la palabra Autotrnica. Lcd_Chr_Cp('u'); Lcd_Chr_Cp('t'); Lcd_Chr_Cp('o'); Lcd_Chr_Cp('t'); Lcd_Chr_Cp('r'); Lcd_Chr_Cp('o'); Lcd_Chr_Cp('n'); Lcd_Chr_Cp('i'); Lcd_Chr_Cp('c'); Lcd_Chr_Cp('a'); while(1) //Bucle infinito. { } } Despus de correr la simulacin se debe observar lo siguiente en la pantalla del LCD:

Luis Cabezas Tito

Microcontroladores

Pgina 5

PROGRAMA 2: IMPRESIN DE CARACTERES MEDIANTE COORDENADAS: Para realizar la impresin de caracteres por medio de una coordenada fila, columna, se implementa la funcin: Lcd_Chr(char row, char column, char out_char); est funcin imprime el carcter out_char, en la columna column y en la fila row. En el siguiente ejemplo se puede ver cmo usar est funcin: //Pines de salida para el LCD sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D7 at RB3_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D4 at RB0_bit; //Bits de configuracin TRIS sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D7_Direction at TRISB3_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D4_Direction at TRISB0_bit; void main(void) { Lcd_Init(); //Inicio del LCD. Lcd_Chr_Cp('A'); //Ests funciones imprimen letra a letra la palabra Autotrnica. Lcd_Chr_Cp('u'); Lcd_Chr_Cp('t'); Lcd_Chr_Cp('o'); Lcd_Chr_Cp('t'); Lcd_Chr_Cp('r'); Lcd_Chr_Cp('o'); Lcd_Chr_Cp('n'); Lcd_Chr_Cp('i'); Lcd_Chr_Cp('c'); Lcd_Chr_Cp('a'); Lcd_Chr(1, 13, '2'); //Imprime el carcter 2, en la fila 1, columna 13 Lcd_Chr(2, 14, '0'); //Imprime el carcter 0, en la fila 2, columna 14 Lcd_Chr(3, 15, '1'); //Imprime el carcter 1, en la fila 3, columna 15 Lcd_Chr(4, 16, '3'); //Imprime el carcter 3, en la fila 4, columna 16 while(1) //Bucle infinito. { } } Despus de ejecutar la simulacin se debe tener la siguiente vista en la pantalla del LCD:

Luis Cabezas Tito

Microcontroladores

Pgina 6

PROGRAMA 3: IMPRESIN DE CADENAS DE TEXTO: El uso de cadenas de texto es similar a las dos funciones anteriores, para esto se pueden imprimir cadenas de texto en el punto donde est el flujo de la impresin del LCD, o en un punto arbitrario por medio de las coordenadas de filas y columnas. Para hacer la impresin de una cadena de texto en el punto de impresin se utiliza la siguiente funcin: Lcd_Out_Cp(char *text); est cuenta con un nico parmetro de entrada que es un apuntador a la cadena de caracteres en este caso la funcin la denota como text. Para el uso de est funcin observe y analice el siguiente ejemplo: //Pines de salida para el LCD sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D7 at RB3_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D4 at RB0_bit; //Bits de configuracin TRIS sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D7_Direction at TRISB3_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D4_Direction at TRISB0_bit; void main(void) { Lcd_Init(); //Inicio del LCD. Lcd_Out_Cp("Ing. Autotronica"); while(1) //Bucle infinito. { } } La implementacin de est funcin puede hacerse con cadenas de caracteres constantes o variables, las cadenas constantes se denotan por medio de las dobles comillas al inicio y al final del texto por ejemplo: Ing. Autotronica, el formato variable se declara con la forma: char Text[20]=Ing. Autotronica. Despus de correr la simulacin se bebe ver una vista como la que aparece en la siguiente figura:

PROGRAMA 4: IMPRESIN DE UNA CADENA DE CARACTERES CON COORDENADAS DE INICIO: Para imprimir una cadena de caracteres con una coordenada como punto de inicio se implementa la funcin: Lcd_Out(char row, char column, char *text);. Est funcin trabaja de forma similar a la anterior, Luis Cabezas Tito Microcontroladores Pgina 7

con la diferencia que se incluyen los datos de row, y column, que hacen referencia a las filas y las columnas respectivamente. Para comprender de forma clara el funcionamiento de esta funcin observe y analice el siguiente ejemplo: //Pines de salida para el LCD sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D7 at RB3_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D4 at RB0_bit; //Bits de configuracin TRIS sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D7_Direction at TRISB3_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D4_Direction at TRISB0_bit; void main(void) { Lcd_Init(); //Inicio del LCD. Lcd_Out( 1, 1, "Autotronica"); //Fila 1, Columna 1 Lcd_Out( 2, 2, "U P E A"); //Fila 2, Columna 2 Lcd_Out( 3, 3, "El Alto - Bolivia"); //Fila 3, Columna 3 while(1) //Bucle infinito. { } } Despus de compilar y simular este ejemplo se debe observar una vista en la pantalla del LCD como la que se puede apreciar en la siguiente figura:

PROGRAMA 5: IMPRESIN DE VALORES NUMRICOS ENTEROS: La impresin de valores numricos es de vital importancia en muchos de los desarrollos. Por ejemplo cuando se desea visualizar, el estado de una variable, un sensor como: temperatura, humedad, presin, o cualquier otro que se est manipulando. Para lograr este objetivo se puede recurrir a funciones de conversin predefinidas por el compilador. Para esto se puede utilizar la librera: Conversions, est librera cuenta con funciones que hacen la conversin de un valor numrico a una cadena de caracteres. Si se requiere visualizar un valor entero se usa la funcin: IntToStr(int input, char *output);, est funcin tiene dos parmetros de entrada que son: input, que es un valor entero a visualizar, y output, que es el apuntador Luis Cabezas Tito Microcontroladores Pgina 8

a una cadena de caracteres donde se quiere escribir el forma de texto el valor que contiene el valor intput. Para entender este tipo de conversin observe y analice el siguiente ejemplo: //Pines de salida para el LCD sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D7 at RB3_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D4 at RB0_bit; //Bits de configuracin TRIS sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D7_Direction at TRISB3_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D4_Direction at TRISB0_bit; void main(void) { int ENTERO=2013; //Declaracin de una variable entera con valor inicial 2013. char Text[20]; //Cadena de caracteres para impresin de datos. Lcd_Init(); //Inicio del LCD. IntToStr(ENTERO,Text); //Funcin que hace la conversin Entero a Texto. Lcd_Out_Cp(Text); //Impresin del texto en la pantalla LCD. while(1) //Bucle infinito. { } }

La impresin de los nmeros enteros en la cadena de texto con est funcin siempre asume un campo fijo de 7 caracteres, es decir que si el nmero tiene menos de 7 dgitos el resto del texto se completa con espacios vacos. Despus de compilar y simular el programa se tendr una vista en ISIS, como la que se puede ver en la siguiente figura:

Luis Cabezas Tito

Microcontroladores

Pgina 9

PROGRAMAS PARA IMPLEMENTARSE CON EL PIC 16F628A


PROGRAMA 6: IMPRESIN DE VALORES NUMRICOS CON PUNTO DECIMAL: La impresin de nmeros con punto decimal se puede hacer con la funcin: FloatToStr(float fnum, char *str);. La filosofa de funcionamiento de esta funcin es idntica a la anterior que hace las conversiones de nmeros enteros. Para realizar el siguiente ejemplo se debe cambiar la referencia del microcontrolador, esto se debe a que la capacidad de memoria del PIC 16F84A, no es suficiente para los siguientes ejercicios. A partir de este punto se usara el PIC 16F628A, que tiene la misma distribucin de pines del 16F84A, pero cuenta con una capacidad mayor de memoria y con mdulos integrados superiores como la USART. Para contextualizar su funcionamiento observe el siguiente ejemplo: //Pines de salida para el LCD sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D7 at RB3_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D4 at RB0_bit; //Bits de configuracin TRIS sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D7_Direction at TRISB3_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D4_Direction at TRISB0_bit; void main(void) { int ENTERO=2013; //Declaracin de una variable entera con valor inicial 2013. float DECIMAL=3.141516; //Declaracin de una variable con punto decimal //inicializada en 3.141516 igual a PI. char Text[20]; //Cadena de caracteres para impresin de datos. Lcd_Init(); //Inicio del LCD. IntToStr(ENTERO,Text); //Funcin que hace la conversin Entero a Texto. Lcd_Out(1,1,Text); //Impresin del texto en la pantalla LCD, Fila 1, Columna 1. FloatToStr(DECIMAL,Text); //Funcin que hace la conversin Decimal a Texto. Lcd_Out(2,1,Text); //Impresin del texto en la pantalla LCD, Fila 2, Columna 5. while(1) //Bucle infinito. { } } En esta parte, antes de compilar el programa se debe editar el proyecto haciendo clic en Edit Project, cambiando en los siguientes campos:

Luis Cabezas Tito

Microcontroladores

Pgina 10

Terminada la simulacin se de tener una vista como la que se aprecia en la figura siguiente:

El mismo proceso se puede seguir para otros tipos de variables como son: short con la funcin: ShortToStr(short input, char *output); Las variables long con la funcin: LongToStr(long input, char *output); Las variables unsigned short con la funcin: ByteToStr(unsigned short input, char *output); Las variables unsigned long con la funcin: LongWordToStr(unsigned long input, char *output); Las variables unsigned int con la funcin: WordToStr(unsigned int input, char *output); PROGRAMA 7: CREACIN DE CARACTERES PROPIOS: Las pantallas de caracteres LCD, cuentan con la capacidad de almacenar hasta 8 caracteres diseados por el desarrollador. Los valores ASCII, para los caracteres diseados por el usuario corresponde a los valores numricos del 0 al 7. Por ejemplo, si se desea imprimir el primer carcter diseado por el usuario se hace con las funciones de impresin de caracteres: Lcd_Chr_Cp(0); o Lcd_Chr(1,1,0);. La creacin de caracteres propios creados por el usuario se guardan en un campo de memoria RAM, de la pantalla LCD, por est razn deben ser reprogramados cada vez que se inicializa la pantalla LCD. Los caracteres son un conjunto de valores binarios que forman un mapa de bits, y dan como resultado la imagen en la pantalla con una resolucin de 5 x 7 pxeles. La edicin y programacin de estos datos resulta dispendioso y cuidadoso con las rdenes de bajo nivel que se beben dar a la pantalla LCD. Sin embargo el compilador MikroC PRO, cuenta dentro de sus herramientas con un editor para los caracteres diseados por el desarrollador. En este editor de forma simple se edita el mapa de bits del carcter y este genera la fraccin de cdigo en lenguaje C, requerida para programar el carcter en la pantalla. En conclusin se edita el carcter y posteriormente se Luis Cabezas Tito Microcontroladores Pgina 11

pega el cdigo en la fuente del proyecto que se est desarrollando. Para usar este editor se busca el tem Tools dentro del men superior del programa MikroC PRO, y dentro de este se hace clic en el submen: LCD Custom character, est accin despliega la ventana del editor que tiene la apariencia que se puede ver en la siguiente figura:

En este editor el usuario hace clic en los cuadros de la cuadricula de color amarillo y al terminar la edicin del carcter, se selecciona el valor ASCII que se asignar al carcter por medio de la casilla Char:, este valor debe ser un nmero entre 0 y 7. Terminado este proceso se pulsa el botn Generate Code, y con est accin el editor mostrar la fraccin de cdigo para usar en el programa que se est desarrollando. Las siguientes grficas muestran la vista del editor cuando se hace un carcter en la direccin ASCII 0:

Luis Cabezas Tito

Microcontroladores

Pgina 12

Como ltimo paso se debe integrar la informacin entregada por el editor y el programa del desarrollador, para este fin observe el siguiente ejemplo: //Constantes creadas por el editor, est contiene el mapa de bits del carcter. const char character[] = {17,14,21,14,31,4,27,0}; //Pines de salida para el LCD sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D7 at RB3_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D4 at RB0_bit; //Bits de configuracin TRIS sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D7_Direction at TRISB3_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D4_Direction at TRISB0_bit; //Funcin para guardar en la memoria RAN del LCD //el carcter del editor. void CustomChar(char pos_row, char pos_char) { char i; Lcd_Cmd(64); //Direccin del carcter 0. //Bucle for para guardar el mapa de bits. for (i=0;i<=7;i++) Lcd_Chr_CP(character[i]); //Para fines prcticos est funcin puede ser ignorada. //Lcd_Cmd(_LCD_RETURN_HOME); //Impression del codigo ASCII 0. Lcd_Chr(pos_row, pos_char,0); } void main(void) { Lcd_Init(); //Inicio del LCD. CustomChar(1, 1);//Impresin del Carcter 0. while(1) //Bucle infinito. { } } Luis Cabezas Tito Microcontroladores Pgina 13

Transcurrida la edicin compilacin y simulacin se debe tener la siguiente vista en la simulacin de ISIS:

PROGRAMA 8: CREACIN DE CARACTERES CON FORMA DE EXTRATERRESTRES: Para optimizar el uso de la generacin de caracteres arbitrarios el desarrollador puede simplemente grabar la memoria al principio de las configuraciones y despus hacer la impresin de los caracteres, editados del 0, al 7. Para esto se debe tener presente el arreglo constante de datos que corresponden a los mapas de bits, la direccin inicial que muestra el editor, e invocar las funciones de impresin de caracteres cuando sea necesario. Para formalizar est idea observe y analice el siguiente ejemplo que imprime en la pantalla la imagen de 4 caracteres con forma de extraterrestres: //Declaracin de constantes, representan los mapas de bits, //de un marcianito animado. Estos cdigo son el resultado del editor de caracteres de //MikroC PRO. const char Marciano1[] = {17,14,21,14,31,4,27,0}; //Direccin inicial 64. const char Marciano2[] = {17,14,21,14,31,4,10,0}; //Direccin inicial 72. const char Marciano3[] = {17,14,21,14,31,21,10,0}; //Direccin inicial 80. const char Nave[] = {24,28,30,31,30,28,24,0}; //Direccin inicial 88. //Pines de salida para el LCD sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D7 at RB3_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D4 at RB0_bit; //Bits de configuracin TRIS sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D7_Direction at TRISB3_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D4_Direction at TRISB0_bit; //Declamacin de funcin para guardar en RAM los caracteres. //Est funcin es diseada por el desarrollador. void Lcd_RAM_Car( char IntDir, const char *Mapa ) { char i; LCD_Cmd(IntDir); //Direccin inicial. //Bucle para guardar el mapa en la RAM del LCD. for(i=0;i<8;i++) LCD_Chr_Cp(Mapa[i]); Luis Cabezas Tito Microcontroladores Pgina 14

} void main(void) { Lcd_Init(); //Inicio del LCD. Lcd_RAM_Car( 64, Marciano1 );//Se guarda el character 1 Lcd_RAM_Car( 72, Marciano2 );//Se guarda el character 2 Lcd_RAM_Car( 80, Marciano3 );//Se guarda el character 3 Lcd_RAM_Car( 88, Nave );//Se guarda el character 4 LCD_Chr(1, 1, 0);//Se imprime el carcter Marciano 1. LCD_Chr(1, 2, 1); //Se imprime el carcter Marciano 2. LCD_Chr(1, 3, 2); //Se imprime el carcter Marciano 3. LCD_Chr(1, 4, 3); //Se imprime el carcter Nave. while(1) //Bucle infinito. { } } Terminada la compilacin y corrida la simulacin se bebe tener una vista como la siguiente en el simulador ISIS:

La impresin de informacin en la pantalla LCD, implica en algunos casos la necesidad de cambiar las caractersticas del cursor. Para esto, es posible sustituir el cursor por uno que no es slido o desactivar el efecto parpadeante del mismo, incluso se puede simplemente desactivar el cursor. Con el fin de realizar cambios de caractersticas en el LCD, se usa la funcin: Lcd_Cmd(char out_char);, en la cual se ingresan los comandos de configuracin, por medio del parmetro: out_char. Para colocar un cursor no slido, o raya al piso ( _ ), se usa el siguiente comando: Lcd_Cmd(_LCD_UNDERLINE_ON);, para activar el cursor slido parpadeante se implementa el comando: Lcd_Cmd(_LCD_BLINK_CURSOR_ON); Para desactivar el cursor y hacerlo no visible se puede invocar el comando: Lcd_Cmd(_LCD_CURSOR_OFF);.

Luis Cabezas Tito

Microcontroladores

Pgina 15

LCD A USARSE EN EL LABORATORIO


CONFIGURACIN DE PINES:

Luis Cabezas Tito

Microcontroladores

Pgina 16

FORMACIN DE CARACTERES

H: nivel alto (5 V), L: nivel bajo (0 V).

Luis Cabezas Tito

Microcontroladores

Pgina 17

----- oOo -----

Luis Cabezas Tito

Microcontroladores

Pgina 18