You are on page 1of 23

LIST

P=16F628
INCLUDE P16F628A.INC
CBLOCK 0X20
R1,R2,R3,R4,UNIDAD,DECENA
ENDC
MOVLW 0X07
MOVWF CMCON
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
CLRF PORTB
CLRF PORTA
M0 CLRF UNIDAD ;UNIDAD=0
CLRF DECENA ;DECENA=0
;MOSTRAR CUENTA POR DISPLAY
M1
MOSTRAR
MOVFW CONTADOR ;W=CONTADOR
CALL BCD ;LLAMAR A RUTINA DE CONVERSION A BCD
MOVWF PORTB
;FIN DE CODIGO PARA LA MUESTRA POR EL DISPLAY
SENSA_PUL.1
BTFSS PORT.2
GOTO SENSA_PUL.2
BTFSC PORTA.2
BTFSC PORT.2 ;PREGUNTA SI SE LIBERO EL PULSADOR
GOTO $1
INCF CONTADOR.2 ;W=CONTADOR
SUBLW ,100
BTFSS STATUS,Z
GOTO MOSTRAR
GOTO M1
SENSA_PUL2
BTFSS PORT,3
GOTO SENSA_PULL1
BTFSC PORT,3
GOTO $-1
BTFSS STATUS,Z
GOTO MOSTRAR
MOVLW .99
MOVWF CONTADOR
GOTO MOSTRAR
SENSA_PUL3
BTFSS PORTA,4
GOTO SENSA_PULL1
MOVFW CONTADOR ;W=CONTADOR
BTFSC STATUS,Z
GOTO SENSA_PUL1
MOSTAR2
MOVFW CONTADOR
CALL BCD
MOVWF PORTB
CALL T1S
DECFSZ CONTADOR,F
GOTO MOSTRAR2
GOTO INICIO
BCD
MOVWF R3
CLRF R4 ; REGISTRO DE CUENTAS RESTAS
MOVLW .10
RESTAR
SUBWF R3,F ;R3=R3-10
BTFSS STATUS,C
GOTO NEGATIVO
INCF R4,F ;INCREMENTO MICONTADOR DE RESTAS
GOTO RESTAR
NEGATIVO
ADDWF R3,F
SWAPF R4,W
ADDWF R3,W
RETURN
T1S
MOVLW .250
MOVWF R2
MOVLW .249
MOVWF R1
NOP
DECFSZ
;GENERACION DE SONIDO
MOVLW .5
MOVWF R4

REPETIR_TONO
MOVLW .130 ;CUANDO CAMBIAS DESENDENTE EL TONO VA MAS RAPIDO ERA 250
MOVWF R3
N1 BSF PORT,1
CALL TSI
DECFSZ R3,F
GOTO N1

MOVLW .70 ;ACA TAMBIEN SE BAJA
MOVWF R3
N2 BSF PORT,1
CALL TDO
DECFSZ R3,F
GOTO N2
TSI MOVLW .10
MOVFW R2
MOVLW .33
MOVWF R1
GOTO$ 5
RETURN

SWAPF DECENA,W
ADDWF UNIDAD,W
MOVWF PORTB
CALL T250
INCF UNIDAD,F ;UNIDAD=UNIDAD+1
MOVFW UNIDAD ;W=UNIDAD
SUBLW .10 ;W=10-W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
CLRF UNIDAD ;UNIDAD=0
INCF DECENA,F ;DECENA=DESCENA+1
SUBLW .10 ;W=10=W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
GOTO M0
T250
MOVLW .250
MOVWF R2
MOVLW .249
MOVWF R1
NOP
DECFSZ R1,F
GOTO $-2
DECFSZ R2,F
goto $-6
RETURN
END

LIST P=16F628
INCLUDE P16F628A.INC
CBLOCK 0X20
R1,R2,R3,R4,UNIDAD,DECENA
ENDC
MOVLW 0X07
MOVWF CMCON
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
CLRF PORTB
CLRF PORTA
M0 CLRF UNIDAD ;UNIDAD=0
CLRF DECENA ;DECENA=0
;MOSTRAR CUENTA POR DISPLAY
M1
SWAPF DECENA,W
ADDWF UNIDAD,W
MOVWF PORTB
CALL T250
INCF UNIDAD,F ;UNIDAD=UNIDAD+1
MOVFW UNIDAD ;W=UNIDAD
SUBLW .10 ;W=10-W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
CLRF UNIDAD ;UNIDAD=0
INCF DECENA,F ;DECENA=DESCENA+1
SUBLW .10 ;W=10=W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
GOTO M0
T250
MOVLW .250
MOVWF R2
MOVLW .249
MOVWF R1
NOP
DECFSZ R1,F
GOTO $-2
DECFSZ R2,F
goto $-6
RETURN
END

LIST P=16F628
INCLUDE P16F628A.INC
CBLOCK 0X20
R1,R2,R3,R4,UNIDAD,DECENA
ENDC
MOVLW 0X07
MOVWF CMCON
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
CLRF PORTB
CLRF PORTA
M0 CLRF UNIDAD ;UNIDAD=0
CLRF DECENA ;DECENA=0
;MOSTRAR CUENTA POR DISPLAY
M1
SWAPF DECENA,W
ADDWF UNIDAD,W
MOVWF PORTB
CALL T250
INCF UNIDAD,F ;UNIDAD=UNIDAD+1
MOVFW UNIDAD ;W=UNIDAD
SUBLW .10 ;W=10-W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
CLRF UNIDAD ;UNIDAD=0
INCF DECENA,F ;DECENA=DESCENA+1
SUBLW .10 ;W=10=W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
GOTO M0
T250
MOVLW .250
MOVWF R2
MOVLW .249
MOVWF R1
NOP
DECFSZ R1,F
GOTO $-2
DECFSZ R2,F
goto $-6
RETURN
END

LIST P=16F628
INCLUDE P16F628A.INC
CBLOCK 0X20
R1,R2,R3,R4,UNIDAD,DECENA
ENDC
MOVLW 0X07
MOVWF CMCON
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
CLRF PORTB
CLRF PORTA
M0 CLRF UNIDAD ;UNIDAD=0
CLRF DECENA ;DECENA=0
;MOSTRAR CUENTA POR DISPLAY
M1
SWAPF DECENA,W
ADDWF UNIDAD,W
MOVWF PORTB
CALL T250
INCF UNIDAD,F ;UNIDAD=UNIDAD+1
MOVFW UNIDAD ;W=UNIDAD
SUBLW .10 ;W=10-W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
CLRF UNIDAD ;UNIDAD=0
INCF DECENA,F ;DECENA=DESCENA+1
SUBLW .10 ;W=10=W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
GOTO M0
T250
MOVLW .250
MOVWF R2
MOVLW .249
MOVWF R1
NOP
DECFSZ R1,F
GOTO $-2
DECFSZ R2,F
goto $-6
RETURN
END

LIST P=16F628
INCLUDE P16F628A.INC
CBLOCK 0X20
R1,R2,R3,R4,UNIDAD,DECENA
ENDC
MOVLW 0X07
MOVWF CMCON
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
CLRF PORTB
CLRF PORTA
M0 CLRF UNIDAD ;UNIDAD=0
CLRF DECENA ;DECENA=0
;MOSTRAR CUENTA POR DISPLAY
M1
SWAPF DECENA,W
ADDWF UNIDAD,W
MOVWF PORTB
CALL T250
INCF UNIDAD,F ;UNIDAD=UNIDAD+1
MOVFW UNIDAD ;W=UNIDAD
SUBLW .10 ;W=10-W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
CLRF UNIDAD ;UNIDAD=0
INCF DECENA,F ;DECENA=DESCENA+1
SUBLW .10 ;W=10=W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
GOTO M0
T250
MOVLW .250
MOVWF R2
MOVLW .249
MOVWF R1
NOP
DECFSZ R1,F
GOTO $-2
DECFSZ R2,F
goto $-6
RETURN
END

LIST P=16F628
INCLUDE P16F628A.INC
CBLOCK 0X20
R1,R2,R3,R4,UNIDAD,DECENA
ENDC
MOVLW 0X07
MOVWF CMCON
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
CLRF PORTB
CLRF PORTA
M0 CLRF UNIDAD ;UNIDAD=0
CLRF DECENA ;DECENA=0
;MOSTRAR CUENTA POR DISPLAY
M1
SWAPF DECENA,W
ADDWF UNIDAD,W
MOVWF PORTB
CALL T250
INCF UNIDAD,F ;UNIDAD=UNIDAD+1
MOVFW UNIDAD ;W=UNIDAD
SUBLW .10 ;W=10-W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
CLRF UNIDAD ;UNIDAD=0
INCF DECENA,F ;DECENA=DESCENA+1
SUBLW .10 ;W=10=W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
GOTO M0
T250
MOVLW .250
MOVWF R2
MOVLW .249
MOVWF R1
NOP
DECFSZ R1,F
GOTO $-2
DECFSZ R2,F
goto $-6
RETURN
END

LIST P=16F628
INCLUDE P16F628A.INC
CBLOCK 0X20
R1,R2,R3,R4,UNIDAD,DECENA
ENDC
MOVLW 0X07
MOVWF CMCON
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
CLRF PORTB
CLRF PORTA
M0 CLRF UNIDAD ;UNIDAD=0
CLRF DECENA ;DECENA=0
;MOSTRAR CUENTA POR DISPLAY
M1
SWAPF DECENA,W
ADDWF UNIDAD,W
MOVWF PORTB
CALL T250
INCF UNIDAD,F ;UNIDAD=UNIDAD+1
MOVFW UNIDAD ;W=UNIDAD
SUBLW .10 ;W=10-W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
CLRF UNIDAD ;UNIDAD=0
INCF DECENA,F ;DECENA=DESCENA+1
SUBLW .10 ;W=10=W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
GOTO M0
T250
MOVLW .250
MOVWF R2
MOVLW .249
MOVWF R1
NOP
DECFSZ R1,F
GOTO $-2
DECFSZ R2,F
goto $-6
RETURN
END

