新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一個(gè)PIC讀寫(xiě)內(nèi)部EEPROM的程序(c)

一個(gè)PIC讀寫(xiě)內(nèi)部EEPROM的程序(c)

作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò) 收藏
#include
int i,j=1,k=1;
void initial(void) //初始化
{
TRISB=0x00; //RB為輸出
EEDATA=0x00; //數(shù)據(jù)賦初值
EEADR=0x00; //地址賦初值
}
void write_data(void)
{ for(i==1;i<=0xFF;++i)
{ PIR2bits.EEIF=0;
EECON1bits.EEPGD=0; //設(shè)置訪問(wèn)目標(biāo)為EEPROM
EECON1bits.WREN=1; //允許進(jìn)行寫(xiě)操作
INTCONbits.GIE=0; //禁止中斷
EECON2=0x55;
EECON2=0xAA; //校驗(yàn)
EECON1bits.WR=1; //啟動(dòng)一次寫(xiě)操作
EECON1bits.WREN=0; //關(guān)閉寫(xiě)操作
EEADR=++EEADR; //地址遞增
EEDATA=++EEDATA; //數(shù)據(jù)遞增
}
}
void read_display(void)
{ EEDATA=0x00; //數(shù)據(jù)賦初值
EEADR=0x00; //地址賦初值
for (j=1;j<=0xFF;j++)
{ EECON1bits.EEPGD=0; //設(shè)置訪問(wèn)目標(biāo)為EEPROM
EECON1bits.RD=1; //啟動(dòng)一次讀操作
PORTB=EEDATA; //送顯
Delay1KTCYx(252); //延時(shí)
EEADR=++EEADR; //地址遞增
EEDATA=++EEDATA; //數(shù)據(jù)遞增
}
}
void main(void)
{ initial();
while(1)
{ write_data();
read_display();
}
}


評(píng)論


技術(shù)專區(qū)

關(guān)閉