新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 關于STC單片機EEPROM的應用總結(jié)

關于STC單片機EEPROM的應用總結(jié)

作者: 時間:2016-12-01 來源:網(wǎng)絡 收藏
/********595輸出函數(shù)函數(shù)*******************/
void out_595(void)
{
STORAGE=0;
_nop_();
_nop_();
STORAGE=1;
_nop_();
_nop_();
STORAGE=0;
}
/*軟件延時 */
void delay(uchar t)
{ uchar x;
while(t--)
{
for(x=0;x<250;x++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
/******按鍵檢測函數(shù)**********************/
void keycheck(void)
{
if(SW==0)//判斷開關按鍵是否按下
{delay(10);//抗干擾
if(SW==0)//確實按下
{kai=~kai;
}
while(!SW)//一直按下
{BEEP=1;}//蜂鳴器響
BEEP=0;//松開按鍵,蜂鳴器關閉
}
if(INC==0&kai==1&MA<9)//如果處于開的狀態(tài)并且數(shù)字小于9則按下增大鍵執(zhí)行
{
delay(10);
if(INC==0&kai&MA<9)
{MA++;}
while(!INC)
{BEEP=1;}
BEEP=0;
}
if(DEC==0&kai&MA>1)
{
delay(10);
if(DEC==0&kai&MA>1)
{MA--;}
while(!DEC)
{BEEP=1;}
BEEP=0;
}
if(kai==1) //如果電源打開了,則將電源開的狀態(tài)標志置1
{biaozhi=1;}
if(biaozhi==1&kai==0)//判斷電源打開后被關閉,目的是只在開關鍵關閉時,寫一次EEPROM,避免不停的擦寫EEPROM
{ biaozhi=0;
iaperasesector(0x00);
programbyte(0x00,MA);
// 執(zhí)行EEPROM寫程
}
}
//主函數(shù)
Void main(void )
{
BEEP=0; //關閉蜂鳴器
iapreadbyte(0x00);//讀出EEPROM的值
MA=dat;
if(MA<1|MA>9)//如果讀出的值不在1-9范圍內(nèi)則強制為5.
{MA=5;}
while(1)
{
keycheck();//執(zhí)行按鍵掃描程序
write_595(num[MA]);
write_595(num[MA]);
out_595();
}
}
這只是一個簡單的讀寫一個字節(jié)的簡單測試程序,對于扇區(qū)擦除的結(jié)果也沒有進行驗證。
想要驗證需要在加一段代碼。具體請參照STC的數(shù)據(jù)手冊。
上一頁 1 2 3 下一頁

關鍵詞: STC單片機EEPRO

評論


技術專區(qū)

關閉