amigo mas o menos aqui tienes una ayuda para avanzar
para 50°C = el lm35 da 500mv. pic da como salida en el adresl= 500/4.88mv= 102 .como el valor a mostrar es 50°C
se rota este valor(102) a la derecha rrf y me daría 50 aprox.
despues tocaria sacar las decenas y unidades BCD. lo cual como puedes ver esta hecho.
y............................................
.........
LIST P=16F873A
#INCLUDE<P16F873A.INC>
;DECLARACION DE VARIABLES
;CONVERSOR ANALOGO DIGITAL DE
;CONVERSOR DE TEMPERATURA
TIMER0 EQU 01
PCL EQU 02
STATUS EQU 03
PORTA EQU 05
PORTB EQU 06
ADCON0 EQU 1F
ADCON1 EQU 9F
ADRESL EQU 9E
ADRESH EQU 1E
INTCON EQU 0B
UNI_GRADOS EQU 20
DEC_GRADOS EQU 21
CEN_GRADOS EQU 22
CONVERSION EQU 23
REG1 EQU 24
REG2 EQU 25
REG3 EQU 26
PDel0 EQU 27
PDel1 EQU 28
;BITS CONVERSOR
ADIF EQU 6
GODONE EQU 2
ADON EQU 0
ADFM EQU 7
C EQU 0
ORG 00
GOTO INICIO
TEMPO MOVLW .30
MOVWF REG1
DEC6 MOVLW .21
MOVWF REG2
DEC5 MOVLW .20
MOVWF REG3
DEC4 DECFSZ REG3,1
GOTO DEC4
DECFSZ REG2,1
GOTO DEC5
DECFSZ REG1,1
GOTO DEC6
RETURN
TABLA ADDWF PCL,1
RETLW B'11000000'
RETLW B'11111001'
RETLW B'10100100'
RETLW B'10110000'
RETLW B'10011001'
RETLW B'10010010'
RETLW B'10000010'
RETLW B'11111000'
RETLW B'10000000'
RETLW B'10011000'
RETLW B'10111111'
RETLW B'11111111'
RETARDO
; Code generated by PDEL ver 1.0 on 17/04/2007 at 12:21:18 a.m.
; Description: Waits 5000 cycles
;-------------------------------------------------------------
PDelay movlw .6 ; 1 set number of repetitions (B)
movwf PDel0 ; 1 |
PLoop1 movlw .207 ; 1 set number of repetitions (A)
movwf PDel1 ; 1 |
PLoop2 clrwdt ; 1 clear watchdog
decfsz PDel1, 1 ; 1 + (1) is the time over? (A)
goto PLoop2 ; 2 no, loop
decfsz PDel0, 1 ; 1 + (1) is the time over? (B)
goto PLoop1 ; 2 no, loop
PDelL1 goto PDelL2 ; 2 cycles delay
PDelL2 clrwdt ; 1 cycle delay
return ; 2+2 Done
RETARD MOVLW .100
MOVWF REG1
nop
nop
nop
nop
DEC9 DECFSZ REG1,1
GOTO DEC9
RETURN
INICIO
BSF STATUS,5
BCF STATUS,6
CLRF PORTB
MOVLW 07
MOVWF ADCON1
MOVLW B'00000001'
MOVWF PORTA
BCF STATUS,5
COROSO
CLRF UNI_GRADOS
CLRF DEC_GRADOS
CLRF CEN_GRADOS
BCF STATUS,5
BSF STATUS,5
MOVLW B'10001110' ;RA0 ANALOGO JUSTIFICACION LOS OCHO
;PRIMEROS BITS DE ADRESL Y DOS BITS ADREESH
MOVWF ADCON1 ;RA1, RA2 DIGITAL.
BCF STATUS,5 ;FOSC/32 CANALRA0
EEE MOVLW B'10000001'
MOVWF ADCON0
BCF PIR1,ADIF
BSF ADCON0,GODONE
CALL TEMPO
NOP
EL BTFSS PIR1,ADIF
GOTO EL
BSF STATUS,5
BCF STATUS,6
MOVF ADRESL,0 ;LOW PARTE
BCF STATUS,5
MOVWF CONVERSION
RRF CONVERSION,1
MOVLW .100
LL SUBWF CONVERSION,1
BTFSS STATUS,0
GOTO KK
INCF CEN_GRADOS,1
GOTO LL
KK ADDWF CONVERSION
MOVLW .10
MM SUBWF CONVERSION,1
BTFSS STATUS,0
GOTO NN
INCF DEC_GRADOS,1
GOTO MM
NN ADDWF CONVERSION,0
MOVWF UNI_GRADOS
MOVF UNI_GRADOS,0
CALL TABLA
CLRF PORTA
MOVWF PORTB
BSF PORTA,1
CALL RETARDO
MOVF DEC_GRADOS,0
CALL TABLA
CLRF PORTA
MOVWF PORTB
BSF PORTA,2
CALL RETARDO
;MOVF CEN_GRADOS,0
;CALL TABLA
;CLRF PORTA
;MOVWF PORTB
;BSF PORTA,3
;CLRF PORTA
GOTO COROSO
END