- 39
- 0
- 约5.82千字
- 约 12页
- 2020-08-02 发布于湖北
- 举报
. . . .
I2C 接口的输入与输出驱动的 PCF8574-
pcf8574 采用 I2C 接口 ,有 8 个准双向口 ,可以和外部电路连接 ,来实现输入输
出功能 ,可以用来对口线进行扩展
有几点需要注意
1.某位作为输入的时候 ,必须首先置为高电平
2.地址是 0100 A2 A1 A0 R/W
3.最多可以扩展 8 片
4.低电流损耗 ,静态电流 10uA,驱动电流比较大 ,而且有索存功能 ,能够驱动
LED 发光管
5.带有外部中断输出 ,低电平有效
我作了一个电路 ,其中 P7-P4 作为输入检测开关状态 ,P3-P0 作为输出来驱动
LED 灯
程序如下
#include reg51.h
学习参考
. . . .
#define SETBIT(VAR,Place) (VAR|=(1Place))
#define CLRBIT(VAR,Place) (VAR=((1Place)^255))
sbit IC_SCL=P3^6;
sbit IC_SDA=P3^7;
unsigned char IC_Re_Time;
unsigned char IC_Err_Flag;
void Timer0_Init(void)
{
TMOD=0x00; //timer0 工作定时器方式 0,13 位技术
TH0=0x1e; //5ms
TL0=0x0c; //5ms
TR0=1; // 启动时钟 0
ET0=1; // 允许时钟 0 进行中断
EA=1; // 开放所有中断
}
void Delay(void)
{
unsigned char i;
for(i=0;i=10;i++)
{
学习参考
. . . .
;
}
}
unsigned char VALBIT(unsigned int Val,unsigned char Bit)
{
unsigned int Buf;
Buf=0x0001;
if(Bit)
Buf=Bit;
Val=Buf;
if(Val)
return(0xff);
else
return(0x00);
}
/**********************************************
下面是 PCF8574 的操作程序
1.通信方式 :I2C
2.通信端口 :IC_SCL(P3.6),IC_SDA(P3.7)
3.通信地址 :0x0101000x
***********************************************/
void IC_Start(void) // 启动 IC 通信
学习参考
. . . .
{
IC_SDA=1;
Delay();
IC_SCL=1;
Delay();
IC_SDA=0;
Delay();
IC_SCL=0;
Delay();
}
void IC_Stop(void) // 停止 IC 通信
{
IC_SDA=0;
Delay();
IC_SCL=1;
Delay();
IC_SDA=1;
Delay();
}
void IC_Receive_Ack(void) // 接受 ACK
{
学习参考
. . . .
IC_SDA=1;
原创力文档

文档评论(0)