锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

基于单片机的AT2402的I2C总线读写驱动程序

时间:2024-04-16 21:37:09

//此部分为AT2402的驱动程序使用I2C总线连接

#include //AT2402的功能函数 // 向有子地址器件发送多字节数据函数 //函数原型: bit ISendStr(UCHAR sla,UCHAR suba,ucahr /s,UCHAR no); //功能: 从启动总线到发送地址,子地址,数据,结束总线的全过程,从器件 // 地址sla,子地址suba,发送内容是s指向的内容,发送no个字节。 // 如果返回1表示操作成功,否则操作有误。 //注意: 使用前必须已结束总线。 bit ISendStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no) { unsigned char i; Start_I2c(); //启动总线// SendByte(sla); //发送器件地址// if(ack==0)return(0); SendByte(suba); //发送器件子地址// if(ack==0)return(0); //此处表示内部ROM地址 for(i=0;i IRcvStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no) { unsigned char i; Start_I2c(); //启动总线// SendByte(sla); //发送器件地址// if(ack==0)return(0); SendByte(suba); //发送器件子地址// if(ack==0)return(0); //此处表示内部ROM地址 Start_I2c(); //重新启动总线// SendByte(sla+1); //表示由主机处读取数据 if(ack==0)return(0); for(i=0;i
//此部分为I2C总线的驱动程序/ #include #include #include #define NOP() _nop_() // 定义空指令 #define _Nop() _nop_() //定义空指令 sbit SCL=P2^0; //I2C 时钟 sbit SDA=P2^1; //I2C 数据 bit ack; //应答标志位/ // 起动总线函数 起动总线函数 //函数原型: void Start_I2c(); //功能: 启动I2C总线,即发送I2C起始条件. void Start_I2c() { SDA=1; //发送起始条件的数据信号 _Nop(); SCL=1; _Nop(); //起始条件建立时间大于4.7us,延时 _Nop(); _Nop(); _Nop(); _Nop(); SDA=0; //发送起始信号 _Nop(); // 起始条件定时间大于4μs _Nop(); _Nop(); _Nop(); _Nop(); SCL=0; //钳住I2C总线,准备发送或接收数据 _Nop(); _Nop(); } // 结束总线函数 //函数原型: void Stop_I2c(); //功能: 结束I2C总线,即发送I2C结束条件. void Stop_I2c() { SDA=0; //发送结束条件的数据信号 _Nop(); //发送结束条件的时钟信号 SCL=1; //结束条件建立时间大于4μs _Nop(); _Nop(); _Nop(); _Nop(); _Nop(); SDA=1; //发送I2C总线结束信号 _Nop(); _Nop(); _Nop(); _Nop(); } // 字节数据发送函数 //函数原型: void SendByte(UCHAR c); //功能: 将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对 // 此状态位进行操作.(不应答或非应答都使ack=0) // 发送数据正常,ack=1; ack=0表示被控器无应答或损坏。 void SendByte(unsigned char c) { unsigned char BitCnt; for(BitCnt=0;BitCnt<8;BitCnt++) //要传送的数据长度为8位 { if((c< -电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章