IIC LCD DISPLAY 1.bas | |
Quelle: www.C-Control-Support.net Weitere Infos im C-Control-Forum / C-Control I Info | 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