Hier habe ich eine Ansteuerung für das Textdisplay EA T123W-I2C der Firma
ELECTRONIC ASSEMBLY.
Infos zur LCD-Anzeige unter
http://www.lcd-module.com/
Private Sub Command_EAT123A_Click()
'Display einstellen
'Befehl 64: WRITE (Mit dem Befehl können
'bis zu 16 Bytes zum I2C-Bus geschrieben)
Dim Display_Control
Display_Control = 8
If CheckBox_Display_EIN.Value Then Display_Control = Display_Control + 4
If CheckBox_Cursor_EIN.Value Then Display_Control = Display_Control + 1
SENDBYTE (64 + (4 - 1))'Befehl 64 = Multiwrite + (Anzahl Bytes -1)
SENDBYTE (116) 'Bus-Adresse des EAT123A schreiben
SENDBYTE (0) '1. Byte Control-Byte
SENDBYTE (46) '2. Byte function set
SENDBYTE (Display_Control) '3. Byte Display-Controlbyte senden
SENDBYTE (6) '4. Byte Entry-Mode
TextBox_EAT123A.Text = M_Stat(READBYTE) 'Status vom Modem Abfragen
End Sub
Private Sub Command_EAT123A_CLR_Click()
SENDBYTE (64 + (2 - 1)) 'Befehl 64 = Multiwrite + (Anzahl Bytes -1)
SENDBYTE (116) 'Bus-Adresse des EAT123A schreiben
SENDBYTE (0) '1. Byte Control-Byte
SENDBYTE (1) '2. Byte Befehl "Clear Display"
TextBox_EAT123A.Text = M_Stat(READBYTE)'Status vom Modem Abfragen
End Sub
Private Sub CommandButton_Zeile1_Click()
Dim I, Anz
'Cursor in erste Zeile stellen
SENDBYTE (64 + (2 - 1)) 'Befehl 64 = Multiwrite + (Anzahl Bytes -1)
SENDBYTE (116) 'Bus-Adresse des EAT123A schreiben
SENDBYTE (0) '1. Byte Control-Byte
SENDBYTE (128 + 0) '2. Byte Adresse 1. Zeichen 1. Zeile
TextBox_EAT123A.Text = M_Stat(READBYTE) 'Status vom Modem Abfragen
'Zeile schreiben
Anz = Len(TextBox_Zeile1)
If Anz > 12 Then Anz = 12 'maximal 12 Zeichen
SENDBYTE (64 + (Anz)) 'Befehl 64 = Multiwrite + (Anzahl Bytes -1)
SENDBYTE (116) 'Bus-Adresse des EAT123A schreiben
SENDBYTE (64)
EAT123out (TextBox_Zeile1) 'Zeichen zum Display schreiben
TextBox_EAT123A.Text = M_Stat(READBYTE)'Status vom Modem Abfragen
End Sub
Private Sub CommandButton_Zeile2_Click()
Dim I, Anz
'Cursor in zweite Zeile stellen
SENDBYTE (64 + (2 - 1)) 'Befehl 64 = Multiwrite + (Anzahl Bytes -1)
SENDBYTE (116) 'Bus-Adresse des EAT123A schreiben
SENDBYTE (0) '1. Byte Control-Byte
SENDBYTE (128 + 20) '2. Byte Adresse 2. Zeichen 1. Zeile
TextBox_EAT123A.Text = M_Stat(READBYTE)'Status vom Modem Abfragen
'Zeile schreiben
Anz = Len(TextBox_Zeile2)
If Anz > 12 Then Anz = 12 'maximal 12 Zeichen
SENDBYTE (64 + (Anz)) 'Befehl 64 = Multiwrite + (Anzahl Bytes -1)
SENDBYTE (116) 'Bus-Adresse des EAT123A schreiben
SENDBYTE (64)
EAT123out (TextBox_Zeile2) 'Zeichen zum Display schreiben
TextBox_EAT123A.Text = M_Stat(READBYTE)'Status vom Modem Abfragen
End Sub
Private Sub CommandButton_Zeile3_Click()
Dim I, Anz
'Cursor in dritte Zeile stellen
SENDBYTE (64 + (2 - 1)) 'Befehl 64 = Multiwrite + (Anzahl Bytes -1)
SENDBYTE (116) 'Bus-Adresse des EAT123A schreiben
SENDBYTE (0) '1. Byte Control-Byte
SENDBYTE (128 + 52) '2. Byte Adresse 3. Zeichen 1. Zeile
TextBox_EAT123A.Text = M_Stat(READBYTE)'Status vom Modem Abfragen
'Zeile schreiben
Anz = Len(TextBox_Zeile3)
If Anz > 12 Then Anz = 12 'maximal 12 Zeichen
SENDBYTE (64 + (Anz)) 'Befehl 64 = Multiwrite + (Anzahl Bytes -1)
SENDBYTE (116) 'Bus-Adresse des EAT123A schreiben
SENDBYTE (64)
EAT123out (TextBox_Zeile3) 'Zeichen zum Display schreiben
TextBox_EAT123A.Text = M_Stat(READBYTE)'Status vom Modem Abfragen
End Sub
Public Sub EAT123out(Text As String ) 'Zeichen zum LCD-Display senden
Dim I, A, Z
For I = 1 To Len(Text)
Z = Mid$(Text, I, 1)
A = Asc(Z)
Select Case A
Case 32 To 63 '1-9 und Sonderzeichen
SENDBYTE (A + 128)
Case 65 To 90 'A-Z
SENDBYTE (A + 128)
Case 91
SENDBYTE (105) '[
Case 93
SENDBYTE (106) ']
Case 97 To 122 'a-z
SENDBYTE (A + 128)
Case 124
SENDBYTE (28) '|
Case 196
SENDBYTE (219) 'Ä
Case 214
SENDBYTE (220) 'Ö
Case 220
SENDBYTE (222) 'Ü
Case 223
SENDBYTE (158) 'ß
Case 228
SENDBYTE (251) 'ä
Case 246
SENDBYTE (252) 'ö
Case 252
SENDBYTE (254) 'ü
Case Else
SENDBYTE (32) 'Leerzeichen
End Select
Next I
End Sub
Function M_Stat(Status_Byte) 'Status vom Modem abfragen
Dim A
Select Case Status_Byte
Case -1
M_Stat = ""
Case 2
M_Stat = "kein Slave an dieser Adresse"
Case 4
M_Stat = "Slave hat Daten nicht quittiert"
Case 16
M_Stat = "unbekanntes Modem-Kommando"
Case 192
M_Stat = "OK"
Case Else
M_Stat = "FEHLER " & Status_Byte
End Select
'Lesepuffer leeren
Do : A = READBYTE: Loop Until A = -1
End Function
|