19
39
375
中级会员
使用道具 举报 送花
86
5979
1万
超级版主
#include "reg51.h" #include "intrins.h" sfr P0M1 = 0x93; sfr P0M0 = 0x94; sfr P1M1 = 0x91; sfr P1M0 = 0x92; sfr P2M1 = 0x95; sfr P2M0 = 0x96; sfr P3M1 = 0xb1; sfr P3M0 = 0xb2; sfr P4M1 = 0xb3; sfr P4M0 = 0xb4; sfr P5M1 = 0xc9; sfr P5M0 = 0xca; sfr IAP_DATA = 0xC2; sfr IAP_ADDRH = 0xC3; sfr IAP_ADDRL = 0xC4; sfr IAP_CMD = 0xC5; sfr IAP_TRIG = 0xC6; sfr IAP_CONTR = 0xC7; sfr IAP_TPS = 0xF5; void IapIdle() { IAP_CONTR = 0; //关闭IAP功能 IAP_CMD = 0; //清除命令寄存器 IAP_TRIG = 0; //清除触发寄存器 IAP_ADDRH = 0x80; //将地址设置到非IAP区域 IAP_ADDRL = 0; } char IapRead(int addr) { char dat; IAP_CONTR = 0x80; //使能IAP IAP_TPS = 12; //设置等待参数12MHz IAP_CMD = 1; //设置IAP读命令 IAP_ADDRL = addr; //设置IAP低地址 IAP_ADDRH = addr >> 8; //设置IAP高地址 IAP_TRIG = 0x5a; //写触发命令(0x5a) IAP_TRIG = 0xa5; //写触发命令(0xa5) _nop_(); dat = IAP_DATA; //读IAP数据 IapIdle(); //关闭IAP功能 return dat; } void IapProgram(int addr, char dat) { IAP_CONTR = 0x80; //使能IAP IAP_TPS = 12; //设置等待参数12MHz IAP_CMD = 2; //设置IAP写命令 IAP_ADDRL = addr; //设置IAP低地址 IAP_ADDRH = addr >> 8; //设置IAP高地址 IAP_DATA = dat; //写IAP数据 IAP_TRIG = 0x5a; //写触发命令(0x5a) IAP_TRIG = 0xa5; //写触发命令(0xa5) _nop_(); IapIdle(); //关闭IAP功能 } void IapErase(int addr) { IAP_CONTR = 0x80; //使能IAP IAP_TPS = 12; //设置等待参数12MHz IAP_CMD = 3; //设置IAP擦除命令 IAP_ADDRL = addr; //设置IAP低地址 IAP_ADDRH = addr >> 8; //设置IAP高地址 IAP_TRIG = 0x5a; //写触发命令(0x5a) IAP_TRIG = 0xa5; //写触发命令(0xa5) _nop_(); // IapIdle(); //关闭IAP功能 } void main() { P0M0 = 0x00; P0M1 = 0x00; P1M0 = 0x00; P1M1 = 0x00; P2M0 = 0x00; P2M1 = 0x00; P3M0 = 0x00; P3M1 = 0x00; P4M0 = 0x00; P4M1 = 0x00; P5M0 = 0x00; P5M1 = 0x00; IapErase(0x0400); P0 = IapRead(0x0400); //P0=0xff IapProgram(0x0400, 0x12); P1 = IapRead(0x0400); //P1=0x12 while (1); } 复制代码
Debu*** 发表于 2024-11-11 10:51
236
340
1698
金牌会员
151
1841
2166
QQ6243*** 发表于 2024-11-11 13:16 这是EEPROM一个扇区的终极用法,一共50行代码简洁高效
vb2*** 发表于 2024-11-12 13:27 不用擦除吗? 可以单独按字节循环写吗
15
628
860
高级会员
QQ624353765 发表于 2024-11-12 14:15 擦了才能写,慢慢参悟,里面藏着很多编程的先进思想
rpbdibvj 发表于 2024-11-13 18:15 不错 学习了
0
132
136
注册会员
本版积分规则 发表回复 回帖后跳转到最后一页
|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )
GMT+8, 2025-8-24 04:13 , Processed in 0.133476 second(s), 102 queries .
Powered by Discuz! X3.5
© 2001-2025 Discuz! Team.