Control Display LCD

download Control Display LCD

of 27

Transcript of Control Display LCD

Electrocomponentes S.A. Solis 225 / 227 / 229 Cap. Fed. (1078) Buenos Aires Argentina Tel: (5411) 4375- 3366 Fax: (5411) 4325-8076

COMENTARIO TECNICO

Como manejar un Display Inteligente LCD por medio de un Microcontrolador de la Familia HC908..Por Ing. Daniel Di Lella D.F.A.E For Motorola Products Depto. Tcnico Electrocomponentes [email protected]

Hoy en da, es una necesidad cada vez ms frecuente, la visualizacin de comandos yestados de una gran variedad de equipos con el usuario final. Es evidente que, al ir mejorando las prestaciones generales de un sistema o equipo, se hace necesario disponer de un medio prctico de comunicar las diferentes informaciones "Usuario - Mquina". Uno de los elementos ms usados en este sentido, es el display LCD de tipo "inteligente". Estos mdulos, son la forma ms eficiente de comunicacin alfanumrica con el mundo exterior. Los hay de distintos tamaos, cantidad de caracteres y cantidad de filas. Por ejemplo, la empresa WINTEK Corporation (Electrocomponentes, es distribuidor exclusivo en la Argentina), posee mdulos desde 8 caracteres x 1 lnea (osea una lnea de 8 caracteres) , hasta mdulos de 40 caracteres x 4 lneas. Un opcional que mejora la visibilidad en cualquier condicin es el "Back - Light" o luz de fondo que puede ser del tipo a LED (array de LEDs uniformemente distribuidos) o del tipo Electroluminicente. El propsito del siguiente artculo, no es entrar en detalles constructivos o de presentacin, sino aportar datos tiles para poder utilizar uno de estos display con un microcontrolador en un proyecto determinado. Introduccin: Los mdulos de display inteligentes, son denominados as, ya que poseen la "inteligencia" necesaria como para efectuar en forma totalmente automtica y transparente para el usuario, las complejas operaciones de control, presentacin y mantenimiento de los caracteres en pantalla. Para ello, todos cuentan con controladores dedicados, integrados a la estructura de los mismos. Estos controladores integrados, aunque de distintos fabricantes, presentan repertorios o sets de instrucciones (lista de comandos) hacia el mundo exterior muy similares entre s, por lo cul, en la mayora de los casos, no importa la marca del display a emplear, sino el hecho que utilicen controladores integrados compatibles, haciendo de esta forma "genrico" el uso de un display LCD inteligente.www.electrocomponentes.com [email protected]

Electrocomponentes S.A. Solis 225 / 227 / 229 Cap. Fed. (1078) Buenos Aires Argentina Tel: (5411) 4375- 3366 Fax: (5411) 4325-8076

Lneas de Conexin:

Los display inteligentes poseen lneas de conexin con el mundo exterior que pueden dividirse en : Lneas de Datos / Comandos. Lneas de Control

Las lneas de Datos / Comandos son las utilizadas por el display para recibir Datos o Comandos y eventualmente pueden utilizarce para conocer el estado de ocupacin del controlador interno (display "Busy"). Segn el modo empleado, pueden necesitarse 8 o 4 lneas de Datos / Comandos. Si se utiliza el modo de 8 lneas de Datos, se tiene la ventaja de un manejo ms sencillo a la hora de implementar el software en el microcontrolador elegido, pero se paga el precio de tener que disponer ms puerto I/O del MCU para el envo de datos o comandos al display. En cuanto a las lneas de Control, son necesarias para coordinar las distintas operaciones que puede realizar un display LCD , a saber: Escritura de Datos al display (Data Word). Escritura de Comandos al display (Control Word). Lectura de estados del display (Busy, Address Counter, DD RAM, CG RAM)

Solo son necesarias 3 lneas de control para efectuar la tarea, RS , E , y R/W. Cuando se quiere trabajar con alguno de estos displays, se pueden utilizar varias formas de control de los mismos. Por ejemplo se puede trabajar con 8 bits o con 4 bits de palabra de datos. Tambin puede utilizarse el mtodo de demora fija entre envo de caracter y caracter, o emplear el mtodo de lectura del estado "Busy" que proporciona el controlador integrado en el display. Los diagramas de tiempos correspondientes a las distintas seales de control se observan en las siguientes figuras:

www.electrocomponentes.com [email protected]

Electrocomponentes S.A. Solis 225 / 227 / 229 Cap. Fed. (1078) Buenos Aires Argentina Tel: (5411) 4375- 3366 Fax: (5411) 4325-8076

