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

📄 io-smbus.h

📁 用51单片机IO口实现SMBUS总线的源程序
💻 H
字号:
/****************************************************************
 *文件名:I2C.h
 *描述:提供I2C的底层驱动,可选的400K或100K速度。
 *环境:KEIL C51
 *版本:v1.0
 *作者:wentsing
 *日期:2006/03/07
******************************************************************/

/****************************************************************
〖说明〗I2C总线驱动程序(用两个普通IO模拟I2C总线)
包括100Khz(T=10us)的标准模式(慢速模式)选择,
和400Khz(T=2.5us)的快速模式选择,
默认12Mhz的晶振。
*****************************************************************/

#if I2C_C

	#ifndef SDA
		#define SDA P2_7
		#define SCL P2_6
	#endif

//	#define bool bit
	
	/*************************内部定义***************************/
	#define			I2C_100K			0				//100K速度模式
	#define			I2C_400K			1				//400K速度模式
	/*************************配置参数***************************/
	#define			I2C_SPEED			I2C_400K		//配置速度为400K
	
	#if KEILC51
		#define			NOP()				_nop_()			//空等待
		#define			SomeNOP(); 			_nop_();_nop_();_nop_();_nop_();
	#endif



/****************************************************************
下面是可以调用的函数定义
*****************************************************************/

/****************************************************************
 *函数性质:公共
 *入口:无
 *出口:无
 *功能:I2C专用
 *调用方式:void I2CStart(void)
*****************************************************************/
void I2CStart(void);



/****************************************************************
 *函数性质:公共
 *入口:无
 *出口:无
 *功能:I2C专用
 *调用方式:void I2CStop(void)
*****************************************************************/
void I2CStop(void);



/****************************************************************
 *函数性质:公共
 *入口:无
 *出口:无
 *功能:I2C专用,等待从器件接收方的应答
 *调用方式:bit WaitAck(void)
*****************************************************************/
bool WaitAck(void);



/****************************************************************
 *函数性质:公共
 *入口:无
 *出口:无
 *功能:I2C专用,主器件为接收方,从器件为发送方时,应答信号。
 *调用方式:void SendAck(void) 
*****************************************************************/
void SendAck(void);



/****************************************************************
 *函数性质:公共
 *入口:无
 *出口:无
 *功能:I2C专用,主器件为接收方,从器件为发送方时,非应答信号。
 *调用方式:void SendNotAck(void) 
*****************************************************************/
void SendNotAck(void);



/****************************************************************
 *函数性质:公共
 *入口:无
 *出口:无
 *功能:I2C专用
 *调用方式:void I2CSendByte(uchar ch) 
*****************************************************************/
void I2CSendByte(byte ch);



/****************************************************************
 *函数性质:公共
 *入口:无
 *出口:无
 *功能:I2C专用
 *调用方式:uchar I2CReceiveByte(void) 
*****************************************************************/
unsigned char I2CReceiveByte(void);



#endif

⌨️ 快捷键说明

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