基于串口通信的單片機仿真和C語(yǔ)言開(kāi)發(fā)
1)先將數據線(xiàn)置高電平1;2) 延時(shí)(該時(shí)間要求不是很?chē)栏?,但是要盡可能短一些);3) 數據線(xiàn)拉到低電平0;4) 延時(shí) 750us(該時(shí)間范圍可以在480~960us);5) 數據線(xiàn)拉到高電平1;6)延時(shí)等待。如果初始化成功則在15~60ms內產(chǎn)生一個(gè)由DS18B20 返回的低電平0,據該狀態(tài)可以確定它的存在。但是要注意,不能無(wú)限地等待,不然會(huì )使程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)判斷;7) 若 CPU 讀到數據線(xiàn)上的低電平0 后,還要進(jìn)行延時(shí),其延時(shí)時(shí)間從發(fā)出高電平算起最少要480us;8)將數據線(xiàn)再次拉到高電平后結束。
2. DS18B20 寫(xiě)數據
圖3.3 寫(xiě)數據時(shí)序圖
1) 數據線(xiàn)先置低電平0;
2)延時(shí)確定的時(shí)間為15us;
3) 按從低位到高位的順序發(fā)送數據(一次只發(fā)送一位);
4) 延時(shí)時(shí)間為 45us;
5) 將數據線(xiàn)拉到高電平1;
6) 重復 1)到5)步驟,直到發(fā)送完整個(gè)字節;
7)最后將數據線(xiàn)拉高到1.
3. DS18B20 讀數據
圖3.4 讀數據時(shí)序圖
1)將數據線(xiàn)拉高為1;
2) 延時(shí) 2us ;
3) 將數據線(xiàn)拉低0 ;
4) 延時(shí) 6us ;
5) 將數據線(xiàn)拉高1 ;
6)延時(shí) 4us ;
7) 讀數據線(xiàn)的狀態(tài)得到1 個(gè)狀態(tài)位,并且進(jìn)行數據處理;
8) 延時(shí) 30us ;
9) 重復 1)到7)步,知道讀取完一個(gè)字節。
4 硬件設計
4.1 時(shí)鐘電路及復位電路
1.時(shí)鐘電路
時(shí)鐘電路可以產(chǎn)生CPU 校準時(shí)序,是單片機的控制核心,本次設計是通過(guò)外接12MHz的晶振來(lái)實(shí)現時(shí)鐘電路的時(shí)序控制。在使用片內振蕩器時(shí),XTAL1 和XTAL2 分別為反向放大器的輸入端和輸出端。外接晶體以及電容C3 和C5 構成并聯(lián)諧振電路,接在放大器的反饋回路中。當用外部時(shí)鐘驅動(dòng)時(shí),XTAL2引腳應懸空,而由XTAL1引腳上的信號驅動(dòng),外部振蕩器通過(guò)一個(gè)2 分頻的觸發(fā)器而成為內部時(shí)鐘信號,故對外部信號的占空比沒(méi)有什么要求,但最小和最大的高電平持續時(shí)間和低電平持續時(shí)間應符合技術(shù)要求。電路如圖4.1 所示。
圖 4.1 晶振電路
評論