La inicializacin de estos displays , puede efectuarse en forma automtica por medio del propio controlador integrado, al detectar este un Power - On Reset (P.O.R) , osea durante el encendido del sistema, o bien por medio de comandos de software enviados al controlador para efectuar esta tarea de inicializacin. Muchas veces puede ocurrir, que la pendiente de subida de la fuente de alimentacin, no es lo suficientemente abrupta como para garantizar que el controlador integrado detecte la condicin de P.O.R. , por lo que es conveniente tener contemplado el uso de una rutina de inicializacin por software en nuestra aplicacin.

www.electrocomponentes.com [email protected]

Electrocomponentes S.A. Solis 225 / 227 / 229 Cap. Fed. (1078) Buenos Aires Argentina Tel: (5411) 4375- 3366 Fax: (5411) 4325-8076

Una vez efectuado el "Reset" del display, el mismo se encuentra en condiciones de recibir palabras de comando que personalizan la forma de presentar los sucesivos caractereswww.electrocomponentes.com [email protected]

Electrocomponentes S.A. Solis 225 / 227 / 229 Cap. Fed. (1078) Buenos Aires Argentina Tel: (5411) 4375- 3366 Fax: (5411) 4325-8076

enviados a este. Por ejemplo se pueden enviar comandos de "Clear Display" para limpiar la presentacin en pantalla, "Return Home" para posicionar al cursor en la posicin "Home" o primer carcter superior izquierdo, etc, etc. En las siguientes figuras, pueden verse la lista completa de los mismos y algunos ejemplos de uso de estos.

www.electrocomponentes.com [email protected]

Electrocomponentes S.A. Solis 225 / 227 / 229 Cap. Fed. (1078) Buenos Aires Argentina Tel: (5411) 4375- 3366 Fax: (5411) 4325-8076

A continuacin veremos una aplicacin tpica de manejo de display a 8 bits de datos, la forma de envo de los distintos caracteres es por el mtodo de demora fija, utilizando para ello un microcontrolador de la lnea FLASH HC908 de Motorola. El MCU elegido es el MC68HC908GP32 pero la aplicacin es valida para cualquier MCU de la familia.

Si bien el mtodo de demora fija, es el menos eficiente en cuanto a velocidad de transferencia de informacin desde el MCU al display, es tambin el ms sencillo de implementar por el usuario sin experiencia previa. Si el lector evaluara conveniente el usowww.electrocomponentes.com [email protected]

Electrocomponentes S.A. Solis 225 / 227 / 229 Cap. Fed. (1078) Buenos Aires Argentina Tel: (5411) 4375- 3366 Fax: (5411) 4325-8076

de un mtodo ms eficiente para una aplicacin especfica, sugerimos consultar la nota de aplicacin de Motorola AN 1745 (e-www.motorola.com , seccin "Microcontrollers") y la Informacin tcnica disponible en el Web Site de WINTEK CORP (www.wintek.com.tw) .

A continuacin veremos una aplicacin tpica de manejo de display a 8 bits de datos, la forma de envio de los distintos caracteres es por el mtodo de demora fija. El MCU elegido es el MC68HC908GP32 pero la aplicacin es valida para cualquier MCU de la familia.+5VDC VDD PTA0 A PTA7 8 R/W HC908 GP32 PTC0 PTC1 PTC2 RS E LCD 16 caracteres x 2 lneas

V0

VSS

*********************************************************************** * DISP8BIT.ASM PROGRAMA DE APLICACION PARA DISPLAY LCD * * 16 CARACTERES X 2 LINEAS *www.electrocomponentes.com [email protected]

Electrocomponentes S.A. Solis 225 / 227 / 229 Cap. Fed. (1078) Buenos Aires Argentina Tel: (5411) 4375- 3366 Fax: (5411) 4325-8076

* El display aqu usado es marca WINTEK modelo WM-C1602Q1GLY * * pero puede aplicarse a cualquier tipo de display LCD inteligente * * * * Se utilizar un MC68HC908GP32CP para esta aplicacin, con la siguiente config. * * de puertos: * * * * PORTA ---- PTA0 a PTA7 como salida de datos a conectar a DB0 a DB7 respec. * * * * PORTC ---- PTC0 a PTC2 como salida lneas de control de la siguiente forma: * * * * PTC0 ---- R/W * * PTC1 ---- RS * * PTC2 ---- E * ************************************************************************

base 10T include "gp32head.asm"

;Base Decimal por Default ;Equates grales. p/ GP32

