Hi,

hab jetzt leider bald 2 Monate nix mehr im C-Control Assembler gemacht da ich mir derzeit etwas mehr den Atmel anschaue. Von daher hab ich die Portadressen und Bezeichnungen nicht mehr so im Kopf.

Aber wie es aussieht verwendest Du glaub die falschen Adressen. Hab mal kurz in mein letztes Listing gelinst , da steht folgendes

PORTB .EQU $01 ;PortB
DIRB .EQU $05 ;PortBdir

Also das solltest du schon mal ändern. Und dann solltest du beim kommentieren möglichst auch imme rdie Bit´s des Ports nennen, denn die Nummerbezeichnung bei der C-Control ist manchmal etwas verwirrend. Von dahe rweiss ich jetzt nicht ob du den Port schaltest den du auch willst. Am besten und übersichtlichsten ist es wenn du auch das Datenrichtungsregister mit BSET setzt. Ansonsten stimmt es wohl, bset setzt immer auf 1 !
Hier hast du mal Auszug aus meinem letzten Listing, ist zwar hinsichtlich Bytegröße nicht sonderlich optimiert, aber einigermaßen übersichtlich. Vielleicht hilft es dir

Code:
;Ansteuerung eines PCF8574 ber SDA und SCL
;Verwendung des vorhandenen I2C-Bus

I2CAdr  .EQU  $0A1    ;Adresse
I2CDat  .EQU  $0A2    ;Adresse
SensorDatenA	.EQU $0A3	;PCF Baustein 1 vorne linken und rechten 4
SensorDatenB	.EQU $0A4	;PCF Baustein 2 Seiten und Mitte vorne
PCF3Befehl	.EQU $0A5	;PCF Baustein 3 Lichtschranke 
LSchritte 	.EQU $0A6
HSchritte 	.EQU $0A7


       .org $101
;EEPROM vom Bus abmelden
I2C     jsr $08BB    ;I2C_ReadLast
;Schreibzugriff auf PCF8574
        jsr I2C_Start
        lda I2CAdr     ;Adresse PCF8574 lesen
        jsr I2C_Write
        lda I2CDat     ;Daten lesen
        jsr I2C_Write
        jsr $08E5    ;I2C_Stop
;Lesezugriff auf PCF8574
        jsr I2C_Start
        lda I2CAdr     ;Adresse lesen
        inca         ;Lesebit setzen
        jsr I2C_Write
        jsr $086F    ;I2C_Read
        sta I2CDat     ;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


;Schrittmotor vorwärts

PORTB	.EQU  $01    ;PortB
DIRB	.EQU  $05    ;PortBdir
LMOTOR 	.EQU  4      ;Port B.5
RMOTOR 	.EQU  5      ;Port B.6
PCF1	.EQU  $70  
PCF2	.EQU  $72  
PCF3	.EQU  $74  

Vor	ldx #250	;unnötig
VorA	jsr Pulse
	jsr Pause
	jsr SensorAbfragen

	lda SensorDatenA ;Vorne IR Sensoren
	cmp #255
	bne Fertig

	lda SensorDatenB  ;Vorne mittlere IR Sensor
	and #16
	cmp #16
	bne Fertig

	lda PCF3Befehl  ;Vorne mittlere IR Sensor
	and #8
	cmp #8
	bne Fertig
	
        bra VorA  ;Immer springen
Fertig	rts

Pulse	BSET  LMOTOR,DIRB    ;Als Ausgang schalten
	BSET  RMOTOR,DIRB    ;Als Ausgang schalten

	BCLR  LMOTOR,PORTB
	BCLR  RMOTOR,PORTB
	
	BSET  LMOTOR,PORTB
	BSET  RMOTOR,PORTB

	inc LSchritte	;Schritte zählen
	bne Pulse1
	inc HSchritte
Pulse1	RTS

Pause 	Lda #2
pause1	ldx #255
pause2	decx
	bne pause2
	deca
	bne pause1
	rts

SensorAbfragen lda #PCF1
	sta I2CAdr
	lda #255
	sta I2CDat
	jsr I2C
	lda I2CDat
	sta SensorDatenA

	lda #PCF2
	sta I2CAdr
	lda #255
	sta I2CDat
	jsr I2C
	lda I2CDat
	sta SensorDatenB

	lda #PCF3
	sta I2CAdr
	lda PCF3Befehl
	ora #8   ;Lichtschranke Input
	sta I2CDat
	jsr I2C
	lda I2CDat
	sta PCF3Befehl
	rts

.end
Gruß Frank