摘 要:介紹一種基于單片機和數字溫度傳感器的多路溫度采集、記錄系統的軟、硬件實現方案。系統硬件設計以Atmel公司的AT89S52單片機為核心,選擇高性價比元部件完成電路設計,通過數字溫度傳感器DS1820實現溫度采集,以1602字庫液晶實現數據實時顯示,并將溫度數值存儲在I2C接口芯片AT24C16內。系統可以實現單路、多路溫度的自動定時采集與保存。設計使用的外圍元件較少,具有設計簡單,擴展靈活,功能較全面等特點。
關鍵詞:AT89S52; 溫度采集; LCD顯示; I2C接口芯片
中圖分類號:TP368.1文獻標識碼:A
文章編號:1004-373X(2010)08-0167-02
Temperature Recording System Based on MCU
PANG Xiao-ling, LIU Zhen-gang
(Haidu College, Qingdao Agricultural University,Laiyang265200, China)
Abstract:A scheme that realizes software and hardware of multi-channel temperature recording system based on MCU and digital temperature sensor is presented. The hardware of the system takes the AT89S52 MCU of ATMEL as a core, selects the components with high performance-cost ratio to complete the circuit design, acquisitstemperature data by the temperature sensor DS1820, implements the real-time data display by 1602 LCD, and stores the temperature values in the I2C interface chip AT24C16. The system can complete either single-channel or multi-channel temperature acquisition andrecord. The structure of the system is simple, the expansibility is flexible,thefunction is comprehensive andonly a few external components is needed.
Keywords:AT89S52; temperature acquisition; LCD display; I2C interface chip
目前檢測溫度一般采用熱電偶或熱敏電阻作為傳感器。這種傳感器至儀表之間通常都要用專用的溫度補償導線,而溫度補償導線的價格很高,并且線路太長,會影響測量精度,這是直接以模擬量形式進行采集的不可避免的問題。在實際應用中,往往需要對較遠處的溫度信號進行監視。為此,設計了一種用單片機與數字溫度傳感器集成的方案,它可以以更低的成本和更高的精確度實現溫度檢測[1]。
1 系統綜述
系統硬件設計以Atmel公司的AT89S52單片機為核心,主要由電源電路、復位電路、晶振電路、串口通訊電路、溫度傳感器電路、12864液晶顯示電路、I2C存儲器電路以及按鍵輸入電路構成[2]。溫度采集電路采用單總線數字溫度傳感器實現溫度采集,可設計為一路或多路;溫度存儲電路采用I2C接口E2PRPOM存儲芯片,以實現數據記錄;液晶顯示電路采用圖形點陣液晶顯示器,以實現溫度的即時顯示。同時配以鍵盤輸入電路,可以接收用戶指令輸入,隨時改變工作模式,或查詢任意時間的溫度數據[3]。
2 硬件系統設計
硬件電路設計總體結構圖如圖1所示。由+5 V電源電路、手動復位電路、晶振電路(11.059 2 MHz)構成單片機最小系統,完成單片機的基本運行需求。串口電路用于通信,實現與主機的交互。溫度采集電路、1602液晶顯示電路、I2C存儲器電路為該設計的三個核心模塊,實現主要設計功能,同時實現按鍵輸入電路。
圖1 硬件系統總體結構圖
2.1 溫度采集電路設計
該設計采用Dallas公司生產的3引腳T0-T2小體積封裝溫度傳感器DS18B20。DS1820是美國Dallas半導體公司推出的第一片支持“單總線”接口的溫度傳感器。它具有微型化、低功耗、高性能,抗干擾能力強,易配微處理器等優點,可直接將溫度轉化成串行數字信號,供微機處理[4]。
溫度測量范圍為-55~+125 ℃,可編程為9~12位A/D轉換精度, 被測溫度用符號擴展的16位數字量方式串行輸出。測溫分辨率可達0.062 5 ℃,其工作電源既可在遠端引入,也可采用寄生電源方式產生,易于系統集成[5]。多個DS18B20可以并聯到三根或兩根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節省大量的引線和邏輯電路[6]。以上特點使DS18B20非常適用于遠距離多點溫度檢測系統。溫度傳感器電路圖如圖2所示。
2.2 I2C存儲器擴展電路設計
I2C總線(Inter Integrated Circuitbus)包括一條數據線(SDA)和一條時鐘線(SCL),是單片機系統常用的總線結構[7]。這種總線結構盡可能地節省了單片機I/O資源,為多路溫度采集保留了最大的擴展空間。
該設計中采用的存儲器AT24C16是Atmel公司生產的I2C接口E2PROM芯片。AT24C16中帶有片內尋址寄存器。每寫入或讀出一個數據字節后,該地址寄存器自動加1,以實現對下一個存儲單元的操作,且所有字節都以單一操作方式讀取。為降低總的寫入時間,一次操作可寫入多達8 B的數據。I2C存儲器電路圖3所示。
圖2 溫度傳感器電路圖
圖3 I2C存儲器電路圖
2.3 液晶顯示電路設計
液晶顯示電路采用1602帶字庫液晶實現。這一液晶模塊,接口功能明確,操作簡單,簡化了電路設計,自帶字庫極大地方便了顯示操作的實現[8]。
3 系統功能實現
系統軟件設計主要有兩項任務,是用于不間斷記錄溫度數據;二是用于接收用戶輸入,響應用戶指令。
溫度記錄程序中每隔固定時間間隔采集溫度數據,將溫度數據與當前時間一并記錄。若不擴展實時時鐘芯片,可用軟件方式,依據時間間隔計算轉換得到當前時間,避免使用時鐘芯片增加系統成本。對于用戶按鍵輸入,以外部中斷方式予以響應[9]。
該設計中沒有采用操作系統,因此,多任務的調度是系統功能實現的關鍵之一。該設計沒有輸入中斷產生時,為普通單任務系統;中斷產生時,工作在多任務模式下。因此,中斷產生后,兩個任務模仿Linux操作,系統系多線程工作模式實現調度。
由于單片機工作頻率所限,加之溫度傳感器為單總線串行器件,讀/寫占用時間周期相對較長,因此系統應考慮環境溫度變化的劇烈程度[10]。
4 結 語
該設計可以實現溫度數據的采集與長時間數據記錄,既可以單獨采樣其中任意一路,也可以實現多路同時采樣,同時可以與主機交互。該系統的整個運行過程在同一地點進行集中監控,方便又節省人力,實現了溫度的采集、顯示、存儲于一體的集成記錄功能。設計使用的外圍元件較少,具有設計簡單,擴展靈活,功能較全面等特點。
參考文獻
[1]夏大勇, 周曉輝, 趙增, 等.MCS - 51 單片機溫度控制系統[J].工業儀表與自動化裝置, 2007(1): 43-46.
[2]鐘富昭. 8051 單片機典型模塊設計與應用[J]. 北京:人民郵電出版社, 2007.
[3]管力銳. 單片機在大型糧庫溫度測量中的應用\\. 長春光學精密機械學院學報, 2000, 23(2): 52-55.
[4]王俊杰. DS18B20在糧倉測溫系統上的應用. 鄭州輕工業學院學報, 2007, 22(5): 83-85.
[5]余瑾, 姚燕. 基于DS18B20測溫的單片機溫度控制系統[J]. 微計算機信息, 2009, 25(8): 105-106.
[6]李鋼. 1-Wrie 總線數字溫度傳感器 DS18B20原理及應用[J]. 現代電子技術,2005, 28(21):77-79.
[7]何力民. I2C總線應用系統設計[M]. 北京: 北京航空航天大學出版社, 1995.
[8]連林珍. 單片機控制 SED1353 實現 LCD顯示[J]. 儀表技術, 2007(5): 27-30.
[9]張建軍,鄭和喜,李興軍, 等. 交互式 PID 溫度控制系統的設計[J]. 華北航天工業學院學報, 2000, 10(1): 55-59.
[10]孫育才. 8051 單片機原理及其應用[M]. 北京:電子工業出版社, 2006.