*************** * EQUATES * *************** RAMSPACE FLASHSPACE EQU $0040 EQU $8000 ;Comienzo de la RAM en el GP32 ;Comienzo de la FLASH en el GP32

***************** * VARIABLES RAM * ***************** ORG RAMSPACE TEMPA TEMPX TEMPHX PANTALLAS DELAY1S RMB RMB RMB RMB RMB 1 1 2 1 1 ;Comienzo de la RAM ;Almacenamiento Temporal del ACC ;Almacenamiento temporal de X ;Almacenamiento Temporal del H:X ;Cdor. Tot. de pantallas a mostrar ;Cdor. Delay de 1 seg. (20 x 50mS)

;------------------------------------------------;INICIALIZACIN DEL 908GP32 ;Setup de los Configuration Registers www.electrocomponentes.com [email protected]

Electrocomponentes S.A. Solis 225 / 227 / 229 Cap. Fed. (1078) Buenos Aires Argentina Tel: (5411) 4375- 3366 Fax: (5411) 4325-8076 ;------------------------------------------------START MOV MOV NOP NOP MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV #$0B,CONFIG1 #$03,CONFIG2 ;Set LVI5OR3 and COPD, enable STOP ;Selecciono Fbus como SCI clock

#$00,PORTA #$FF,DDRA #00,PORTA #$00,PORTB #$00,DDRB #$00,PORTB #$00,PORTC #$0F,DDRC #$00,PORTC #$00,PORTD #$00,DDRD #$00,PORTD

;PORT A todo como SALIDA

;PORT B todo como entrada

;PORT C PTC0/3 ->OUT, PTC4/6 ->IN

;PORT D todo como entrada

MOV #$00,PTAPUE MOV #$00,PTCPUE MOV #$00,PTDPUE

;PORT A sin PULL UPS ;PORT C sin PULL UPS ;PORT D sin PULL UPS

SEI

; I MASK = 1 -> NO USO INTs ; para esta aplicacin

**************************************** * PREPARO EL DISPLAY p/ POWER ON RESET * * del mismo (Ver grficos aparte) y su * * inicializacin de comandos * **************************************** JSR DLY50 LDA #$38 JSR WCTRL JSR DLY50 LDA #$38 JSR WCTRL JSR DLY50 LDA #$38 JSR WCTRL LDA #$38 JSR WCTRL LDA #$08 JSR WCTRL LDA #$01 JSR WCTRL LDA #$06 JSR WCTRL ********************* * INICIALIZO EL LCD * ********************* ;DELAY 50MS DESPUES DEL POWER-ON ;FUNTION SET -8 BITS - 2LINE - 5X7 ;DELAY 50MS ;FUNTION SET - 8BITS - 2LINE - 5X7

;FUNTION SET - 8BITS - 2LINE - 5X7 ;FUNTION SET - 8BITS - 2LINE - 5X7 ;DISPLAY OFF ;CLEAR DISPLAY ;ENTRY MODE - INC ADDR - NO SHIFT

www.electrocomponentes.com [email protected]

Electrocomponentes S.A. Solis 225 / 227 / 229 Cap. Fed. (1078) Buenos Aires Argentina Tel: (5411) 4375- 3366 Fax: (5411) 4325-8076 LDA JSR LDA JSR LDA JSR LDA JSR LDA JSR #$01 WCTRL #$02 WCTRL #$38 WCTRL #$0C WCTRL #$06 WCTRL ;CLEAR DISPLAY ;HOME CURSOR ;FUNTION SET - 8BITS - 2LINE - 5X7 ;DISPLAY ON , CURSOR OFF ;ENTRY MODE - INC ADDR - NO SHIFT

************************* * RUTINA PRESENTACION * * PANTALLAS EN DISPLAY * * CADA 1 SEG APROX. * ************************* CLRH CLRX MOV #5,PANTALLAS MOV #20,DELAY1S JSR DISPLAY_L1 JSR DISPLAY_L2 JSR DLY50 DEC DELAY1S BNE LOOP1S DEC PANTALLAS BNE NEW_SCREEN BRA AGAIN ;H=$00, solo uso X como indice ;APUNTO X AL COMIENZO DE TABLA ;5 PANTALLAS A MOSTRAR !!! ;CADA PANTALLA ESTARA 1 SEG

AGAIN NEW_SCREEN

LOOP1S

