IIC LCD DISPLAY 1.bas
Quelle: www.C-Control-Support.net
Weitere Infos im C-Control-Forum / C-Control I Info
Download Download
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
'III  BASIC++  DEMO ZUR C-CONTROL UNIT M 2.0/M 1.2             IIIIII
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
'--------------------------------------------------------------------
' Beispiel zum BASIC-COMPUTER mit dem Application-Board
'--------------------------------------------------------------------
' ANWENDUNG:   IIC-BUS LCD (19 83 30)      MIT PCF8574 - ANSTEUERUNG -
'
'--------------------------------------------------------------------
' Das IIC-LCD MODUL beeinhaltet einen PCF8574 zur Ansteuerung des LCD
' Die Unterstützung der Externen Ports durch das Betriebssystem machen
' die Ansteuerung recht einfach. Allerdings können z.B. Texte an ein
' IIC-BUS LCD nicht so komfortabel gesendet werden, wie das beim LCD
' an Byteport 2 der Fall ist.
'--------------------------------------------------------------------
' Sie können diese externen Ports ansprechen, wenn ein entsprechend adressierter
' Baustein an den IIC-Bus angeschlossen ist.
' Speziell für den PCF8574 ist das Betriebssystem aber so erweitert, dass
' Sie auf die Ports dieses Bausteins direkt über die PORT-Funktionen des
' Betriebssystems zugreifen können und sich über die IIC Protokollierung
' keine Gedanken müssen, das dies das Betriebssystem vollständig übernimmt.
' Allerdings ist die Zugriffszeit auf einen externen Port bedeutend grösser
' als bei den CPU-Ports 1 bis 16 (Byteport 1 u. 2)
'
' Das IIC-MODULE brauchen sie hier nicht zu benutzen, da der PCF 8574 vollständig
' vom Betriebssystem unterstützt wird, im Hintergrund allerdings die Protokollierung
' Statt findet, wie sie in den Beispielen zum IIC-MODULE beschrieben ist.
'
' Wissen müssen Sie allerdings, welche Ports zu welche PCF-Adresse gehören. Sie
' finden hier eine Aufstellung:
'
' PCF 8574    ADR 0      Ports 17 - 24      BYTEPORT 3
' PCF 8574    ADR 1      Ports 25 - 32      BYTEPORT 4
' PCF 8574    ADR 2      Ports 33 - 40      BYTEPORT 5
' PCF 8574    ADR 3      Ports 41 - 48	    BYTEPORT 6
' PCF 8574    ADR 4      Ports 49 - 56 	    BYTEPORT 7
' PCF 8574    ADR 5      Ports 57 - 64 	    BYTEPORT 8
' PCF 8574    ADR 6      Ports 65 - 72 	    BYTEPORT 9
' PCF 8574    ADR 7      Ports 73 - 80 	    BYTEPORT 10

' PCF 8574A  ADR 0      Ports 81 - 88 	    BYTEPORT 11
' PCF 8574A  ADR 1      Ports 89 - 96 	    BYTEPORT 12
' PCF 8574A  ADR 2      Ports 97 - 104 	    BYTEPORT 13
' PCF 8574A  ADR 3      Ports 105 - 112     BYTEPORT 14
' PCF 8574A  ADR 4      Ports 113 - 120     BYTEPORT 15
' PCF 8574A  ADR 5      Ports 121 - 128     BYTEPORT 16
' PCF 8574A  ADR 6      Ports 129 - 136     BYTEPORT 17
' PCF 8574A  ADR 7      Ports 137 - 144     BYTEPORT 18
'-------------------------------------------------------------------
' Der IIC-Bus liegt an PORT 9 (SDA) und PORT 10 (SCL)
'
' Beschreibung:
' Der PCF8574 hat eine wählbare 3-Bit Adresse. In unserem Beispiel gehen wir
' davon aus, dass alle Bits der Adresse HI sind, die Adresse ist also 7
' In der Tabelle oben sehen Sie, dass zur Adresse 7 des PCF8574 der
' BYTEPORT 10 gehört. Die zugehörigen Bitports sind 73 bis 80, werden
' aber hier nicht benutzt, da der Port als Byte beschrieben wird.
'
' Das Programm schreibt einen Text auf das LCD.
' Das Programm importiert eine ASCII Tabelle, damit Sie einfach einen Buchstaben
' an das Unterprogramm Übergeben können.
' Der eigentliche Treiber wird ebenfalls importiert. Es werden das Kommando 20h
' und der Buchstabe an LCDWRITE übergeben.
'
' LCD_WRITE(20h,U)
'
'-----------------------------------------------------------------------
' Achtung, ganz wichtig:
' Die Ports müssen als Ausgang initialisiert werden bevor der IIC-Bus
' benutzt wird: SDA=on:SCL=on
' Achten Sie unbedingt darauf, dass das LCD auf dem Application Board initialisiert ist,
' wenn es angesteckt ist (auch wenn sie es nicht benutzen).
' Es teilt sich einen Teil seines Busses mit dem IIC-BUS
'-----------------------------------------------------------------------
'Hier sehen Sie, welche PCF 8574 Ports dem LCD zugeordnet sind:
'Port 0  LCD DB4
'Port 1  LCD DB5
'Port 2  LCD DB6
'Port 3  LCD DB7
'Port 4  LCD R/W
'Port 5  LCD RS
'Port 6  LCD EN
'-------------------------------------------------------------------
'--------------------------
'------ I/O PORTS ---------
'--------------------------
'--- IIC INTERFACE  -------
define SDA      port[9]
define SCL      port[10]
'--------------------------
'------ SYSTEM MEMORY -----
'--------------------------



import "....\LIB\ASCII_TABLE.BAS"
import "....\LIB\IIC_LCD_DRIVE.BAS"



'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
'II   PCF 8574 PORTERWEITERUNG FÜR LCD        II
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
LCD.INIT
LCD.OFF
'---------- IICBUS INIT ------------------------
SDA=on
SCL=on
'----------------------------------------------
pause 2
LCD_INIT()

'----- WRITE CHARACTERS LINE 1 ---------------
LINE1(4)
LCD_WRITE(20h,U)
LCD_WRITE(20h,N)
LCD_WRITE(20h,I)
LCD_WRITE(20h,T)

LCD_WRITE(20h,BLANK)
LCD_WRITE(20h,M)
LCD_WRITE