pic18f4620单片机数据写入内部EEPROM的问题
本帖最后由 pzsh 于 2022-7-21 11:32 编辑写了一个把一个字节写入到内部EEPROM的程序,但是我硬件仿真的时候,内部EEPROM相应的地址上不显示我写入的字节,但是我用软件仿真的时候,内部EEPROM相应的地址上就显示我写入的字节,请教大家是怎么一回事
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
部分程序如下
EEADRH = 0x00; //EEPROM 地址的高位
EEADR = 0x00; //EEPROM 地址的底位
EEDATA = 0x18; //要写入的数据
EECON1bits.EEPGD = 0; //访问EEPROM存储器
EECON1bits.CFGS = 0; //访问闪存程序存储器或者EEPROM存储器
EECON1bits.WREN = 1; //允许对闪存程序器或者EEPROM存储器写周期
INTCONbits.GIE = 0; //禁止中断
EECON2 = 0x55; //必须的序列
EECON2 = 0xAA; //必须的序列
EECON1bits.WR = 1; //启动写周期
INTCONbits.GIE = 1; //使能中断
while(!PIR2bits.EEIF);//写完成后,EEPROM中断标志位EEIF被置1
PIR2bits.EEIF = 0; //EEIF必须用软件清0
EECON1bits.WREN = 0; 写完查询下,不对就再写
我这指令完全是按照数据手册上写的,应该是无误的
可就是用kit3硬件调试时,EEPROM相应的地址没有数据显示
硬件仿真时都EEPROM好像滞后很多
想要知道写入的对不对,写后在读出来看看。
注意EEPROM有个写入时间, 你可以看DataSheet电气特性eeprom章节, 大概5ms的样子...
你说对了,数据可以从EEPROM中读出来,说明已经写进EEPROM中了
那我想在调试的时候,可以在MPLAB X IDE开发环境中EEPROM相应的地址上显示我写入的数据,需要怎么做啊
硬件仿真,IDE的EEPROM窗口并不会实时更新的,只能把芯片read回来,才会刷新
EE Data Memory 不会自己刷新,需要点击该窗口左上的Read, 才能显示出来.(注: 如果是在debug模式下, Read按钮是灰色的,说明这个器件不支持Debug-Reads, 那就退出debug模式,让MCU自己运行,然后点击Read按钮)
嗯,我再好好缕一缕吧,有了好消息及时通知大家
怎样用pic单片机把字符写到eeprom里面 单片机内部eeprom中的程序可以仿真吗 片内带eeprom的单片机有哪些 PIC16F946d的EEPROM,怎么写不成功 单片机内部的flash rom利用来做EEPROM吗 从指定地址下读取一个字节:uchar ReadEEPROM(uchar EE_Addr){ EEADR=EE_Addr; //给地址 EEPGD=0; // RD=1; //开始读 return EEDATA; //直接返回读取的EEPROM }