完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
IIC总线简介 1、IIC总线是一种由PHILIPS公司开发的两线式串行总线 2、IIC在硬件上是时钟总线SCL和数据总线SDA两条线构成 3、器件连接到总线都是SCL连到一起,SDA连到一起 4、任何器件都可以拉低总线的电平 IIC通信时序 IIC通信时序可分成4个部分: 1、开始信号:在SCL为高电平时,SDA产生一个下降沿 2、数据传输:在SCL为低电平时,SDA可以变化;在SCL为高电平时,读取SDA的状态 3、应答信号:先拉高SDA,然后拉高SCL,读取SDA的状态,假如是低电平说明这个地址上挂有器件,反之没有 4、结束信号:在SCL为低电平时,SDA产生一个上升沿 IIC总线寻址 这里以PCF8591为例: 1、AIN0、AIN1、AIN2、AIN3为输入端 2、AOUT为输出端 3、EXT为低电平时使用内部时钟,为高电平时使用外部时钟 4、A0、A1、A2为地址端口 5、OCS、VREF、AGND照着接相应电平就行 1、高4位是固定的:为1001 2、A2、A1、A0:这3位看器件上接的相应电平 3、R/W为读写位:0为写,1为读 主程序 /*读取是否有器件回应ACK*/ #include "reg52.h" #include "LCD1602.h" #include "IIC.h" unsigned char shu[5]; void main() { bit ack; InitLcd1602(); //初始化LCD1602这里没有给出 iic_Start(); //开始信号 ack = iic_SendByte(0x92); //读取ACK iic_Stop(); //结束信号 shu[0]= '9'; shu[1]= '2'; shu[2]= ':'; shu[3]= (unsigned char)ack+'0'; shu[4]= ' |