一个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();
}
}
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |