從業(yè)近十年!手把手教你單片機程序框架 第49講
開場白:
DS18B20是一款常用的溫度傳感器芯片,它只占用單片機一根IO口,使用起來也特別方便。需要特別注意的是,正因為它只用一根IO口跟單片機通訊,因此讀取一次溫度值的通訊時間比較長,而且時序要求嚴格,在通訊期間不允許被單片機其它的中斷干擾,因此在實際項目中,系統(tǒng)一旦選用了這款傳感器芯片,就千萬不要選用動態(tài)掃描數(shù)碼管的顯示方式。否則在關(guān)閉中斷讀取溫度的時候,數(shù)碼管的顯示會有略微的“閃爍”現(xiàn)象。
DS18B20的測溫范圍是-55度至125度。在-10度至85度的溫度范圍內(nèi)誤差是+-0.5度,能滿足大部分常用的測溫要求。
這一節(jié)要教會大家三個知識點:
第一個:大概了解一下DS18B20的驅(qū)動程序。
第二個:做溫控設(shè)備的時候,為了避免繼電器在臨界溫度附近頻繁跳動切換,應(yīng)該設(shè)置一個緩沖溫差。本程序的緩沖溫差是2度。
第三個:繼續(xù)加深了解按鍵,顯示,傳感器它們?nèi)呤侨绾尉o密關(guān)聯(lián)起來的程序框架。
具體內(nèi)容,請看源代碼講解。
(1) 硬件平臺.
基于朱兆祺51單片機學(xué)習(xí)板。
(2)實現(xiàn)功能:
本程序只有1個窗口。這個窗口有2個局部顯示。
第1個局部是第7,6,5位數(shù)碼管,顯示設(shè)定的溫度。
第2個局部是第4,3,2,1位數(shù)碼管,顯示實際環(huán)境溫度。其中第4位數(shù)碼管顯示正負符號位。
S1按鍵是加鍵,S5按鍵是減鍵。通過它們可以直接設(shè)置“設(shè)定溫度”。
一個LED燈用來模擬工控的繼電器。
當(dāng)實際溫度低于或者等于設(shè)定溫度2度以下時,模擬繼電器的LED燈亮。
當(dāng)實際溫度等于或者大于設(shè)定溫度時,模擬繼電器的LED燈滅。
當(dāng)實際溫度處于設(shè)定溫度和設(shè)定溫度減去2度的范圍內(nèi),模擬繼電器的LED維持現(xiàn)狀,這個2度范圍用來做緩沖溫差,避免繼電器在臨界溫度附近頻繁跳動切換。
(3)源代碼講解如下:
總結(jié)陳詞:
下一節(jié)開始講單片機采集模擬信號的內(nèi)容,欲知詳情,請聽下回分解-----利用ADC0832采集電壓的模擬信號。