I2C接口的输入与输出驱动的PCF8574_.pdfVIP

  • 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)

1亿VIP精品文档

相关文档