米思齐eeprom怎么用

米思齐eeprom怎么用,第1张

确定需要存储的数据,以及存储数据的地址和长度。

1、在首塌毁使用EEPROM之前,需要首先确定需要存储的数据类型和格式,并计算出存储数据所需的EEPROM地址范围和长度。

2、初始化EEPROM,将EEPROM初始化为特定的状态,在使用前确保它处于可写状态者备。具体的初始化方法可以参考米思齐提供的相关文档或资料。

3、写入数据,使用编程器(Programmer)或者其他支持EEPROM编程的工具,将数据写入到指定的EEPROM地址。在写入数据时,需要注意数据的正确性和完整性,并做好相应的校验工作。

4、读取数据,使用读取器(Reader)或其他支持EEPROM读取的工具,从指定的EEPROM地址读取存储的数衫埋据。

5、擦除数据,如果需要擦除已经存储的数据,可以使用擦除器(Eraser)或其他支持EEPROM擦除的工具,将指定的EEPROM区域擦除为初始状态。

下面是我之前写的stc的程序,你可以参考下,都是差不多岩春的。

#include<at89x52.h>

unsigned char data TSET1,TSET2

void eeprom_write(void) //eeprom写

unsigned char eeprom_read(void)//eeprom读

void eeprom_erase(void) //eeprom擦出

void delay(unsigned char t)//延时

void timerset(void) //延时时间的设定

sfr ISP_DATA= 0xe2 /*ISP/IAP *** 作时的数据寄存器*/

sfr ISP_ADDRH = 0xe3 /*ISP/IAP *** 作时的地址寄存器高八位*/

sfr ISP_ADDRL = 0xe4 /*ISP/IAP *** 作时的地址寄存器低八位*/

sfr ISP_CMD = 0xe5 /*ISP/IAP *** 作时的命令模式寄存器*/

sfr ISP_TRIG= 0xe6 /*ISP/IAP *** 作时的命令触发寄存器*/

sfr ISP_CONTR = 0xe7 /*ISP/IAP控制寄存器*/

/**************************************************

main主程序

***************************************************/

main()

{

unsigned char flag2=0

TSET1=10

eeprom_erase()//擦出

eeprom_write()//写

TSET2=eeprom_read()//读闭枣拦

P1_0=1//开启振动

while(1)

{

while(flag2==0)

{

timerset()

while(P3_2==1)

if(P3_2==0)

{ delay(TSET2)

P1_0=0

flag2=1

}

}

while(flag2==1)

{

timerset()

while(P3_2==0)//等待

if(P3_2==1)

{

delay(TSET2)

P1_0=1

flag2=0

}

}

}

}

/*************************************************

延时时间设定程序

*************************************************/

void timerset(void)

{

unsigned char flag3=0,a=0

if(P3_3==0)//增加

{

for(a=0a<10a++)

if(P3_3==0)

{

while(P3_3==0)

if(TSET1<20) TSET1++

flag3=1

}

}

if(P3_4==0)/轿胡/减小

{

for(a=0a<10a++)

if(P3_4==0)

{

while(P3_4==0)

if(TSET1>1) TSET1--

flag3=1

}

}

if(flag3) //设定完毕后更新EEPROM

{

eeprom_erase()//擦出

eeprom_write()//写

TSET2=eeprom_read()//读

flag3=0

}

}

/*************************************************

EEPROM写程序

*************************************************/

void eeprom_write(void)

{

unsigned char j

ISP_ADDRH=0x22//选择存放数据的高八位地址寄存器

ISP_ADDRL=0x22//选择存放数据的低八位地址寄存器

ISP_CMD=0x02//命令模式触发对flash写 ,0x01读,0x02写,0x03擦除

ISP_DATA=TSET1//存放数据

ISP_CONTR=0x9a//使能ISP、IAP,,ISPEN=1允许改变FLASH,SWBS=0程序从主程序启动,等待时间为010

ISP_TRIG=0X46//对ISP_TRIG先写0x46

ISP_TRIG=0XB9//对ISP_TRIG先写0xB9,使ISP/IAP命令生效

for(j=0j<2j++)

}

/********************************************

EEPROM读程序

********************************************/

unsigned char eeprom_read(void)

{

unsigned char j

ISP_ADDRH=0x22

ISP_ADDRL=0x22

ISP_CMD=0x01

ISP_CONTR=0x9a

ISP_TRIG=0X46

ISP_TRIG=0XB9

for(j=0j<2j++)

return(ISP_DATA)

}

/***********************************************

EEPROM擦出程序

***********************************************/

void eeprom_erase(void)

{

unsigned char j

ISP_ADDRH=0x22

ISP_ADDRL=0x22

ISP_CMD=0x03

ISP_CONTR=0x9a

ISP_TRIG=0X46

ISP_TRIG=0XB9

for(j=0j<2j++)

}

/***********************************************

延时子程序

**********************************************/

void delay(unsigned char t)

{

unsigned int i,j

while(t--)

{

for(i=0i<600i++)

for(j=0j<600j++)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12554747.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存