新闻中心

EEPW首页>嵌入式系统>设计应用> 关于STC单片机EEPROM的应用总结

关于STC单片机EEPROM的应用总结

作者: 时间:2016-12-01 来源:网络 收藏
/********595输出函数函数*******************/
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_();
}
}
}
/******按键检测函数**********************/
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)//如果处于开的状态并且数字小于9则按下增大键执行
{
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) //如果电源打开了,则将电源开的状态标志置1
{biaozhi=1;}
if(biaozhi==1&kai==0)//判断电源打开后被关闭,目的是只在开关键关闭时,写一次EEPROM,避免不停的擦写EEPROM
{ biaozhi=0;
iaperasesector(0x00);
programbyte(0x00,MA);
// 执行EEPROM写程
}
}
//主函数
Void main(void )
{
BEEP=0; //关闭蜂鸣器
iapreadbyte(0x00);//读出EEPROM的值
MA=dat;
if(MA<1|MA>9)//如果读出的值不在1-9范围内则强制为5.
{MA=5;}
while(1)
{
keycheck();//执行按键扫描程序
write_595(num[MA]);
write_595(num[MA]);
out_595();
}
}
这只是一个简单的读写一个字节的简单测试程序,对于扇区擦除的结果也没有进行验证。
想要验证需要在加一段代码。具体请参照STC的数据手册。
上一页 1 2 3 下一页

关键词:STC单片机EEPRO

评论


技术专区

关闭