Het display op andere poorten aansluiten

Als je niets definieert, dus helemaal niets aan de PIC Basic compiler vertelt over wat voor soort display, hoeveel regels en karakters, welke poorten, enz., dan gaat de PIC Basic compiler van de volgende instellingen uit, default setting (= standaard instelling) wordt dat genoemd:

HD44780 (of compatible) alfanumeriek display
Data aansturing met 4 datalijnen
De enable (EN) pin aan PORTB.2
De register select (RS) pin aan PORTB.3
De datalijnen D4 t/m D7 aan PORTB.4 t/m PORTB.7
Twee display regels ( 2x16 )

Als je display voldoet en het aansluit volgens bovenstaande opsomming, dan hoef je verder niets te doen, de PIC Basic compiler regelt dan alles voor je.
Maar soms komt het, bijvoorbeeld bij het ontwerpen van de printplaat, beter uit als bijvoorbeeld de EN en RS lijnen van het display aan dezelfde kant van de PIC komen te zitten als waar ook de 4 datalijnen zitten.


DECLARE LCD_TYPE ALPHA of GRAPHIC
Standaard = ALPHA (= HD44780)
GRAPHIC is voor aansturing van een grafisch display, op de PIC Basic LITE versie is deze mogelijkheid uitgeschakeld (geen grafisch display mogelijk met de demoversie van PIC Basic).


DECLARE LCD_INTERFACE 4 of 8
Standaard = 4
Informeert de compiler of het display is aangesloten via 4 of via 8 datalijnen.
Als het display met alle 8 datalijnen is aangesloten dan deze regel in je programma zetten.
Als je het display met 4 datalijnen hebt aangesloten hoef je deze regel niet op te geven, de compiler gaat dan dus uit van 4 datalijnen.


DECLARE LCD_ENPIN PORT . PIN
Standaard = PORTB.2
Stel je wilt de EN (enable) lijn aan PORTA.0 aansluiten, dan schrijf je in je programma:
DECLARE LCD_ENPIN PORTA.0
Als je niets opgeeft gaat de compiler er vanuit dat je de EN lijn op PORTB.2 hebt aangesloten.


DECLARE LCD_RSPIN PORT . PIN
Standaard = PORTB.3
Stel je wilt de RS (register select) lijn aan PORTA.1 aansluiten, dan schrijf je in je programma:
DECLARE LCD_RSPIN PORTA.1
Als je niets opgeeft gaat de compiler er vanuit dat je de RS lijn op PORTB.3 hebt aangesloten.


DECLARE LCD_DTPIN PORT . PIN
Standaard = PORTB.4
Een LCD kan worden aangestuurd met 4 of met 8 datalijnen.
Als voor 8 datalijnen wordt gekozen, dan moeten alle 8 lijnen worden verbonden met één en dezelfde poort (bijvoorbeeld PORTB).
Bij 8 datalijnen moet dan het volgende ergens bovenin het programma staan:
DECLARE LCD_DTPIN PORTB.0

Gebruik je maar 4 datalijnen (wat meestal wordt gedaan), dan moeten deze 4 lijnen óf met de onderste 4, óf met de bovenste 4 pinnen van één en dezelfde poort worden verbonden.
Stel je wilt de datalijnen op PORTB.0 t/m PORTB.3 aansluiten, dan schrijf je in je programma:
DECLARE LCD_DTPIN PORTB.0
Als je niets opgeeft gaat de compiler er vanuit dat je de datalijnen op PORTB.4 t/m PORTB.7 hebt aangesloten.


DECLARE LCD_LINES 1, 2 of 4
Standaard = 2
Informeert de compiler hoeveel regels het display heeft.
LCD's zijn er in verscheidene soorten, waarvan de 2x16 (2 regels, 16 karakters per regel) de meest populaire is.
Maar ze zijn er ook met 1 of 4 regels.
Geef het aantal regels dat het aangesloten soort display heeft door aan de compiler met deze instructie.


Voorbeeld
Stel dat we inderdaad de EN (= enable) willen verplaatsen van PORTB.2 (standaard) naar PORTA.6 en de RS (= register select) van PORTB.3 (standaard) naar PORTA.7.
Dan zet je dit ergens bovenin je programma.
Waar precies maakt niet uit, als het maar vóór de allereerste CLS, PRINT of CURSOR opdracht staat:

DEVICE 16F628A                ;Gebruik een 16F628A type
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF

DECLARE LCD_ENPIN = PORTA.6   ;De EN aansluiting moet nu aan PORTA.6
DECLARE LCD_RSPIN = PORTA.7   ;De RS aansluiting moet nu aan PORTA.7 

DELAYMS 500                   ;LCD stabilisering

CLS                           ;Wis scherm en zet cursor links bovenaan 
PRINT "PIC Basic cursus"      ;Plaats tekst op het display

END                           ;Einde programma

Door de wijziging moeten alle 6 draden van het display nu aan dezelfde kant van de PIC16F628A worden aangesloten.