PIC1947单片机EEPROM读写子程序处理
2017-10-16 14:26
239 查看
PIC系统单片机的EEPROM的整个处理机制是相类似的,主要是由写保存处理操作和读数据处理操作两个操作组成。
读操作处理步骤:
1.等待上次读操作完成
2.获取要读取的数据的单元地址给EEADRL寄存器
3.将EEPGD位和CFGS位清零
4.启动读操作控制位RD
5.等待本次读操作完成
6.将该单元地址中对应的数据返回
为了防止芯片在一瞬间无法获取到数据,需要给芯片一定的时间来稳定获取数据。因此需要第1步和第5步的等待处理步骤。
1.等待上次写操作完成
2.获取要写入的数据的单元地址给EEADRL寄存器
3.将要写入的数据内容赋给EEDATL寄存器
4.将EEPGD位清零
5.使能写操作WREN位
6.依次将数据0x55和0xAA写入到EECON2寄存器中
7.启动写操作控制位WR
8.等待本次写操作完成
9.将WREN位清零在这需要注意的是WREN位是在使用写操作之前必须要置1的,完成写操作后需要软件将其清零。
最主要的是需要将EEIF中断标志位在完成写操作后清零。
读操作处理步骤:
1.等待上次读操作完成
2.获取要读取的数据的单元地址给EEADRL寄存器
3.将EEPGD位和CFGS位清零
4.启动读操作控制位RD
5.等待本次读操作完成
6.将该单元地址中对应的数据返回
为了防止芯片在一瞬间无法获取到数据,需要给芯片一定的时间来稳定获取数据。因此需要第1步和第5步的等待处理步骤。
unsigned char EEPROM_ReadByte(unsigned char address) { do{ ; }while(RD); EEADRL = address; EEPGD = 0; CFGS = 0; RD = 1; while(RD); return EEDATL; }写操作处理步骤:
1.等待上次写操作完成
2.获取要写入的数据的单元地址给EEADRL寄存器
3.将要写入的数据内容赋给EEDATL寄存器
4.将EEPGD位清零
5.使能写操作WREN位
6.依次将数据0x55和0xAA写入到EECON2寄存器中
7.启动写操作控制位WR
8.等待本次写操作完成
9.将WREN位清零在这需要注意的是WREN位是在使用写操作之前必须要置1的,完成写操作后需要软件将其清零。
最主要的是需要将EEIF中断标志位在完成写操作后清零。
void EEPROM_WriteByte(unsigned char address,unsigned char data) { do { ; }while(WR); EEADRL = address; EEDATL = data; WREN = 1; EECON2 = 0x55; EECON2 = 0xAA; WR = 1; while(WR); if(EEIF == 1) { EEIF = 0; } WREN = 0; }
相关文章推荐
- STC单片机EEPROM读写
- STM32单片机内部EEPROM的读写
- STC单片机EEPROM读写
- STC单片机掉电断电失电瞬间EEPROM数据保存处理办法(转)
- STM32L系列单片机内部EEPROM的读写
- PIC16F877A单片机的EEPROM读写
- 单片机EEPROM读写问题
- 飞思卡尔单片机DZ60---EEPROM读写
- stc15单片机内部EEPROM读写接口函数整理
- STC单片机片内EEPROM的读写
- stm8单片机内部存储EEPROM字节读写实例解析
- 单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
- STM32L系列单片机内部EEPROM的读写
- STM8S读写内部EEPROM
- shell 脚本读写处理文件
- C#读写Word文档异常处理解析System.Runtime.InteropServices.COMException
- Python空间数据处理1: GDAL读写遥感图像
- XML 处理 ,包括文件读写, in silverlight (silverlight系列(XML操作、HTTP通信、WebRequest通信))
- 操作分布式文件之八:如何批量并行读写远程文件和事务补偿处理
- 单片机通信协议处理