打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
I2C总线C源程序
/*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( )/*启动I2C总线*/
{
SDA=1;
SCL=1;
NOP;
SDA=0;
NOP;
SCL=0;
}

void stop( )/*停止I2C总线
*/
{
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( );
}
/*向虚拟I2C总线上发送1个数据字节*/
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;
}
}
/*从I2C总线上读取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( );





}
/*向虚拟I2C总线上发送n个字节的数据*/
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( );
}
/*从虚拟I2C总线上读取n个字节的数据*/
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( );
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
单片机I/O口模拟I2C总线通讯
I2C 串行总线的组成及工作原理
I2C 24LC02 C读写例程(PIC单片机)
MSP430F1121与PCF8576驱动程序
基于单片机 控制24C02 EEROM 演示示例
24C01读写的C51源程序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服