Programació en mpasm 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		STATUS,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		STATUS,RP0	; Tria el banc 3
	bsf		EECON1,EEPGD	; Accés a memòria de programa
	bsf		EECON1,RD	; Lectura
	nop
	nop				; espera dos cicles
	bcf		STATUS,RP0	; Tria el banc 2
	movf		EEDAT,w 	; Llegim
	bcf		STATUS,RP1	; Tria el banc 0
	movwf		ValorBaix
	bsf		STATUS,RP1	; Tria el banc 2
	movf		EEDATH,w 	; Llegim
	bcf		STATUS,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.