que tal soy nuevo en esto de programacion de pic´s y estoy buscando ayuda con un proyecto
el proyecto se trata de un termometro digital
el sensor que voy a utilizar es el lm35 con salida de 0 a 5 v. esta la mando al adc del pic (16f876a) para que me de un rango de 0 a 99 grados mostrados en dos displays de 7 segmentos (uno en el puerto b y el otro para el puerto c ).
el problema es que no se como utilizar el adc y como leer los registor adresh y adresl
ya e estado buscando informacion de esto e hice un programa pero a la hora de conectarlo no me da nada en los puertos
el programa es el siguiente
LISTP= 16F876A
#INCLUDE "P16F876A.INC"
__CONFIG _XT_OSC &_CP_OFF &_WDT_OFF &_BODEN_ON &_PWRTE_ON
count EQU 0X30
COUNT1 EQU 0x32 ; Registros para
COUNT2 EQU 0x33 ; la espera
COUNT3 EQU 0x34
ORG 0
goto main
ORG 4
goto main
main
bsf STATUS,RP0
movlw d'0'
movwf TRISB
movlw d'0'
movwf TRISC
bcf STATUS,RP0
conv
banksel ADCON1 ;assembler directive to select bank
movlw d'255'
movwf TRISA ;set all PORTA pins as inputs
movlw b'10001110'
movwf ADCON1 ;RA0 analog, VREF = VDD
banksel ADCON0 ;assembler directive to select bank
movlw b'01000001'
movwf ADCON0 ; channel 0, FOSC/8, enable A/D
;20us delay loop with 4MHz oscillator frequency
banksel count ;select bank
movlw 0x06
movwf count ;initialize count
loop
decfsz count,F ;dec count, store in count
goto loop ;not finished
banksel ADCON0 ;select bank
bsf ADCON0,GO ;initiate conversion
banksel ADCON0 ;select bank
test
btfsc ADCON0,GO ;conversion done?
goto test ;not finished
banksel ADRESH ;select bank
movf ADRESH,0 ;move result into working register
movf PORTB
call espera
banksel ADRESL ;select bank
movf ADRESL,0 ;move result into working register
movf PORTC
call espera
goto conv
; retardo de 1 seg.
espera
movlw d'100'
movwf COUNT3
TRES
movlw d'250'
movwf COUNT2
DOS
movlw d'5'
movwf COUNT1
UNO
decfsz COUNT1,1
goto UNO
decfsz COUNT2,1
goto DOS
decfsz COUNT3,1
return
END
agradeceria que alguien me ayudara ya que no se que mas hacer....... gracias