MPASM 02.20.15 Intermediate   PRAC_07.ASM   4-10-2007  18:10:29         PAGE  1


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                    00001 ;Curso básico de microcontroladores PIC. --- micropic@lleida.org
                    00002 ;prac_07.asm - Comprueba si el valor de los interruptores de PORTA es mayor que 8  "01000"
                    00003 ;si es mayor, parpadean los leds, si no, los leds estarán apagados.
                    00004 
                    00005         list    p=16F84         ;indica al ensamblador el modelo de PIC
                    00006         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           00007         __config        _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC ;palabra de configuración
                    00008 
  0000000C          00009 CONTA_0 equ     0x0C            ;primer registro para el bucle de retardo 
  0000000D          00010 CONTA_1 equ     0x0D            ;segundo 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 
000B 0805           00024 COMPARA movf    PORTA,W         ;pasa PORTA (interruptores) a W
000C 3C08           00025         sublw   .8              ;resta W a 8
000D 1C03           00026         btfss   STATUS,C        ;si bit C es 0, es que es mayor
000E 2811           00027         goto    MAYOR           ;C = 0 no ha brincado, PORTA > 8, goto MAYOR 
000F 0186           00028         clrf    PORTB           ;C = 1 ha brincado, no es mayor, apaga los leds 
0010 280B           00029         goto    COMPARA         ;vuelve a comparar
                    00030                 
0011 30FF           00031 MAYOR   movlw   0xFF            ;carga W todo a 1 (11111111)
0012 0086           00032         movwf   PORTB           ;enciende todos los leds de PORTB
0013 2017           00033         call    RETARDO         ;espera un tiempo
0014 0186           00034         clrf    PORTB           ;apaga todos los leds de PORTB  
0015 2017           00035         call    RETARDO         ;espera un tiempo 
0016 280B           00036         goto    COMPARA         ;vuelve a comparar
                    00037 
                    00038 
0017 0B8C           00039 RETARDO decfsz  CONTA_0,F       ;decrementa conta_0, guarda en conta_0 (F) y salta si es 0
0018 2817           00040         goto    RETARDO         ;si conta_0 no es 0, goto a etiqueta retardo
0019 0B8D           00041         decfsz  CONTA_1,F       ;decrementa conta_1, guarda en conta_1 (F) y salta si es 0
001A 2817           00042         goto    RETARDO         ;si conta_1 no es cero, repite el primer bucle
001B 0008           00043         return                  ;regresa desde donde se llamó
                    00044 
                    00045         end                     ;a partir de aquí no hay más código de programa
MPASM 02.20.15 Intermediate   PRAC_07.ASM   4-10-2007  18:10:29         PAGE  2


SYMBOL TABLE
  LABEL                             VALUE 

C                                 00000000
COMPARA                           0000000B
CONTA_0                           0000000C
CONTA_1                           0000000D
DC                                00000001
EEADR                             00000009
EECON1                            00000088
EECON2                            00000089
EEDATA                            00000008
EEIE                              00000006
EEIF                              00000004
F                                 00000001
FSR                               00000004
GIE                               00000007
INDF                              00000000
INICIO                            00000005
INTCON                            0000000B
INTE                              00000004
INTEDG                            00000006
INTF                              00000001
IRP                               00000007
MAYOR                             00000011
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                           00000017
RP0                               00000005
RP1                               00000006
STATUS                            00000003
T0CS                              00000005
T0IE                              00000005
T0IF                              00000002
T0SE                              00000004
TMR0                              00000001
TRISA                             00000085
TRISB                             00000086
W                                 00000000
WR                                00000001
WREN                              00000002
WRERR                             00000003
Z                                 00000002
MPASM 02.20.15 Intermediate   PRAC_07.ASM   4-10-2007  18:10:29         PAGE  3


SYMBOL TABLE
  LABEL                             VALUE 

_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 XXXXXXXXXXXX---- ---------------- ----------------
2000 : -------X-------- ---------------- ---------------- ----------------

All other memory blocks unused.

Program Memory Words Used:    24
Program Memory Words Free:  1000


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

