📄 24c128rea.write.c
字号:
//eeprom24c128读写程序,绝对可靠
uchar rd_24c128(void)//按位读取一个字节存入ACC
{
uchar i;
sda_24c=1;
for (i=8;i>0;i--)
{
ACC=ACC<<1;
ACC_0=sda_24c;
scl_24c=1;
scl_24c=0;
}
return ACC;
}
//-----------------------------
/*
void wr_24c128(uchar wd)//按位写入一个字节
{
uchar i;
ACC=wd;
for (i=8;i>0;i--)
{
sda_24c=ACC_7;
ACC=ACC<<1;
scl_24c=1;
scl_24c=0;
}
sda_24c=1;
scl_24c=1;
scl_24c=0;
}
*/
void wr_24c128(uchar wd)//按位写入一个字节
{
uchar i;
for (i=8;i>0;i--)
{
if( (wd&0X80)==0 ) //逐位发送 模拟串口程序
{
sda_24c=0;
}
else{sda_24c=1;}
wd=wd<<1;
scl_24c=1;
_nop_();_nop_();
scl_24c=0;
}
sda_24c=1;
_nop_();_nop_();
scl_24c=1;
scl_24c=0;
}
//---------------------------------
void stop_24c128(void)
{
sda_24c=0;
_nop_();_nop_();_nop_();
scl_24c=1;
_nop_(); _nop_();_nop_();
sda_24c=1;
_nop_(); _nop_();_nop_();
scl_24c=0;
}
//----------------------------
void start_24c128(void)
{
sda_24c=1;
_nop_();_nop_();_nop_();
scl_24c=1;
_nop_();_nop_();_nop_();
sda_24c=0;
_nop_();_nop_();_nop_();
scl_24c=0;
}
//--------------------------------
void write_24c(uint caddress,uchar cdata) //写字节cdata到整型caddress地址
{
uint daddress=0x0000;//
caddress&=0x3fff; //屏蔽高位
daddress=caddress; //
daddress>>=8; //取地址高位
start_24c128(); //
wr_24c128(0xa0); //
wr_24c128(daddress);//
wr_24c128(caddress);//
wr_24c128(cdata); //
stop_24c128();
Delay_us(2);
}
//------------------------
uchar read_24c(uint caddress) //读caddress地址到ACC
{
uchar daddress;
caddress&=0x3fff;
daddress=caddress;
daddress>>=8;
start_24c128();
wr_24c128(0xa0);
wr_24c128(daddress);
wr_24c128(caddress);
start_24c128();
wr_24c128(0xa1); //
ACC=rd_24c128();
stop_24c128();
return(ACC);
Delay_us(2);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -