Professional Documents
Culture Documents
asm
;Temporizador Automtico para Lavadoras
;
;Descripcin: Temporizador Regresivo.
;
Temporizador ajustable.
;
Pantalla de Displays de siete segmentos para visualizar el tiempo.
;
;
Rango de tiempo: 0 - 60 min.
;
Error de temporizacin: 1ms/ao.
;
Criterio de Comparacin: Algoritmo Gaussiano.
;
Consumo: No ha sido calculado .
;
Nivel de Depuracin: Bajo.
;
;Autor: Angel de Dios Mejas Ruiz.
;
;Elaborado para la compaa:
;IVENSYS C.A. (Industria Venezolana de Soluciones y Servicios).
;
;Lugar:
;Fecha de inicio de cdigo: 23 de Febrero de 2006.
;Hora: 4:42 pm
;
;Ciudad: Naguanagua - Edo. Carabobo - Venezuela.
;Contacto: angelmejias@cantv.net / amejias@thor.uc.edu.ve
;Copyright 2006
;--------------------------------------------------------;************************************************
;
;
;
1.0
;
;
;
;
;
;************************************************
;
;
Archivos Requeridos:
;
;
;
;************************************************
;
;
Notas:
Page 1
LAVADORA I.asm
;
;
;
;
;************************************************
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
;
;
MODIFICACIONES
;
===================
;
8 de Abril de 2008
12:10
;
7 de Abril de 2008
4:00
;
6 de Abril de 2008
9:00
;
5 de Abril de 2008
10:00
;
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
LIST
p=16f84A
#include
<p16f84A.inc>
p.m.
p.m.
a.m.
p.m.
EQU
EQU
EQU
0x00
0x01
0x04
CBLOCK
0x0C
C1,C2
C01,C02,C03,C04,C05
CSET
; Contadores Generales.
;
"
; Contador de Pulsadas del botn de ajuste
CSEG
CMIN
CTIME
SEG
GIROIZQ, GIRODER
CMOTOR
BAND
SAVE_TMR0
;
;
;
;
;
;
;
tiempo.
Contadores de segundos.
Contadores de minutos.
Contador general de tiempo.
Sentido de giro del motor
Contador de tiempo de trabajo para cada giro.
Bandera de cambio de giro.
ENDC
;.........................................................................
BANCO_0 MACRO
bcf
bcf
endm
STATUS, RP0
STATUS, RP1
Page 2
LAVADORA I.asm
BANCO_1 macro
bsf
bcf
ENDM
STATUS, RP0
STATUS, RP1
FFFF = b'11110001'
;.........................................................................
;(((((((((((((((((( PINES
))))))))))))))))))
;=====================================
#define SS
PORTA,2;
#define TIMER_SET
PORTA,3
;#define TIPO_DE_LAVADO PORTA,4
;..............................................................................
ORG
goto
0x00
INICIO
ORG
0x04
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
INTERRUP:
bcf
INTCON,T0IF
incf
movf
xorlw
btfss
goto
CTIME,F
CTIME,W
.125
STATUS,Z
RETORNAR
incf
movf
xorlw
btfsc
call
CMOTOR,F
CMOTOR,W
.5
STATUS,Z
CAMBIO_DE_GIRO
clrf
incf
movf
xorlw
btfss
goto
CTIME
CSEG,F
CSEG,W
.60
STATUS,Z
RETORNAR
DECMIN:
clrf
decf
DISPLAY:
movf
call
CSEG
CMIN,F
CMIN,W
TABLA
Page 3
LAVADORA I.asm
movwf
RETORNAR:
movlw
movwf
PORTB
.6
TMR0
BANCO_1
movlw
b'10000100'
movwf
OPTION_REG
BANCO_0
RETFIE
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
; ***************************************************************
;************
SUBPROGRAMAS
**************************
; ***************************************************************
RET_1m:
movlw
movwf
.250
C1
nop
decfsz
goto
RETURN
C1,1
CICLO
; Retardo de 1 ms.
CICLO:
;......................................................................................
.................
RET_100m:
movlw
movwf
CICLO3:
movlw
movwf
CICLO4:
nop
nop
decfsz
goto
decfsz
goto
RETURN
.100
C01
.200
C02
C02,F
CICLO4
C01,F
CICLO3
;......................................................................................
...............
RET_500m:
movlw
movwf
CICLO5:
call
decfsz
goto
RETURN
.5
C03
RET_100m
C03,F
CICLO5
Page 4
LAVADORA I.asm
;......................................................................................
..............
ANTIREBOTE:
movlw
.100
movwf
C04
CICLO6:
movlw
.200
movwf
C05
CICLO7:
nop
nop
decfsz C05,F
goto
CICLO7
decfsz C04,F
goto
CICLO6
RETURN
;......................................................................................
..............
CAMBIO_DE_GIRO:
clrf
CMOTOR
incf
movf
xorlw
btfsc
clrf
BAND,F
BAND,W
.4
STATUS,Z
BAND
movf
xorlw
btfsc
goto
BAND,W
0
STATUS,Z
ACTIVAR_MOTOR_DERECHO
movf
xorlw
btfsc
goto
BAND,W
.1
STATUS,Z
DETENER_MOTOR_DERECHO
movf
xorlw
btfsc
goto
BAND,W
.2
STATUS,Z
ACTIVAR_MOTOR_IZQUIERDO
movf
xorlw
btfsc
goto
BAND,W
.3
STATUS,Z
DETENER_MOTOR_IZQUIERDO
ACTIVAR_MOTOR_DERECHO:
bsf
PORTA,RA0
goto
SALIR
DETENER_MOTOR_DERECHO:
bcf
PORTA,RA0
goto
SALIR
ACTIVAR_MOTOR_IZQUIERDO:
bsf
PORTA,RA1
Page 5
LAVADORA I.asm
goto
SALIR
DETENER_MOTOR_IZQUIERDO:
bcf
PORTA,RA1
SALIR:
RETURN
;......................................................................................
..............
TABLA:
addwf
PCL,F
retlw
H'00'
retlw
H'01'
retlw
H'02'
retlw
H'03'
retlw
H'04'
retlw
H'05'
retlw
H'06'
retlw
H'07'
retlw
H'08'
retlw
H'09'
retlw
H'10'
retlw
H'11'
retlw
H'12'
retlw
H'13'
retlw
H'14'
retlw
H'15'
retlw
H'16'
retlw
H'17'
retlw
H'18'
retlw
H'19'
retlw
H'20'
retlw
H'21'
retlw
H'22'
retlw
H'23'
retlw
H'24'
retlw
H'25'
retlw
H'26'
retlw
H'27'
retlw
H'28'
retlw
H'29'
retlw
H'30'
retlw
H'31'
retlw
H'32'
retlw
H'33'
retlw
H'34'
retlw
H'35'
retlw
H'36'
retlw
H'37'
retlw
H'38'
retlw
H'39'
retlw
H'40'
retlw
H'41'
retlw
H'42'
retlw
H'43'
retlw
H'44'
retlw
H'45'
retlw
H'46'
Page 6
LAVADORA I.asm
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
H'47'
H'48'
H'49'
H'50'
H'51'
H'52'
H'53'
H'54'
H'55'
H'56'
H'57'
H'58'
H'59'
;***********************************************************************
;***************
FIN SUBPROGRAMAS
************************
;***********************************************************************
;***********************************************************************
;*****************
CUERPO PRINCIPAL DEL PROGRAMA
******************
;=======================================================================
;***********************************************************************
INICIO:
BANCO_0
clrf
PORTA
clrf
PORTB
BANCO_1
movlw
salidas.
movwf
movlw
movwf
BANCO_0
clrf
clrf
clrf
clrf
; Limpiando Puertos.
b'11101100'
TRISA
0
TRISB
PORTA
PORTB
TMR0
INTCON
BANCO_1
movlw
b'10000100'
movwf
OPTION_REG
; Limpiando Puertos.
;
; Configuracin del TMR0 (PSA TMR0).
; Se asigna el Preescaler 1:4 al TMR0 .
BANCO_0
;..........................................................................
;-------------------------------------------------; Inicializacin de variables
;------------------------------------------------INICIALIZAR:
Page 7
LAVADORA I.asm
movlw
movwf
0x0C
FSR
clrf
incf
movf
xorlw
btfss
goto
INDF
FSR,F
FSR,W
0x1E
STATUS,Z
LAZ
LAZ:
;......................................................................................
............
REPITE:
;
;
btfss
goto
TIMER_SET
AJUSTE
btfss
goto
SECAR
SECADO
btfss
goto
SS
START
goto
REPITE
call
btfsc
goto
ANTIREBOTE
TIMER_SET
REPITE
movf
sublw
btfss
goto
incf
goto
CMIN,W
.59
STATUS,C
CMINMAY59
CMIN,F
DISPMIN
AJUSTE:
CMINMAY59:
clrf
CMIN
DISPMIN:
movf
call
movwf
CMIN,W
TABLA
PORTB
bsf
call
call
bcf
PORTA,RA4
RET_100m
RET_100m
PORTA,RA4
goto
REPITE
;......................................................................................
.............
SECADO:
call
ANTIREBOTE
Page 8
LAVADORA I.asm
;
;
btfsc
goto
goto
SECAR
REPITE
INICIAR_SECADO
START:
call
btfsc
goto
ANTIREBOTE
SS
REPITE
movf
xorlw
btfsc
goto
CMIN,W
0
STATUS,Z
REGRESAR
bsf
call
call
bcf
PORTA,RA4
RET_100m
RET_100m
PORTA,RA4
goto
SEGUIR
REGRESAR:
goto
REPITE
SEGUIR:
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;
CONFIGURACION DEL TIMER
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
BANCO_0
bsf
PORTA,RA0
bcf
PORTA,RA1
clrf
CTIME
bcf
bsf
bsf
INTCON,T0IF
INTCON,T0IE
INTCON,GIE
movlw
movwf
.6
TMR0
6.
goto
CONTINUA
;......................................................................................
................
TIMER_ON:
movf
movwf
bsf
bsf
call
;
call
bcf
; Se enciende el Reloj
SAVE_TMR0,W
TMR0
INTCON,T0IE
PORTA,RA4
RET_100m
RET_100m
PORTA,RA4
CONTINUA:
Page 9
LAVADORA I.asm
movf
xorlw
btfsc
goto
CMIN,W
0
STATUS,Z
APAGA
btfsc
goto
call
btfss
goto
goto
SS
CONTINUA
ANTIREBOTE
SS
PAUSA
CONTINUA
bcf
movf
movwf
INTCON,T0IE
TMR0,W
SAVE_TMR0
bsf
call
call
bcf
PORTA,RA4
RET_100m
RET_100m
PORTA,RA4
PAUSA:
SIGUE_PAUSA:
btfsc
goto
call
btfss
goto
goto
SS
SIGUE_PAUSA
ANTIREBOTE
SS
TIMER_ON
SIGUE_PAUSA
APAGA:
bcf
clrf
INTCON,T0IE
PORTA
bsf
call
call
bcf
call
call
bsf
call
call
bcf
bsf
call
call
bcf
PORTA,RA4
RET_100m
RET_500m
PORTA,RA4
RET_500m
RET_500m
PORTA,RA4
RET_500m
RET_500m
PORTA,RA4
PORTA,RA4
RET_500m
RET_500m
PORTA,RA4
;**********************
goto
INICIO
END
Page 10