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

📄 24cxx.c

📁 与C51相关模块LCD,24CXX,等的源代码程序
💻 C
字号:
//------------------------------------------------------
//NAME:24CXX DRIVER FUNCTION
#include <reg52.h>
#include <intrins.h>
#include "24cxx.h"
//------------------------------------------------------
#define NOP() _nop_()
//------------------------------------------------------
sbit SCL=P3^2;  //24c02 SCL
sbit SDA=P3^3;  //24c02 SDA
//------------------------------------------------------
bit oldEA;		//save EA status
//------------------------------------------------------
//调用方式:void I2CStart(void)
//------------------------------------------------------
void I2CStart(void){
	oldEA=EA;EA=0;
	SDA=1;SCL=1;NOP();	//INI
	SDA=0;NOP();SCL=0;	//START
}
//------------------------------------------------------
//调用方式:void I2CStop(void)
//------------------------------------------------------
void I2CStop(void){
	SCL=0;SDA=0;NOP();			//INI
	SCL=1;NOP();SDA=1;			//STOP
	EA=oldEA;
}
//------------------------------------------------------
//调用方式:bit I2CAck(void)
//函数说明:等待从器件接收方的应答
//------------------------------------------------------
bit WaitAck(void){
	unsigned char i=0xff;
	SDA=1;NOP();SCL=1;NOP();
	while(SDA)if(!(i--)){I2CStop();return 0;}
	SCL=0;
	return 1;
}
//------------------------------------------------------
//调用方式:void SendAck(void)
//函数说明:主器件为接收方,应答信号。
//------------------------------------------------------
void SendAck(void){
	SDA=0;NOP();SCL=1;NOP();SCL=0;
}
//------------------------------------------------------
//调用方式:void SendNoAck(void)
//函数说明:主器件为接收方

⌨️ 快捷键说明

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