ESERCITAZIONE # 12b
Gli elementi che compongono il driver
Il driver comprende i seguenti files:
LCDuni_head.inc |
File di testo che contiene gli headers che vanno inseriti nel sorgente per il corretto funzionamento del driver |
LCDuni8io_18F.inc
|
File che contiene le assegnazioni di I/O. Va personalizzato in dipendenza delle connessioni tra modulo e microcontroller |
LCDuni_ramdef.txt
|
Esempio di definizione della RAM necessaria al driver. |
LCDuni8s_18F.asm
|
Routines del driver. Sono compilabili in modo completo o parziale. |
LCDcharlib18.def
|
Una libreria di simboli grafici per la CGRAM (richiesta solo dalla
compilazione
completa del package) |
LCDuni_comset.def |
Definizioni del set di comandi per controller 44870 e KS0073 |
LCDuni_macros.asm |
Una
libreria di macro per facilitare i comandi al display |
LCDuni8_18Freadme.pdf |
un file di istruzioni
|
Inoltre è necessario un file di definizione delle caratteristiche del
modulo LCD usato. Viene fornita una piccola libreria di modelli già pronti per
l' uso nella cartella LCDLocalModels.
Tutti i files sono
ampiamente ed esaurientemente commentati allo scopo di permettere una completa
comprensione di quanto è stato scritto.
I file che devono essere personalizzati dall' utente
I file:
- LCDuni8_head.inc
- LCDuni8io_18F.inc
vanno modificati a seconda dell' hardware utilizzato, assieme alle
definizioni del modulo LCD usato.
E' opportuno posizionare la copia modificata di questi files nella directory che
contiene il progetto in corso, lasciando non modificati gli originali forniti
nel package.
Vediamo più in dettaglio.
Il primo elemento del driver è un file di setup che raccoglie gli elementi
necessari. Va inserito nella parte iniziale del sorgente in cui il driver viene
richiamato.
Il file LCDuni8_head.inc inizia con la
selezione della scelta di come l' Assembler compilerà il sorgente.
Il parametro LCDSHORTDRIVE seleziona se si
desidera la compilazione completa del driver o la versione più ridotta.
Nel caso in cui si selezioni la versione completa, verranno incluse alcune macro
e subroutines che fanno uso di TABLPTR, per
cui viene richiesta la definizione della quantità di memoria programma
disponibile per utilizzare o meno TABLPTRU.
;########################################################################
;# LCDuni - driver for dot matrix LCD - module setup definitions #
;########################################################################
; Compile complete or lite version
; ==================================
;LCDSHORTDRIVE = 1 ; compile reduced functions set
LCDSHORTDRIVE = 0 ; compile complete functions set
#if LCDSHORTDRIVE == 0 ; needed for table management
#ifndef PROGMEMSIZE ; on special function only
WARNING "PROGMENSIZE not defined. Use default 32k"
PROGMEMSIZE equ .32 ; default -
prog. mem.<=32K
#endif
#endif
|
Deve essere definito, ora, l' uso del pin RW: un parametro
LCDRW consente di
utilizzare il modulo con o senza il pin RW:
parametro |
valore |
funzione |
default |
LCDRW |
0 |
la connessione tra microcontroller e
modulo non utilizza il pin RW, che va collegato alla Vss sul modulo.
Sono possibili solamente operazioni di scrittura. |
0 |
1 |
il pin RW è gestito dal microcontroller.
Sono possibili operazioni di scrittura e lettura |
Dal punto di vista del codice:
; RW pin ?
; ============
LCDRW = 1
; use RW and check BF - read from module
;LCDRW = 0
; don't use RW. No check BF and no read from module
|
Ora vengono inclusi il file di definizione delle connessioni del
modulo LCD, il file di definizione delle sue caratteristiche, il set di comandi
standard e il file delle macro.
LCD I/O connections
; =====================
; change the contents of the file depending on the hardware connections
#include LCDuni8io_18F.inc
; Local LCD model
; ===================
; change the local model in relation to the display used
#include C:\PIC\LIBRARY\LCD\LCDLocalModels\NHD_0216KHZ.def
; LCD command set
; ===================
; don't modify this file
#include C:\PIC\LIBRARY\LCD\LCDuni_comset.def
; LCD macros set
; ===================
; included if You intend to use the macros
#include C:\PIC\LIBRARY\LCD\LCDuni_macros.asm
;########################################################################
|
Consideriamo ora gli altri files che devono essere adeguati dall' utente
all' ambiente utilizzato.
|