Vous êtes sur la page 1sur 6

LCD1

LM016L

VSS VDD VEE

RS RW E 4 5 6

1 2 3

U1
16 15 4 OSC1/CLKIN OSC2/CLKOUT MCLR RA0 RA1 RA2 RA3 RA4/T0CKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 PIC16F84A 17 18 1 2 3 6 7 8 9 10 11 12 13

DEFINE LCD_DREG PORTB DEFINE LCD_DBIT 4 DEFINE LCD_RSREG PORTB DEFINE LCD_RSBIT 1 DEFINE LCD_EREG PORTB DEFINE LCD_EBIT 2 PAUSE 500

Comando $FE, 1 $FE, 2 $FE, $0C $FE, $0E $FE, $0F $FE, $10 $FE, $14 $FE, $C0

Operacin Limpia visor Vuelve a inicio (comienzo de la primera lnea) Cursor apagado Subrayado del cursor activo Parpadeo del cursor activo Mueve cursor una posicin hacia la izquierda Mueve cursor una posicin hacia la derecha Mueve cursor al comienzo de la segunda lnea

DISPLAY POSITION DD RAM ADDRESS DD RAM ADDRESS

1 80 C0

2 81 C1

3 82 C2

CODIGO DE DIRECCIONES DE CARACTERES 4 5 6 7 8 9 10 11 12 83 C3 84 C4 85 C5 86 C6 87 C7 88 C8 89 C9 8A CA 8B CB

7 8 9 10 11 12 13 14

D0 D1 D2 D3 D4 D5 D6 D7

13 8C CC

14 8D CD

15 8E CE

16 8F CF

Estos LCDs tienen normalmente un controlador HD44780 o compatible y se componen de una matriz de 5 pxeles horizontales por 8 verticales por carcter. En su memoria CGRAM puede almacenar hasta 8 nuevos caracteres. La aplicacin de smbolos es muy utilizada para crear animaciones o en indicadores de estado, como podra ser el tringulo para Play, cuadrado para Stop, smbolo de batera, etc... En la imagen de la derecha podemos ver la creacin de 4 nuevos smbolos y mi Alias "Zaxione". Esta matriz con cuadros nos ayudara a calcular los Bytes necesarios para crear un carcter o smbolo nuevo. Los cuadros azules tienen una numeracin que se repite en cada fila horizontal. Esta numeracin es necesaria para poder hacer el clculo y pasar de pxeles a Bytes. Como ejemplo, en rojo s aya dibujada una flecha. Si sumamos los cuadrados marcados en rojo de cada fila horizontal tendremos 8 nmeros decimales (cuadrados amarrillos) necesarios para generar un nuevo carcter. Ahora solo nos falta enviar la informacin al microcontrolador de la siguiente manera:

LCDOUT 254, 64, 4, 14, 21, 4, 4, 4, 4, 0

Donde LCDOUT es la instruccin que controla el LCD. Enviando 254 o $FE le indicamos al LCD que va a recibir un comando. El comando 64 indica al LCD que es el primer carcter de la memoria CGRAM. Los datos 4, 14, 21, 4, 4, 4, 4, 0 representan los Bytes del nuevo carcter.

Una vez echo esto, el nuevo carcter ya est grabado en la memoria CGRAM del LCD, pero no se visualizara hasta que lo utilicemos de la siguiente manera:

LCDOUT 0

Donde LCDOUT es la instruccin que controla el LCD. Y 0 es el primer carcter de la memoria CGRAM que previamente habamos grabado en el comando 64.

Para aadir ms caracteres a la memoria CGRAM tenemos que sumarle 8 al comando, en ese caso es 64 + 8 = 72 y as sucesivamente. En este ejemplo podemos observar los 8 comandos ya calculados con los Bytes de los nuevos caracteres. LCDOUT 254, 64, 4, 14, 21, 4, 4, 4, 4, 0 LCDOUT 254, 72, 14, 31, 0, 10, 0, 17, 14, 0 LCDOUT 254, 80, 4, 14, 4, 14, 21, 21, 10, 10 LCDOUT 254, 88, 0, 14, 27, 31, 3, 31, 14, 0 LCDOUT 254, 96, 0 ,31 ,31, 31 ,31 ,31 ,0 ,0 LCDOUT 254, 104, 0 ,8 ,12, 14 ,12 ,8 ,0 ,0 LCDOUT 254, 112, 0 ,14 ,31, 31 ,31 ,14 ,0 ,0 LCDOUT 254, 120, 0 ,4 ,14, 31 ,0 ,31 ,31 ,0

Una vez echo esto, para poder visualizarlos solo es necesario escribir la posicin donde se grabaron. LCDOUT 0, 1, 2, 3, 4, 5, 6, 7

Donde LCDOUT es la instruccin que controla el LCD. Y 0 corresponde al carcter guardado en el comando 64. El 1 corresponde al carcter guardado en el comando 72 y as sucesivamente.

DEFINICIN DE REGISTROS PARA EL LCD

DEFINE LCD_DREG PORTB 'UTILIZAR 4 BITS DEL PUERTO B PARA TX DE DATOS

DEFINE LCD_DBIT 4

'DESDE EL BIT B.4 AL BIT B.7

DEFINE LCD_RSREG PORTB'SELECCIN DEL PUERTO DEL REGISTRO

DEFINE LCD_RSBIT 1

'EN EL BIT B.1

DEFINE LCD_EREG PORTB 'UTILIZAR EL ENABLE EN EL PUERTO B

DEFINE LCD_EBIT 2

'EN EL BIT B.2

' ESTABLECER EL PUERTO B COMO SALIDA

TRISB=0

' TAMAO DE VARIABLES DEL CONTADOR

B0 VAR BYTE

B1 VAR BYTE

' PAUSA DE INICIO DEL LCD

PAUSE 500

'--------------------------------------------------------

LCDOUT $FE, 1 ' LIMPIAR LCD

LCDOUT $FE, 1, "WWW.MATPIC.COM" 'ESCRIBIR EN LA PRIMERA LNEA

LCDOUT $FE, $C0, "ELECTRONICA" 'ESCRIBIR EN LA SEGUNDA LNEA

PAUSE 1000

' MOSTRAR DATOS DECIMALES Y BINARIOS

LCDOUT $FE, 1, DEC 25

LCDOUT $FE, $C0, BIN 25

'--------------------------------------------------------

'MOSTRAR LETRA POR LETRA

PAUSE 500

LCDOUT $FE, 1 ' LIMPIAR LCD

FOR B0 = 0 TO 13

LOOKUP B0,["WWW.MATPIC.COM"],B1

LCDOUT $FE,$0C,B1

PAUSE 500

NEXT

LCDOUT $FE, $C0 'COLOCAR EL CURSOR EN LA SEG LNEA

FOR B0 = 0 TO 13

LOOKUP B0,["WWW.EQBYTE.COM"],B1

LCDOUT $FE,$0C,B1

PAUSE 500

NEXT

'--------------------------------------------------------

'DESPLAZAMIENTO DE TEXTO EN LCD

FOR B0 = 144 TO 128 STEP -1

LCDOUT $FE, 1 ' LIMPIAR LCD

LCDOUT $FE,B0,"WWW.MATPIC.COM"

PAUSE 200

NEXT

END

Vous aimerez peut-être aussi