Autor Tema: Meter datos en la EEPROM interna  (Leído 2313 veces)

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

Meta

  • Visitante
Meter datos en la EEPROM interna
« en: 21 de Enero de 2008, 09:21:16 »
En un ejemplo del libro.

Quiero poner un código para guardar una información en la EEPROM del 16F84A pero me da error. ¿Dónde hay que colocar este pequeño código.


Me da este tipo de error.

Citar
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Archivos de programa\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F84A "Tablas_03.asm" /l"Tablas_03.lst" /e"Tablas_03.err"
Warning[205] C:\PIC16F84\TABLAS_03.ASM 39 : Found directive in column 1. (ORG)
Message[302] C:\PIC16F84\TABLAS_03.ASM 47 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] C:\PIC16F84\TABLAS_03.ASM 49 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Error[126]   C:\PIC16F84\TABLAS_03.ASM 54 : Argument out of range (2139 not between 0000 and 03FF)
Error[126]   C:\PIC16F84\TABLAS_03.ASM 56 : Argument out of range (2134 not between 0000 and 03FF)
Warning[220] C:\PIC16F84\TABLAS_03.ASM 68 : Address exceeds maximum range for this processor.
Warning[220] C:\PIC16F84\TABLAS_03.ASM 69 : Address exceeds maximum range for this processor.
Halting build on first failure as requested.
BUILD FAILED: Mon Jan 21 11:22:01 2008

Código: ASM
  1. ;#####################################################################################
  2.  
  3. ORG     0x2100                          ; Corresponde a la dirección 0 de la zona EEPROM
  4.                                                         ; de datos.
  5.         DE      "Programa Tabla_03.asm. Version 2.5. 21-01-2008", 0x00
  6.  
  7. ;#####################################################################################

Código: ASM
  1. ;************************************* Tablas_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. ; Implementar una tabla de la verdad mediante el manejo de tablas grabadas en ROM. Por
  10. ; ejemplo, la tabla será de 3 entradas y 6 salidas:
  11. ;
  12. ;               C  B  A  | S5  S4  S3  S2  S1  S0
  13. ;               -----------|---------------------------
  14. ;               0   0   0   |   0    0    1    0    1    0      ; (Configuración 0).
  15. ;               0   0   1   |   0    0    1    0    0    1      ; (Configuración 1).
  16. ;               0   1   0   |   1    0    0    0    1    1      ; (Configuración 2).
  17. ;               0   1   1   |   0    0    1    1    1    1      ; (Configuración 3).
  18. ;               1   0   0   |   1    0    0    0    0    0      ; (Configuración 4).
  19. ;               1   0   1   |   0    0    0    1    1    1      ; (Configuración 5).
  20. ;               1   1   0   |   0    1    0    1    1    1      ; (Configuración 6).
  21. ;               1   1   1   |   1    1    1    1    1    1      ; (Configuración 7).
  22. ;
  23. ; Las entradas C, B, A se conectarán a las líneas del puerto A: RA2 (C), RA1 (B) y RA0 (A).
  24. ; Las salidas se obtendrán del puerto B: RB5 (S5), RB4 (S4), RB3 (S3), RB2 (S2), RB1 (S1)
  25. ; y RB0 (S0).
  26. ;
  27. ; ZONA DE DATOS **********************************************************************
  28.  
  29.         LIST            P=16F84A
  30.         INCLUDE         <P16F84A.INC>
  31.         __CONFIG        _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
  32.  
  33. ; ZONA DE CÓDIGOS ********************************************************************
  34.  
  35.         ORG     0                                               ; El programa comienza en la dirección 0.
  36. Inicio
  37.         bsf             STATUS,RP0                              ; Acceso al Banco 1.
  38.         clrf    TRISB                                   ; Las líneas del Puerto B se configuran como salida.
  39.         movlw   b'00011111'                             ; Las 5 líneas del Puerto A se configuran como entrada.
  40.         movwf   TRISA
  41.         bcf             STATUS,RP0                              ; Acceso al Banco 0.
  42. Principal
  43.         movf    PORTA,W                                 ; Lee el valor de las variables de entrada.
  44.         andlw   b'00000111'                             ; Se queda con los tres bits bajos de entrada.
  45.         call    TablaVerdad                     ; Obtiene la configuración de salida.
  46.         movwf   PORTB                                   ; Se visualiza por el puerto de salida.
  47.         goto    Principal
  48.  
  49. ; Subrutina "TablaVerdad" ---------------------------------------------------------------
  50. ;
  51. TablaVerdad
  52.         addwf   PCL,F
  53.         retlw   b'00001010'                             ; (Configuración 0).
  54.         retlw   b'00001001'                             ; (Configuración 1).
  55.         retlw   b'00100011'                             ; (Configuración 2).
  56.         retlw   b'00001111'                             ; (Configuración 3).
  57.         retlw   b'00100000'                             ; (Configuración 4).
  58.         retlw   b'00000111'                             ; (Configuración 5).
  59.         retlw   b'00010111'                             ; (Configuración 6).
  60.         retlw   b'00111111'                             ; (Configuración 7).
  61.  
  62.         END
  63.        
  64. ;       ===================================================================
  65. ;         Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
  66. ;         E. Palacios, F. Remiro y L. López.           www.pic16f84a.com
  67. ;         Editorial Ra-Ma.  www.ra-ma.es
  68. ;       ===================================================================

