下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 I2C 总线8 位远程I-O 扩展口芯片PCF8574 的原

I2C 总线8 位远程I-O 扩展口芯片PCF8574 的原.pdf

I2C 总线8 位远程I-O 扩展口芯片PCF8574 的原

hotyong
2012-04-06 0人阅读 举报 0 0 暂无简介

简介:本文档为《I2C 总线8 位远程I-O 扩展口芯片PCF8574 的原pdf》,可适用于IT/计算机领域

广州周立功单片机发展有限公司Tel()Fax()http:wwwzlgmcucomIC总线位远程IO扩展口芯片PCF的原理与应用摘要本文概括介绍了PCFIO扩展口芯片的特点和基本组成通过实例详细说明了有关功能的应用软件关于PCF的详细位控功能请参考PHILIPS公司的相应产品资料一概述PCF是PHILIPS公司推出的一款带IC总线,具有CMOS电路可使大多数MCU实现远程IO口扩展该器件包含一个位准双向口和一个IC总线接口PCF电流消耗很低且口输出锁存具有大电流驱动能力可直接驱动LED它还带有一条中断接线INT可与MCU的中断逻辑相连通过INT发送中断信号远端IO口不必经过IC总线通信就可通知MCU是否有数据从端口输入这意味着PCF可以作为一个单被控器下面将主要的性能指标作一综合操作电压~V低备用电流AIC并行口扩展电路开漏中断输出IC总线实现位远程IO口与大多数MCU兼容口输出锁存具有大电流驱动能力可直接驱动LED通过个硬件地址引脚可寻址个器件PCFA可多达个DIPSO或SSOP形式封装二PCF的基本组成管脚标号SO描述A地址输入A地址输入A地址输入P准双向IO口P准双向IO口P准双向IO口P准双向IO口VSS地P准双向IO口P准双向IO口P准双向IO口P准双向IO口INT中断输出低电平有效SCL串行时钟线SDA串行数据线VDD电源广州周立功单片机发展有限公司Tel()Fax()http:wwwzlgmcucom三PCF与微控制器的接口软件及功能应用举例按IC总线规约PCF的器件地址为h,PCFA的器件地址为h,当然,由于硬件地址引脚AA可寻址个器件,所以器件地址并不唯一,例如:A接GND,A接VCC,A接VCC,则PCF的器件地址为Ch下面首先给出基本的应用原理图(以个按键输入和个LED为例)然后说明各种功能的应用PCF应用电路原理图PLPC采用内部振荡内部复位电路作为准双向口输出作为准双向口扩展功能使用时无需任何控制寄存器来进行输入或输出设定参照上面的原理图举例说明作为输出控制LED的设定欲使LEDLED亮LEDLED灭软件模块如下OutputControl:MOVSlvAdr,#h取PCF的器件地址MOVByteCnt,#传送字节个数为广州周立功单片机发展有限公司Tel()Fax()http:wwwzlgmcucomMOVXmtDat,#Fh传送的字节内容为#Fh并口PP的输出值为�ACALLSendData调用数据发送模块RET返回调用处作为准双向口输入作为准双向口扩展功能使用时无需任何控制寄存器来进行输入或输出设定参照上面的原理图举例说明作为按键输入的设定首先请用户特别注意PCF的INT输出在上电复位或进行了输出操作之后一直保持低电平因此用户在进行输入操作之前如果想等待INT中断再处理的话必须进行输入检测之前的预操作之后可采取查询或中断方式来判断INT输出InputCheck:MOVSlvAdr,#h取PCF的器件地址MOVByteCnt,#传送字节个数为ACALLRcvData调用数据接收模块接收预处理完毕JBP,$PCF无数据输出则在此等待MOVByteCnt,#接收字节个数为ACALLRcvData调用数据接收模块RET返回调用处以上程序调用了IC总线的基本数据发送(SendData)和接收(RcvData)模块,这些模块的源程序清单以及MCU的内部RAM定义在附录中给出附录IC总线数据发送与接收模块源程序清单IC总线模块化程序ZMICV**********************************************************************************************LPC单主控器模拟IC总线发送接受数据程序说明本程序是利用Philip公司的PLPC单片机的IO口(如PP)模拟实现IC总线的功能对IC总线上的器件本程序采用PCF进行读写操作当然用户有兴趣的话也可采用硬件IC总线控制寄存器来编写控制程序被控器地址在SlvAdr所发送的数据字节数在ByteCnt中所发送的数据在XmtDat中接收的数据在RcvDat中**************************************************************************************************LPC单主控器模拟IC总线发送接受数据程序头文件内存数据定义BitCntDATAHIC数据位计数器ByteCntDATAHIC数据字节计数器SlvAdrDATAH被控器地址RcvDatDATAH接收数据缓冲区XmtDatDATAH发送数据缓冲区广州周立功单片机发展有限公司Tel()Fax()http:wwwzlgmcucom端口位定义SDABITP模拟IC数据传送位SCLBITP模拟IC时钟控制状态标志ACKBITH接收数据非应答标志**************************************************************************************************发送数据程序名称:SendData描述:发送ByteCnt个字节给被控器PCF被控器地址在SlvAdr中所发送数据的字节数ByteCnt在中发送的数据在XmtDat缓冲区中发送数据正常返回标志F=F=表示被控器无应答或损坏*************************************************************************************************SendData:ACALLSTART发送IC总线起始条件MOVA,SlvAdr取被控器总线地址ACALLSentByte发送被控器总线地址JBF,SendReturn出错返回MOVR,#XmtDat取发送数据缓冲区首址SentNext:MOVA,RACALLSentByte发送一次数据JBF,SendReturn出错返回INCR取下一个数据DJNZByteCnt,SentNext重复操作直到发送完最后一个数据ACALLSTOP发送IC总线停止条件Delay:MOVR,#H延时ms,等待数据写完D:MOVR,#HD:DJNZR,DDJNZR,DSendReturn:RET***************************************************************************************************接收数据程序名称:RcvData描述:从被控器PCF接收ByteCnt个字节数据被控器地址在SlvAdr中所接收数据的字节数ByteCnt在中接收的数据在RcvDat缓冲区中接收数据正常返回标志F=F=表示被控器无应答或损坏**************************************************************************************************广州周立功单片机发展有限公司Tel()Fax()http:wwwzlgmcucomRcvData:ACALLSTART发送IC总线重复起始条件MOVA,SlvAdr取被控器总线地址SETBACC取总线读操作位ACALLSentByte发送被控器总线地址JBF,RcvReturn出错返回CLRACK清接收非应答标志准备接收数据MOVR,#RcvDat取接收数据缓冲区首址DJNZByteCnt,RcvNext如果还未接收数据则转去接收前ByteCnt)个数据SJMPRcvLast只剩最后一个数据未接收转去接收最后一个数据RcvNext:ACALLRcvByte接收数据MOVR,A将数据放入接收缓冲区中INCR指向下一个缓冲区地址DJNZByteCnt,RcvNext重复操作直到剩下最后一个数据RcvLast:SETBACK置接收非应答标志准备在接收完最后一个数据后发出非应答信号以停止接收数据ACALRcvByte接收最后一个数据MOVR,A将最后一个数据放入接收缓冲区中ACALLSTOP发送IC总线停止条件RcvReturn:RET****************************************************************************************************子程序***************************************************************************************************名称:START描述:启动IC总线子程序发送IC起始条件START:SETBSDA发送起始条件的数据信号NOPSETBSCL发送起始条件的时钟信号NOP起始条件建立时间大于sNOPNOPNOPNOPCLRSDA发送起始信号NOP起始条件锁定时间大于sNOP广州周立功单片机发展有限公司Tel()Fax()http:wwwzlgmcucomNOPNOPNOPCLRSCL钳住IC总线准备发送或接收数据RET名称:STOP描述:停止IC总线子程序发送IC总线停止条件STOP:CLRSDA发送停止条件的数据信号NOPSETBSCL发送停止条件的时钟信号NOP起始条件建立时间大于sNOPNOPNOPNOPSETBSDA发送IC总线停止信号NOPNOPNOPNOPRET名称:SentByte描述:字节数据传送子程序发送一个字节数据或地址给被控器PCF要发送的数据在ACC中发送数据正常返回标志F=F=表示被控器无应答或损坏SentByte:MOVBitCnt,#H要传送的数据长度为位SentB:RLCA要发送的数据左移,发送位入CJCSent发送位为“”转发送数据位“”CLRSDA发送数据位“”SJMPSent转发送数据位Sent:SETBSDA发送数据位“”NOPSent:NOP广州周立功单片机发展有限公司Tel()Fax()http:wwwzlgmcucomSETBSCL置时钟线为高通知被控器开始接收数据位NOP保证时钟高周期大于sNOPNOPNOPNOPCLRSCL钳住总线准备接收下一个数据位DJNZBitCnt,SentB位没发送完继续发送NOPNOPSETBSDA位发送完后释放数据线准备收应答位NOPNOPSETBSCL开始接收应答信号NOPNOPCLRF预先清发送数据出错标志JNBSDA,AckEnd判断是否接收到应答信号正常转AckEndSETBF未收到应答置位错误标志AckEnd:NOPCLRSCL发送结束钳住总线准备下一步发送或接收数据或进行其它处理RET名称:RcvByte描述:字节数据接收子程序从被控器PCF接收一个字节数据然后根据主程序要求发送应答位接收的字节数据在ACC中RcvByte:SETBSDA置数据线为输入方式MOVBitCnt,#H要传送的数据长度为位Rcv:NOPCLRSCL置时钟线为低准备接收数据位NOP时钟低周期大于sNOPNOPNOPNOPSETBSCL置时钟线为高使数据线上数据有效NOPNOP广州周立功单片机发展有限公司Tel()Fax()http:wwwzlgmcucomCLRC准备将接收的数据位放入ACC中JNBSDA,Rcv读数据位若为“”则置C=并转Rcv接收数据位SETBC读数据位若为“”则置C=Rcv:RLCA接收的数据位放入ACC中NOPNOPDJNZBitCnt,Rcv位没收完继续接收CLRSCL位接收完置时钟线和数据线为低准备发送应答或非应答信号NOPNOPNOPCLRSDAJNBACK,SentAckB判断是否需要继续接收字节数据若需要则转SentAckB发送应答位SETBSDA发送非应答信号SentAckB:以下程序发送应答位NOPNOPSETBSCL置时钟线为高使应答位有效NOP时钟高周期大于sNOPNOPNOPNOPCLRSCL清时钟线钳住IC总线以便继续接收字接数据或发送停止条件CLRACK清接收非应答标志RET===================================================================================================END

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/8

I2C 总线8 位远程I-O 扩展口芯片PCF8574 的原

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利