Servus und Hallo,

ich habe ein Problem mit meinem SHT75 Temperatur und Feuchte-Sensor. Und zwar bekomme ich diesen an meinem PIC 16F877A nicht zum laufen.
Hier erstmal mein Code
Code:
	list		p=16f877a	; list directive to define processor
	#include	<p16f877a.inc>	; processor specific variable definitions
	
;	__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _RC_OSC & _WRT_OFF & _LVP_ON & _CPD_OFF

EXTERN	LCD_AN
;***********************Variablendefinition***************************

D_SENSOR_DATA UDATA	0x040			;start of general purpose registers

			COUNTER_SEN 		res 	1	; Counter in Init
	
			TEMP_DATA		res		1	; TEMP_DATA
			TEMP_ACK		RES		1	; TEMP_ACK
			TEMP_TEST		res		1	; TEMP_TEST

			ADDR_COMM		res		1	; Address and Command
	
			HIGH_BYTE		res		1   ; Oberste 8 bit
			LOW_BYTE		res		1	; untere 8 bit

			GLOBAL HIGH_BYTE, LOW_BYTE
			
EXTERN		DELAY_30ms



#define 	SENSOR_DATA			PORTA,	1
#define 	SENSOR_SCK			PORTB,	2
	
#define 	SENSOR_DATA_DIR		TRISA,	1
#define 	SENSOR_SCK_DIR		TRISB,	2

	
PROG1		Code						; START
;ORG			0x000
goto		START_SHT
;
;org			0x0005						; Interrupt
;retfie

START_SHT
GLOBAL	START_SHT
;***********************Init****************************************
movlw		0x005
movwf		HIGH_BYTE
movwf		LOW_BYTE
movwf		ADDR_COMM

movlw		b'00000101'				; Messe Feuchte
movwf		ADDR_COMM

bsf			STATUS, RP0				; Bank1
bcf			SENSOR_SCK_DIR			; Output
bcf			SENSOR_DATA_DIR			; Output
bcf			STATUS,	RP0				; Bank0
;***********************Transmission*Start****************************
bsf			SENSOR_DATA
bsf			SENSOR_SCK
bcf			SENSOR_DATA
bcf			SENSOR_SCK

bsf			SENSOR_SCK
bsf			SENSOR_DATA

movlw		d'8'
movwf		COUNTER_SEN

;***********************Feuchte messen****************************
SEND_BIT_TO_SENSOR

bcf			SENSOR_SCK
btfss		ADDR_COMM,7
goto		SEND_NULL
bsf			SENSOR_DATA
goto		SEND_BIT

SEND_NULL
bcf			SENSOR_DATA

SEND_BIT
bsf			SENSOR_SCK

rlf			ADDR_COMM,f				; rotate
decfsz		COUNTER_SEN,F
goto		SEND_BIT_TO_SENSOR

bcf			SENSOR_SCK

bsf			STATUS, RP0
bsf			SENSOR_DATA_DIR			; Input
bcf			STATUS, RP0

bsf			SENSOR_SCK

btfss		SENSOR_DATA				; Acknowledge bekommen?

goto 		ACK_GET_FROM_SENSOR
goto		ACK_LOST
;***********************Get Acknowledge****************************
ACK_GET_FROM_SENSOR					; Ack bekommen 
;movlw		b'00001111'
;movwf		PORTB
bcf			SENSOR_SCK

movlw		d'30'
movwf		COUNTER_SEN

call	DELAY_30ms
;***********************Daten empfangen****************************
WAIT_FOR_SENSORDATA
btfss		SENSOR_DATA
goto		READ_DATA
decfsz		COUNTER_SEN,f
goto		WAIT_FOR_SENSORDATA
goto		ACK_LOST				; wenn keine Daten dann ende
;***********************Lese*Daten*********************************
READ_DATA

call	GET_BYTE
movf	ADDR_COMM,w
movwf	HIGH_BYTE					; oberes Byte
call	SEND_ACK_TO_SENSOR

call	GET_BYTE
movf	ADDR_COMM,w
movwf	LOW_BYTE					; unteres Byte
call	SEND_ACK_TO_SENSOR

call	GET_BYTE

goto  geschafft
;***********************Get*Byte***********************************
GET_BYTE

clrf	ADDR_COMM
movlw	d'8'
movwf	COUNTER_SEN

GET_BYTE_LOOP
bsf		SENSOR_SCK
btfss	SENSOR_DATA
goto	GET_ZERO_BIT
bsf		ADDR_COMM,0
goto	GOT_BIT

GET_ZERO_BIT
bcf		ADDR_COMM,0

GOT_BIT
bcf		SENSOR_SCK
decfsz	COUNTER_SEN,f
goto	GET_NEXT_BIT
goto	DONE

GET_NEXT_BIT
rlf		ADDR_COMM,f				; rotate
goto	GET_BYTE_LOOP

DONE
return
;***********************Sende*Acknowledge****************************
SEND_ACK_TO_SENSOR

bsf		STATUS,RP0
bcf		SENSOR_DATA
bcf		STATUS, RP0

bcf		SENSOR_DATA
bsf		SENSOR_SCK
bcf		SENSOR_SCK

bsf		STATUS, RP0
bsf		SENSOR_DATA
bcf		STATUS, RP0

return
;***********************Kein* Acknowledge****************************
ACK_LOST
movlw		b'11110000'
movwf		HIGH_BYTE
movlw		b'00001111'
movwf		LOW_BYTE

geschafft
bsf			PORTB,2
;movwf		PORTB

;***********************Ende****************************************
ABM
goto	LCD_AN
;return
;goto 		ABM

end



Gibt es jemanden, der mit dem Sensor Erfahrung hat und ebenfalls wie ich in Assembler programmiert?
Jemand ne Idee, was ich falsch mache oder wo der Fehler ist. Vielleicht in der Initialisierung….

Danke

Gruß