⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hi2csla_c51.h

📁 i2c通信协议及程序。适合各种有需要的相关人士.
💻 H
字号:
/***************************************************************** 
*		从方式的LPC932硬件I2C
* 1  使用I2C总线软件包时P1.2,P1.3切勿写为0,并要设置为开漏输出。
* 2  总线定义为P1.2=SCL,P1.3=SDA,需外接上拉电阻2-10k。
* 3  相应寄存器:
*    地址寄存器  I2ADR   用于存放自身从地址(从方式时才有用)
*    数据寄存器  I2DAT   接收/发送数据用
*    控制寄存器  I2CON   用于硬件I2C的设置、使能、启动、结束,
*                        应答控制,中断标志等。
*    状态寄存器  I2STAT  指示I2C总线的操作状态码,高5位有效,
*                        若I2C中断志置位,可查询此寄存器判断
*                        总线情况。
*    SCL占空比寄存器  I2SCLH、I2SCLL  设置SCL的频率发生。
*                     设置最好与主机的SCL频率基本一至。  
* 使用:使用前要先开中断:总中断EA和I2C中断允许EI2C,其中断入口地址为33H;
*       在中断里进行接收或发送数据操作,调用操作如下:
*       若是从接收,则循环调用RcvByte接收字节数据,直至总线结束/重启;
*       若是从发送,则循环调用SendByte发送数据,直至接收到非应答信号;
* 为了防止从器件因总线出错而死机,可用定时器实现超时处理。
*****************************************************************/

#ifndef HI2CSLA_C51_H

  #define HI2CSLA_C51_H

/*当状态字I2STAT为0X60时,是总线对从器件写操作;若为0XA8则是对从器件读操作*/
#define RDSLA 		0xA8		/* 读从器件的总线状态字(进入此状态后用SENDBYTE发送数据) */
#define WRSLA 		0x60		/* 写从器件的总线状态字(进入此状态后用RCVBYTE取总线数据)*/

/***************************************************************** 
              设置总线  
函数原型:  void SetBus(unsigned char addr)              
描述:用于设置I2C控制寄存器,包括总线时钟速率及从地址.
      从地址为addr,不接受广播地址.
*****************************************************************/      
extern  void SetBus(unsigned char addr);



/***************************************************************
                 发送字节数据
函数原型:bit  SendByte(uchar c)
描述:向总线发送数据c,当接收到非应答位时返回0,否则返回1;
***************************************************************/
extern  bit SendByte(unsigned char c);
 
 
 
/***************************************************************
                 接收字节数据
函数原型:bit  RcvByte(uchar *c)
描述:读取总线传来的字节数据并发送应答位,正常接收返回1(此时读入的
数据写入变量c),接收到总线结束信号或重新启动总线信号时返回0(此时不
破坏变量c的数据)。
***************************************************************/ 
extern  bit RcvByte(unsigned char *c);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -