;Deklaration der Verwendeten I²C-Bus Teilnehmer ;Porterweiterungen I2C_ADW_W EQU #90h ;Adresse schreiben zum ADW PCF8591 I2C_ADW_R EQU #91h ;Adresse lesen vom ADW PCF8591 ADW_Buffer XDATA 0h ;Ab Adresse 0 Daten im Externen Datenspeicher ablegen LCALL I2C_ADW_Lesen ;Einmal dummy einlesen LCALL I2C_ADW_Lesen ;Sensor Werte einlesen ;Liest die vier Kanäle des AD-Wandlers ein und legt die Werte ;im Buffer ADW_Buffer ab I2C_ADW_Lesen: PUSH PSW PUSH REG3 LCALL I2C_INIT MOV se_buffer,#I2C_ADW_R LCALL I2C_WBYTE MOV DPTR,#ADW_Buffer For REG3 = #0 To #3 LCALL I2C_RBYTE MOV A,se_buffer MOVX @DPTR,A If REG3 < #3 Then LCALL I2C_ACK Else LCALL I2C_nACK End If INC DPTR Next LCALL I2C_STOP POP REG3 POP PSW RET