首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

一个PIC读写内部EEPROM的程序(c)

一个PIC读写内部EEPROM的程序(c)

一个PIC读写内部EEPROM的程序(c)

#i nclude<p18f452.h>
int i,j=1,k=1;
void initial(void)          //初始化
{
   TRISB=0x00;             //RB为输出  
   EEDATA=0x00;            //数据赋初值
   EEADR=0x00;             //地址赋初值
  }
void write_data(void)         
  { for(i==1;i<=0xFF;++i)
     { PIR2bits.EEIF=0;      
       EECON1bits.EEPGD=0; //设置访问目标为EEPROM
       EECON1bits.WREN=1;  //允许进行写操作
       INTCONbits.GIE=0;   //禁止中断
       EECON2=0x55;        
       EECON2=0xAA;        //校验
       EECON1bits.WR=1;    //启动一次写操作
       EECON1bits.WREN=0;  //关闭写操作
       EEADR=++EEADR;      //地址递增
       EEDATA=++EEDATA;    //数据递增  
      }  
  }
void read_display(void)
  { EEDATA=0x00;            //数据赋初值
    EEADR=0x00;             //地址赋初值
    for (j=1;j<=0xFF;j++)
       { EECON1bits.EEPGD=0; //设置访问目标为EEPROM
         EECON1bits.RD=1;    //启动一次读操作
         PORTB=EEDATA;       //送显
         Delay1KTCYx(252);     //延时
         EEADR=++EEADR;      //地址递增
         EEDATA=++EEDATA;    //数据递增
       }
  }
void main(void)
{ initial();
   while(1)
  { write_data();
    read_display();      
   }
  }

返回列表