home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 April / CHIP4_98.ISO / software / ccconrad / programme.bas / assembl / i2c_3.asm < prev    next >
Encoding:
Assembly Source File  |  1997-04-23  |  1.7 KB  |  64 lines

  1. ;Ansteuerung eines PCF8574 über SDA und SCL
  2. ;Verwendung des vorhandenen I2C-Bus
  3.  
  4.        .org $101
  5. ;EEPROM vom Bus abmelden
  6.         jsr $08BB    ;I2C_ReadLast
  7. ;Schreibzugriff auf PCF8574
  8.         jsr I2C_Start
  9.         lda $0A1     ;Adresse PCF8574 lesen
  10.         jsr I2C_Write
  11.         lda $0A2     ;Daten lesen
  12.         jsr I2C_Write
  13.         jsr $08E5    ;I2C_Stop
  14. ;Lesezugriff auf PCF8574
  15.         jsr I2C_Start
  16.         lda $0A1     ;Adresse lesen
  17.         inca         ;Lesebit setzen
  18.         jsr I2C_Write
  19.         jsr $086F    ;I2C_Read
  20.         sta $0A2     ;Daten speichern
  21.         jsr $08BB    ;I2C_ReadLast
  22. ;EEPROM wieder anmelden
  23.         ldx #$0A0    ;Adresse 24C65, write
  24.         jsr $083C    ;I2C_Start
  25.         ldx $066     ;AdrCounter Hi
  26.         jsr $0846    ;I2C_Write
  27.         ldx $067     ;AdrCounter Lo
  28.         jsr $0846    ;I2C_Write
  29.         ldx #$0A1    ;Adresse 24C65, read
  30.         jsr $083C    ;I2C_Start
  31.         rts
  32.  
  33.  
  34. PORT  .EQU  $00    ;PortA
  35. DIR   .EQU  $04    ;PortAdir
  36. SDA   .EQU  0      ;Port A.0
  37. SCL   .EQU  1      ;Port A.1
  38.  
  39. I2C_Start  BSET  SDA,DIR ; SDA hi ausgeben
  40.          BSET  SDA,PORT  ; Vorbereiten der Startbed.
  41.          BSET  SCL,PORT  ; SCL hi falls lo
  42.          BCLR  SDA,PORT  ; SDA lo -> STARTBEDINGUNG
  43.          BCLR  SCL,PORT  ;
  44.          RTS
  45.  
  46. I2C_Write  BSET  SDA,DIR    ; SDA out
  47.          LDX  #8         ; init loop
  48. Nextbit  ROLA
  49.          BCC   Lobit     ;
  50.          BSET  SDA,PORT  ; hi bit
  51.          BRA   Clock
  52. Lobit    BCLR  SDA,PORT  ; lo bit
  53. Clock    BSET  SCL,PORT  ; scl hi
  54.          BCLR  SCL,PORT  ; scl lo
  55.          DEX
  56.          BNE   Nextbit   ; loop
  57.          BCLR  SDA,DIR   ; sda als Eingang
  58.          BSET  SCL,PORT  ; scl hi
  59.          BCLR  SCL,PORT
  60.          RTS
  61. .end
  62.  
  63.  
  64.