Академический Документы
Профессиональный Документы
Культура Документы
LM016L
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
1 80 C0
2 81 C1
3 82 C2
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:
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.
DEFINE LCD_DBIT 4
DEFINE LCD_RSBIT 1
DEFINE LCD_EBIT 2
TRISB=0
B0 VAR BYTE
B1 VAR BYTE
PAUSE 500
'--------------------------------------------------------
PAUSE 1000
'--------------------------------------------------------
PAUSE 500
FOR B0 = 0 TO 13
LOOKUP B0,["WWW.MATPIC.COM"],B1
LCDOUT $FE,$0C,B1
PAUSE 500
NEXT
FOR B0 = 0 TO 13
LOOKUP B0,["WWW.EQBYTE.COM"],B1
LCDOUT $FE,$0C,B1
PAUSE 500
NEXT
'--------------------------------------------------------
LCDOUT $FE,B0,"WWW.MATPIC.COM"
PAUSE 200
NEXT
END