MPASM 02.20.15 Intermediate   PRAC_11.ASM   4-10-2007  18:11:08         PAGE  1


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                    00001 ;Curso básico de microcontroladores PIC. --- micropic@lleida.org
                    00002 ;prac_11.asm - Contador binario UP/DOWN. RA0 = INC, RA1 = DEC. Visualiza en PORTB
                    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   equ     0x0C            ;registro para el bucle de pausa 
                    00009 
0000                00010         org     0x00            ;primera posición de la memoria de programa
0000 2805           00011         goto    INICIO          ;salto a la etiqueta inicio
0005                00012         org     0x05            ;para pasar por encima del vector de interrupción
                    00013 
0005 1683           00014 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           00015         clrf    TRISB           ;configura PORTB todo salidas
0007 301F           00016         movlw   b'00011111'
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0008 0085           00017         movwf   TRISA           ;configura PORTA todo entradas
0009 1283           00018         bcf     STATUS,RP0      ;vuelve a banco 0 del área de datos
000A 0186           00019         clrf    PORTB           ;empieza apagando todos los Led
                    00020 
                    00021 ;programa principal
                    00022 
000B 1C05           00023 BUCLE   btfss   PORTA,0         ;cambia a 0 RA0 ?
000C 2810           00024         goto    INC             ;no ha brincado, RA0 = 0, goto INC  
000D 1C85           00025         btfss   PORTA,1         ;cambia a 0 RA1 ?
000E 2816           00026         goto    DEC             ;no ha brincado, RA0 = 0, goto DEC 
000F 280B           00027         goto    BUCLE           ;no ha habido 0 en RA0 ni RA1, goto bucle
                    00028 
0010 201C           00029 INC     call    PAUSA           ;pequeña pausa antirrebotes
0011 1C05           00030         btfss   PORTA,0         ;vuelve a 1 RA0 ?
0012 2810           00031         goto    INC             ;NO, espera a soltar pulsador, goto INC
0013 0A86           00032         incf    PORTB,F         ;SÍ, incrementa PORTB
0014 201C           00033         call    PAUSA           ;pequeña pausa antirebotes      
0015 280B           00034         goto    BUCLE
                    00035 
0016 201C           00036 DEC     call    PAUSA           ;pausa antirrebotes
0017 1C85           00037         btfss   PORTA,1         ;vuelve a 1 RA1 ?
0018 2816           00038         goto    DEC             ;NO, espera a soltar pulsador, goto DEC
0019 0386           00039         decf    PORTB,F         ;si, decrementa PORTB
001A 201C           00040         call    PAUSA   
001B 280B           00041         goto    BUCLE
                    00042 
                    00043 ;subrutina pausa de unos 767 microsegundos
                    00044 
001C 0B8C           00045 PAUSA   decfsz  CONTA,F ;decrementa conta, guarda en conta (F) y brinca si es cero
001D 281C           00046         goto    PAUSA   ;no es cero, vuelve a la etiqueta pausa
001E 0008           00047         return          ;es cero, ha brincado, vuelvde de donde se la llamó
MPASM 02.20.15 Intermediate   PRAC_11.ASM   4-10-2007  18:11:08         PAGE  2


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                    00048 
                    00049         end
MPASM 02.20.15 Intermediate   PRAC_11.ASM   4-10-2007  18:11:08         PAGE  3


SYMBOL TABLE
  LABEL                             VALUE 

BUCLE                             0000000B
C                                 00000000
CONTA                             0000000C
DC                                00000001
DEC                               00000016
EEADR                             00000009
EECON1                            00000088
EECON2                            00000089
EEDATA                            00000008
EEIE                              00000006
EEIF                              00000004
F                                 00000001
FSR                               00000004
GIE                               00000007
INC                               00000010
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
PAUSA                             0000001C
PCL                               00000002
PCLATH                            0000000A
PORTA                             00000005
PORTB                             00000006
PS0                               00000000
PS1                               00000001
PS2                               00000002
PSA                               00000003
RBIE                              00000003
RBIF                              00000000
RD                                00000000
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_11.ASM   4-10-2007  18:11:08         PAGE  4


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 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

