lcd serial

8
PIC MICRO ESTUDIO LCD Serial Con el PIC16F84 Guía de Uso www.electronicaestudio.com

Upload: joel-ontiveros

Post on 05-Dec-2014

14 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Lcd Serial

PIC MICRO ESTUDIO

LCD Serial Con el PIC16F84

Guía de Uso

www.electronicaestudio.com

Page 2: Lcd Serial

P I C M I C R O E S T D U D I OP I C M I C R O E S T D U D I O

11

LCD Serial con el PIC16F84LCD Serial con el PIC16F84 Este producto pretende que con un solo hilo se pueda enviar información y desplegarla a través del modulo LCD. Las pantallas de cristal liquido LCD aceptan instrucciones de datos o de comandos, utilizando una interfase paralela de 8 o 4 bits según se decida. Las instrucciones de comando incluyen: el control del cursor, limpiar pantalla, desplazamiento, etc. Picmicro Estudio ofrece este módulo con el nombre de LCDSER (Clave 715). Es una tarjeta de circuito impreso PCB que incluye un PIC16F84 conectado a una tira de 16 donas en las que se puede conectar varios modelos de LCD. Por ejemplo de 2 reglones por 16 columnas o bien de 4 rengoles por 16 columnas etc. El usuario puede adquirir el LCD que requiera. La tarjeta cuenta con pines para ser alimentada copn 5 volts de CD y lo mas importante esta dotada de una entrada serial. Mediante esta entrada se puede enviar los comandos al LCD y desde luego escribir en el mismo. EL PIC116F84 que se encuentra montado en esta tarjeta esta programado, de tal manera que esta recibiendo información por el Pin serial para luego enviarla al display. Los códigos fuente se encuentra en el disco adjunto a este producto.

Por ejemplo un LCD de 4 líneas 16 caracteres tiene físicamente 16 terminalesl las cuales incluyen un bus de datos de 8 bits, una terminal de habilitación (E), una terminal de selección, que indica que el dato es una

Page 3: Lcd Serial

P I C M I C R O E S T D U D I OP I C M I C R O E S T D U D I O

22

instrucción o un carácter del mensaje (RS) y una terminal que indica si se va a leer o escribir en el módulo LCD (R/W). La siguiente tabla describe cada terminal:

Terminal Símbolo Nombre y Función 1 Vss Tierra 2 Vdd +5V 3 Vo Ajuste de contraste 4 /RS Selección Dato/Control 5 R/ /W Lectura/ Escritura en

LCD 6 E Habilitación 7 DO DO 8 D1 D1 9 D2 D2

10 D3 D3 11 D4 D4 12 D5 D5 13 D6 D6 14 D7 D7 Bit más

significativo Según la operación que se quiera realizar sobre el módulo de cristal líquido, las termínales de control E, RS y R/W deben tener un estado determinado. Además, debe tener en el bus de datos, el código que indique un carácter para mostrar en la pantalla o una instrucción de control. El módulo LCD responde a un conjunto especial de instrucciones, las cuales deben ser enviadas por el microcontrolador o sistema de control al display.

Descripción de las Terminales de una Pantalla de Cristal Líquido

Page 4: Lcd Serial

P I C M I C R O E S T D U D I OP I C M I C R O E S T D U D I O

33

Descripción del CircuitoDescripción del Circuito Como se observa en este circuito, la interfase que se realiza con el modulo LCD es de 8 bits. El jumper tiene como función seleccionar la polaridad de la transmisión, recordemos que cuando se habla de la comunicación serial RS-232, existen dos tipos de utilizando lógica negativa o lógica positiva, si se utiliza la lógica positiva el circuito debe utilizar el CI Max-232 Este circuito tiene dos resistencias, la de 100k y 220k , las cuales tienen como función que caracteres aleatorios no sean desplegados sobre la pantalla.

Page 5: Lcd Serial

P I C M I C R O E S T D U D I OP I C M I C R O E S T D U D I O

44

Código Fuente “ Ser_LCD.bas ”Código Fuente “ Ser_LCD.bas ” Se hace mención de que se está utilizando el compilador PBP, el cual consta con instrucciones para manejar directamente una pantalla de cristal líquido, lo cual hace más fácil la programación. El compilador PBP tiene una instrucción llamada LCDOUT la cual permite enviar cualquier mensaje sobre el display. A continuación se explica el código fuente de dicho módulo:

