|
#define uchar unsigned char
#define uintunsigned int
sbit WDI=P1^7;
sbit RESET=P1^6;
/*声明外部I2C读写函数*/
extern void I2c_wr(uchar addh,uchar addl,uchar buf[],uchar num,bit wr);
void main(void) {
uchar data addh,addl;
uchar data buf[16];
uchar j;
uint I=0;
XBYTE[0x1fff]=0;/*清除程序拷贝好标志*/
WDI=~WDI; /*喂狗*/
system_init(); /*初始化*/
for(addh=0;addh<0x10;addh++) {
for(addl=0;addl<0xf0;addl+=16) {
/*读入E2PROM地址addh:addl16字节内容到buf*/
I2c_wr(addh,addl,buf,16,1);
for(j=0;j<16;j++)/*将代码写入外部绝对地址*/
XBYTE[I++]=buf[j];
}
I2c_wr(addh,0xf0,buf,16,1);
for(j=0;j<16;j++)
XBYTE[I++]=buf[j];
WDI=~WDI;
}
XBYTE[0x1fff]=0xaa;/*置程序拷贝好标志*/
RESET=0;/*复位单片机并执行外部RAM内的程序*/
while(1);
}
装载程序主要将E2PROM的内容拷贝到片外RAM中,因自己初次接触E2PROM上面的程序读的不是很清晰
请大家帮忙读读加点更详细的说明(特别是红色部分)谢谢了
|
|