Autor Tema: INTERRUPCION RBI EN MPLAB 5.35 CON CODIGO ASM PIC16F84A  (Leído 1870 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jurgen

  • PIC10
  • *
  • Mensajes: 6
INTERRUPCION RBI EN MPLAB 5.35 CON CODIGO ASM PIC16F84A
« en: 17 de Abril de 2020, 13:50:09 »
Buenas Tardes:
Me gustaría saber si alguno tiene problemas en la simulación de interrupciones RBI en MPLAB 5.35 con lenguaje asm.
Siguiendo el libro de "MICROCONTROLADOR PIC16F84. Desarrollo de proyectos" y modificando en una línea un ejercicio
del dicho libro. La Línea es la siguiente:
Línea 38, lo pongo como comentario por realizar pruebas y no realizar la inicialización a cero del puerto del Zumbador.
Código: ASM
  1. ;bcf            Zumbador
Pues sin provocar ninguna interrupción en el Puerto B después de habilitadar las interrupciones GIE y RBIF, al simularlo
paso a paso en MPLAB, esta salta a la subrutina de interrupción nada más llegar al SLEEP. De momento no entiendo la causa
por la cual se provoca una interrupción. Aquí abajo dejo el código por si alguno me lo podría explicar.

Un saludo y gracias
Código: ASM
  1. ;************************************ Int_RBI_03.asm ************************************
  2. ;
  3. ;       ===================================================================
  4. ;         Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
  5. ;         E. Palacios, F. Remiro y L. López.           www.pic16f84a.com
  6. ;         Editorial Ra-Ma.  www.ra-ma.es
  7. ;       ===================================================================
  8. ;
  9. ; Por el zumbador se oirá un pitido largo cuando pulse RB7 y uno corto cuando pulse RB6.
  10. ;
  11. ; ZONA DE DATOS **********************************************************************
  12.  
  13.         LIST            P=16F84A
  14.         INCLUDE         <P16F84A.INC>
  15.         __CONFIG        _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
  16.  
  17.         CBLOCK   0x0C
  18.         ENDC   
  19.  
  20. #DEFINE   EntradaRB7    PORTB,7
  21. #DEFINE   EntradaRB6    PORTB,6
  22. #DEFINE   Zumbador      PORTB,2
  23. #DEFINE   Led           PORTB,1
  24.  
  25. ; ZONA DE CÓDIGOS ********************************************************************
  26.  
  27.         ORG     0
  28.         goto    Inicio
  29.         ORG     4
  30.         goto    ServicioInterrupcion
  31. Inicio
  32.         bsf             STATUS,RP0
  33.         bsf             EntradaRB7
  34.         bsf             EntradaRB6
  35.         bcf             Zumbador
  36.         bcf             OPTION_REG,NOT_RBPU
  37.         bcf             STATUS,RP0
  38.         ;bcf            Zumbador                                ; En principio, zumbador apagado.
  39.         movlw   b'10001000'
  40.         movwf   INTCON
  41. Principal
  42.         sleep
  43.         goto    Principal
  44.  
  45. ; Subrutina "ServicioInterrupcion" ------------------------------------------------------
  46. ;
  47. ServicioInterrupcion
  48.         call    Retardo_20ms
  49.         btfss   EntradaRB7                              ; ¿Está presionado el pulsador de RB7?
  50.         call    PitidoLargo
  51.         btfss   EntradaRB6                              ; ¿Está presionado el pulsador de RB6?
  52.         call    PitidoCorto
  53. EsperaDejePulsar                                        ; Espera a que desaparezcan las señales de entrada.
  54.         btfss   EntradaRB7
  55.         goto    EsperaDejePulsar
  56.         btfss   EntradaRB6
  57.         goto    EsperaDejePulsar
  58.         bcf             INTCON,RBIF
  59.         retfie
  60.  
  61. ; Subrutinas "PitidoCorto" y "PitidoLargo" ----------------------------------------------------
  62. ;
  63. PitidoLargo
  64.         bsf             Zumbador
  65.         call    Retardo_200ms
  66. PitidoCorto
  67.         bsf             Zumbador
  68.         call    Retardo_20ms
  69.         bcf             Zumbador
  70.         return 
  71.  
  72.         INCLUDE   <RETARDOS.INC>
  73.         END
  74.        
  75. ;       ===================================================================
  76. ;         Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
  77. ;         E. Palacios, F. Remiro y L. López..          www.pic16f84a.com
  78. ;         Editorial Ra-Ma.  www.ra-ma.es
  79. ;       ===================================================================