4.16 Ejemplo 14
Utilizar el visualizador LCD gráfico
Un LCD gráfico (GLCD) proporciona un método avanzado para visualizar mensajes. Mientras que un LCD de caracteres puede visualizar sólo caracteres alfanuméricos, el LCD gráfico puede visualizar los mensajes en forma de dibujos y mapas de bits. El LCD gráfico utilizado con más frecuencia tiene una resolución de pantalla de 128x64 píxeles. El contraste de un GLCD se puede ajustar por medio del potenciómetro P1.
Aquí, el GLCD visualiza un camión cuyo mapa de bits se almacena en el archivo
truck_bmp.mbas
.

'Cabecera******************************************************
program example_14 ' Nombre de programa
dim GLCD_DataPORT as byte at PORTD
dim GLCD_CS1 as sbit at RB0_bit ' Conexiones del módulo Glcd
GLCD_CS2 as sbit at RB1_bit
GLCD_RS as sbit at RB2_bit
GLCD_RW as sbit at RB3_bit
GLCD_EN as sbit at RB4_bit
GLCD_RST as sbit at RB5_bit
dim GLCD_CS1_Direction as sbit at TRISB0_bit
GLCD_CS2_Direction as sbit at TRISB1_bit
GLCD_RS_Direction as sbit at TRISB2_bit
GLCD_RW_Direction as sbit at TRISB3_bit
GLCD_EN_Direction as sbit at TRISB4_bit
GLCD_RST_Direction as sbit at TRISB5_bit ' Final de conexiones del módulo Glcd
dim counter as byte
someText as char[18]
sub procedure Delay2S() ' Subfunción de retardo de 2 segundos
Delay_ms(2000)
end sub
main: ' Inicio de programa
ANSEL = 0 ' Configurar pines analógicos como digitales de E/S
ANSELH = 0
Glcd_Init() ' Inicializar el Glcd
Glcd_Fill(0x00) ' Borrar el Glcd
while TRUE ' Bucle infinito
Glcd_Image(@truck_bmp) ' Dibujar imagen
Delay2S() delay2S()
Glcd_Fill(0x00) ' Borrar el Glcd
Glcd_Box(62,40,124,63,1) ' Dibujar la caja
Glcd_Rectangle(5,5,84,35,1) ' Dibujar el rectángulo
Glcd_Line(0, 0, 127, 63, 1) ' Dibujar la línea
Delay2S()
counter = 5
while (counter <= 59) ' Dibujar líneas horizontales y verticales
Delay_ms(250)
Glcd_V_Line(2, 54, counter, 1)
Glcd_H_Line(2, 120, counter, 1)
Counter = counter + 5
wend
Delay2S()
Glcd_Fill(0x00) ' Borrar el GLCD
Glcd_Set_Font(@Character8x7, 8, 7, 32) ' Seleccionar la fuente "Character8x7"
Glcd_Write_Text("mikroE", 1, 7, 2) ' Escribir la cadena
for counter = 1 to 10 ' Dibujar los círculos
Glcd_Circle(63,32, 3*counter, 1)
next counter
Delay2S()
Glcd_Box(10,20, 70,63, 2) ' Dibujar la caja
Delay2S()
Glcd_Fill(0xFF) ' Llenar el Glcd
Glcd_Set_Font(@Character8x7, 8, 7, 32) ' Cambiar de la fuente
someText = "8x7 Font"
Glcd_Write_Text(someText, 5, 0, 2) ' Escribir la cadena
delay2S()
Glcd_Set_Font(@System3x5, 3, 5, 32) ' Cambiar de la fuente
someText = "3X5 CAPITALS ONLY"
Glcd_Write_Text(someText, 60, 2, 2) ' Escribir la cadena
delay2S()
Glcd_Set_Font(@font5x7, 5, 7, 32) ' Cambiar de la fuente
someText = "5x7 Font"
Glcd_Write_Text(someText, 5, 4, 2) ' Escribir la cadena
delay2S()
Glcd_Set_Font(@FontSystem5x7_v2, 5, 7, 32) ' Cambiar de la fuente
someText = "5x7 Font (v2)"
Glcd_Write_Text(someText, 5, 6, 2) ' Escribir la cadena
delay2S()
wend
end. ' Final de programa
truck_bmp.mbas file:
module bitmap ' Módulo con el código de mapa de bits
const truck_bmp as byte[1024] =
(0,0,0,0,0,248,8,8,8,8,8,8,12,12,12,12,12,10,10,10,10,10,10,9,9,9,9,9,9,9,9,9,9,
9,9,9,9,9,9,9,9,9,137,137,137,137,137,137,137,137,137,137,137,137,137,9,9,9,9,9,
9,9,9,9,9,9,13,253,13,195,6,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,
0,0,0,0,0,0,0,0,0,240,240,240,240,240,224,224,240,240,240,240,240,224,192,192,22
4,240,240,240,240,240,224,192,0,0,0,255,255,255,255,255,195,195,195,195,195,195,
195,3,0,0,0,0,0,0,0,0,0,0,0,0,255,240,79,224,255,96,96,96,32,32,32,32,32,32,32,3
2,32,32,32,32,32,64,64,64,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0
,0,0,255,255,255,255,255,0,0,0,0,255,255,255,255,255,0,0,0,255,255,255,255,255,1
29,129,129,129,129,129,129,128,0,0,0,0,0,0,0,0,0,0,0,0,255,1,248,8,8,8,8,8,8,8,8
,8,8,8,8,8,8,16,224,24,36,196,70,130,130,133,217,102,112,160,192,96,96,32,32,160
,160,224,224,192,64,64,128,128,192,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
63,96,96,96,224,96,96,96,96,96,96,99,99,99,99,99,96,96,96,96,99,99,99,99,99,96,9
6,96,96,99,99,99,99,99,96,96,96,99,99,99,99,99,99,99,99,99,99,99,99,99,96,96,96,
96,96,96,96,64,64,64,224,224,255,246,1,14,6,6,2,2,2,2,2,2,2,2,2,2,2,130,67,114,6
2,35,16,16,0,7,3,3,2,4,4,4,4,4,4,4,28,16,16,16,17,17,9,9,41,112,32,67,5,240,126,
174,128,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,127,127,127,127,255
,255,247,251,123,191,95,93,125,189,189,63,93,89,177,115,243,229,207,27,63,119,25
5,207,191,255,255,255,255,255,255,255,255,127,127,127,127,127,127,127,127,255,25
5,255,127,127,125,120,120,120,120,120,248,120,120,120,120,120,120,248,248,232,14
3,0,0,0,0,0,0,0,0,128,240,248,120,188,220,92,252,28,28,60,92,92,60,120,248,248,9
6,192,143,168,216,136,49,68,72,50,160,96,0,0,0,0,0,0,0,0,0,128,192,248,248,248,2
48,252,254,254,254,254,254,254,254,254,254,254,254,255,255,255,255,255,246,239,2
08,246,174,173,169,128,209,208,224,247,249,255,255,252,220,240,127,255,223,255,2
55,255,255,255,255,254,254,255,255,255,255,255,255,255,254,255,255,255,255,255,2
55,255,254,254,254,254,254,254,254,254,254,254,254,254,254,254,255,255,255,255,2
55,255,254,255,190,255,255,253,240,239,221,223,254,168,136,170,196,208,228,230,2
48,127,126,156,223,226,242,242,242,242,242,177,32,0,0,0,0,0,0,0,0,0,0,1,1,1,1,3,
3,3,7,7,7,7,7,15,15,15,7,15,15,15,7,7,15,14,15,13,15,47,43,43,43,43,43,47,111,23
9,255,253,253,255,254,255,255,255,255,255,191,191,239,239,239,191,255,191,255,25
5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,25
5,255,255,255,255,255,255,127,127,127,127,255,255,191,191,191,191,255,254,255,25
3,255,255,255,251,255,255,255,127,125,63,31,31,31,31,31,31,63,15,15,7,7,3,3,3,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,3,3,3,11,11,11
,11,7,3,14,6,6,6,2,18,19,19,3,23,21,21,17,1,19,19,3,6,6,14,15,15,7,15,15,15,11,2
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
implements
end. ' Final del módulo
Para que este ejemplo funcione apropiadamente, es necesario marcar la librería GLCD en la ventana Library Manager antes de compilar el programa. Asimismo, es necesario incluir el documento
Bitmap.mbas
en el proyecto.