Temperature meassuring PIC16F876 & LM35DZ
movlw b'01000001' ; fosc/8, kanal 0, A/D on
movlw b'01001001' ; fosc/8, kanal 1, A/D on
movlw b'01010001' ; fosc/8, kanal 2, A/D on
movlw b'01011001' ; fosc/8, kanal 3, A/D on
movlw b'01100001' ; fosc/8, kanal 5, A/D on
movwf ADCON0
call ANALOG_3 ;
.
.
.
ANALOG_3
call WAIT200us
bcf STATUS,C
bsf ADCON0,GO ;start A/D prevodu
btfsc ADCON0,GO ; konec prevodu GO=0 (nebo ADIF=1 ?)
goto $-1 ; prevod A/D jeste neskoncil
call WAIT200us
;-------------------------------
movf ADRESH,W
movwf L_ANALOG_H
;-------------------------------
bsf STATUS,RP0 ;nastaveni BANKY 1
movf ADRESL,W
bcf STATUS,RP0 ;nastaveni BANKY 0
movwf L_ANALOG_L
;-------------------------------
return ; value: L_ANALOG_H/L_ANALOG_L