***************************************************** * DISPLAY_L1/L2 - SUBRUTINAS DE PRESENTACION DE 1ERA* * Y 2DA LINEA DISPLAY LCD CON MENSAJES * * CONTENIDOS EN UNA TABLA ( TDISPLAY ) * * SE ENTRA CON VALOR DE X ( COMIENZO DEL STRING ) * * Y SOLA LA RUTINA INCREMENTA X PARA MOSTRAR TODO * * EL STRING EN PANTALLA * ***************************************************** DISPLAY_L1 LDA #$02 JSR WCTRL BRA DISPLOOP ;POSICION HOME

DISPLAY_L2

LDA #$C0 ;POSICIONO COMIENZO 2DA LINEA JSR WCTRL DISPLOOP LDA TDISPLAY,X ;ACC->1ER CARAC. DE TABLA TDISPLAY CMP #4 ;SI CARACTER=$04 -> FIN 1ER STRING BEQ STE ;SINO SIGO MOSTRANDO OTRO CARACTER JSR WDAT ;ESCRIBO CARACTER EN LCD INCX ;INCR. PUNTERO AL PROX. CAR. BRA DISPLOOP ;BUSCO OTRO CARACTER STE RTS ;****** RETORNO ********** ****************************************************** * WCTRL - RUTINA DE ESCRITURA DE PALABRAS DE CONTROL * * EN EL LCD, ENTRO CON UN COMANDO EN EL ACC Y * www.electrocomponentes.com [email protected]

Electrocomponentes S.A. Solis 225 / 227 / 229 Cap. Fed. (1078) Buenos Aires Argentina Tel: (5411) 4375- 3366 Fax: (5411) 4325-8076 * RETORNO CON EL VALOR ORIGINAL DE X * * DELAY 4,5 mS SI ACC=$01 O $02 SINO DE 120 MICROSEG * ****************************************************** WCTRL STX TEMPX STHX TEMPHX STA PORTA BSET 2,PORTC NOP BCLR 2,PORTC LDX #160 DECX NOP NOP BNE L120U CMP #$02 BHI ARN5M LDHX #2164 JSR ANRTS AIX #-1 CPHX #0 BNE L5M LDX TEMPX LDHX TEMPHX RTS ;SALVO X ;SALVO H:X ;ESCRIBO PALABRA CONTROL EN LCD ;E--->1 PULSO PARA ACTIVAR LCD ;E--->0 ;160*6*125nSEG = 120 MICROSEG ;DELAY LOOP 120 MICROSEG

L120U

;160,159.......0 ;SI COMANDOS = 01 o 02 EXTRA DELAY ;SI COMANDOS >02 -> LO SALTO ;JSR Y RTS TOMAN 9 CICLOS ;2164x(9+2+3+3)x125Nseg = 4,6mS ; ;RESTAURO X ;RESTAURO H:X ;*** RETORNO ****

L5M

ARN5M ANRTS

********************************************************** * WDAT - RUTINA DE ESCRITURA DE DATOS EN EL LCD * * ENTRO CON PALABRA DE DATOS EN EL ACC Y RETORNO * * CON VALOR ORIGINAL DE X Y A * ********************************************************** WDAT STX TEMPX STHX TEMPX STA TEMPA STA PORTA BSET 1,PORTC BSET 2,PORTC NOP BCLR 2,PORTC BCLR 1,PORTC LDX #160 DECX NOP NOP BNE L120 LDA TEMPA LDX TEMPX LDHX TEMPHX RTS ;SALVO X ;SALVO H:X ;SALVO A ;ESCRIBO PALABRA DATOS EN EL LCD ;RS -->1 ;E--->1 PULSO PARA LCD ;E-->0 ;RS-->0 ;160*6*125nSEG = 120 MICROSEG ;DELAY LOOP 120 MICROSEG

L120

;160,159...0 ;RESTAURO ACC ;RESTAURO X ;RESTAURO H:X ;*** RETORNO ***

************************ * DLY50 * * RUTINA DELAY 50 mS * www.electrocomponentes.com [email protected]

Electrocomponentes S.A. Solis 225 / 227 / 229 Cap. Fed. (1078) Buenos Aires Argentina Tel: (5411) 4375- 3366 Fax: (5411) 4325-8076 * con Xtal= 32 Mhz * * T = 125 nSeg * ************************ DLY50 STA TEMPA STHX TEMPXH LDHX #10000 LDA #5 LDHX #10000 AIX #-1 CPHX #0 BNE INNRLP1 DECA BNE OUTLP1 LDA TEMPA LDHX TEMPXH RTS ;Salvo ACC en RAM ;Salvo X:H en RAM ;H:X