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

📄 pca9554.c

📁 i2c总线的程序设计
💻 C
字号:
#include "i2c.h"
#include <reg51.h>
#include <intrins.h>
#include "common.h"

#define WriteDeviceAddress_9554 0x40
#define ReadDeviceAddress_9554 0x41
sbit PCA9554_SCL=P3^0;
sbit PCA9554_SDA=P3^1;

void start_9554(void)
{
	PCA9554_SCL=0;
	PCA9554_SDA=1;
	nop();
	nop();
	nop();
	nop();
	nop();
	nop();

	PCA9554_SCL=1;
	nop();
	nop();
	nop();
	nop();
	nop();

	PCA9554_SDA=0;
	nop();
	nop();
	nop();
	nop();
	nop();
}

void stop_9554()
{
	PCA9554_SCL=0;
	PCA9554_SDA=0;
		nop();
	nop();
	nop();
	nop();
	nop();

	PCA9554_SCL=1;
	nop();
	nop();
	nop();
	nop();
	nop();
	//nop();
	//nop();
	//nop();
	//nop();
	
	PCA9554_SDA=1;
	nop();
	nop();
	nop();	
	nop();
	nop();
}	


void writeoutput(uchar input)
{
	start_9554();
	write8bit(WriteDeviceAddress_9554);
	write8bit(0x1);
	write8bit(input);
	stop_9554();
}

void writeconfig(uchar input)
{
	start_9554();
	write8bit(WriteDeviceAddress_9554);
	write8bit(0x3);
	write8bit(input);
	stop_9554();
}

uchar readregister(void)
{
	uchar readdata;
	start_9554();
	write8bit(WriteDeviceAddress_9554);
	write8bit(0x1);
	start_9554();
	write8bit(ReadDeviceAddress_9554);
	readdata=read8bit();
	no_ack();
	stop_9554();
	return readdata;
}



⌨️ 快捷键说明

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