单片机应用技术 课程设计 设计一个多功能智能控制器(拓展项目) 7.1 单片机与其它智能外设的通讯 - 单总线.pptxVIP

  • 3
  • 0
  • 约3.62千字
  • 约 25页
  • 2021-03-03 发布于北京
  • 举报

单片机应用技术 课程设计 设计一个多功能智能控制器(拓展项目) 7.1 单片机与其它智能外设的通讯 - 单总线.pptx

单总线通讯与编程主讲人:陈静常见的智能芯片与智能传感器比如万年历芯片1302、称重传感器、超声波传感器角度传感器蓝牙设备等等单片机与其它智能芯片的通讯方式分类1、收发之间仅用1根线(加一根地线)进行通信。例如:红外遥控器、温度计18b20等等。2、两根线的I2C总线。例如:万年历芯片13023、四根线的SPI总线(单片机内部自带)。例如万年历芯片:4、串行通讯模式(单片机内部自带)。部分蓝牙传输芯片、声控芯片等等5、其它时序图模式。比如:部分称重传感器、音量调节芯片等等。单总线原理与编程 收发之间仅用1根线(加一根地线)进行通信。在单总线中收发双方是通过数据线上的高低电平占空比来区分1和0的。 典型应用案例有:红外遥控和温度传感器18B20 单总线原理与编程 收发之间仅用1根线(加一根地线)进行通信。在单总线中收发双方是通过数据线上的高低电平占空比来区分1和0的。 典型应用案例有:红外遥控和温度传感器18B20 它们好比我们打电话的过程类似,有这样几个流程:单总线原理与编程 收发之间仅用1根线(加一根地线)进行通信。在单总线中收发双方是通过数据线上的高低电平占空比来区分1和0的。 典型应用案例有:红外遥控和温度传感器18B20 它们好比我们打电话的过程类似,有这样几个流程:所有环节有固定的时序,以温度传感器18B20与单片机的通讯为例说明。单总线原理与编程 数据线空闲时为高电平,谁发数据谁控制总线。相当于单总线上主叫方的复位: 把总线拉低480~960微秒后拉高数据线为高电平。单总线原理与编程 数据线空闲时为高电平,谁发数据谁控制总线。相当于单总线上主叫方的复位: 把总线拉低480~960微秒后拉高数据线为高电平。单总线原理与编程 数据线空闲时为高电平,谁发数据谁控制总线。bit ResetDS18B20(){ unsigned char answerflag; DQ=1; //拉高总线 Delay2us(); DQ=0; //拉低总线 Delay600us(); //延时 480-960us DQ=1; //拉高总线 延时15-60us后等待响应 Delay40us(); answerflag=DQ; //采集应答信号 Delay200us(); Delay375us(); return answerflag;} 被叫方也叫从机,检测到480~960微秒的低电平,会主动把总线拉低。 主机检测到总线为低电平后,认为从机的应答结束。主机准备发数据。单总线原理与编程 数据线空闲时为高电平,谁发数据谁控制总线。bit ResetDS18B20(){ unsigned char answerflag; DQ=1; //拉高总线 Delay2us(); DQ=0; //拉低总线 Delay600us(); //延时 480-960us DQ=1; //拉高总线 延时15-60us后等待响应 Delay40us(); answerflag=DQ; //采集应答信号 Delay200us(); Delay375us(); return answerflag;} 被叫方也叫从机,检测到480~960微秒的低电平,会主动把总线拉低。 主机检测到总线为低电平后,认为从机的应答结束。主机准备发数据。单总线原理与编程 数据线空闲时为高电平,谁发数据谁控制总线。bit ResetDS18B20(){ unsigned char answerflag; DQ=1; //拉高总线 Delay2us(); DQ=0; //拉低总线 Delay600us(); //延时 480-960us DQ=1; //拉高总线 延时15-60us后等待响应 Delay40us(); answerflag=DQ; //采集应答信号 Delay200us(); Delay375us(); return answerflag;} 被叫方也叫从机,检测到480~960微秒的低电平,会主动把总线拉低。 主机检测到总线为低电平后,认为从机的应答结束。主机准备发数据。单总线原理与编程 数据线空闲时为高电平,谁发数据谁控制总线。bit ResetDS18B20(){ unsigned char answerflag; DQ=1; //拉高总线 Delay2us(); DQ=0; //拉低总线 Delay600us(); //延时 480-960us DQ=1; //拉高总线 延时15-60us后等待响应 Delay40us(); answerflag=DQ; //采集应答信号 Delay200us(); Delay375us(); return answerflag;} 被叫方也叫从机,检测到480~960微秒的低电

文档评论(0)

1亿VIP精品文档

相关文档