基于單片機(jī)AT89C2051的數(shù)字溫度計(jì)設(shè)計(jì)
單片機(jī)控制已成為今天電子設(shè)計(jì)追-求的目標(biāo)之一,本文將這種控制技術(shù)應(yīng)用于溫度測(cè)量中。AT89C2051是美國Atmel公司生產(chǎn)的低電壓、高性能CMOS8位單片機(jī),片內(nèi)含有2 KB的反復(fù)擦寫的只讀程序存儲(chǔ)器和128 B的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM)。美國DALLAS半導(dǎo)體公司生產(chǎn)的DSl-8B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能傳感器。數(shù)字溫度計(jì)是以DS18B20為檢測(cè)元件,由AT89C2051作為主控制器的溫度計(jì),具有功耗低、結(jié)構(gòu)簡(jiǎn)單、讀數(shù)方便、測(cè)溫范圍廣、測(cè)溫準(zhǔn)確的特點(diǎn)。
1 電路構(gòu)成及工作原理
1.1 硬件設(shè)計(jì)
由AT89C2051構(gòu)成的溫度計(jì)主要由三部分組成:DSl8B20溫度傳感器、單片機(jī)AT89C2051、由LED數(shù)碼管構(gòu)成的顯示模塊。其系統(tǒng)原理框圖如圖1所示。DSl8B20作為單片機(jī)AT89C2051的外部信號(hào)源,把所采集到的溫度轉(zhuǎn)換為數(shù)字信號(hào),通過I/O接口傳給2051,2051啟動(dòng)ROM內(nèi)的控制程序驅(qū)動(dòng)LED數(shù)碼管,通過I/O接口和數(shù)據(jù)線(單片機(jī)和數(shù)碼管的接口)把數(shù)據(jù)傳送給數(shù)碼管,將采集到的溫度顯示出來。
1.2 總電路圖
基于AT89C2051的溫度測(cè)量系統(tǒng)電路圖把溫度轉(zhuǎn)化成帶符號(hào)的數(shù)字信號(hào)(以十六位補(bǔ)碼形式,占兩個(gè)字節(jié)),若采用帶屏蔽的雙絞電纜線,連線的長度可以達(dá)到150 m,輸出腳I/0直接與單片機(jī)的P3.4相連,R1為上拉電阻,傳感器采用外部電源供電。AT89C2051是整個(gè)系統(tǒng)的核心部分,內(nèi)含2 KB的FLASH ROM,用戶程序存放在這里。顯示器模塊由四位一體的共陽數(shù)碼管和四個(gè)9012組成。系統(tǒng)程序分傳感器控制程序和顯示器程序兩部分,傳感器控制程序是按照DSl8B20的通信協(xié)議編制。系統(tǒng)的工作是在程序控制下,完成對(duì)傳感器的讀寫和對(duì)溫度的顯示。
產(chǎn)品的主要技術(shù)指標(biāo):測(cè)量范圍:-55~+125℃,測(cè)量精度:0.5℃;反應(yīng)時(shí)間小于等于500 ms。
2 軟件設(shè)計(jì)
2.1 采集模塊
該模塊選用單線溫度傳感器DSl8B20完成溫度采集。單片機(jī)AT89C51對(duì)DSl8B20訪問流程如下:先對(duì)DSl8B20初始化,再進(jìn)行ROM操作命令,最后才能對(duì)存儲(chǔ)器操作。DSl8B20每一步操作都要遵循嚴(yán)格的工作時(shí)序和通信協(xié)議。根據(jù)DSl8B20的通訊協(xié)議,需經(jīng)三個(gè)步驟:每一次讀寫之前都要對(duì)DSl8B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令(指令代碼CCH)并置標(biāo)志位,根據(jù)標(biāo)志位來判斷是否初始化成功,最后發(fā)送RAM指令(指令代碼44H)DSl8B20開始轉(zhuǎn)換,再讀出溫度轉(zhuǎn)換值(指令代碼BEH),讀取的溫度值高位字節(jié)送27H單元,低位字節(jié)送26H單元,再按照溫度值字節(jié)的表示格式及其符號(hào)位,經(jīng)過簡(jiǎn)單的變換即可得到實(shí)際溫度值。
評(píng)論