请问谁知道EEPROM能运用在那些领域和具体产品上?

请问谁知道EEPROM能运用在那些领域和具体产品上?,第1张

分类: 教育/科学 >>科学技术 >>工程技术科学

问题描述:

请问谁知道EEPROM能运用在那些领域和具体产品上?

谢谢!

解析:

EEPROM(Electrically Erasable Programmable Read一Only Memory)即电子擦除式只读存储器,它是一种非挥发性存储器,与擦除式只读存储器(EPROM)类似,电源消失后,储存的数据依然存在,要消除储存在其中的内容,不是用紫外线照射方式,而是以电子信号直接消除即可。

正是由于EEPROM具有以上特点,该器件可广泛应用于对数据存储安全性及可靠性要求高的应用场合,如门禁考勤系统,测量和医疗仪表,非接触式智能卡,税控收款机,预付费电度表或复费率电度表、水表、煤气表以及家电遥控器等应用场合。该类型存储器在可靠数据存储领域会获得越来越广泛的应用。

但是,EEPROM有固定的使用寿命,这是指某一位由1写为O或由O写为1的次数。不同厂家的产品,相同厂家不同型号、系列的产品,它们的寿命也不尽相同,100万次为常见主流产品。

/*

***************************************************************************************************

函数名:EE_readbyte

功 能:片内EEPROM 读1字节

说 明:Read_AddrH:待写入的高地址;Read_Addr:待写入的低地址

函数执行完返回一个存放在该地址处的值

***************************************************************************************************

*/

uchar EE_ReadByte(uchar Read_AddrH,uchar Read_Addr)

{

EEADRH = Read_AddrH //写入高地址

EEADR = Read_Addr //写入低地址

EECON1bits.EEPGD = 0//访问EEPROM存储区

EECON1bits.CFGS = 0 //访问EEPROM或程序区

EECON1bits.RD = 1

return EEDATA

}

/*

***************************************************************************************************

函数名:EE_writebyte

功 能:片内EEPROM 写1字节

说 明:Write_AddrH:待写入的高位地址;Write_Addr:待写入的低位地址;Write_Byte:待写入的字节

***************************************************************************************************

*/

void EE_WriteByte(uchar Write_AddrH,uchar Write_Addr,uchar Write_Byte)

{

ClrWdt()//喂狗

while(EECON1bits.WR)

EEADRH = Write_AddrH//写入高地址

EEADR = Write_Addr //写入低地址

EEDATA = Write_Byte //写入数据

EECON1bits.EEPGD = 0//访问EEPROM存储区

EECON1bits.CFGS = 0 //访问EEPROM或程序区

EECON1bits.WREN = 1 //充许擦写

INTCONbits.GIE = 0 //禁止所有中断

EECON2 = 0x55 //写入密钥

EECON2 = 0xaa

EECON1bits.WR = 1 //开始写 *** 作

Nop()

Nop()

INTCONbits.GIE = 1 //开中断

EECON1bits.WREN = 0 //禁止擦写

while(EECON1bits.WR) //等待写完成

{

}

}

/*

***************************************************************************************************

函数名:EE_WriteArray

功 能:写入数组数据到EEPROM

说 明:AddrH:EEPROM起始地址高字节,Addr:EEPROM起始地址低字节

WriteByte[]:待存储的数据存放数组

LenArray:待存储的数组长度

举例:存放地址0x0020---0x0029;存放数据array[10]

***************************************************************************************************

*/

void EE_WriteArray(uchar AddrH,uchar Addr,uchar WriteArray[],uchar LenArray)

{

uchar tempH,tempL,tempByte

uint i=0

tempH = AddrH

tempL = Addr

for(i=0i<LenArrayi++)

{

tempByte = WriteArray[i]

EE_WriteByte(tempH,tempL,tempByte)

tempL++

}

}

/*

***************************************************************************************************

函数名:EE_ReadArray

功 能:写入数组数据到EEPROM

说 明:AddrH:EEPROM起始地址高字节,Addr:EEPROM起始地址低字节

ReadByte[]:待存储的数据存放数组

LenArray:待存储的数组长度

举例:存放地址0x0020---0x0029;存放数据array[10]

***************************************************************************************************

*/

void EE_ReadArray(uchar AddrH,uchar Addr,uchar ReadArray[],uchar LenArray)

{

uchar tempH,tempL,tempByte

uint i

tempH=AddrH

tempL=Addr

for(i=0i<LenArrayi++)

{

tempByte=EE_ReadByte(tempH,tempL)

ReadArray[i]=tempByte

tempL++

}

}

eeprom里面存储的是掉电不丢的,这个你可以大大放心,我之前做了一个,你参考参考吧eeprom_write(0x0002,0x02)是向地址写

table[i]=eeprom_read(0x0000+i)是将读取的数据放到数组中,

显示就不说了吧,数码管显示的如果你要也可以给你,但是只能传一个文件


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

原文地址:https://54852.com/yw/11907695.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存