久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8293|回復: 1
打印 上一主題 下一主題
收起左側

STM32 模塊篇-DS18B20實驗

[復制鏈接]
跳轉到指定樓層
樓主
ID:105323 發表于 2016-3-4 13:32 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
目     錄
5.04.1概述3
5.04.2 實驗目的5
5.04.3 硬件設計5
5.04.4 軟件設計6
5.04.5 STM32系統時鐘配置SystemInit()9
5.04.6  GPIO引腳時鐘使能9
5.04.7  GPIO管腳電平控制函數9
5.04.8 stm32f10x_it.c文件里的內容是10
5.04.9  ds18b20.h文件里的內容是10
5.04.10  ds18b20.c文件里的內容是11
5.04.11  main.c文件里的內容是16
5.04.12 程序下載18
5.04.13 實驗效果圖19
5.04 防水型DS18B20程序設計  
5.04.1概述


美國Dallas半導體公司生產的數字化溫度傳感器DS18B20,采用導熱性高的密封膠灌封,保證了溫度傳感器的高靈敏性,極小的溫度延遲。該溫度傳感器支持“一線總線”接口(1-Wire),現場溫度直接以“一線總線”的數字方式傳輸,大大提高了系統的抗干擾性。適合于惡劣環境的現場溫度測量。DS18B20數字溫度傳感器都具有唯一的編號,溫度采集設備通過編號來識別對應的溫度傳感器器。
?
在外設篇我們詳細介紹了DS18B20數字溫度傳感器,下面重復簡單介紹一下DS18B20獨特的優點:
( 1 )采用單總線的接口方式與微處理器連接時僅需要一條口線即可實現微處理器與 DS18B20的雙向通訊。單總線具有經濟性好,抗干擾能力強,適合于惡劣環境的現場溫度測量,使用方便等優點,使用戶可輕松地組建傳感器網絡,為測量系統的構建引入全新概念。
( 2 )測量溫度范圍寬,測量精度高 DS18B20 的測量范圍為 -55 ℃~+ 125 ℃ ; 在 -10~+ 85°C 范圍內,精度為 ± 0.5°C。
( 3 )在使用中不需要任何外圍元件。
( 4 )持多點組網功能 多個 DS18B20可以并聯在惟一的單線上,實現多點測溫。
( 5 )供電方式靈活 DS18B20可以通過內部寄生電路從數據線上獲取電源。因此,當數據線上的時序滿足一定的要求時,可以不接外部電源,從而使系統結構更趨簡單,可靠性更高。
( 6 )測量參數可配置 DS18B20 的測量分辨率可通過程序設定 9~12位。
( 7)負壓特性電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作。
( 8 )掉電保護功能 DS18B20 內部含有 EEPROM,在系統掉電以后,它仍可保存分辨率及報警溫度的設定值。
    DS18B20具有體積更小、適用電壓更寬、更經濟、可選更小的封裝方式,更寬的電壓適用范圍,適合于構建自己的經濟的測溫系統,因此也就被設計者們所青睞。
   防水探頭采用全新原裝進口DS18B20溫度傳感器芯片,芯片每個引腳均用熱縮管隔開,防止短路,內部封膠,防水防潮,不銹鋼頭常規的引線1米,鋼管Φ6*50mm。每個探頭經過嚴格測試,DC3.0V~5.5V供電。
5.04.2 實驗目的
通過我們選用的是防水型DS18B20傳感器,實驗時把它置于盛裝熱水(冷水)水杯中,測量水溫。我們設計好的程序把測量結果輸出打印至計算機顯示。觀察水溫的變化和傳感器的靈敏度是否符合要求。
5.04.3 硬件設計
選用大黃蜂實驗板,把防水型DS18B20通過PWM端子連接到實驗板上,通過程序設計把采集到的水溫打印輸出到計算機顯示。硬件設計見圖5.04.1 防水型DC18B20連線圖。
圖5.04.1  防水型DC18B20連線圖
?





5.04.4 軟件設計
5.04.4.1 軟件設計說明
   防水型DS18B20是采購的成品,直接和大黃蜂實驗板連接好后可以進行程序設計了,按照在《外設篇 10. STM32DS18B20溫度傳感工作原理》中的講解我們就可以很輕松編寫出這篇采集程序,我們還是采用庫函數的方式進行程序設計。
在這節程序設計中,用到了外部中斷函數;prinif 重定向打印輸出函數;USART串口通訊函數;定時器函數。
5.04.4.2 STM32庫函數文件


?
   本節實驗及以后的實驗我們都是用到庫文件,其中stm32f10x_gpio.h頭文件包含了GPIO端口的定義。stm32f10x_rcc.h頭文件包含了系統時鐘配置函數以及相關的外設時鐘使能函數,所以我們要把這兩個頭文件對應的stm32f10x_gpio.c和stm32f10x_rcc.c加到工程中;Misc.c庫函數主要包含了中斷優先級的設置,stm32f10x_exti.c庫函數主要包含了外部中斷設置參數,tm32f10x_tim.c庫函數主要包含定時器設置,tm32f10x_usart.c庫函數主要包含串行通訊設置,這些函數也要添加到函數庫中。以上庫文件包含了本次實驗所有要用到的函數使用功能。
5.04.4.3 自定義頭文件


?
                                 
   我們已經創建了兩個公共的文件,這兩個文件主要存放我們自定義的公共函數和全局變量,以方便以后每個功能模塊之間傳遞參數。


