EEPROM多个数据读写(2)

2019-06-11 14:50

}

num++; a=555555+num; xs32_8();

cc(IAP_ADDRESS);

// 擦除第1个扇区(2000h~21FFh)

xcx(IAP_ADDRESS,temp1); xcx(IAP_ADDRESS+1,temp2); xcx(IAP_ADDRESS+2,temp3); xcx(IAP_ADDRESS+3,temp4); xcx(IAP_ADDRESS+4,num); xs8_32(); while(1) { }

bin_bcd(); smxs();

// 对EEPROM区2002h写入

/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ 函数:擦除某一扇区(每个扇区512字节) 入口:addr = 某一扇区首地址

┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/ void cc(uint addr) {

// 0x83(晶振<5M) 0x82(晶振<10M)

0x81(晶振<20M) 0x80(晶振<40M) IAP_CONTR = ENABLE_IAP;

// 打开 IAP 功能(IAPEN(IAP_CONTR.7)=1:

允许编程改变Flash, 设置 Flash 操作等待时间。

IAP_CMD = CMD_ERASE; 进行扇区擦除

// 用户可以对\区\

IAP_ADDRL = addr; // IAP/IAP操作时的地址寄存器低八位, IAP_ADDRH = addr>>8; // IAP/IAP操作时的地址寄存器高八位。

//EA =0;

IAP_TRIG = 0x46; // 在IAPEN(IAP_CONTR.7)=1时,对IAP_TRIG先写入46h,

IAP_TRIG = 0xB9; // 再写入B9h,IAP/IAP命令才会生效。 //_nop_();

GB_IAP(); }

/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ 函数:写一字节

入口:addr = 扇区单元地址 , dat = 待写入数据 ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/ void xcx(uint addr,uchar dat) {

IAP_CONTR = ENABLE_IAP; IAP_CMD = CMD_PROGRAM; 字节编程

IAP_ADDRL = addr; IAP_ADDRH = addr>>8;

IAP_DATA = dat; // 数据进IAP_DATA //EA = 0;

IAP_TRIG = 0x46; IAP_TRIG = 0xB9; //_nop_();

// 关闭IAP/IAP

// 用户可以对\区\进行

GB_IAP(); }

// 关闭IAP/IAP

/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ 函数:读一字节

入口:addr = 扇区单元地址 出口:dat = 读出的数据

┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/ uchar dcx(uint addr) {

uchar dat;

IAP_CONTR = ENABLE_IAP;

IAP_CMD = CMD_READ; // 用户可以对\区\进行字节读 IAP_ADDRL = addr; IAP_ADDRH = addr>>8; //EA = 0;

IAP_TRIG = 0x46; IAP_TRIG = 0xB9; //_nop_(); dat = IAP_DATA; }

/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ 函数:关闭IAP/IAP操作

┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/ void GB_IAP()

GB_IAP(); return dat;

// 取出数据

// 关闭IAP/IAP

{

IAP_CONTR = 0; // 关闭IAP功能 IAP_CMD = 0; // 待机模式,无IAP操作

IAP_TRIG = 0; // 关闭IAP功能, 清与IAP有关的特殊功能寄存器 }

IAP_ADDRH = 0x80; IAP_ADDRL =0;


EEPROM多个数据读写(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:会议室管理细则

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: