例說(shuō)單片機數據通信之單總線(xiàn)數據傳輸
純單片機干不了大事,必須得配上各種外設,那么了解單片機與傳感器之間的數據通信就顯得必不可少了。常見(jiàn)的單片機數據通信方式有SPI,IIC,RS232,單總線(xiàn)等等。每種通信方式都有相應的時(shí)序圖,分析時(shí)序圖并完成代碼的編寫(xiě)是單片機學(xué)習者的必修課。本文以DS18B20為例分析一下單總線(xiàn)數據傳輸,完整的程序以及仿真的下載鏈接:?jiǎn)纹瑱C單總線(xiàn)數據通信例子程序及仿真.zip
本文引用地址:http://dyxdggzs.com/article/203009.htm
DS18B20是單總線(xiàn)數據傳輸,因此對于時(shí)序的要求就非常的高,學(xué)會(huì )分析其時(shí)序圖是非常有必要的。
1.初始化時(shí)序圖分析:

首先是由總線(xiàn)控制器拉低總線(xiàn),維持480us。在480us后釋放總線(xiàn),由上拉電阻講總線(xiàn)拉高。等待5-60us后,DS18B20開(kāi)始響應,會(huì )將數據總線(xiàn)拉低60-240us.之后便釋放總線(xiàn),由上拉電阻拉高總線(xiàn)。轉換為代碼如下:
u8 dsbInit() //初始化,返回0表示DS18B20無(wú)反應,反之有響應
{
????? dsbDQStat(0); //控制器拉低總線(xiàn)
????? delay500us(); //拉低總線(xiàn)一段時(shí)間
????? dsbDQStat(1); //釋放總線(xiàn)
????? delay60us(); //等待DS18B20響應
????? if(dsb_DQ) //如果沒(méi)有相應直接返回0
????? {
????? return 0;
}
delay240us(); //有響應則等待響應結束
return 1; //返回初始化狀態(tài)
}
2.讀時(shí)序圖分析:

單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
上拉電阻相關(guān)文章:上拉電阻原理
評論