MPASM 02.20.15 Intermediate   PRAC_09.ASM   4-10-2007  18:10:53         PAGE  1


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                    00001 ;Curso básico de microcontroladores PIC.  --- micropic@lleida.org
                    00002 ;prac_09.asm - Simula una alarma básica. RA0 llave conexión/desconexión alarma, RA1 sensor puerta, ;RB0 sa
                          lida sirena
                    00003 
                    00004         list    p=16F84         ;indica al ensamblador el modelo de PIC
                    00005         include "P16F84.inc"    ;incluye librería de definiciones para el PIC16F84
                    00001         LIST
                    00002 ; P16F84.INC  Standard Header File, Version 2.00    Microchip Technology, Inc.
Message[301]: MESSAGE: (Processor-header file mismatch.  Verify selected processor.)
                    00136         LIST
2007 3FF1           00006         __config        _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC ;palabra de configuración
                    00007 
  0000000C          00008 CONTA_0 equ     0x0C            ;primer registro para el bucle de retardo 
  0000000D          00009 CONTA_1 equ     0x0D            ;segundo registro para el bucle de retardo
  0000000E          00010 CONTA_2 equ     0x0E            ;tercer registro para el bucle de retardo
                    00011 
0000                00012         org     0x00            ;primera posición de la memoria de programa
0000 2805           00013         goto    INICIO          ;salto a la etiqueta inicio
0005                00014         org     0x05            ;para pasar por encima del vector de interrupción
                    00015 
0005 1683           00016 INICIO  bsf     STATUS,RP0      ;selecciona banco 1 del área de datos
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0006 0186           00017         clrf    TRISB           ;configura PORTB todo salidas
0007 301F           00018         movlw   b'00011111'
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0008 0085           00019         movwf   TRISA           ;configura PORTA todo entradas
0009 1283           00020         bcf     STATUS,RP0      ;vuelve a banco 0 del área de datos
000A 0186           00021         clrf    PORTB           ;empieza apagando todos los Led
                    00022 
                    00023 ;programa principal
                    00024 
000B 1805           00025 EMPIEZA btfsc   PORTA,0         ;llave alarma activada ?
000C 280B           00026         goto    EMPIEZA         ;no, vuelve a empieza
000D 2016           00027         call    DELAY_10S       ;si, espera 10 segundos para salir
000E 1C85           00028 ESPERA  btfss   PORTA,1         ;sensor puerta activado ?
000F 280E           00029         goto    ESPERA          ;no, sigue esperando
0010 2016           00030         call    DELAY_10S       ;si, espera 10 segundos para entrar
0011 1406           00031         bsf     PORTB,0         ;activa salida sirena
0012 1C05           00032 ALARMA  btfss   PORTA,0         ;llave desactiva alarma ?
0013 2812           00033         goto    ALARMA          ;no, se mantiene sirena activada
0014 1006           00034         bcf     PORTB,0         ;si, se desactiva sirena
0015 280B           00035         goto    EMPIEZA         ;vuelve al principio
                    00036 
                    00037 
                    00038 ;subrutina de retardo de unos 10s. aprox. Se multiplica el bucle de tiempo de 196ms por 51 veces ;obtenién
                          dose 9.996ms 
                    00039 
0016                00040 DELAY_10S
0016 3033           00041         movlw   .51
0017 008E           00042         movwf   CONTA_2         ;carga conta_2 con 51 (decimal)  
                    00043                 
0018 0B8C           00044 RETARDO decfsz  CONTA_0,F       ;decrementa conta_0, guarda en conta_0 (F) y salta si es 0
0019 2818           00045         goto    RETARDO         ;si conta_0 no es 0, goto a etiqueta retardo
MPASM 02.20.15 Intermediate   PRAC_09.ASM   4-10-2007  18:10:53         PAGE  2


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

001A 0B8D           00046         decfsz  CONTA_1,F       ;decrementa conta_1, guarda en conta_1 (F) y salta si es 0
001B 2818           00047         goto    RETARDO         ;si conta_1 no es cero, repite el primer bucle 
001C 0B8E           00048         decfsz  CONTA_2,F       ;decrementa conta_2, guarda en conta_2 (F) y salta si es 0 
001D 2818           00049         goto    RETARDO         ;si conta_2 no es cero, repite los dos bucles anteriores
001E 0008           00050         return                  ;regresa desde donde se llamó
                    00051 
                    00052         end                     ;a partir de aquí no hay más código de programa
MPASM 02.20.15 Intermediate   PRAC_09.ASM   4-10-2007  18:10:53         PAGE  3


SYMBOL TABLE
  LABEL                             VALUE 

ALARMA                            00000012
C                                 00000000
CONTA_0                           0000000C
CONTA_1                           0000000D
CONTA_2                           0000000E
DC                                00000001
DELAY_10S                         00000016
EEADR                             00000009
EECON1                            00000088
EECON2                            00000089
EEDATA                            00000008
EEIE                              00000006
EEIF                              00000004
EMPIEZA                           0000000B
ESPERA                            0000000E
F                                 00000001
FSR                               00000004
GIE                               00000007
INDF                              00000000
INICIO                            00000005
INTCON                            0000000B
INTE                              00000004
INTEDG                            00000006
INTF                              00000001
IRP                               00000007
NOT_PD                            00000003
NOT_RBPU                          00000007
NOT_TO                            00000004
OPTION_REG                        00000081
PCL                               00000002
PCLATH                            0000000A
PORTA                             00000005
PORTB                             00000006
PS0                               00000000
PS1                               00000001
PS2                               00000002
PSA                               00000003
RBIE                              00000003
RBIF                              00000000
RD                                00000000
RETARDO                           00000018
RP0                               00000005
RP1                               00000006
STATUS                            00000003
T0CS                              00000005
T0IE                              00000005
T0IF                              00000002
T0SE                              00000004
TMR0                              00000001
TRISA                             00000085
TRISB                             00000086
W                                 00000000
WR                                00000001
MPASM 02.20.15 Intermediate   PRAC_09.ASM   4-10-2007  18:10:53         PAGE  4


SYMBOL TABLE
  LABEL                             VALUE 

WREN                              00000002
WRERR                             00000003
Z                                 00000002
_CP_OFF                           00003FFF
_CP_ON                            0000000F
_HS_OSC                           00003FFE
_LP_OSC                           00003FFC
_PWRTE_OFF                        00003FFF
_PWRTE_ON                         00003FF7
_RC_OSC                           00003FFF
_WDT_OFF                          00003FFB
_WDT_ON                           00003FFF
_XT_OSC                           00003FFD
__16F84A                          00000001


MEMORY USAGE MAP ('X' = Used,  '-' = Unused)

0000 : X----XXXXXXXXXXX XXXXXXXXXXXXXXX- ---------------- ----------------
2000 : -------X-------- ---------------- ---------------- ----------------

All other memory blocks unused.

Program Memory Words Used:    27
Program Memory Words Free:   997


Errors   :     0
Warnings :     0 reported,     0 suppressed
Messages :     3 reported,     0 suppressed

