Microchip PIC 16F87X Trabajo Y Explicación página 79

Tabla de contenido

Publicidad

T
E
RABAJO Y
XPLICACIÓN
call
movlw 0xe4
call
movlw 'S'
call
return
;16Bits_BCD: Esta rutina convierte un número binario de 16 bits situado en Byte_H y Byte_L y, en 5
;dígitos BCD que se depositan en las variables BCD_0, BCD_1 y BCD_2, siendo esta última la de menos
;peso.
Bits16_BCD
bcf
clrf
bsf
clrf
clrf
clrf
Loop_16
rlf
rlf
rlf
rlf
rlf
decfsz Contador,F
goto
return
Ajuste
movlw BCD_2
movwf FSR
call
incf
call
incf
call
goto
Ajuste_BCD
movf
addlw
movwf Temporal
btfsc
movwf INDF
movf
addlw
movwf Temporal
btfsc
movwf INDF
return
;Programa de tratamiento de la interrupción que provoca el módulo CCP1 cada vez que se detecta,
;primero un flanco descendente y, luego un ascendente por la línea RC2/CCP1.
Inter
bcf
btfsc
goto
incf
movf
movwf Cap_1_L
movf
movwf Cap_1_H
bsf
D
P
ESARROLLO
ROYECTOS Y
PIC 16F87
X
LCD_DATO
;Visualiza ' '
LCD_DATO
;Visualiza micro
LCD_DATO
;Visualiza 'S'
STATUS,C
Contador
Contador,4
;Carga el contador con 16
BCD_0
BCD_1
BCD_2
;Puesta a 0 inicial
Byte_L,F
Byte_H,F
BCD_2,F
BCD_1,F
BCD_0,F
;Desplaza a izda. (multiplica por 2)
Ajuste
;Inicia el índice
Ajuste_BCD
;Ajusta el primer byte
FSR,F
Ajuste_BCD
;Ajusta el segundo byte
FSR,F
Ajuste_BCD
Loop_16
INDF,W
0x03
Temporal,3
;Mayor de 7 el nibble de menos peso ??
;Si, lo acumula
INDF,W
0x30
Temporal,7
;Mayor de 7 el nibble de menos peso ??
;Si, lo acumula
PIR1,CCP1IF
;Repone el flag del módulo CCP1
Captura,0
;Es la captura del flanco ascendente ??
Medir
;Si, medir el tiempo transcurrido entre ambas
Captura,F
;No, ha sido la captura del flanco descendente
CCPR1L,W
CCPR1H,W
;Salvar, temporalmente, el 1er valor capturado
CCP1CON,0
;Capturar al flanco ascendente
P
E
ROTOTIPOS
LECTRÓNICOS
2º DPE
79

Publicidad

Tabla de contenido
loading

Productos relacionados para Microchip PIC 16F87X

Tabla de contenido