I2C接口的输入与输出驱动的PCF8574Word下载.docx
- 文档编号:13859772
- 上传时间:2022-10-14
- 格式:DOCX
- 页数:10
- 大小:65.31KB
I2C接口的输入与输出驱动的PCF8574Word下载.docx
《I2C接口的输入与输出驱动的PCF8574Word下载.docx》由会员分享,可在线阅读,更多相关《I2C接口的输入与输出驱动的PCF8574Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
reg51.h"
#defineSETBIT(VAR,Place)(VAR|=(1<
<
Place))
#defineCLRBIT(VAR,Place)(VAR&
=((1<
PlaceF255))
sbitIC_SCL=P3A6;
sbitIC_SDA=P3A7;
unsignedcharIC_Re_Time;
unsignedcharIC_Err_Flag;
voidTimerO」nit(void)
{
TMOD=OxOO;
//timerO工作定时器方式0,13位技术
TH0=0x1e;
//5ms
TLO=OxOc;
TRO=1;
//启动时钟O
ETO=1;
//允许时钟O进行中断
EA=1;
//开放所有中断
}
voidDelay(void)
……范文范例学习参考指导.……
unsignedchari;
for(i=0;
i<
=10;
i++)
J
unsignedcharVALBIT(unsignedintVal,unsignedcharBit)
unsignedintBuf;
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
*********************************************
voidIC_Start(void)//启动IC通信
voidIC_Stop(void)//停止IC通信
voidIC_Receive_Ack(void)//接受ACK
IC_SDA=1;
IC_SCL=1;
Delay();
IC_Re_Time=O;
while(IC_Re_Time<
=30)
IC_SCL=0;
word...专业技术行业资料
//voidIC_Send_ACK(void)//发送ACK
//{//ifreadmanydatasatatime,thiscanbeused
//IC_SDA=0;
//Delay();
//IC_SCL=1;
//IC_SCL=0;
//IC_SDA=1;
//}
//发送NACK
写数据到8574
idIC_Write_Byte(unsignedcharData)//
=7;
if(VALBIT(Data,(7-i)))//dataoutmsb
IC_SDA=0;
unsignedcharIC_Read_Byte(void)//从8574读取一个数据
unsignedcharData;
if(IC_SDA)
SETBIT(Data,(7-i));
//datainmsbtoo
CLRBIT(Data,(7-i));
return(Data);
voidIC_Write_Data(unsignedcharData)
unsignedcharwrite_time;
unsignedcharwrite_data;
write_data=Data;
for(write_time=0;
write_time<
=2;
write_time++)
IC_Start();
IC_Write_Byte(0x40);
IC_Receive_Ack();
IC_Write_Byte(write_data);
unsignedcharIC_Read_Data(void)
unsignedcharReturn_Data;
unsignedcharread_time;
for(read_time=0;
read_time<
read_time++)
IC_Write_Byte(0x41);
Return_Data=IC_Read_Byte();
IC_Send_NAck();
IC_Stop();
if(IC_Err_Flag==0)
return(Return_Data);
break;
voidPCF8574」nit(void)
IC_Write_Data(OxfO);
//输入状态的必须开始的时候置为1,输出为0
voidmain(void)
unsignedchartemp3;
Timer。
」nit();
PCF8574_Init();
while
(1)
temp3=IC_Read_Data();
IC_Write_Data(OxOf);
;
中间可以添加你需要的模块,比如显示或者其他的操作等
/*********************************************************
*中断服务子程序*
*********************************************************/
externvoidexternalO_rt(void)interrupt0//INT0
externvoideit0_rt(void)interrupt1//T0,标准,定时中断
TL0=0x0c;
IC_Re_Time++;
voidexternal1_rt(void)interrupt2using1//INT1
voideit1_rt(void)interrupt3using1//T1,标准
voidsci_rt(void)interrupt4using1//UART
voidPCA_rt(void)interrupt6using1//PCA
voidKBDIT_rt(void)interrupt7using〔//keyboard
voidspi_rt(void)interrupt9using1//SPI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- I2C 接口 输入 输出 驱动 PCF8574