Meta

  • Visitante
Re: Meter datos en la EEPROM interna
« Respuesta #1 en: 21 de Enero de 2008, 09:25:51 »
Ya lo averigüé.

Código: ASM
  1. ;************************************* Tablas_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. ; Implementar una tabla de la verdad mediante el manejo de tablas grabadas en ROM. Por
  10. ; ejemplo, la tabla será de 3 entradas y 6 salidas:
  11. ;
  12. ;               C  B  A  | S5  S4  S3  S2  S1  S0
  13. ;               -----------|---------------------------
  14. ;               0   0   0   |   0    0    1    0    1    0      ; (Configuración 0).
  15. ;               0   0   1   |   0    0    1    0    0    1      ; (Configuración 1).
  16. ;               0   1   0   |   1    0    0    0    1    1      ; (Configuración 2).
  17. ;               0   1   1   |   0    0    1    1    1    1      ; (Configuración 3).
  18. ;               1   0   0   |   1    0    0    0    0    0      ; (Configuración 4).
  19. ;               1   0   1   |   0    0    0    1    1    1      ; (Configuración 5).
  20. ;               1   1   0   |   0    1    0    1    1    1      ; (Configuración 6).
  21. ;               1   1   1   |   1    1    1    1    1    1      ; (Configuración 7).
  22. ;
  23. ; Las entradas C, B, A se conectarán a las líneas del puerto A: RA2 (C), RA1 (B) y RA0 (A).
  24. ; Las salidas se obtendrán del puerto B: RB5 (S5), RB4 (S4), RB3 (S3), RB2 (S2), RB1 (S1)
  25. ; y RB0 (S0).
  26. ;
  27. ; ZONA DE DATOS **********************************************************************
  28.  
  29.         LIST            P=16F84A
  30.         INCLUDE         <P16F84A.INC>
  31.         __CONFIG        _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
  32.  
  33. ;#####################################################################################
  34.  
  35. ORG     0x2100                          ; Corresponde a la dirección 0 de la zona EEPROM
  36.                                                         ; de datos.
  37.         DE      "Programa Tabla_03.asm. Version 2.5. 21-01-2008", 0x00
  38.  
  39. ;#####################################################################################
  40.  
  41. ; ZONA DE CÓDIGOS ********************************************************************
  42.  
  43.         ORG     0                                               ; El programa comienza en la dirección 0.
  44.  
  45.  
  46.  
  47. Inicio
  48.         bsf             STATUS,RP0                              ; Acceso al Banco 1.
  49.         clrf    TRISB                                   ; Las líneas del Puerto B se configuran como salida.
  50.         movlw   b'00011111'                             ; Las 5 líneas del Puerto A se configuran como entrada.
  51.         movwf   TRISA
  52.         bcf             STATUS,RP0                              ; Acceso al Banco 0.
  53. Principal
  54.         movf    PORTA,W                                 ; Lee el valor de las variables de entrada.
  55.         andlw   b'00000111'                             ; Se queda con los tres bits bajos de entrada.
  56.         call    TablaVerdad                     ; Obtiene la configuración de salida.
  57.         movwf   PORTB                                   ; Se visualiza por el puerto de salida.
  58.         goto    Principal
  59.  
  60. ; Subrutina "TablaVerdad" ---------------------------------------------------------------
  61. ;
  62. TablaVerdad
  63.         addwf   PCL,F
  64.         retlw   b'00001010'                             ; (Configuración 0).
  65.         retlw   b'00001001'                             ; (Configuración 1).
  66.         retlw   b'00100011'                             ; (Configuración 2).
  67.         retlw   b'00001111'                             ; (Configuración 3).
  68.         retlw   b'00100000'                             ; (Configuración 4).
  69.         retlw   b'00000111'                             ; (Configuración 5).
  70.         retlw   b'00010111'                             ; (Configuración 6).
  71.         retlw   b'00111111'                             ; (Configuración 7).
  72.  
  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. ;       ===================================================================

Desconectado fartet

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 145
Re: Meter datos en la EEPROM interna
« Respuesta #2 en: 21 de Enero de 2008, 09:46:51 »
Efectivamente, paginas 219 y 221.

saludos