单片机对24C02的读写,有一点要注意的,便是关于延时的问题。读写操作的间隔时间不能太短,否则会导致在Proteus仿真时正常,实践使用犯错的成果。
下面是一个毫秒级延时程序:
void delay_ms(uchar x)
{
uchar a,b;
for(a=x;a>0;a–)
for(b=100;b>0;b–);
}
以下是部分操作24C02的程序:
init_24C02();//初始化24C02
delay_ms(20);//延时
write_add(1,18);//写入数据1
delay_ms(20);//延时
write_add(2,92);//写入数据2
delay_ms(20);//延时
write_add(3,56);//写入数据3
delay_ms(20);//延时
for(i=1;i<4;i++)
{
delay_ms(10);
//write_add(0x02,12);
delay_ms(10);
n=read_add(i);//读取数据
temp[i*2-2]=n/10;
temp[i*2-1]=n%10;
}
实践上,上面的程序在Proteus仿真时经过,但写到板子上却无法正常读取刚刚写入的数据。后来把延时参数增大到50,一切正常了!这说明合理的延时对读写24C02是至关重要的,特别是写入数据后应该确保24C02有充沛的休憩!
24C02单片机编程的一点留意问题
单片机对24C02的读写,有一点要注意的,就是关于延时的问题。读写操作的间隔时间不能太短,否则会导致在Proteus仿真时正常,实际应用出错的
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/318230.html