Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

09/06/2008 #1


Problema con la memoria eeprom de pic16f876
problema con la memoria eeprom de pic16f876

El problema es que cuando intento grabar los datos en la eeprom no lo hace con un 16f84 si puedo, pero con el 16f876 no. Les dejo la rutina que utilizo y si pueden pasarme un ejemplo lo agradecería y la rutina la simulo con el proteus.

Código:
EDITNDO	BSF 	STATUS,RP1 ;     Salto desde el programa para editar
	
	MOVF	conta,W		;dato a guardar
	MOVWF	0X19		
	MOVF	0x18,W		;Dirección de eeprom '0 a 3'
	MOVWF	EEADR		;cargo dirección
	MOVF	0X19,W		;Didito del teclado
	MOVWF	EEDATA		;Cargo digito
	BSF 	STATUS,RP0
	BcF 	EECON1,EEPGD
	BSF	EECON1,WREN
	MOVLW	0x55
	MOVWF	EECON2
	MOVLW	0xAA
	MOVWF	EECON2
	BSF	EECON1,WR
ESPERO	BTFSC	EECON1,WR	;espero que grabe
	GOTO	ESPERO		;
	BCF 	EECON1,WREN
	BCF	EECON1,EEIF
	BCF	STATUS,RP0

	BCF	STATUS,RP1
	
;ESTA PARTE ES PARA INCREMENTAR LA DIRECCIN DE LA EEPROM
	BSF	PORTC,7
	INCF	0x18,F		;incremento dirección de eeprom
	MOVF	0X018,W		;direccion de eeprom 0 a 3
	XORLW	0X04		;comparo direción con 4
	BTFSS	STATUS,2	;si es 4 Z es 1 y salt
	BSF	PORTC,3
	GOTO	DIGEE		;sino sigo editando
	BCF	TETEE,0
	GOTO	RESET		;fin de edicion de eeprom

GRACIAS!
25/07/2008 #2


Creo que te falta seleccionar bien la pagina de los registros EEADR y EEDATA se encuentran en la pagina 2 de los registros de función especial y EECON1,EECON2 en la pagina 3, en el 16F876 es diferente que el 16F84. Dale un vistazo a la hoja de datos de Microchip donde encontraras ejemplos de como leer y escribir en la EEPROM.
29/07/2008 #3

Avatar de Moyano Jonathan

Mirá si te sirve acá te dejo un ejemplo de lectura/escritura con memoria EEPROM del pic 16f876 en lenguaje c, lo probe en proteus y funciona
Archivos Adjuntos
Tipo de Archivo: c eeprom_207.c (2,2 KB (Kilobytes), 107 visitas)
29/10/2008 #4


Problema con la ram y eeprom del pic 16f876
Moyano Jonathan dijo:
Mirá si te sirve acá te dejo un ejemplo de lectura/escritura con memoria EEPROM del pic 16f876 en lenguaje c, lo probe en proteus y funciona
hola amigo, no se muy bien el funcionamiento del foro y es por eso que te pongo aqui el problema por si me puedes ayudar

Hola Amigos tengo lo que para mi es un gran problema y espero que no tanto para vosotros
siempre he programado sobre el pic 16f84 y ahora necesito el 16f876 pero por mas que miro en los libros no se descifrar cuales son las direcciones de la ram y de la eeprom donde puedo escribir
os ruego si me podeis ayudar que me mandeis estos datos

miles de gracias
29/10/2008 #5

Avatar de Meta

Moyano Jonathan dijo:
Mirá si te sirve acá te dejo un ejemplo de lectura/escritura con memoria EEPROM del pic 16f876 en lenguaje c, lo probe en proteus y funciona
Si es posible, entrégalo con el hex.
29/10/2008 #6

Avatar de asherar

Trabajando con Assembler, para no errarle el banco de la RAM donde está el registro es muy útil la macro banksel. Evita tener que andar seteando los bits RP0 y RP1.
Se debe invocar inmediatamente antes de usar un registro, no importa si es del usuario o del sistema.

Ejemplo:
Código:
banksel  trisa
movfw    trisa
banksel  porta
clrf   porta
29/10/2008 #7


Problema con la ram y eeprom del pic 16f876
Hola de Nuevo,
no se si era para mi el mensaje anterior pero sio fuese asi aparte de agradecido, dire que no lo entiendo en los manuales, tengo muchos manuales pero no lo pone bien o al menos de forma que yo lo entienda

necesito saber la direccion de todos los registros de ram ejemplo 0x0c y de eeprom ya no se ninguno

me gustaria saber esto porque me hace muchisima falta, necesito escribir en al menos en 40 registros de la eeprom y en otros tantos de la ram

gracias de nuevo
27/11/2008 #8

Avatar de asherar

Re: Problema con la ram y eeprom del pic 16f876
JJ-ROTOR dijo:
Hola de Nuevo,
no se si era para mi el mensaje anterior pero sio fuese asi aparte de agradecido, dire que no lo entiendo en los manuales, tengo muchos manuales pero no lo pone bien o al menos de forma que yo lo entienda

necesito saber la direccion de todos los registros de ram ejemplo 0x0c y de eeprom ya no se ninguno

me gustaria saber esto porque me hace muchisima falta, necesito escribir en al menos en 40 registros de la eeprom y en otros tantos de la ram

gracias de nuevo
Disculpa pero recién veo este mensaje.
Las dimensiones de memoria las encontrás en las hojas de datos que se pueden bajar del sitio de microchip.
Tanto el Pic 16F876 como su versión A (876A) tienen:
368 registros de 8 bits en memoria Flash para datos de usuario,
256 registros de 8 bits en memoria EEPROM.

La EEPROM tiene las direcciones numeradas desde la 00 hasta FF.
Para la memoria de datos tenés un mapa de direcciones en:
la página 13 de la hoja de datos del PIC16F876,
y la página 17 de la hoja de datos del PIC16F876A.
27/11/2008 #9

Avatar de Moyano Jonathan

vos el problema lo tenes que solucionar si o si en asm o en c tamabien lo podes? ya que el ejemplo que te deje graba perfectamente la eeprom interna. En asm es mas complicado el tema pero estuve viendo tu codigo y tendría que funcionar
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.