Home    Impressum / Datenschutz    Shop    Download    Links     Blog  

Ansteuerung der I2C-LCD-Anzeige EA T123W-I2C

Beispielprogramm für das I2C-RS232-Modem zum Ausgeben von texten auf dem LCD-Display

   

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

 

Beispiel als Excel Makro
I2C-EAT123A-Modem-Test.xls und port.dll als ZIP-Datei (67 kB)
Excel-Makro mit der Ansteuerung des I2C-Displays EAT123