欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機驅動24c16的程序整不明白了
[打印本頁]
作者:
huangchengbbs
時間:
2018-12-13 15:52
標題:
單片機驅動24c16的程序整不明白了
uchar xdata timercode[30][4];
按鍵改寫數組4個元素后寫入 page_write((addr*0x04),&timercode[addr][0],4);//24c16頁寫入函數
開機整體讀出
E2_BitRead(0x00,&timercode[0],80);//24c16讀數據函數
主函數調用上面兩個,想開機讀取數組存到數組里,然后改變數組后寫入,掉電可以不丟數據,為什么老不對呢?
哪位好心的大神給看看唄!
下面的應該沒問題,之前用過這個驅動的!
#include<reg52.h>
#include<intrins.h>
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long ulong;
sbit SDA=P2^0;
sbit SCL=P2^1;
void E2_delay()
{
_nop_();
_nop_();
_nop_();
_nop_();
}
void E2_start()
{
SDA=1;
SCL=1;
E2_delay();
SDA=0;
E2_delay();
SCL=0;
}
void E2_stop()
{
SDA=0;
SCL=0;
E2_delay();
SCL=1;
E2_delay();
SDA=1;
}
uchar E2_write(uchar dat)
{
uchar mask;
uchar ack;
for(mask=0x80;mask>0;mask>>=1)
{
SCL=0;
E2_delay();
SDA=(dat&mask);
E2_delay();
SCL=1;
E2_delay();
}
SCL=0;
SDA=1;
E2_delay();
SCL=1;
ack=SDA;
E2_delay();
SCL=0;
return (~ack)&0x01;
}
void E2_read_ack()
{
SCL=0;
E2_delay();
SDA=0;
E2_delay();
SCL=1;
E2_delay();
SCL=0;
}
void E2_read_Nack()
{
SCL=0;
E2_delay();
SDA=1;
E2_delay();
SCL=1;
E2_delay();
SCL=0;
}
void E2_BitRead(uchar addr,uchar *dat,uchar len)
{
uchar i;
do
{
E2_start();
if(E2_write(0xa0))
break;
}while(1);
E2_write(addr);
E2_start();
E2_write(0xa1);
while(len)
{
SDA=1;
for(i=0x80;i>0;i>>=1)
{
SCL=1;
if(SDA)
*dat|=i;
else
*dat&=~i;
E2_delay();
SCL=0;
E2_delay();
}
E2_read_ack();
dat++;
len--;
if(len==0)
{
for(i=0x80;i>0;i>>=1)
{
SCL=1;
if(SDA)
*dat|=i;
else
*dat&=~i;
E2_delay();
SCL=0;
E2_delay();
}
E2_read_Nack();
E2_stop();
break;
}
}
}
void page_write(uchar addr,uchar *dat,uchar len)
{
while(len>0)
{
do
{
E2_start();
if(E2_write(0xa0))
break;
}while(1);
E2_write(addr);
while(len--)
{
E2_write(*dat++);
addr++;
if((addr&0x07)==0)
break;
}
E2_stop();
}
}
作者:
huangchengbbs
時間:
2018-12-13 15:57
在線等,急,麻煩大神不吝賜教!!!!!
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1