纯单片机干不了大事,必须得配上各种外设,那么了解单片机与传感器之间的数据通讯就显得必不可少了。常见的单片机数据通讯方法有SPI,IIC,RS232,单总线等等。每种通讯方法都有相应的时序图,剖析时序图并完结代码的编写是单片机学习者的必修课。本文以DS18B20为例剖析一下单总线数据传输,完好的程序以及仿真的下载链接:单片机单总线数据通讯比如程序及仿真.zip
DS18B20是单总线数据传输,因而关于时序的要求就十分的高,学会剖析其时序图是十分有必要的。
1.初始化时序图剖析:
首先是由总线控制器拉低总线,保持480us。在480us后开释总线,由上拉电阻讲总线拉高。等候5-60us后,DS18B20开端呼应,会将数据总线拉低60-240us.之后便开释总线,由上拉电阻拉高总线。转换为代码如下:
u8 dsbInit() //初始化,回来0表明DS18B20无反响,反之有呼应
{
dsbDQStat(0); //控制器拉低总线
delay500us(); //拉低总线一段时间
dsbDQStat(1); //开释总线
delay60us(); //等候DS18B20呼应
if(dsb_DQ) //假如没有相应直接回来0
{
return 0;
}
delay240us(); //有呼应则等候呼应完毕
return 1; //回来初始化状况
}
2.读时序图剖析: