📄 24c16的读写程序.txt
字号:
文章编号:488----加入日期:2003-8-12
『关闭窗口』
一个24c16的读写程序(已经调试过)(arens)
////////////////////////////////////////////////////////////////
//24c16读写驱动程序,
//=-----------------------------------------------------------------------------
--
/*模块调用:
读数据:read(unsigned int address)
写数据:write(unsigned int address,unsigned char dd) dd为要写的 数据字节*/
//------------------------------------------------------------------------------
----
sbit sda=P3^0;
sbit scl=P3^1;
sbit a0=ACC^0; //定义ACC的位,利用ACC操作
速度最快
sbit a1=ACC^1;
sbit a2=ACC^2;
sbit a3=ACC^3;
sbit a4=ACC^4;
sbit a5=ACC^5;
sbit a6=ACC^6;
sbit a7=ACC^7;
//------------------------------------------------------------------------------
--------
#pragma disable
void s24(void) //起始函数
{
_nop_();
scl=0;
sda=1;
scl=1;
_nop_();
sda=0;
_nop_();
_nop_();
scl=0;
_nop_();
_nop_();
sda=1;
}
//------------------------------------------------------------------------------
-------
#pragma disable
void p24(void) //停止函数
{
sda=0;
scl=1;
_nop_();
_nop_();
sda=1;
}
//------------------------------------------------------------------------------
------
#pragma disable
unsigned char rd24(void) /////////////////从24c16读一字节数据
{ ACC=0x00;
sda=1;
scl=1;a7=sda;_nop_();_nop_();_nop_();_nop_();scl=0;
scl=1;a6=sda;_nop_();_nop_();_nop_();_nop_();scl=0;
scl=1;a5=sda;_nop_();_nop_();_nop_();_nop_();scl=0;
scl=1;a4=sda;_nop_();_nop_();_nop_();_nop_();scl=0;
scl=1;a3=sda;_nop_();_nop_();_nop_();_nop_();scl=0;
scl=1;a2=sda;_nop_();_nop_();_nop_();_nop_();scl=0;
scl=1;a1=sda;_nop_();_nop_();_nop_();_nop_();scl=0;
scl=1;a0=sda;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=1;scl=1;_nop_();_nop_();_nop_();_nop_
();scl=0; /// ///////////////24c16的一位回答位。
return(ACC);
}
//------------------------------------------------------------------------------
----
#pragma disable
void wd24(unsigned char dd) ////////////////向24c16写一字节数据
{ sda=1;
ACC=dd;
sda=a7;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=a6;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=a5;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=a4;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=a3;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=a2;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=a1;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=a0;scl=1;_nop_();_nop_();_nop_();_nop_();scl=0;
sda=0;scl=1;//scl=0;(在下面程序中)
}
//---------------------------------------------------------------------------
#pragma disable
unsigned char read(unsigned int address)
{
unsigned char dd;
s24(); ////////////////////////开始条件
wd24(0xa0); /////////////////////////写器件地址(写命令)
_nop_();_nop_();_nop_();_nop_();
scl=0; ///////////////////////////////////接收器件地
址确认信号
wd24(address); //////////////////////////// 写数据地址
_nop_();_nop_();_nop_();_nop_();
scl=0;
s24
(); ///////////////////////////////////开始条件
wd24(0xa1); /////////////////////////////写器件地址(读命
令)
scl=0;
dd=rd24(); //////////////////////////////////读 一字节
p24(); ////////////////////////////////////停止条件
return(dd);
}
//------------------------------------------------------------------------------
--
#pragma disable
void write(unsigned int address,unsigned char dd)
{
s24(); /////////////////开始条件
wd24(0xa0); ////////////////////////写器件地址;
scl=0;
wd24(address); /////////////////////写数据地址
scl=0;
wd24(dd); //////////////////////////写dd数据
scl=0;
p24(); /////////////////////////停止条件;
}
(文章推荐人:铁匠)
返回大虾论坛 返回首页
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -