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

上传资料

关闭

关闭

关闭

封号提示

内容

首页 [经典]i2c总线8位远程io扩大口芯片pcf8574的驱动法度模范

[经典]i2c总线8位远程io扩大口芯片pcf8574的驱动法度模范.doc

[经典]i2c总线8位远程io扩大口芯片pcf8574的驱动法…

心很干净
2017-09-30 0人阅读 举报 0 0 暂无简介

简介:本文档为《[经典]i2c总线8位远程io扩大口芯片pcf8574的驱动法度模范doc》,可适用于综合领域

经典ic总线位远程io扩大口芯片pcf的驱动法度模范IC总线位远程IO扩展口芯片PCF的驱动程序名称:PCF(A)cIC扩展位IO芯片的接口程序编程:不详日期:发现问题请指点谢谢~CPU:CMHz环境:KeilCV引脚定义:CPUPPCFXSCL时钟CPUPPCFXSDA数据CPUPPCFXINT中断#include<Publich>#include<Intrinsh>#include"delaysh"#include"pcfh"PCF(A)芯片指令的定义#definePCFWRITEx器件地址=AAArw#definePCFREADx器件地址=AAArw#definePCFAWRITEx器件地址=AAArw#definePCFAREADx器件地址=AAArw#definePCFXREGISTERADDRMAX器件内部寄存器地址的最大值内部函数staticvoidicstartcond(void)staticvoidicstopcond(void)staticucharicreadbyte(void)staticucharicreadbytenack(void)staticvoidicwritebyte(ucharda)=============================================================================接口调用函数部分*******************************************************序号:HDPCFXS功能:读出芯片的复位状态输入:ispcfa=是A芯片addofpart器件的子地址~输出:端口的数据********************************************************ucharPCFXreadio(ucharispcfa,ucharaddofpart){uchariicstartcond()if(ispcfa!=){icwritebyte(PCFAREAD|((addofpart<<)xE))器件地址=AAArw}else{icwritebyte(PCFREAD|((addofpart<<)xE))器件地址=AAArw}i=icreadbytenack()顺序读的方式读出一个字节icstopcond()return(i)}*******************************************************序号:HDPCFXS功能:写数据到IO端口输入:ispcfa=是A芯片addofpart:器件的子地址~dat:写入的字节输出:无********************************************************voidPCFXwriteio(ucharispcfa,ucharaddofpart,uchardat){icstartcond()if(ispcfa!=){icwritebyte(PCFAWRITE|((addofpart<<)xE))器件地址=AAArw}else{icwritebyte(PCFWRITE|((addofpart<<)xE))器件地址=AAArw}icwritebyte(dat)icstopcond()}==============内部调用函数部分==============IC发启始条件:时钟线为高时数据线发生下降沿跳变staticvoidicstartcond(void){CODESCLLOWDELAYNOPCODESDAHIGHDELAYNOPCODESCLHIGHDELAYNOPCODESDALOWDELAYNOP}IC发结束条件:时钟线为高时数据线发生上升沿跳变staticvoidicstopcond(void){CODESCLLOWDELAYNOPCODESDALOWDELAYNOPCODESCLHIGHDELAYNOPCODESDAHIGHDELAYNOP}IC读取一个中间字节的数据*staticucharicreadbyte(void){uchariucharda=for(i=i<i){da<<=传输的数据高位在前CODESCLLOWDELAYNOPCODESCLHIGH时钟为高时读数据NOPif(JUDGEPCFXSDA)da}CODESCLLOWDELAYNOPCODESDALOW发送应答位DELAYNOPCODESCLHIGHDELAYNOPCODESCLLOWDELAYNOPCODESDAHIGHreturn(da)}*IC读取一个结尾字节的数据staticucharicreadbytenack(void){uchariucharda=for(i=i<i){da<<=CODESCLLOWDELAYNOPCODESCLHIGHNOPif(JUDGEPCFXSDA)da}CODESCLLOWDELAYNOPCODESDAHIGHDELAYNOPCODESCLHIGHDELAYNOPCODESCLLOWreturn(da)}IC写入一个字节的数据staticvoidicwritebyte(ucharda){ucharifor(i=i<i){CODESCLLOWif(dax){CODESDAHIGH}else{CODESDALOW}CODESCLHIGHda<<=}CODESCLLOW第个SCL下降沿,写入位数据DELAYNOPCODESDAHIGHDELAYNOPCODESCLHIGH}=============================================================================EndOfFile

用户评价(0)

关闭

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

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

提示

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

文档小程序码

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

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/9

[经典]i2c总线8位远程io扩大口芯片pcf8574的驱动法度模范

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利