|
|
Box |
Visualizzare la propria bitmap
su display grafico 128x64 (KS0108)
|
Per le informazioni riferite a questo argomento e per compilare i programmi è stata usata la vers. 7.0.0.2 di mikroBasic.
Altre versioni del compilatore potrebbero avere comportamenti diversi o non funzionare. |
Per visualizzare la propria bitmap, bisogna prima crearla con un programma grafico qualunque (io ho usato 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.
Per fare questo, clickiamo, sulla barra dei menu, prima su
(1) Tools e poi su
(2) GLCD Bitmap Editor. |
|
|
|
Nella finestra che si aprirà, clickiamo (3) sul tab KS0108
e poi clickiamo sul pulsante
(4) Load BMP Picture
|
|
|
Dalla finestra Apri file bitmap, scegliere il file desiderato, il quale sarà poi visibile nel riquadro di anteprima display grafico
|
|
|
(5) Clickiamo su mikroBASIC code e poi
(6) sul pulsante Copy CODE to Clipboard per salvare tutto negli appunti.
(7) Poi clickiamo su Exit per uscire. |
|
|
|
|
Torniamo al programma mikroBASIC e (8) clickiamo sul punto dove vogliamo inserire il codice della bitmap.
Dopodichè
(9) clickiamo sull'icona incolla e ci ritroviamo (10) copiato il codice della bitmap. |
|
|
Prendiamo nota del nome della const creata (una matrice di 1024 bytes). In questo caso il nome è
(11) bedu_bmp.
Questo nome lo dobbiamo inserire nell'istruzione Glcd_Image(...) (12) tra le parentesi, per far visualizzare la nostra immagine.
Adesso compiliamo il tutto e, se non ci sono errori, programmiamo il nostro PIC (qui ho usato il 16F877A) e vediamo il risultato effettivo sul display grafico.
Il display in mio possesso non è quello fornito con la scheda EasyPic3-4-5, perciò ho dovuto adattare le istruzioni per l'inizializzazione. |
|
|
program prova_glcd
' ------------------------------------------------------
' GLCD Picture name: bedu.bmp
' GLCD Model: KS0108 128x64
' ------------------------------------------------------
const bedu_bmp as byte[1024] = (
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,224,
224,224,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,224,224,224,224,224,224,224,224,224,224,
224,224,224,224,224,224,224,224,224,224,224,224,224,192, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,224,224,224,224,224, 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,255,
255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,255,255,255,255,255, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,255,255,255,255,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, 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,255,
255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,255,255,255,255,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,255,255,255,255,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, 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,255,
255,255,255,124,124,124,124,124,124,124,124,124,124,124,124,124,
252,252,252,248,224, 0,255,255,255,255,255,124,124,124,124,124,
124,124,124,124,124,124,124,124,124, 56, 0, 0, 0, 0, 0, 0,
240,248,248,252,252,124,124,124,124,124,124,124,124,124,124,124,
124,124,124,124,124,255,255,255,255,255, 0, 0, 0,254,254,254,
254,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
254,254,254,254,254, 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,255,
255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
255,255,255,255,255, 0,255,255,255,255,255, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,255,255,255,255,255, 0, 0, 0,255,255,255,
255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
255,255,255,255,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, 0,255,255,
255,255,255,128,128,128,128,128,128,128,128,128,128,128,128,128,
255,255,255,255,255, 0,255,255,255,255,255,128,128,128,128,128,
128,128,128,128,128,128,128,128,128,128,128,128,128, 0, 0, 0,
255,255,255,255,255,128,128,128,128,128,128,128,128,128,128,128,
128,128,128,128,128,255,255,255,255,255, 0, 0, 0,255,255,255,
255,255,128,128,128,128,128,128,128,128,128,128,128,128,128,128,
255,255,255,255,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, 0, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 7, 1, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 7, 0, 0,
1, 7, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 1, 7, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 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, 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, 0
)
sub procedure delay2S
delay_ms(2000)
end sub
main:
'inizializzazione valida solo per tipo WG12864A
Glcd_Init(PORTB, 3, 2, 4, 5, 7, 6, PORTD)
while TRUE
Glcd_Fill(0x00)
Glcd_Image( bedu_bmp )
delay2S
Glcd_Fill(0x00)
Glcd_Box(12, 20, 70, 57, 2)
delay2S
wend
end.
Ultima modifica
|
|