TODOPIC
Otros Microcontroladores / Dispositivos programables => Microcontroladores 8 bits => Mensaje iniciado por: ferraza en 17 de Agosto de 2005, 07:37:00
-
NECESITO POR FAVOR URGENTE INFORMACION SOBRE COMO MANEJAR MEMORIA SERIAL EXTERNA CON EL 8051 O 8052, BAJE INFO DE ATMEL PERO NO PUEDO HACER GRABAR Y LEER LA MEMORIA, ES COMO QUE LA MEMORIA NO ESTA EN LA PLACA.
-
has probado a habilitar la eprom?
Te dejo este ejemplo de una 93C45 por si te vale, esta en C un saludo.
void EE_CLK (void)
{
EE_SK = 1;
wait (5);
EE_SK = 0;
}
void eeprom_write(unsigned int _data,unsigned int _address)
{
unsigned int i;
EE_CS=1;
EE_DI =1; // 1
EE_CLK();
EE_DI =0; // 0
EE_CLK();
EE_DI =1; // 1
EE_CLK();
_address<<=1;
for(i=0;i<7;i++){
if((_address&128)==128)
EE_DI=1;
else
EE_DI=0;
EE_CLK();
_address<<=1;
}
for(i=0;i<8;i++){
if((_data&128)==128)
EE_DI=1;
else
EE_DI=0;
EE_CLK();
_data<<=1;
}
EE_CS=0;
EE_CS=1;
while(!EE_DO);
EE_CS=0;
}
unsigned char eeprom_read(unsigned char _address){
unsigned int i;
unsigned char temp1;
temp1=0;
EE_CS=1;
EE_DI =1; // 1
EE_CLK();
EE_DI =1; // 1
EE_CLK();
EE_DI =0; // 0
EE_CLK();
_address<<=1;
for(i=0;i<7;i++){
if((_address&128)==128)
EE_DI=1;
else
EE_DI=0;
EE_CLK();
_address<<=1;
}
EE_CLK();
for(i=0;i<8;i++){
temp1<<=1;
if(EE_DO) temp1++;
EE_CLK();
}
EE_CS=0;
return temp1;
}
void eeprom_enable(void){
unsigned int i;
EE_CS=1;
EE_DI =1; // 1
EE_CLK();
EE_DI =0; // 0
EE_CLK();
EE_DI =0; // 0
EE_CLK();
EE_DI=1;
for(i=0;i<7;i++){
EE_CLK();
}
EE_CS=0;
}