LIST P=16F628
INCLUDE P16F628A.INC
CBLOCK 0X20
R1,R2,R3,R4,UNIDAD,DECENA
ENDC
MOVLW 0X07
MOVWF CMCON
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
CLRF PORTB
CLRF PORTA
M0 CLRF UNIDAD ;UNIDAD=0
CLRF DECENA ;DECENA=0
;MOSTRAR CUENTA POR DISPLAY
M1
SWAPF DECENA,W
ADDWF UNIDAD,W
MOVWF PORTB
CALL T250
INCF UNIDAD,F ;UNIDAD=UNIDAD+1
MOVFW UNIDAD ;W=UNIDAD
SUBLW .10 ;W=10-W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
CLRF UNIDAD ;UNIDAD=0
INCF DECENA,F ;DECENA=DESCENA+1
SUBLW .10 ;W=10=W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
GOTO M0
T250
MOVLW .250
MOVWF R2
MOVLW .249
MOVWF R1
NOP
DECFSZ R1,F
GOTO $-2
DECFSZ R2,F
goto $-6
RETURN
END

LIST P=16F628
INCLUDE P16F628A.INC
CBLOCK 0X20
R1,R2,R3,R4,UNIDAD,DECENA
ENDC
MOVLW 0X07
MOVWF CMCON
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
CLRF PORTB
CLRF PORTA
M0 CLRF UNIDAD ;UNIDAD=0
CLRF DECENA ;DECENA=0
;MOSTRAR CUENTA POR DISPLAY
M1
SWAPF DECENA,W
ADDWF UNIDAD,W
MOVWF PORTB
CALL T250
INCF UNIDAD,F ;UNIDAD=UNIDAD+1
MOVFW UNIDAD ;W=UNIDAD
SUBLW .10 ;W=10-W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
CLRF UNIDAD ;UNIDAD=0
INCF DECENA,F ;DECENA=DESCENA+1
SUBLW .10 ;W=10=W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
GOTO M0
T250
MOVLW .250
MOVWF R2
MOVLW .249
MOVWF R1
NOP
DECFSZ R1,F
GOTO $-2
DECFSZ R2,F
goto $-6
RETURN
END

LIST P=16F628
INCLUDE P16F628A.INC
CBLOCK 0X20
R1,R2,R3,R4,UNIDAD,DECENA
ENDC
MOVLW 0X07
MOVWF CMCON
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
CLRF PORTB
CLRF PORTA
M0 CLRF UNIDAD ;UNIDAD=0
CLRF DECENA ;DECENA=0
;MOSTRAR CUENTA POR DISPLAY
M1
SWAPF DECENA,W
ADDWF UNIDAD,W
MOVWF PORTB
CALL T250
INCF UNIDAD,F ;UNIDAD=UNIDAD+1
MOVFW UNIDAD ;W=UNIDAD
SUBLW .10 ;W=10-W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
CLRF UNIDAD ;UNIDAD=0
INCF DECENA,F ;DECENA=DESCENA+1
SUBLW .10 ;W=10=W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
GOTO M0
T250
MOVLW .250
MOVWF R2
MOVLW .249
MOVWF R1
NOP
DECFSZ R1,F
GOTO $-2
DECFSZ R2,F
goto $-6
RETURN
END

LIST P=16F628
INCLUDE P16F628A.INC
CBLOCK 0X20
R1,R2,R3,R4,UNIDAD,DECENA
ENDC
MOVLW 0X07
MOVWF CMCON
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
CLRF PORTB
CLRF PORTA
M0 CLRF UNIDAD ;UNIDAD=0
CLRF DECENA ;DECENA=0
;MOSTRAR CUENTA POR DISPLAY
M1
SWAPF DECENA,W
ADDWF UNIDAD,W
MOVWF PORTB
CALL T250
INCF UNIDAD,F ;UNIDAD=UNIDAD+1
MOVFW UNIDAD ;W=UNIDAD
SUBLW .10 ;W=10-W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
CLRF UNIDAD ;UNIDAD=0
INCF DECENA,F ;DECENA=DESCENA+1
SUBLW .10 ;W=10=W
BTFSS STATUS,Z ;SALTA SI Z ES 1
GOTO M1
GOTO M0
T250
MOVLW .250
MOVWF R2
MOVLW .249
MOVWF R1
NOP
DECFSZ R1,F
GOTO $-2
DECFSZ R2,F
goto $-6
RETURN
END

You might also like