5.04.4.4 pbdata.h文件里的內容是



5.04.5 STM32系統時鐘配置SystemInit()
我們總在強調,每個工程都必須在開始時配置并啟動STM32系統時鐘,這次也不例外。
5.04.6  GPIO引腳時鐘使能



   本節實驗用到了PA端口,所以要把PA端口的時鐘打開;串口1時鐘源是通過APB2預分頻器得到的,串口1時鐘初始化;因為要與外部芯片通訊,所以要打開功能復用時鐘。
5.04.7  GPIO管腳電平控制函數
   在主程序中采用while(1)循環語句,等待外部中斷的到來后,主程序中讀取緩沖區的溫度值,并就打印輸出到屏幕。



5.04.8  stm32f10x_it.c文件里的內容是
在中斷處理stm32f10x_it.c文件里中僅串口1子函數非空,進入中斷處理函數后,只有串口1有參數輸出。


?

5.04.9  ds18b20.h文件里的內容是
函數ds18b20.h在這里是為了紅外程序自定義的功能函數,ds18b20.h的內容如下:


?

5.04.10  ds18b20.c文件里的內容是
我們先詳細介紹DS18B20時序圖,然后再按照時序圖要求編寫程序。
5.04.10.1  DS18B20初始化時序



?
(1).數據線拉到低電平“0”。
(2).延時480微妙(該時間的時間范圍可以從480到960微妙)。
(3).數據線拉到高電平“1”。
(4).延時等待80微妙。如果初始化成功則在15到60微妙時間內產生一個由DS18B20所返回的低電平“0”.根據該狀態可以來確定它的存在,但是應注意不能無限的進行等待,不然會使程序進入死循環,所以要進行超時判斷。
(5).若CPU讀到了數據線上的低電平“0”后,還要做延時,其延時的時間從發出的高電平算起(第(3)步的時間算起)最少要480微妙。
5.04.10.2  DS18B20讀時序



(1).將數據線拉低“0”。
(2).延時4微妙。
(3).將數據線拉高“1”,釋放總線準備讀數據。
(4).延時10微妙。
(5).讀數據線的狀態得到1個狀態位,并進行數據處理。
(6).延時45微妙。
(7).重復1~7步驟,直到讀完一個字節。




1).數據線先置低電平“0”
(2).延時15微妙。
(3).按從低位到高位的順序發送數據(一次只發送一位)。
(4).延時60微妙。
(5).將數據線拉到高電平。
(6).重復1~5步驟,直到發送完整的字節。
(7).最后將數據線拉高。
圖5.04.4  DS18B20寫時序
自定義函數ds18b20.c的內容如下:






5.04.11  main.c文件里的內容是


?

5.04.12 程序下載
在這一章節中要掌握DS18B20的工作時序,了解常用的溫度傳感器功能和原理。
請根據下圖所指向的7個重點區域配置。其中(1)號區域根據自己機器的實際情況選擇,我的機器虛擬出來的串口號是COM3。(2)號區域請自己選擇程序代碼所在的文件夾。(7)號區域當程序下載完后,進度條會到達最右邊,并且提示一切正常。(4、5、6)號區域一定要按照上圖顯示的設置。當都設置好以后就可以直接點擊(3)號區域的開始編程按鈕下傳程序了。


?
本節實驗的源代碼在光盤中:(LY-STM32 光盤資料\1.課程\2,外設篇\模塊篇04.防水DS18B20溫度傳感器實驗\程序)
5.04.13 實驗效果圖
把防水溫度計放入盛溫水的燒杯中,如“圖5.04.13.1 防水DS18B20測試水溫實驗效果圖”,打開眾想科技多功能監控軟件,然后打開串口,我們在接收區可以觀察到實測采集到的水溫數據,水溫大約60攝氏度左右,說明我們防水型DS18B20工作正常,程序編寫的很成功。


[url=]
[/url]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:218534 發表于 2017-8-18 11:31 | 只看該作者
你好,想問一下,我用的是正點原子的ds18b20的程序,一個板子用的是STM32F103RBT6的芯片,可以正常都去溫度,可是用stm32f103c8t6的芯片就不能正常讀取,是什么原因?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品www| 国产欧美在线播放 | 高清亚洲| 日韩美女在线看免费观看 | 免费在线精品视频 | 国产精品亚洲视频 | 日韩精品久久久 | 成人免费一区二区三区视频网站 | 日韩视频在线播放 | 精品免费国产一区二区三区 | 国产高清精品在线 | 亚洲天堂中文字幕 | 狠狠的日 | 亚洲国产成人精品女人 | 国产一极毛片 | 日韩精品一区二区三区中文在线 | 国产欧美日韩一区二区三区 | 精一区二区 | 日韩精品1区2区3区 国产精品国产成人国产三级 | 日韩欧美视频网站 | 日本a在线 | 久久精品亚洲精品 | 国产分类视频 | 国产综合久久久久久鬼色 | 综合色导航 | 亚洲性人人天天夜夜摸 | 亚洲精品乱码久久久久久蜜桃 | 五月天婷婷狠狠 | 日韩网站在线观看 | 久久精品一区二区 | 亚洲视频一区 | 国产精品伦一区二区三级视频 | 欧美一区免费在线观看 | 亚洲国产精品精华素 | 天天干,夜夜操 | 亚洲黄色成人网 | 久久久久国产精品 | 国产一区二区三区免费视频 | 久草在线| 二区三区视频 | 国产午夜久久 |