×
单片机 > 单片机程序设计 > 详情

51单片机-IIC

发布时间:2020-08-21 发布时间:
|
IIC(Inter-Intergrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线。用于连接微控制器及其外围设备。IIC只需两根线SDA(数据线),SCL(时钟)。IIC支持多主控,当然,在任何时间点上只能有一个主控,而SPI是一主多从。IIC各种被控制电路均并联在这条总线上,每个模块和电路都有唯一的地址。SPI是通过CS进行片选,有多少个SPI就要占用多少口。IIC总线在传输数据过程中有3个信号,它们分别是:开始信号,结束信号和应答信号。  



   
IIC支持多主和主从工作方式,通常为主从工作方式。在主从工作方式中,系统中只有一个主器件(单片机),其它器件都是具有IIC总线的外围从器件。在主从工作方式中,主器件启动数据的发送(发出启动信号),产生时钟信号,发出停止信号。     开始信号:SCL为高电平,SDA由高电平向低电平跳变,开始传送数据     结束信号:SCL为高电平,SDA由低电平向高电平跳变,结束传送数据     应答信号:接受数据的IC在接受到8bit数据后,向发送数据的IC发送特定的低电平脉冲,表示已经接收到数据。CPU向受控单元发送一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况做出是否继续传送数据的判断。若未收到应答信号,由判断为受控单元出现故障。    

这些信号中开始信号是必须的,结束信号和应答信号都可以不要。  

IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟信号为低电平期间,数据线上的高电平或低电平状态才允许变化。      


  
IIC总线协议规定,每传送一个字节数据后,都要有一个应答信号,以确定数据传送是否被对方收到。应答信号由接受设备产生,在SCL信号为高电平期间,接受设备将SDA拉为低电平,表示数据传输正确,产生应答。  



许多单片机并不具有IIC总线接口,如51单片机。  

单片机模拟IIC总线通信:  

启动代码:     void start(){
    SDA = 1;
    delay();
    SCL = 1;
    delay();
    SDA = 0;
    delay();
}

  停止代码:

  
    void stop(){
    SDA = 0;
    delay();
    SCL = 1;
    delay();
    SDA = 1;
    delay();
}
关键字:51单片机  IIC  串行总线 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32中断向量表的位置.重定向