在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2045|回复: 0

[资料] I2C总线C语言源程序

[复制链接]
发表于 2012-11-1 21:42:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
*VIICC.H*/
#pragma db cd small
#include <intrins.h>
#include <reg52.h>
#define NOP nop ( ); nop ( ); nop ( ); nop ( )
#define SDA P1^7
#define SCL P1^6

void sta( );
void cack( );
void stop( );
void mnack( );
void mack( );
void wrbyt(uchar shu);
void wrnbyta(uchar slaw,uchar gg[],uchar n);
void wrnbyt(uchar slaw,uchar ff[],uchar number);
uchar rdbyt( );
void rdnbyt(uchar slar,uchar qq[],uchar number);
源程序由9个函数组成,程序清单如下:
voidsta( )
{
SDA=1;
SCL=1;
NOP;
SDA=0;
NOP;
SCL=0;
}

void stop( )
{
SDA=0;
SCL=1;
NOP;
SDA=1;
NOP;
SCL=0;
}

void mack( )
{
SDA=0;
SCL=1;
NOP;
SCL=0;
SDA=1;
}

void mnack( )
{
SDA=1;
SCL=1;
NOP;
SCL=0;
SDA=0;
}

void cack( )
{
SDA=1;
SCL=1;
F0=0;
if(SDA==1)
F0=1;
SCL=0;
nop( );
}

void wrbyt(uchar shu)
{
uchar i;
for(i=0;i<8;i++){
if((shu&0x80)>0){
SDA=1;
SCL=1;
NOP;
SCL=0;
SDA=0;
}
else{
SDA=0;
SCL=1;
NOP;
SCL=0;
}
shu=shu<<1;
}
}

uchar rdbyt( )
{
uchar nn=0xff,mm=0x80,uu=0x7f;
uchar j;
for(j=0;j<8;j++){
SDA=1;
SCL=1;
if(SDA==0)
nn=(nn&uu);
else
nn=(nn|mm);。
nn=crol(nn,1);
SCL=0;
}
return(nn);
}

void wrnbyta(uchar slaw,uchar gg[],uchar n)
{
do{
sta( );
wrbyt(slaw);
cack( );
}while(F0==1);
wrbyt(gg[n]);
cack( );





}

void wrnbyt(uchar slaw,uchar ff[],uchar number)
{
uchar idata k;
do{
sta( );
wrbyt(slaw);
?cack( );
}while(F0==1);
for(k=0;k<number;k++){。
wrbyt(ff[k]);
cack( );
while(F0==1)
wrnbyta(slaw,ff,k);
}
stop( );
}

void rdnbyt(uchar slar,uchar qq[],uchar number)
{
uchar idata data0,l;
do{
sta( );
wrbyt(slar);
cack( );
}while(F0==1);?
for(l=0;l<number-1;l++){
data0=rdbyt( );
qq[l]=data0;
mack( );
}
data0=rdbyt( );
qq[l]=data0;
mnack( );
stop( );
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 15:22 , Processed in 0.019383 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表