📄 24c04.h
字号:
sbit scl=P2^6;
sbit sda=P2^7;
/*srom开始条件*/
void srsta(void)
{sda=1;
scl=1;
_nop_();_nop_();_nop_();_nop_();
sda=0;
_nop_();_nop_();_nop_();_nop_();
}
/*srom停止条件*/
void srstop(void)
{sda=0;
scl=1;
_nop_();_nop_();_nop_();_nop_();
sda=1;
_nop_();_nop_();_nop_();_nop_();
}
/*srom产生应答位*/
void srcak(void)
{sda=0;
_nop_();_nop_();_nop_();_nop_();
scl=1;
_nop_();_nop_();_nop_();_nop_();
scl=0;
}
/*srom产生~应答位*/
void srncak(void)
{sda=1;
_nop_();_nop_();_nop_();_nop_();
scl=1;
_nop_();_nop_();_nop_();_nop_();
scl=0;
}
/*字节写*/
void srwbt(unsigned char dat)
{unsigned char bitcon=8;
unsigned char temp;
do
{
temp=dat;
scl=0;
_nop_();_nop_();_nop_();_nop_();
if((temp&0x80)==0x80)
sda=1;
else
sda=0;
scl=1;
temp=dat<<1;
dat=temp;
bitcon--;
}while(bitcon);
scl=0;
}
unsigned char srrbt(void)
{
unsigned char temp=0;
unsigned char temp1=0;
unsigned char bitcon=8;
sda=1;
do
{
scl=0;
_nop_();_nop_();_nop_();_nop_();
scl=1;
_nop_();_nop_();_nop_();_nop_();
if(sda)
temp=temp|1;
else
temp=temp&0xfe;
if(bitcon-1)
{
temp1=temp<<1;
temp=temp1;
}
bitcon--;
}while(bitcon);
return(temp);
}
/*多字节写SROM*/
/*void wrtorom(unsigned char Dat[],unsigned char Address,uchar Num)
{ unsigned char i;
unsigned char *pDat;
unsigned char j,n;
pDat=Dat;
for(i=0;i<Num;i++)
{
srsta();
srwbt(srwr);
srcak();
srwbt(Address+i);
srcak();
srwbt(*(pDat+i));
srcak();
srstop();
for(j=20;j>0;j--)
{for(n=100;n>0;n--)
{;}
}
}
}
/*读多字节SROM*/
/*void rdfrrom(unsigned char Dat[],unsigned char Address,uchar Num)
{ unsigned char i;
unsigned char *pDat;
pDat=Dat;
for(i=0;i<Num;i++)
{
srsta();
srwbt(srwr);
srcak();
srwbt(Address+i);
srcak();
srsta();
srwbt(srrd);
srcak();
*(pDat+i)=srrbt();
scl=0;
srncak();
srstop();
}
}*/
/*读单字*/
unsigned char rd_24c04(unsigned char r24_adh,unsigned char r24_add)
{ unsigned char retn_char;
srsta();
r24_adh<<=1;
retn_char=0xa0+r24_adh;
srwbt(retn_char);
srcak();
srwbt(r24_add);
srcak();
srsta();
srwbt(0xa1);
srcak();
retn_char=srrbt();
scl=0;
srncak();
srstop();
return(retn_char);
}
/*写单字*/
void wr_24c04(unsigned char r24_adh,unsigned char w24_add,unsigned char w24_char)
{unsigned char wr_dlj,wr_dln;
r24_adh=r24_adh<<1;
srsta();
srwbt(0xa0|r24_adh);
srcak();
srwbt(w24_add);
srcak();
srwbt(w24_char);
srcak();
srstop();
for(wr_dlj=20;wr_dlj>0;wr_dlj--)
{for(wr_dln=100;wr_dln>0;wr_dln--)
{;}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -