[PIC®/AVR®/dsPIC®产品] pic 16 f690 pic 16 f1947 eeprom 实例 与区别

[复制链接]
 楼主| 晓伍 发表于 2025-6-24 19:17 | 显示全部楼层 |阅读模式
1947



void WriteEE(unsigned char adds,unsigned char data)        
{
while(WR==1);                         //上一次写操作是否完成
EEADR=adds;                          //EEPROM地址
EEDAT=data;                      //准备写入EEPROM的数据
EEPGD=0;                              //指向EEPROM数据储存器
CFGS=0;   //指向EEPROM数据储存器
WREN=1;                               //使能写操作
        GIE=0;                                //禁止中断                              
        EECON2=0x55;                          
        EECON2=0xAA;                          //EEPROM解锁
        WR=1;
        GIE=1;                                //开始写
        while(WR==1);                         //等待写操作完成
        if(EEIF==1)
        EEIF=0;            
        WREN=0;                               //禁止写操作
}
unsigned char ReadEE(unsigned char adds)
{
    unsigned char num;
    while(RD==1);                        //上一次读操作是否完成
    EEADR=adds;               //EEPROM地址为00H
    EEPGD=0;                             //指向EEPROM数据储存器
CFGS=0;  //指向EEPROM数据储存器
    RD=1;                                //开始读
    while(RD==1);                        //等待读操作完成
    num=EEDAT;                          //读出
    return(num);                         //返回读出的数
}

690


void write_eeprom(unsigned char data, unsigned char add )
{
//while(WR==1);   
      EEADR=add;
      EEDAT=data;  //欲写入之数据
      EEPGD=0x00;  //操作数据EEPROM区
      WREN=0x01;   //使能写操作
      GIE=0x00;    //禁止中断
      EECON2=0x55;
      EECON2=0xAA;
      WR=0x01;
      GIE=0x01;
     // delay(0x02);
      while(WR==1);
        if(EEIF==1)
        EEIF=0;         
        WREN=0x00;  
}
unsigned char read_eeprom(unsigned add)
{ unsigned char num;
while(RD==1);  
EEADR=add;     //寻址地址
      EEPGD=0x00;  //操作数据EEPROM区
      RD=0x01;     //启动读操作
    //  return EEDAT;
        while(RD==1);                        //等待读操作完成
    num=EEDAT;                          //读出
    return(num);   
}

初始化




__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
__EEPROM_DATA(0,0,0,0,0,0,0,0);
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/sinat_33425642/article/details/72864945

您需要登录后才可以回帖 登录 | 注册

本版积分规则

91

主题

4332

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

91

主题

4332

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部