;------------------------------------------------------------
; Código assembler generado por Niple.
; Nombre del Proyecto:
; Autor: Francisco Freire Blanco.
; Fecha: 03/03/2003
; PIC: 16F84
; Velocidad de reloj: 4 Mhz
; Funcion:
;------------------------------------------------------------
LIST P=PIC16F84
;------------------------------------------------------------
;
Declaración de Registros
;------------------------------------------------------------
w equ 00h
status equ 0x03
porta
equ 0x05
portb
equ 0x06
_np_tiempo
equ 0x0d
_np_tiempo1
equ 0x0e
_np_tiempo2
equ 0x0f
trisa
equ 0x85
trisb
equ 0x86
;------------------------------------------------------------
;
Declaración de Bits
;------------------------------------------------------------
ra2
equ 2 ;bit 2 delpuerto a
ra3 equ
3 ;bit 3 del puerto a
ra4_t0cki
equ 4 ;bit 4 del puerto o entrada de reloj
rp0 equ 5
;registrer banck select bit
;------------------------------------------------------------
;
Inicio
;------------------------------------------------------------
reset org 0
goto paso2
;------------------------------------------------------------
;
programa principal
;------------------------------------------------------------
paso2
movlw
b'00011111' ;configurar el puerto a
como xxxeeeee
bsf
status,rp0 ;cambiar a pagina 1
movwf trisa
movlw
b'00000000' ;configurar el puerto b
como ssssssss
bsf
status,rp0 ;cambiar a pagina 1
movwf trisb
paso4
clrwdt
;escribir en el
puerto b
movlw d'0'
bcf
status,rp0 ;cambiar a pagina 0
movwf portb
btfss porta,ra3
goto paso7
paso8
nop
paso9
clrwdt
;escribir en el
puerto b
movlw b'00010000'
movwf portb
btfss porta,ra2
goto paso12
paso13
;escribir en el
puerto b
movlw
b'00000001'
movwf portb
clrwdt
btfsc porta,ra2
goto paso16
paso17
clrwdt
btfss porta,ra2
goto paso19
;escribir en el
puerto b
movlw d'0'
movwf portb
paso21
clrwdt
btfsc porta,ra2
goto paso23
;escribir en el
puerto b
movlw d'0'
movwf portb
goto paso8 ; cierra el ciclo
paso23
call usr_paro
goto paso21 ;
cierra el ciclo
paso19
call usr_paro
goto paso17 ; cierra el ciclo
paso16
call usr_paro
goto paso13 ; cierra el ciclo
paso12
call usr_paro
goto paso9 ; cierra el ciclo
paso7
call usr_paro
goto paso4 ; cierra el ciclo
;------------------------------------------------------------
;
Declaración de Subrutinas
;------------------------------------------------------------
usr_paro
movlw
b'00000000' ;configurar el puerto b
como ssssssss
bsf
status,rp0 ;cambiar a pagina 1
movwf trisb
usr_paro3
clrwdt
bcf
status,rp0 ;cambiar a pagina 0
btfss
porta,ra4_t0cki
goto usr_paro5
;temporizador 20
mse
bcf
status,rp0 ;cambiar a pagina 0
movlw .2
call
tiempo_100_1000_ms
;fin del
temporizador 20 mse
goto
usr_paro_salir
usr_paro5
;escribir en el
puerto b
movlw
b'00000100'
movwf portb
;temporizador
400 mse
movlw .40
call
tiempo_100_1000_ms
;fin del
temporizador 400 mse
;escribir en el
puerto b
movlw d'0'
movwf portb
;temporizador
200 mse
movlw .20
call
tiempo_100_1000_ms
;fin del
temporizador 200 mse
goto
usr_paro3 ;cierra el ciclo
usr_paro_salir
bcf status,rp0
return
tiempo_100_1000_ms
movwf _np_tiempo
goto
tiempo_100_1000_ms_1
tiempo_100_1000_ms_bucle2
nop
nop
nop
nop
nop
nop
nop
tiempo_100_1000_ms_1
movlw .22
movwf
_np_tiempo1
tiempo_100_1000_ms_bucle1
movlw .150
movwf
_np_tiempo2
tiempo_100_1000_ms_bucle
decfsz
_np_tiempo2,1
goto
tiempo_100_1000_ms_bucle
decfsz
_np_tiempo1,1
goto
tiempo_100_1000_ms_bucle1
nop
decfsz
_np_tiempo,1
goto
tiempo_100_1000_ms_bucle2
return
End