;------------------------------------------------------------

;------------------------------------------------------------

; Código assembler generado por Niple.

; Nombre del Proyecto: Temporizador-conexión -impulso

; Autor: Francisco Freire Blanco.

; Fecha: 06/11/2002

; PIC: 16F84

; Velocidad de reloj: 4 Mhz

; Funcion: Si pulsamos y soltamos empieza a temporizar 10" y se activa la salida 1 intermitentemente, al finalizar se activa la salida 2.

;------------------------------------------------------------

 

 

 LIST    P=PIC16F84

 

 

;------------------------------------------------------------

;                  Declaración de Registros

;------------------------------------------------------------

w                     equ  00h

status                equ  0x03

porta                 equ  0x05

portb                 equ  0x06

_np_tiempo            equ  0x0f

_np_tiempo1           equ  0x10

_np_tiempo2           equ  0x11

_np_tiempo3           equ  0x12

trisa                 equ  0x85

trisb                 equ  0x86

 

 

;------------------------------------------------------------

;                  Declaración de Bits

;------------------------------------------------------------

ra0             equ  0   ;bit 0 del puerto a

ra1             equ  1   ;bit 1 del puerto a

rb7             equ  7   ;bit 7 del puerto b

rp0             equ  5   ;registrer banck select bit

 

 

;------------------------------------------------------------

;                        Inicio

;------------------------------------------------------------

 

reset   org 0

   goto paso2

 

 

;------------------------------------------------------------

;                      programa principal

;------------------------------------------------------------

paso2

   clrw                   ;borra acumulador

   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

   bcf status,rp0         ;cambiar a pagina 0

   btfss porta,ra0

   goto paso2             ;     cierra el ciclo

paso6

   clrwdt

   ;temporizador 1 seg

   movlw .1

   call tiempo_1_255_seg

   ;fin del temporizador 1 seg

   bsf portb,rb7          ;salida alarma

   ;temporizador 1 seg

   movlw .1

   call tiempo_1_255_seg

   ;fin del temporizador 1 seg

   bcf portb,rb7          ;apagar lampara

   btfss porta,ra1

   goto paso6             ;     cierra el ciclo

   goto paso2             ;     cierra el ciclo

 

 

;------------------------------------------------------------

;                  Declaración de Subrutinas

;------------------------------------------------------------

 

tiempo_1_255_seg

   movwf _np_tiempo

   goto tiempo_1_255_seg_1

tiempo_1_255_seg_bucle2

   nop

   nop

   nop

   nop

   nop

   nop

   nop

tiempo_1_255_seg_1

   movlw .10

   movwf _np_tiempo1

tiempo_1_255_seg_bucle1

   nop

   nop

   movlw .99

   movwf _np_tiempo2

tiempo_1_255_seg_bucle0

   nop

   nop

   nop

   movlw .200

   movwf _np_tiempo3

tiempo_1_255_seg_bucle

   nop

   nop

   decfsz _np_tiempo3,1

   goto tiempo_1_255_seg_bucle

   nop

   nop

   nop

   decfsz _np_tiempo2,1

   goto tiempo_1_255_seg_bucle0

   nop

   nop

   nop

   decfsz _np_tiempo1,1

   goto tiempo_1_255_seg_bucle1

   decfsz _np_tiempo,1

   goto tiempo_1_255_seg_bucle2

   return

 

 

 End