当前位置:首页 > 技术学院 > 热搜器件
[导读]STC89C52单片机内部带有4K的EEPROM,严格来说,应该是4K的FLASH,它分为8个扇区,每个扇区有512个字节。读写数据只能按字节操作,擦除数据只能按扇区操作。 由于它掉电不易失的特性,可以用来存储程序运行过程中产生

STC89C52单片机内部带有4K的EEPROM,严格来说,应该是4K的FLASH,它分为8个扇区,每个扇区有512个字节。读写数据只能按字节操作,擦除数据只能按扇区操作。 由于它掉电不易失的特性,可以用来存储程序运行过程中产生的用户数据,掉电可保存。

[cpp] view plaincopy/*

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

Fuction:STC89C52单片机内部4K的EEPROM操作驱动

Software Designer:Jason

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

*/

#include

#include

#define uchar unsigned char

#define uint unsigned int

/******************定义命令字节******************/

#define Read_COM 0x01 //字节读数据命令

#define Prog_COM 0x02 //字节编程数据命令

#define Erase_COM 0x03 //扇区擦除数据命令

#define En_Wait_TIME 0x81 //设置等待时间 ,并使能ISP/IAP

#define Start_ADDRH 0x20 //扇区地址高位

#define Start_ADDRL 0x00 //扇区地址低位

/****************特殊功能寄存器声明****************/

sfr ISP_DATA = 0xe2;

sfr ISP_ADDRH = 0xe3;

sfr ISP_ADDRL = 0xe4;

sfr ISP_CMD = 0xe5;

sfr ISP_TRIG = 0xe6;

sfr ISP_CONTR = 0xe7;

/*****************关闭ISP&IAP功能*****************/

void ISP_IAP_disable(void)

{

ISP_CONTR = 0x00;

ISP_CMD = 0x00;

ISP_TRIG = 0x00;

}

/*********************字节读**********************/

uchar Byte_read(uint byte_addr)

{

EA = 0; //关中断

ISP_CONTR = En_Wait_TIME; //开启ISP&IAP,并送等待时间

ISP_CMD = Read_COM; //送字节读命令字

ISP_ADDRH = (uchar)(byte_addr >> 8); //送地址高字节

ISP_ADDRL = (uchar)(byte_addr & 0x00ff); //送地址低字节

ISP_TRIG = 0x46; //送触发命令字0x46

ISP_TRIG = 0xB9; //送触发命令字0xB9

_nop_();

ISP_IAP_disable(); //关闭ISP&IAP功能

EA = 1; //开中断

return (ISP_DATA);

}

/*********************字节编程*********************/

void Byte_program(uint byte_addr,uchar isp_iap_data)

{

EA = 0; //关中断

ISP_CONTR = En_Wait_TIME; //开启ISP&IAP,并送等待时间

ISP_CMD = Prog_COM; //送字节编程命令字

ISP_ADDRH = (uchar)(byte_addr >> 8); //送地址高字节

ISP_ADDRL = (uchar)(byte_addr & 0x00ff); //送地址低字节

ISP_DATA = isp_iap_data; //送数据进ISP_DATA

ISP_TRIG = 0x46; //送触发命令字0x46

ISP_TRIG = 0xB9; //送触发命令字0xB9

_nop_();

ISP_IAP_disable(); //关闭ISP&IAP功能

EA = 1; //开中断

}

/*********************扇区擦除*********************/

void Sector_erase(uint sector_addr)

{

EA = 0; //关中断

ISP_CONTR = En_Wait_TIME; //开启ISP&IAP;并送等待时间

ISP_CMD = Erase_COM; //送扇区擦除命令字

ISP_ADDRH = (uchar)(sector_addr >> 8); //送地址高字节

ISP_ADDRL = (uchar)(sector_addr & 0X00FF); //送地址低字节

ISP_TRIG = 0X46; //送触发命令字0x46

ISP_TRIG = 0XB9; //送触发命令字0xB9

_nop_();

ISP_IAP_disable(); //关闭ISP&IAP功能

EA = 1;

}

void main()

{

Sector_erase(0x2000); //扇区擦除

Byte_program(0x2000,0x88); //写EEPROM

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

P0=Byte_read(0x2000); //读EEPROM

while(1);

}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

伟创力凭借一流的道德、合规和治理实践恪守对商业诚信的承诺而获此嘉奖 上海2023年3月14日 /美通社/ -- 近日,伟创力(纳斯达克股票代码:FLEX)被 Ethisphere 认可为 2023 年工业制造领域全球最...

关键字: ISP 伟创力 FLEX 供应链

上海2023年2月9日 /美通社/ -- 随着汽车智能化加速,车载摄像头开始广泛运用于DMS/OMS等舱内部位,自动驾驶行业进入了高质量发展期,这也带动了汽车CMOS图像传感器市场规模的大幅提升。据Yole预测,2027...

关键字: ISP SENSOR 图像传感器 DM

关于自动驾驶,阿里巴巴这些年都做了什么?昨天,阿里达摩院宣布推出自研ISP(Image Signal Processor)图像处理器,号称在夜间等具有挑战性的环境下图像识别精准率比业界主流产品有10%以上的提升。据报道,...

关键字: 自动驾驶 阿里巴巴 ISP

微软(Microsoft)因该公司的云服务面临欧洲一个行业团体的一项反垄断诉讼。该公司近年来已数次遭到反竞争行为指控。欧洲云基础设施服务提供商(Cispe)表示,周二向欧盟委员会(European Commission)...

关键字: 微软 云服务 CIS ISP

工业级研发设计与生产制造 发挥绝佳图像处理效能 深圳2022年10月21日 /美通社/ -- 宜鼎国际持续布局全球AI市场,积极完备AI产业链各项软件与...

关键字: 机器视觉 智能相机 AI ISP

我们知道 Flash 读时序里有五大子序列 CMD + ADDR + MODE + DUMMY + READ,前面的文章中痞子衡讲过《串行NOR Flash的Continuous read模式》,Continuous r...

关键字: CMD ADDR Flash

泰国曼谷2022年9月20日 /美通社/ -- 在华为全联接大会2022期间,华为光产品线副总裁金志国在Keynote发表了题为"F5G演进,重塑行业生产力"的主题演讲,进一步阐述F5G向三大全新应用...

关键字: 华为 5G ISP 物联网

泰国曼谷2022年9月19日 /美通社/ -- 在曼谷举办的亚太ISP峰会期间,华为围绕智能世界2030的愿景和需求,提出"深耕亚太市场,构建全光化、智能化互联网"的战略,助力ISP打造数字世界的底座...

关键字: ISP 互联网 华为 数字经济

上海2022年8月17日 /美通社/ -- 2022年8月16日,聚焦于基因和细胞治疗的上海邦耀生物科技有限公司(以下简称"邦耀生物")宣布,其...

关键字: CD 移植 BSP ISP

2022 年 6 月 30 日,中国—— 依托在串行EEPROM技术领域的积累和沉淀,意法半导体率先业界推出了串行页EEPROM (Serial Page EEPROM)。这款全新类别的EEPROM 是一种SPI串行接口...

关键字: 意法半导体 EEPROM 非易失性存储器
关闭
关闭