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