T
E
RABAJO Y
XPLICACIÓN
PROGRAMA 11
El TMR1 en el modo contador. Frecuencímetro
Mediante un generador de onda cuadrada, se aplican pulsos por la línea RC0/T1CKI.
El TMR1 cuenta los pulsos durante un intervalo de 1s. Al resultado de la cuenta representa el
número de pulsos por segundo o herzios.
Dicha frecuencia se visualiza por la pantalla LCD del entrenador
List
include "P16F876.INC" ;Definiciones de registros internos
Lcd_var
equ
Byte_L
equ
Byte_H
equ
BCD_2
equ
BCD_1
equ
BCD_0
equ
Contador
equ
Temporal
equ
Delay
equ
org
goto
org
goto
include "LCD_CXX.INC"
;Visualizar: Visualiza sobre la pantalla LCD los cinco dígitos situados en las variables BCD_0, BC_1 y
;BCD_2
Visualizar
movlw 0x80
call
movlw 3
movwf Contador
movlw BCD_0
movwf FSR
Visual_loop
swapf
andlw
iorlw
call
movf
andlw
iorlw
call
decf
decfsz Contador,F
goto
return
D
P
ESARROLLO
ROYECTOS Y
PIC 16F87
X
p=16F876
;Tipo de procesador
0x20
;Inicio de variables de las rutinas LCD
0x22
;Parte baja del byte a convertir
0x23
;Parte alta del byte a convertir
0x24
;Byte 2 de conversión a BCD
0x25
;Byte 1 de conversión a BCD
0x26
;Byte 0 de conversión a BCD
0x27
;Variable de contaje
0x28
;Variable temporal
0x29
;Variable para la temporización
0x04
;Vector de interrupción
Inter
0x05
Inicio
LCD_REG
;Posiciona el cursor
;Inicia contador de bytes a convertir
;Inicia puntero índice
INDF,W
0x0f
0x30
;Convierte a ASCII el nible de más peso
LCD_DATO
;Lo visualiza
INDF,W
0x0f
0x30
;Convierte a ASCII el nible de menos peso
LCD_DATO
;Lo visualiza
FSR,F
;Siguiente byte
Visual_loop
P
E
ROTOTIPOS
LECTRÓNICOS
;Incluye rutinas de manejo del LCD
2º DPE
73