Contador de 0-9999 display con pic 16c54
LIST C=132, X=OFF, N=58
; CONTADOR PROGRAMABLE DE 0000-9999
;
; MICROCONTROLADOR PIC16C54
;
; Contador activado por una se¤al externa en el flanco de
; bajada, se le puede programar un valor de arranque, el
; cual se coloca seleccionando cada uno de los cuatro
; d¡gitos, mediante una tecla de selecci¢n de d¡gito (DS),
; el valor deld¡gito se coloca mediante una tecla de
; incremento (INC), al seleccionar el valor deseado, inicia
; la cuenta despu‚s de pulsar la tecla de aceptado (ACEPT).
; cuando el contador llegue a su cuenta m xima debe re-
; iniciar en el valor programado.
; Ing. Luis Fernando Carabali A. ....Mayo/94
; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; DEFINICION DE CONSTANTES
;;REGISTROS OPERACIONALES
dir_ind equ 00 ;direccionamiento indirecto
rtcc equ 01 ;reloj tiempo real
pc equ 02 ;contador de programa
estado equ 03 ;estado
fsr equ 04 ;selecci¢n de registro
ptoa equ 05 ;puerto a
ptob equ 06 ;puerto b
; REGISTROS DEPROPOSITO GENERAL
unidad equ 0x08 ;unidades de contador
decena equ 0x09 ;decenas del contador
centena equ 0x0A ;centenas del contador
miles equ 0x0B ;miles del contador
mem_unidad equ 0x0D ;valor programado en unidades
mem_decena equ 0x0E ;valor programado en decenas
mem_centena equ 0x0F ;valorprogramado en centenas
mem_miles equ 0x10 ;valor programado en miles
retardo equ 0x11 ;valor para retardos de tiempo
retardo_1 equ 0x12 ;valor para retardos de tiempo
banderas equ 0x13 ;byte para bits de control
tecla_pres equ 0x14 ;memoria para antiorebote
m_rtcc equ 0x15 ;valor anterior del RTCC
;CONSTANTESREGISTRO DE ESTADO
c equ 00 ;carry
dc equ 01 ;carry decimal
z equ 02 ;cero
pd equ 03 ;bajo consumo
to equ 04 ;fuera de tiempo
; CONSTANTES
hiz_ptob equ 0x0F ;4 bits lsb como entrada
;en puerto b
;CONSTANTES DE PROGRAMACION PIC16prg_rtcc equ 0x3F ; rtcc externo alto - bajo
w equ 00 ; sin pre_escaler
f equ 01
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;MACROS
;VER_SEL verfica si un registro tiene el bit 7 en 1, si es
; asi lo pasa al registro W con este bit en cero, en caso
; contrario devuelve el valor del registro en W.ver_sel MACRO registro
LOCAL fin_mcr
movf registro,w
btfss registro,7
goto fin_mcr
andlw 0x0F
fin_mcr nop
endm
;ACTIVA_DIS activa un display durante T_ON*5uS, y los
; desactiva todos durante T_OFF*5uS
activa_dis MACRO registro,t_on,t_off,n_bitLOCAL ret_m5us,ret_r5us
bsf registro,n_bit ;activa el display
movlw t_on
movwf retardo ;retardo de
ret_m5us nop ;5uS*t_on
nop
decfsz retardo,f
goto ret_m5us
bcf registro,n_bit ;desactiva el displaymovlw t_off
movwf retardo ;retardo de
ret_r5us nop ;5uS*t_off
nop
decfsz retardo,f
goto ret_r5us
endm
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;ARRANQUE DE PROGRAMA
org 1ffh ;la primera instrucci¢n
goto...
Regístrate para leer el documento completo.