LCD_Init: ;Unterprogramm zum Initialisieren des Displays call wt_20ms ;20ms wartezeit call I2CSTART mov A,LCD_1 ;Adresse von PCF8574 in akku schieben call I2CSEND ;Adresse senden mov A,#00010011b ;aufwecken! Takt = 1 call I2Csend mov A,#00000011b ;aufwecken! Takt = 0 call I2CSEND call wt_5ms ;5ms warten mov A,#00010011b ;aufwecken! Takt = 1 call I2Csend mov A,#00000011b ;aufwecken! Takt = 0 call I2CSEND call wt_100us ;100us warten mov A,#00010011b ;aufwecken! Takt = 1 call I2Csend mov A,#00000011b ;aufwecken! Takt = 0 call I2CSEND call wt_100us ;100us warten mov A,#00010010b ;von 8 auf 4 bit umschalten, Takt = 1 call I2CSEND mov A,#00000010b ;Takt = 0 call I2CSEND call wt_100us ;100us warten mov A,#00101000b ;Function Set 4 bit call LCDbefehl ;Ausgabe im 4Bit modus ;Display an, Cursor aus mov A,#00001100b call LCDbefehl mov A,#00000110b call LCDbefehl ret LCDbefehl: push ACC swap a ;High und Low Nibble vertauschen anl A,#00001111b ;4 Bits maskieren orl A,#00010000b ;Übergabetakt = 1, high Nibble senden call I2CSEND anl A,#00001111b ;Takt = 0 call I2CSEND pop ACC anl A,#00001111b ;Low Nibble orl A,#00010000b ;Takt = 1 call I2CSEND anl A,#00001111b ;Takt = 0 call I2CSEND call wt_5ms call I2Cstop ret