Hy,
ich schlag mich nun schon fast eine woche mit dem 1620 rum und erwill sich von mir einfach nicht ansteuern lassen. Hat jemand Erfahrung mit diesem Sensor und vlt sogar noch nen Code passend zum PIC damit ich überhaupt mal testen kann obs bei mir kappt? Hab schon sämtliche Sachen im Inet dazu durchgearbeitet (auf Deutsch, Englisch und Französisch) die ich dazu finden konnte und auch sachen aus einem Buch ausprobiert (welches auch eine Thermometer damit gebaut hat). Aber alles will bei mir nicht funktionieren. Bitte helft mir ich verzweifle
lg Kante

PS: hier mein Quellcode (zum teil aus dem Buch mit copy&paste) aber er funzt nicht.

Code:
 list p=16f628a
	__Config _CP_OFF & _DATA_CP_OFF & _WDT_OFF & _LVP_OFF & _INTOSC_OSC_NOCLKOUT  & _MCLRE_OFF & _BOREN_OFF & _PWRTE_ON
;***************************************************************
;						main.asm
;						Projekt: Test
;						Lüfterstuerung mit 1 Temperatursensor
;							
;***************************************************************
Errorlevel -302

	org 0x000
	goto _main
	
	org 0x004
	goto _isr

#include p16f628a.inc
#define RST PORTB, 3
#define CLK PORTB, 2
#define DQ  PORTB, 1
#define LED PORTB, 0
#define LED2 PORTB, 6

cltris   macro  
         banksel TRISB
         bcf  TRISB,1
	     endm

settris  macro  
		 banksel TRISB
     	 bsf    TRISB,1
		 endm


	cblock 0x20
		trans
		count
		conf
	endc

;***************************************************************
;						ISR
;***************************************************************

   _isr
	
	
	retfie


;***************************************************************
;						main-Routine
;***************************************************************
 _main
	;no interupts	
	banksel INTCON
	clrf INTCON
	
	;alle Output
;	banksel TRISB
;	movlw 0x00
;	movwf TRISB

	;48 Khz
	banksel PCON
	bcf PCON, 3

	banksel trans
	movlw 0x00
	movwf trans

	banksel TRISB
	movlw 0x00
	movwf TRISB

	banksel PORTB
	movlw 0x00
	movwf PORTB


	call _CONFIG
	call _RDCONF


	call _show_trans


_end
	
	nop
	goto _end


	_write_LSB
			cltris 
	_write_LSB01
			banksel PORTB
			bcf CLK		;CLock Low
			banksel trans
			rrf	trans	;Trans-Bit nach DQ
			banksel PORTB
			skpc
			bcf DQ
			skpnc 
			bsf DQ
			
			nop
			bsf CLK		;Clock High
			banksel count
			decfsz count
			goto _write_LSB01
			settris 
			retlw 0
	    return

	_read_LSB
			banksel PORTB
			bcf	CLK		;CLK Low
			nop
			btfss DQ
			bcf STATUS, C	;DQ nach C
			btfsc DQ
			setc

			banksel trans
			rrf	trans		;C nach TRANS

			banksel PORTB
			bsf CLK		;CLK Hight
			DECFSZ count
			goto _read_LSB
		return
;
;-----------------------------------------------------------------------------
;       RDCONF: liest Konfiguration/Status Byte nach TRANS
;       Ausgang: TRANS = Config/Status = DONE xxx xx CPU 1SHOT
;-----------------------------------------------------------------------------
_RDCONF  MOVLW   0ACH          ;
        MOVWF   trans
        MOVLW   8
        MOVWF   count

		banksel PORTB
        BSF     RST            ;Interface on
        CALL    _write_LSB
        MOVLW   8

		banksel count		
        MOVWF   count
        CALL    _read_LSB

		banksel PORTB
        BCF     RST            ;Interface off

        RETURN

;----------------------------------------------------------------------------
;       CONFIG: schreibt 3 nach Config(Config/Status = DONE xxx xx CPU 1SHOT)
; Für den PIC16C5X ist zu beachten:
; CONFIG darf kein Unterprogramm sein, wegen der Stackuntiefe
;----------------------------------------------------------------------------
_CONFIG  CALL    _RDCONF
		MOVF	trans,W
      	ANDLW	3
		XORLW   3
        SKPNZ              ; falls die 2 Bits bereits = 3 sind, nicht schreiben
        GOTO    _READI      ; da es ein EEPROM ist, nicht unnötig schreiben.
        MOVLW   3
        MOVWF   conf
        MOVLW   0CH        ; Befehl: Config. schreiben
        MOVWF   trans
        MOVLW   8
        MOVWF   count
        BSF     RST        ;Interface on
        NOP
        CALL    _write_LSB
        MOVF    conf,W
        MOVWF   trans
        MOVLW   8
        MOVWF   count
        CALL    _write_LSB
        BCF     RST        ;Interface off
_READI	RETURN

; zeigt Tris-register auf einer LED an (mit LED2 als Takt led)
_show_trans
	
	bcf LED
	bcf LED2
	
	movlw 8
	movwf count

 _jump
	bsf LED2
	rlf trans
	
	btfsc STATUS, C
	bsf LED
	btfss STATUS, C
	bcf LED
	
	call _delay
	bcf LED2
	call _delay
	
	decfsz count
	goto _jump

	return


_delay		;Zeitverzögerung von einer millisekunde
    ;alle 2 Takzyklen um eins erhöhen
	;
	banksel OPTION_REG
	movlw	B'0000100'
	movwf	OPTION_REG	;Prescaler = 8
	
	banksel TMR0 
	clrf	TMR0 

	banksel INTCON
	bcf		INTCON, T0IF
_delay_loop
	btfss 	INTCON, T0IF		;solange bis T0IF gesetzt
	goto _delay_loop

  return

end