Aassessss
Páginas: 5 (1049 palabras)
Publicado: 7 de noviembre de 2010
;viernes 01-05-07
;diseño de un reloj temporizado ya exacto con cuatro lineas , rb4= detiene el tiempo
;rb5:selecciona hora y/o minuto, rb6=incrementa lo seleccionado
;AUTOR: CARLOS ALBERTO YACO TINCUSI
; digito4digito3:digito2digito1:digito6digto5 formato de hora;****************************************************************************
list P=16F84A
include
cblock 0x0C
segundo_uni
segundo_dec
unidad
decena
centena
unidmil
digito1 ;minutos
digito2 ;munutos
digito3 ;hora
digito4 ;hora
digito5
digito6
alar_digito1; digito alarma minuto
alar_digito2; digito alarma minuto
alar_digito3; digito alarma hora
alar_digito4; digito alarma hora
contador
segundo
contador_interupcion ;controla la sincronizacion del reloj
controlador_interupcion; se encarga de controlar las interupciones
controlador_cambio;
contador_alarma
activar ; controlar la sincronizacion del reloj
timbre_alarma
endc
org 0
goto inicio
org 4
goto controlador
inicio ;configuracion de pines
bsf STATUS, RP0
movlw b'01110000'
movwf PORTB
movlw b'11110000'
movwf PORTA
movlw b'10100000'
movwfINTCON
movlw b'00000011'
movwf OPTION_REG
bcf STATUS,RP0
clrf segundo_uni
clrf segundo_dec
clrf unidad
clrf decena
clrf centena
clrf unidmil
clrf contador
clrf segundo
clrf activar
clrf contador_interupcion
clrf controlador_interupcion
clrf controlador_cambio
clrf digito6
clrf digito5
clrf timbre_alarma
movlw d'0'
movwf TMR0
;inicializacion de los digitos del display
clrfdigito4
clrf digito3
clrf digito2
clrf digito1
clrf alar_digito4
clrf alar_digito2
clrf alar_digito3
movlw d'1'
movwf alar_digito1
clrf contador_alarma
call visualizar
; contador de segundos unidad
contador_unidad_segundo
incf segundo_uni
movfw segundo_uni
sublw d'10'
btfsc STATUS,Z
call contador_decena_segundo
movfw segundo_uni
movwf digito5
call visualizar
; contador desegundos decena
contador_decena_segundo
clrf segundo_uni
clrf digito5
incf segundo_dec
movfw segundo_dec
sublw d'6'
btfsc STATUS,Z
call contador_unidad_minuto
movfw segundo_dec
movwf digito6
call visualizar
;contador de unidades minuto
contador_unidad_minuto
clrf segundo_dec
clrf digito6
incf unidad
movf unidad,w
sublw d'10'
btfsc STATUS,Z
call contador_decena_minuto
movfunidad,w
movwf digito1
; es hora de alarma
movfw centena
subwf alar_digito3,0
btfsc STATUS,Z
call activar_alarma
;
call visualizar
;contador de decena minuto
contador_decena_minuto
clrf unidad
clrf digito1
incf decena
movf decena,w
sublw d'6'
btfsc STATUS,Z
call contador_unidad_hora
movf decena,w
movwf digito2
; es hora de alarma
movfw centena
subwf alar_digito3,0
btfscSTATUS,Z
call activar_alarma
;
call visualizar
;contador de unidad hora
contador_unidad_hora
clrf decena
clrf digito2
incrementar_hora
incf centena
movf centena,w
sublw d'10'
btfsc STATUS,Z
call contador_decena_hora
movf centena,w
movwf digito3
movfw centena
sublw d'4'
btfss STATUS,Z
call visualizar
incf contador,1
movfw contador
sublw d'3'
btfss STATUS,Z
call visualizarclrf digito3
clrf digito4
clrf centena
clrf unidmil
clrf contador
call visualizar
;contador de decena hora
contador_decena_hora
clrf centena
clrf digito3
incf unidmil
movf unidmil,w
sublw d'10'
btfsc STATUS,Z
clrf unidmil
movf unidmil,w
movwf digito4
call visualizar
visualizar
movfw digito1
bcf PORTA,1 ;DESHABILTAR DECENAS
bcf PORTA,2 ;DESHABILTAR CENTENAS
bcf PORTA,3;DESHABILTAR UNIDAD DE MILLAR
movwf PORTB
bsf PORTA,0 ; HABILITAR UNIDADES
movfw digito2
bcf PORTA,0; DESHABILITAS UNIDADES
movwf PORTB
bsf PORTA,1; HABILITAS DECENAS
movfw digito3
bcf PORTA,1; DESHABILITAS DECENAS
movwf PORTB
bsf PORTA,2 ; HABILITO CENTENAS
movfw digito4
bcf PORTA,2 ;DESHABILITO CENTENAS
movwf PORTB
bsf PORTA,3 ; HABILITO UNIDAD DE MILLAR
btfsc PORTB,4
goto stop;...
Leer documento completo
Regístrate para leer el documento completo.