home *** CD-ROM | disk | FTP | other *** search
- ;Ansteuerung eines PCF8574 über SDA und SCL
- ;Verwendung des vorhandenen I2C-Bus
-
- .org $101
- ;EEPROM vom Bus abmelden
- jsr $08BB ;I2C_ReadLast
- ;Schreibzugriff auf PCF8574
- jsr I2C_Start
- lda $0A1 ;Adresse PCF8574 lesen
- jsr I2C_Write
- lda $0A2 ;Daten lesen
- jsr I2C_Write
- jsr $08E5 ;I2C_Stop
- ;Lesezugriff auf PCF8574
- jsr I2C_Start
- lda $0A1 ;Adresse lesen
- inca ;Lesebit setzen
- jsr I2C_Write
- jsr $086F ;I2C_Read
- sta $0A2 ;Daten speichern
- jsr $08BB ;I2C_ReadLast
- ;EEPROM wieder anmelden
- ldx #$0A0 ;Adresse 24C65, write
- jsr $083C ;I2C_Start
- ldx $066 ;AdrCounter Hi
- jsr $0846 ;I2C_Write
- ldx $067 ;AdrCounter Lo
- jsr $0846 ;I2C_Write
- ldx #$0A1 ;Adresse 24C65, read
- jsr $083C ;I2C_Start
- rts
-
-
- PORT .EQU $00 ;PortA
- DIR .EQU $04 ;PortAdir
- SDA .EQU 0 ;Port A.0
- SCL .EQU 1 ;Port A.1
-
- I2C_Start BSET SDA,DIR ; SDA hi ausgeben
- BSET SDA,PORT ; Vorbereiten der Startbed.
- BSET SCL,PORT ; SCL hi falls lo
- BCLR SDA,PORT ; SDA lo -> STARTBEDINGUNG
- BCLR SCL,PORT ;
- RTS
-
- I2C_Write BSET SDA,DIR ; SDA out
- LDX #8 ; init loop
- Nextbit ROLA
- BCC Lobit ;
- BSET SDA,PORT ; hi bit
- BRA Clock
- Lobit BCLR SDA,PORT ; lo bit
- Clock BSET SCL,PORT ; scl hi
- BCLR SCL,PORT ; scl lo
- DEX
- BNE Nextbit ; loop
- BCLR SDA,DIR ; sda als Eingang
- BSET SCL,PORT ; scl hi
- BCLR SCL,PORT
- RTS
- .end
-
-
-