我們生活中經常遇到需要測量兩種溫度的情況,比如測居室的内外溫度、小車的内外溫度等。筆者制作了一款同時測定室内、室外溫度的數字溫度計(見圖9.1),它利用1602顯示屏同時顯示室内外溫度,測溫快速、直觀。
硬件電路本制作的硬件電路如圖9.2所示。它由AT89S52單片機、2隻溫度傳感器DS18B20以及LCD1602顯示屏構成。工作時,IC1和IC2中的傳感器把測得的溫度轉換成數字信号傳到單片機IC3,單片機通過數值轉換後,再調用相應的顯示程序驅動顯示器件IC4,把溫度值顯示出來。IC1、IC2中的兩個傳感器将室内外溫度轉換成十六進制,占兩個字節的數字信号。IC1、IC2的I/O口分别接單片機的P3.6、P3.7口,避免單口測定DS18B20序列号的麻煩。
圖9.1 室内外雙顯溫度計
電路采用6V的幹電池供電,整機用電約15mA。電源電壓經二極管VD降壓後為電路提供5V的電壓。為了節約用電,這裡接有開關S,可以讓電池間歇工作,延長電池壽命。C1和R1組成複位電路,每次使用前讓單片機複位。C2、C3、B為振蕩電路,晶體振蕩器為12MHz。
單片機IC3的P3.2、P3.3、P3.4接口分别接IC4的RS、RW、E接口,由于這些接口用于定義寄存器、信号讀寫以及是否執行指令等,故不能接錯。單片機的數據接口P2.0~P2.7與IC4的D0~D7連接,主要用于傳送顯示的數據和各種指令。
圖9.2
圖9.3
軟件設計本電路用單片機的兩個I/O口控制2個DS1820傳感器。單片機對液晶屏1602進行初始化,并進行讀寫操作,最後将數據轉換為十進制數送到顯示屏顯示出内外溫度值。軟件的主流程圖如圖9.3所示。為了穩定地顯示溫度值,顯示字母(OUT、IN、℃)和溫度(如 025.5℃)的程序獨立執行,互相不幹擾。因此,它調用的子程序相對較長。由于要顯示兩種溫度,如DS18B20的初始化、精度設置、顯示地址、讀寫等程序都要執行2次,子程序相對較多。隻有16進制數轉化為十進制數隻執行一次。
由于1602字符庫無“℃”的符号,作者對字符庫中所有字符進行查找(包括英文字母大小寫、常用符号、日文假名),發現其中日文假名中的一個符号很接近“℃”中的“°”,于是将那個符号加上“C”即成符号“℃”,這樣就避免單獨編程的麻煩。
該溫度計設計精度為±0.5℃,分辨率在0.5℃,可以顯示-55~ 125℃的溫度值。
硬件制作圖9.4為筆者制作好的電路闆,采用萬能闆安裝元器件。1602顯示屏直接裝在萬能闆上,這樣可以減小軟線的移動,使電路工作更可靠。元件之間的連接盡量用背面的銅箔連線,點與點之間可以用焊錫絲連接。焊接時烙鐵的溫度不要太高,否則不易連接成功,背面焊錫連線如圖9.5所示。元件中,内溫傳感器IC1裝在電路闆的外側,外溫傳感器IC2用1m長的不同顔色三絞線,一端焊在傳感器DS18B20上,另一端焊在電路闆上,并用熱縮管套住DS1820防水,如圖9.6所示。
安裝單片機IC3需要先将一個40腳的雙排底座焊在電路闆上,這樣便于燒寫單片機時的插拔。開關S采用小型按鈕開關,上面套上按鈕套,這樣開關更方便。
元件和連線焊接完成後,需要檢查一遍,看焊接是否有錯誤,若無錯誤,通電即可工作,無需調試,通電後LCD1602顯示的效果如圖9.7所示。
如有條件,再找一個塑料外殼将電路闆裝入固定,塑料殼需要開一個開關孔,并且塑料殼靠傳感器IC1的一側再開一些小孔,便于DS18B20對環境溫度的檢測。裝入塑料殼的雙顯溫度計如題圖所示。實際使用時,把室外傳感器IC2裝在窗外,不靠牆,并且陽光不會直射到的地方即可。
圖9.4 制作好的電路正面
圖9.5 制作好的電路背面
圖9.6 用熱縮管套住 DS1820 防水
圖9.7 雙濕度顯示效果
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!