Esercitazioni ASM - PIC18

 


ESERCITAZIONE # 12b


Note.

  1. Tutte le routines che modificano linee dati o di controllo, all'uscita le riposizionano a livello basso. Questo consente di conoscere sempre lo stato di queste linee e facilita sequenze di azioni verso il display o l'uso delle stesse linee per altre funzioni, ad esempio un multiplex con tasti.
     
  2. Se si intendono usare le linee di I/O dedicate al controllo del modulo LCD per altre funzioni occorre considerare che sono indispensabili le seguenti condizioni:
    - la linea E deve essere utilizzata esclusivamente per l' enable del modulo: qualsiasi uso delle  altre linee può avvenire solo ed esclusivamente quando il modulo è disabilitato (E=0)
    - le linee dati non devono essere caricate con resistenze minori di 10k se si intende leggere dati, in quanto è possibile che i moduli LCD abbiano un fan out limitato
    - ovviamente, nessuna linea deve essere bloccata ad un livello logico che ne impedisca il comando da parte del port dedicato
     
  3. Le temporizzazioni sono basate sulla procedura DelayUS, che consente di ritardare in modo indipendente dal clock (minimo circa 5 msec a 48MHz). Se il clock del processore è definito, si potranno utilizzare ritardi fissi adeguati, con risparmio di risorse.
     
  4. Le funzioni speciali sono escludibili dalla compilazione portando a 1 il parametro LCDSHORTDRIVE nei default   
     
  5. Lo spreco di spazio di macro come LCDOutsrt e LCDstring è voluto per l'immediatezza d' uso. Nel caso di impiego pesante è consigliabile trasformarle in subroutines.
     
  6. Le routine che agiscono su tabelle, necessitano della definizione PROGMEMSIZE  che impone o meno l' impiego di TABLPTRU.
    Per default il valore è d'32' , ovvero memoria programma <= 32K. Se le tabelle sono poste al di sopra di questo limite, indicare un qualsiasi diverso valore per PROGMEMSIZE.

 

 

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