hoy estoy progamando el pic, más hay mucho erros!!
No consigo converter a/d!!
Puede me ajudar!!
En ese código estás
1. leyendo el canal 2
2. El Vref es el pin AN3.
3. Haces un "return" cuando no hace falta! porque no has hecho ningún call. Si haces un return sin un call previo, y el stack está vacío, el Program Counter irá a la posición 0x000.
Saludos
Gracias!!!
Más yo no post el porgrama inteiro!!
PROCESSOR <P16F876A>
#INCLUDE <P16F876A.INC>
__config _XT_OSC & _PWRTE_OFF & _WDT_ON & _CP_OFF
CBLOCK 0X20
TEMP
TEMPREAL
TEMPREF
ENDC
#DEFINE BANK1 BSF STATUS,RP0
#DEFINE BANK0 BCF STATUS,RP0
#DEFINE TEMP_REF PORTA,2
#DEFINE AQUECEDOR PORTA,4
#DEFINE TEMP_REAL PORTA,0
ORG 0X00 ;INICIO DO CÓDIGO
GOTO INICIO
ORG 0X04 ;NÃO PRECISA (COLOCADO SÓ PARA QUE NÃO HAJA PROBLEMAS FUTUROS)
RETFIE
INICIO
BANK1
MOVLW B'00000111'
MOVWF TRISA
MOVLW B'11111111'
MOVWF TRISB
MOVLW B'00000000'
MOVWF TRISC
MOVLW B'11011011'
MOVWF OPTION_REG
MOVLW B'00000000'
MOVWF INTCON ;NÃO HAVERÁ INTERRUPÇÃO
MOVLW B'00001101'
MOVWF ADCON1
BANK0
CLRF PORTA
CLRF PORTB
CLRF PORTC
CALL CLEAR_RAM
PRINCIPAL
CALL LE_TEMPREF ;CONVERTE PARA DIGITAL
MOVLW .110
SUBWF TEMPREF,F
CALL LE_TEMPREAL ;CONVERTER PARA DIGITAL
MOVLW .110
SUBWF TEMPREAL,F
CALL ACIONAMENTO
LE_TEMPREAL
MOVLW B'01000001' ;PARA O CANAL 0 (CONVESÃO DA TEMPREAL)
MOVWF ADCON0
BSF ADCON0,GO ;INICIO DA CONVERSÃO
BTFSC ADCON0,GO ;FIM DA CONVERSÃO
GOTO $-1
MOVF ADRESH,W
MOVWF TEMPREAL
RETURN
LE_TEMPREF
MOVLW B'01001001' ;PARA O CANAL 1 (CONVERSÃO DA TEMPREF)
MOVWF ADCON0
BSF ADCON0,GO ;INICIO DA CONVERSÃO
BTFSC ADCON0,GO ;FIM DA CONVERSÃO
GOTO $-1
MOVF ADRESH,W
MOVWF TEMPREF
RETURN
ACIONAMENTO
MOVFW TEMPREAL
SUBWF TEMPREF,W ;W=TEMPREF-TEMPREAL
BTFSC STATUS,Z
CALL DESLIGADO ;SE C=0
BTFSC STATUS,C ;SE 0 TESTA STATUS C
GOTO LIGADO ;SE >0 VAI PARA "LIGADO"
GOTO DESLIGADO
DESLIGADO
CLRF PORTC
BCF AQUECEDOR
GOTO PRINCIPAL
LIGADO
CLRF PORTC
BSF AQUECEDOR
GOTO PRINCIPAL
CLEAR_RAM
MOVLW 0X20
MOVWF FSR
LIMPA_RAM
CLRF INDF
INCF FSR,F
MOVFW FSR
XORLW 0X80
BTFSS STATUS,Z
GOTO LIMPA_RAM
RETURN
END
puedes me ajuda!!
abrazo!!