.
- Tabita Quilumbaquin - Edwin Ruiz 07 de junio de 2012
“ MANEJO DE
LA LCD 16x2 ”
Realizar el programa para poder visualizar un mensaje por medio de la pantalla LCD.
Conocer el funcionamiento de los pines de la pantalla LCD. Configurar los pines de control y de datos de la pantalla LCD.
3. Descripción 1.En la práctica se trabajara con una una LCD de 16x2, 16x2, con la finalidad de de mostrar un texto texto en la pantalla, usando un bus de 8 bits. El envió de datos se realizara a través del puerto b del MC, mientras que el control se realizara a través del puerto c, con lo siguiente: Pin C0 a Rs Pin C1 a rw Pin C6 a E 2. Realizar un dezplazamiento a 4 bits
Pantalla LCD. Una pantalla de cristal liquido o LCD es una pantalla delgada y plana formada por un determinado número de pixeles monocromos (para este caso), colocados delante de una fuente luminosa. Una de las principales características de las pantallas LCD es su bajo consumo de energía eléctrica en comparación con los displays. Existen varias presentaciones presentacio nes de una pantalla LCD por ejemplo de 2 líneas por 8 caracteres,2x16, 2x20, 4x20, 4x40, etc. Sin backlight (14 pines) o con backlight (16 pines, iluminado de pantalla), pantalla ), el LCD más popular es el 2x16, 2 líneas de 16 caracteres cada una.
CARACTERÍSTICAS DE DE LA PANTALLA LCD Desplazamiento Desplazamiento de los caracteres a la izquierda y a la derecha. Memoria de 40 caracteres por línea en los de 16 por 2. Movimiento del cursor y cambio de su aspecto. Conexión para el el usuario usando 4 u 8 bits. Permite que el usuario pueda programar 8 caracteres.
IMAGEN 1 TUTORIAL AVR
IMAGEN 2 HOJA DE DATOS LCD
Para inicializar la pantalla LCD tenemos que seguir se guir una serie de instrucciones las cuales como se puede apreciar en el código son las siguientes que se encuentran representadas en la tabla.
IMAGEN 3 COLLAGUAZO, GERARDO, SISTEMAS BASADOS EN MICROPROCESADOREs
INICIO
CONF DEL PORT D COMO SALIDA CONF, LCD
CONFIG. LOS PINES DE LA LCD
LIMPIAR PANTALLA
ESCRIBIR LCD "HOLA",'*',"MUNDO
DEZPLAZAR
FIN
- Lista de componentes:
Pantalla LCD 16x2. Micro controlador atmega 324p. Potenciómetro de 1k ohmio. Cables. Protobooar Fuente de 5 v
NOTA: NO ESTÁN ESPECIFICADOS LOS PINES DE ALIMENTACIÓN DEL MICROCONTROLADOR .include"m324pdef.inc" .include"m324pdef.inc" ;definiciones variables .def temp=r16 .def temp=r16 .def dato_lcd= .def dato_lcd= r17 ;programa principal .org 0x00 ldi temp,HIGH(RAMEND); temp,HIGH(RAMEND); INICIO PUTTERO DE LA RAM out SPH,temp ldi temp, LOW(RAMEND) out SPL,temp rcall config_port rcall init_lcd
; LLAMADA A CONFIGURA PUERTOS ; LLAMADA A INICIALIZACION LCD
rcall clr_lcd ;LLAMADA A RESET DEL LCD rcall r_50ms ldi ZH,HIGH(msj_1*2); ZH,HIGH(msj_1*2); PUNTERO PARA EL MENSAJE ldi ZL,LOW(MSJ_1*2) rcall envia_msj ;LLAMADA A VISUALIZACION DE L MENSAJE fin: nop rjmp fin; fin; ;configuracion de puertos ;lcd pb0-pb7
;pc0 rs, pc1 r/w, pc6 e config_port: ldi temp,0xff out ddrc,temp ;pin de control rs, rw, e. ldi temp,0xff out ddrb,temp ;pines de dato ;configuracion lcd init_lcd: ldi dato_lcd,0b00111100 ;2 lineas dysplay,bus de datos de 8 bits y visualizacion de 5x10 rcall envia_cmd rcall r_15u ldi dato_lcd,0b00001111 ;pantalla encendida, cursor encendido, intermitencia del cursor encendido. rcall envia_cmd rcall r_15u ldi dato_lcd,0b00000001;borrar dato_lcd,0b00000001;borrar pantalla y retorna el cursor a la direccion 0 rcall envia_cmd rcall r_15u ldi dato_lcd,0b00000110 ;modo incremental del cursor, no dezplazamient dezplazamiento o de texto rcall envia_cmd ret ;envia instruccion a la lcd ;entrada r17 = dato - lcd ;pc0 - rs, pc1-rw, pc6-e ;rs=0,rw=0,e=1, envia_cmd: ldi temp,0 out portc,temp nop sbi portc,6 nop out portb,dato_lcd rcall r_15u cbi portc,6 nop ret ;________________________ ;envia dato a lcd ;pc0-rs,pc1-rw,pc6-e ;rs=1,rw=0,e=1 envia_data: ldi temp,0 out portc,temp nop sbi portc,6 nop sbi portc,0 nop out portb,dato_lcd rcall r_15u cbi portc,6;e=0 portc,6 ;e=0 cbi portc,0;rs=0 portc,0 ;rs=0 nop ret
;rs=0,rw=0,e=0 ;e=1 ;envia palabra de control ;e=0
;rs-0,rw=0,e=0 ;e=1 ;rs=0 ;envia caracter
;envia mensaje a lcd envia_msj: lpm dato_lcd,z+ cpi dato_lcd,'*'
;carga dato ;indicadro de cambio
breq sec_line cpi dato_lcd,0 breq fin_msj rcall envia_data rjmp envia_msj
;indicador de fin de mensaje
sec_line: ldi dato_lcd,0b11000000 rcall envia_cmd rjmp envia_msj fin_msj: ret clr_lcd: push temp in temp,SREG push temp ldi dato_lcd,$ dato_lcd,$01 rcall envia_cmd
;limpio
pop temp out SREG,R16 pop temp ret ;retar5do de 15us ;ningun registro modificado r_15u: nop nop nop nop nop nop nop nop nop nop ret r_50ms: push r16 in r16,SREG push r16 push r18 ldi r18,60 lazo0_r_50ms: ldi r16,$ r16,$ff lazo1_r_50ms: dec r16 brne lazo1_r_50ms dec r18 brne lazo0_r_50ms pop r18 pop r16 out SREG,r16 pop r16 ret ;tabla msj_1: .db "HOLA",'*',"MUNDO",0 "HOLA",'*',"MUNDO",0
Con la conexión conexión a 8 bits del del bus de datos datos de la pantalla pantalla se facilito facilito la programación programación de la misma, misma, puesto que enviamos los 8 bits de datos en paralelo. Para poder configurar el funcionamiento funciona miento de la LCD, se necesita enviar por los puertos del MC la señal adecuada, ya sea que necesitemos desplazamiento de texto, 8 bits de datos, una sola línea de visualización, etc.
Collaguazo, Gerardo, Gerardo, Sistemas Basados En Microprocesadores Microprocesadores Tutorial avr, biblioteca biblioteca personal. personal.