基于AT89C2051單片機的大氣溫度采集和記錄系統(tǒng)
1 引 言
大氣溫度的測量具有重要意義, 一般是采用各種溫度計進行人工測量, 并定時記錄測量結(jié)果, 這種方法費時費工, 十分不便。本文提出了一種非常小巧的大氣溫度測量和記錄裝置, 能對范圍為- 55 ℃ ~ + 125 ℃ 的溫度進行定時自動測量, 同時記錄測量結(jié)果, 精度最高可達0. 0625℃ 。
2 系統(tǒng)原理
系統(tǒng)結(jié)構(gòu)如圖1所示。系統(tǒng)主要由AT89C2051單片機和外圍電路構(gòu)成。其基本思想是由串行時鐘芯片DS1306 提供時間基準, 由溫度傳感器DS18B20進行溫度測量, 溫度數(shù)據(jù)存儲在DS2433中。AT89C2051單片機負責整個系統(tǒng)的協(xié)調(diào)控制。
AT89C2051是一款低電壓, 高性能的CMOS 8位單片機, 片內(nèi)含2k bytes的可反復(fù)擦寫的只讀F lash程序存儲器和128 bytes的隨機存取數(shù)據(jù)存儲器( RAM) , 器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn), 兼容標準MCS- 51指令系統(tǒng), 內(nèi)置通用8位中央處理器和Flash存儲單元, 功能強大的AT89C2051單片機可提供高性價比的應(yīng)用。
AT89C2051是一個功能強大的單片機, 但它只有20個引腳, 15個雙向輸入/輸出( I /O )端口, 其中P1是一個完整的8位雙向I/O 口, 兩個外中斷口, 兩個16位可編程定時計數(shù)器, 兩個全雙向串行通信口,一個模擬比較放大器。同時AT89C2051 的時鐘頻率可以為零, 即具備可用軟件設(shè)置的睡眠省電功能,系統(tǒng)的喚醒方式有RAM、定時/計數(shù)器、串行口和外中斷口, 系統(tǒng)喚醒后即進入繼續(xù)工作狀態(tài)。省電模式中, 片內(nèi)RAM 將被凍結(jié), 時鐘停止振蕩, 所有功能停止工作, 直至系統(tǒng)被硬件復(fù)位方可繼續(xù)運行。
系統(tǒng)結(jié)構(gòu)圖
圖1 系統(tǒng)結(jié)構(gòu)圖。
DS18B20是集成數(shù)字溫度計 , 溫度測量范圍- 55℃ ~ + 125℃ , 通過編程可實現(xiàn)0. 5℃ 、0. 25 ℃ 、0. 125 ℃ 、0. 0625℃ 四種不同的分辨率。其最大特點是通過一條數(shù)據(jù)線就可實現(xiàn)與單片機的數(shù)字通訊。
測量得到的溫度數(shù)據(jù)長度為2個字節(jié)。DS18B20數(shù)字溫度計是DALLAS公司生產(chǎn)的1 -W ire, 即單總線器件, 具有線路簡單, 體積小的特點。因此用它來組成一個測溫系統(tǒng), 具有線路簡單, 在一根通信線上可以掛很多這樣的數(shù)字溫度計, 十分方便。
DS18B20的特點:
( 1)只要求一個端口即可實現(xiàn)通信。
( 2)在DS18B20中的每個器件上都有獨一無二的序列號。
( 3)實際應(yīng)用中不需要外部任何元器件即可實現(xiàn)測溫。
( 4)測量溫度范圍在- 55 ℃ 到+ 125 ℃ 之間。
( 5)數(shù)字溫度計的分辨率可以從9 位到12位選擇。
( 6)內(nèi)部有溫度上、下限告警設(shè)置。
DS2433是1-W ire存儲器, 容量為4k- B it ,可存儲256個溫度數(shù)據(jù)。其采用EEPROM 工藝, 即使掉電, 存儲的數(shù)據(jù)也不會丟失。DS2433帶有一個由工廠刻度的注冊碼, 其中包括: 48位唯一序列碼、8位CRC 校驗碼和8位家族碼( 23h) , 還帶有4096位用戶可編程EEPROM。讀寫DS2433所需的電源完全取自于1-W ire通訊線。存儲器分為16頁, 每頁256位。暫存器作為一個附加頁面, 在寫存儲器時可用作緩沖器使用。數(shù)據(jù)先被寫入一個暫存器中,在此對其進行校驗。隨后采用復(fù)制暫存器命令將數(shù)據(jù)傳送到存儲器中。這一過程可保證修改存儲器內(nèi)容時數(shù)據(jù)的完整性。PR- 35以及SO IC封裝提供了一種緊湊的結(jié)構(gòu), 允許采用標準安裝設(shè)備在印刷電路板上安裝和連接器件。
由于1-W ire通訊的獨特特點, 即它們內(nèi)部都有一個64位注冊碼為每個器件提供了一個保證唯一的標識, 確保每個器件的絕對可追溯性, 當有多個1-W ire器件同時掛接在總線上并聯(lián)形成本地網(wǎng)絡(luò)時, 注冊碼可作為器件的節(jié)點地址使用。數(shù)據(jù)按照1-W ire協(xié)議串行傳送, 僅需一條數(shù)據(jù)線和一條地線。因此DS2433可與DS18B20掛接在同一條數(shù)據(jù)線上, 通過它們內(nèi)部的識別碼進行區(qū)分, 這樣大大節(jié)省了數(shù)據(jù)連接線。
整套系統(tǒng)最大的優(yōu)點是所使用的器件非常小巧, 這樣有兩點好處:
( 1)系統(tǒng)體積小, 可放置于狹小空間中并對該空間溫度進行測量。
( 2)系統(tǒng)功耗低, 可采用電池供電, 因此可放置于野外環(huán)境進行溫度測量。測量結(jié)束后, 只需將存貯器取回并通過計算機接口讀取記錄即可。
3 器件選擇
3. 1 小型化
同AT89C52單片機相比, AT89C2051因為去掉了P0和P2口, 體積大大縮小。DS1306為串行工作方式的時鐘芯片, 較并行方式節(jié)省了大量I/O接口。
溫度傳感器DS18B20輸出為數(shù)字量, 無需進行A /D轉(zhuǎn)換, 就可由單片機處理。
3. 2 可擴展性
1-W ire單總線是Max im 全資子公司Dallas的一項專有技術(shù), 與目前多數(shù)標準串行數(shù)據(jù)通訊方式,如SPI/ I2C /M ICROW IRE 不同, 它采用單根信號線,既傳輸時鐘, 又傳輸數(shù)據(jù), 而且數(shù)據(jù)傳輸是雙向的,它具有節(jié)省I/O口線資源、結(jié)構(gòu)簡單、成本低廉、便于總線擴展和維護等特點。
因此, 根據(jù)實際需要, 1- W ire總線上可掛接多個溫度傳感器和存儲器, 能對多個目標進行測量并記錄更多數(shù)據(jù)。
4 通訊功能
MAX232是由德州儀器公司( TI)推出的一款兼容RS232標準的芯片。由于電腦串口RS232 電平是- 10V ~ 10V, 而一般的單片機應(yīng)用系統(tǒng)的信號電壓是TTL電平0V ~ 5V, MAX232 就是用來進行電平轉(zhuǎn)換的, 該器件包含2個驅(qū)動器、2個接收器和一個電壓發(fā)生器電路提供TIA /E IA - 232- F 電平。
該器件符合T IA /E IA - 232- F標準, 每一個接收器將T IA /E IA - 232- F電平轉(zhuǎn)換成5- V TTL /CMOS電平。每一個發(fā)送器將TTL /CMOS 電平轉(zhuǎn)換成T IA /E IA - 232- F電平。
MAX232提供了單片機與PC 機的RS232通訊接口。上位機軟件可用V isua l B asic 6. 0 高級語言編寫。VB6. 0提供了串口通訊控件, 應(yīng)用這個控件,PC 機可以很方便地與單片機通過串口進行通訊。
5 應(yīng)用實例
圖2給出了軟件操作界面和數(shù)據(jù)處理情況。某天的溫度變化情況通過列表和曲線圖兩種方法給出。由此可以掌握這一天的溫度變化規(guī)律。
溫度數(shù)據(jù)處理界面圖
圖2 溫度數(shù)據(jù)處理界面圖。
6 結(jié)束語
從測量范圍、精度和測量實例上看, 該系統(tǒng)可以用于對包括大氣溫度在內(nèi)的多種環(huán)境溫度進行測量和記錄。
未來的工作設(shè)想:
( 1)數(shù)據(jù)存儲方面: 單個DS2433只能存儲256個溫度數(shù)據(jù), 可以換為存儲容量更大的存儲器或并行掛接多個DS2433, 以一次性記錄更多的數(shù)據(jù), 延長測量周期;( 2)數(shù)據(jù)讀取方面: 目前采用的將存儲器取下讀取的方式還是顯得有些繁瑣, 可以設(shè)計手持式無線(如RF、紅外、藍牙等)接收裝置來獲取存儲器的數(shù)據(jù)。如果是對野外環(huán)境進行測量, 可以利用移動通訊網(wǎng)絡(luò)(如目前新興的3G 技術(shù)) 進行數(shù)據(jù)的傳輸, 這樣就省去了科研人員的勞頓之苦。