|
|
Box |
Visualizzare una immagine bitmap
su display grafico 128x64 (KS0108)
Vedere anche:
|
|
|
Per le informazioni riferite a questo argomento e per compilare i programmi è stata usata la
vers. 5.01 di mikroBasic Pro for PIC.
Altre versioni del compilatore potrebbero avere comportamenti diversi o non funzionare. |
Per visualizzare una immagine bitmap, bisogna prima crearla con un programma grafico qualunque, ad es. il programma Paint, fornito con Windows.
Aprire il programma e creare una bitmap larga esattamente 128 pixel ed alta 64 pixel.
|
|
Poi salvare il file in formato bitmap monocromatica
|
|
Adesso bisogna importare la bitmap nel nostro programma in mikroBasic PRO.
Per fare questo, cliccare, sulla barra dei menu, prima su
(1) Tools e poi su
(2) GLCD Bitmap Editor.
Nella finestra che si aprirà, cliccare
(3) sulla linguetta KS0108
e poi cliccare sul pulsante
(4) Load BMP |
|
|
|
|
Dalla finestra Apri file bitmap, scegliere il file desiderato, il quale sarà poi visibile nel riquadro di anteprima del display grafico.
|
|
(5) Cliccare su mikroBASIC PRO e poi
(6) sul pulsante Copy Code To Clipboard per salvare tutto negli appunti.
Dopo aver fatto questo, chiudiamo la finestra. |
|
Adesso dobbiamo creare un nuovo modulo ed incollare
(7) in questo punto, il codice che è stato generato dal GLCD bitmap editor.
Avremmo potuto inserire il codice anche direttamente nel nostro programma ma, è preferibile usare un modulo. In questo modo, se vogliamo visualizzare un'altra immagine, basta includere il relativo modulo, senza effettuare grosse modifiche al programma principale.
E poi, l'immagine può essere usata anche da altri programmi.
|
|
Il codice è stato incollato nel punto indicato.
Cliccando sull'icona "Save",
(8) al modulo, è stato dato un nome ed è stato salvato nella cartella del nostro programma.
Prendiamo nota del nome della const creata (una matrice di 1024 bytes). In questo caso il nome è
(9) bedu2.
Ci servirà, successivamente, quando dovremo visualizzare l'immagine sul display grafico. |
|
Prima, però, dobbiamo inserire il modulo nel progetto, come indicato nella pagina "Creare un nuovo modulo mikroBasic PRO".
Se non lo facciamo avremo degli errori in compilazione.
Una volta inserito il file del modulo nel progetto, aprendo il Project manager, ci troveremo
(10) in questa situazione.
Adesso, per far visualizzare la nostra immagine, dobbiamo inserire, tra le parentesi dell'istruzione Glcd_Image(...), |
|
(11) il nome della const che abbiamo visto al punto (9) (bedu2), preceduto dal carattere "@".
Con quel carattere, indichiamo al compilatore di prendere l'indirizzo di memoria del primo byte della costante "bedu2".
In pratica, indichiamo l'indirizzo d'inizio dell'immagine. |
|
Ecco il risultato sulla mia "vecchia" easypic3. |
File bedu2_image.mbas:
module bedu2_image
' ------------------------------------------------------
' GLCD Picture name: bedu2.bmp
' GLCD Model: KS0108 128x64
' ------------------------------------------------------
const bedu2 as byte[1024] = (
0, 0, 0, 0, 0, 0, 128, 64, 32, 16, 16, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 16, 16, 32, 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, 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, 254, 1, 0, 0, 0, 0, 0, 0, 0, 0, 128,
112, 46, 33, 46, 112, 128, 0, 252, 136, 4, 4, 248, 0, 0, 252, 136,
4, 4, 248, 0, 0, 252, 0, 0, 0, 252, 0, 0, 252, 8, 4, 4,
248, 0, 4, 255, 4, 0, 253, 0, 0, 0, 0, 0, 0, 0, 0, 1,
254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 252, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 252, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 1, 0, 3, 0, 1, 1, 0, 0, 0, 3, 0,
1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0,
1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0,
0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255,
255, 255, 15, 15, 15, 15, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48,
63, 63, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 16,
16, 32, 252, 0, 0, 244, 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, 0, 0, 0, 0,
0, 0, 255, 255, 255, 255, 192, 192, 192, 192, 0, 0, 0, 0, 255, 255,
255, 255, 192, 192, 192, 192, 0, 0, 63, 63, 48, 48, 63, 63, 48, 48,
63, 63, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4,
4, 4, 7, 0, 0, 7, 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, 0, 0, 0, 0,
0, 0, 255, 255, 255, 255, 3, 3, 255, 255, 255, 255, 0, 0, 255, 255,
255, 255, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 51, 51, 51, 51,
63, 63, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 240, 128, 64,
64, 128, 0, 0, 240, 16, 16, 16, 16, 16, 0, 0, 128, 64, 64, 128,
240, 0, 0, 192, 0, 0, 0, 192, 0, 0, 208, 0, 0, 192, 128, 64,
64, 128, 0, 0, 128, 64, 64, 64, 128, 0, 0, 0, 0, 0, 0, 0,
255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0,
0, 0, 63, 63, 63, 63, 60, 60, 63, 63, 15, 15, 0, 0, 63, 63,
63, 63, 60, 60, 60, 60, 0, 0, 3, 3, 3, 3, 63, 63, 51, 51,
63, 63, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 63, 192, 0, 0, 0, 0, 0, 0, 31, 8, 16,
16, 15, 0, 0, 31, 17, 17, 17, 17, 17, 0, 0, 15, 16, 16, 16,
31, 0, 0, 15, 16, 16, 16, 31, 0, 0, 31, 0, 0, 31, 0, 0,
0, 31, 0, 0, 15, 16, 16, 16, 15, 0, 0, 0, 0, 0, 0, 192,
63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 31, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 4, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 2, 1, 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, 0, 0, 0, 0
)
implements
end.
File prova_glcd.mbas:
program prova_glcd
' PIC16F877A - 8MHz
' Connessioni modulo GLCD
dim GLCD_DataPort as byte at PORTD
dim GLCD_CS1 as sbit at RB2_bit
GLCD_CS2 as sbit at RB3_bit
GLCD_RS as sbit at RB4_bit
GLCD_RW as sbit at RB5_bit
GLCD_EN as sbit at RB6_bit
GLCD_RST as sbit at RB7_bit
dim GLCD_CS1_Direction as sbit at TRISB2_bit
GLCD_CS2_Direction as sbit at TRISB3_bit
GLCD_RS_Direction as sbit at TRISB4_bit
GLCD_RW_Direction as sbit at TRISB5_bit
GLCD_EN_Direction as sbit at TRISB6_bit
GLCD_RST_Direction as sbit at TRISB7_bit
' End connessioni modulo GLCD
dim cerchi as byte
sub procedure delay2S
delay_ms(2000) ' ritardo di circa 2 secondi
end sub
main:
Glcd_Init() ' inizializza glcd
while TRUE
Glcd_Fill(0x00)
Glcd_Image(@bedu2) ' visualizza bitmap
delay2S
Glcd_Fill(0x00)
Glcd_Box(22, 16, 90, 57, 2) ' disegna rettangolo pieno
delay2S
Glcd_Fill(0x00)
for cerchi = 1 to 10 ' disegna cerchi
Glcd_Circle(63, 32, 3 * cerchi, 1)
next cerchi
Delay2S()
wend
end.
Bibliografia:
Manuale mikroBasic PRO
Datasheet PIC16F877A
Ultima modifica
|
|