Está instrucción indica que la información se transmitirá por el Puerto B del Microcontrolador. DEFINE LCD_DREG PortB DEFINE LCD_DBIT 0 Está instrucción indica que el control del la terminal RS del LCD se hará con el Puerto A del Microcontrolador. DEFINE LCD_RSREG PortA

Está instrucción define que la terminal RS del LCD irá conectada físicamente al terminal 2 del Puerto A del Microcontrolador. DEFINE LCD_RSBIT 2 Está instrucción indica que el control del la terminal E del LCD se hará con el Puerto A del Microcontrolador. DEFINE LCD_EREG PortA Está instrucción define que la terminal E del LCD ira conectada físicamente al terminal 1 del Puerto a del Microcontrolador. DEFINE LCD_EBIT 3 Está instrucción define que la interfase se hará a 8 bits y dos líneas

DEFINE LCD_BITS 8 DEFINE LCD_LINES 2

Page 6: Lcd Serial

P I C M I C R O E S T D U D I OP I C M I C R O E S T D U D I O

55

La instrucción LCDOUT tiene como función desplegar mensajes sobre una pantalla de cristal líquido, sin embargo se tiene una serie de comandos que permiten editar los mensajes.

Los comandos tiene la siguiente sintaxis (Ver manual del PBP):

Comando Función 254,1 Limpiar display 254,2 Regresar a la primera línea

254,192 Mover el cursor a la segunda Línea

Por lo tanto si se desea desplegar un mensaje sobre la segunda línea de la pantalla de cristal líquido, el formato de la instrucción sería: LCDOUT 254, 192, “Este es un Mensaje” Para hacer que estos comandos sena mas fácil de manejar, se elaborar las siguientes equivalencias. I Con 254 Clr Con 1 Line1 Con 128 Line2 Con 192 Se declaran las variables a utilizar: SO Var PortA.0 VDD Var PortA.1 SO2 Var PortA.4 P_Test Var PortB.4 Rcvbyte Var Byte

Tabla 3.3 Comandos de una Pantalla de Cristal

Page 7: Lcd Serial

P I C M I C R O E S T D U D I OP I C M I C R O E S T D U D I O

66

Inicialmente nuestro programa empieza aquí, haciendo que la pantalla de cristal liquido quede apagada por 0.5 seg y después será activada, acto seguido se genera una pausa de 50 milisegundos dando tiempo para que la pantalla se inicialice. Inicio: Low VDD Pause 500 High VDD Pause 50 Si se observa el diagrama esquematizo el jumper tiene como función seleccionar la polaridad de la transmisión y en esta parte del programa se verifica si la polaridad es positiva o negativa. TrisB=255 If P_Test=1 then Goto True_Pol If P_Test=0 then Goto Inv_Pol Goto Inicio Dependiendo de la selección del usuario, en la pantalla de cristal liquido se desplegaran los siguientes mensajes. " T9600 Baud OK!" o ," N9600 Baud OK!" True_Pol: Gosub Clr_It Lcdout I,Line2," T9600 Baud OK!" Start_T9600: Serin SO,T9600,Rcvbyte Lcdout Rcvbyte Goto Start_T9600 Para finalizar el programa queda en un bucle infinito esperando la llegada de datos, los cuales son almacenados en la variable Rcvbyte, para después ser visualizados en la pantalla de cristal liquido. Inv_Pol:

Page 8: Lcd Serial

P I C M I C R O E S T D U D I OP I C M I C R O E S T D U D I O

77

Gosub Clr_It Lcdout I,Line2," N9600 Baud OK!" Start_N9600: Serin SO,N9600,Rcvbyte Lcdout Rcvbyte Goto Start_N9600 Clr_It: High VDD TrisB=0 Pause 100 Lcdout I,Clr:Pause 30 Lcdout I,Line1," LCD Serializer" Return El modulo Clave 502 puede ser utilizado para enviar algunos datos de prueba. En el disco que acompaña este proyecto encontrara varios ejemplos en PBP.