Esercitazioni ASM - PIC18

 


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.


 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 18/12/12.