Programació en pic-as del PIC 16F690

Referència Trucs Perifèrics   Recursos CITCEA
Tutorial Exemples Projectes   Inici

Lectura de la memòria de programa

En el nostre programa, a més de la memòria de dades i la memòria EEPROM, també podem fer servir la memòria de programa per guardar dades. A la memòria de programa no hi podrem escriure des del microcontrolador, per tant només és útil per aquells valors constants que sempre són els mateixos. La memòria de programa conserva el seu contingut quan es perd l'alimentació elèctrica.

La forma de lectura de la memòria de programa és mitjançant un adreçament indirecte gestionat per uns bits de control.

Per llegir el contingut d'una adreça de la memòria de programa cal posar els 8 bits inferiors de l'adreça al registre EEADR i els 5 bits superiors al registre EEADR. Després cal activar el bit EEPGD per indicar que treballem amb la memòria de programa i activar el bit RD per demanar que es faci la lectura. Un cop activat RD cal esperar dos cicles de programa i després el contingut demanat estarà a EEDAT (els 8 bits inferiors) i a EEDATH (els 6 superiors), d'on el podrem copiar. El programa següent llegeix l'adreça de la memòria de programa etiquetada com Adre i deixa la lectura en dues variables. S'ha suposat que en començar està actiu el banc 0 que és el que queda actiu en acabar.

  ...
  bsf RP1  ; Tria el banc 2
  movlw HIGH Adre  ; Llegim l'adreça de la variable
  movwf EEADRH  ; Adreça EEPROM
  movlw LOW Adre  ; Llegim l'adreça de la variable
  movwf EEADR  ; Adreça EEPROM
  bsf RP0  ; Tria el banc 3
  bsf EEPGD  ; Accés a memòria de programa
  bsf RD  ; Lectura
  nop
  nop  ; espera dos cicles
  bcf RP0  ; Tria el banc 2
  movf EEDAT,w  ; Llegim
  bcf RP1  ; Tria el banc 0
  movwf ValorBaix
  bsf RP1  ; Tria el banc 2
  movf EEDATH,w  ; Llegim
  bcf RP1  ; Tria el banc 0
  movwf ValorAlt
  ...

 

 

Llicència de Creative Commons
Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.