基于單片機(jī)的溫度記錄系統(tǒng)
l 系統(tǒng)綜述
系統(tǒng)硬件設(shè)計以Atmel公司的AT89S52單片機(jī)為核心,主要由電源電路、復(fù)位電路、晶振電路、串口通訊電路、溫度傳感器電路、12864液晶顯示電路、I2C存儲器電路以及按鍵輸入電路構(gòu)成。溫度采集電路采用單總線數(shù)字溫度傳感器實(shí)現(xiàn)溫度采集,可設(shè)計為一路或多路;溫度存儲電路采用I2C接口E2PRPOM存儲芯片,以實(shí)現(xiàn)數(shù)據(jù)記錄;液晶顯示電路采用圖形點(diǎn)陣液晶顯示器,以實(shí)現(xiàn)溫度的即時顯示。同時配以鍵盤輸入電路,可以接收用戶指令輸入,隨時改變工作模式,或查詢?nèi)我鈺r間的溫度數(shù)據(jù)。
2 硬件系統(tǒng)設(shè)計
硬件電路設(shè)計總體結(jié)構(gòu)圖如圖1所示。由+5 V電源電路、手動復(fù)位電路、晶振電路(11.059 2 MHz)構(gòu)成單片機(jī)最小系統(tǒng),完成單片機(jī)的基本運(yùn)行需求。串口電路用于通信,實(shí)現(xiàn)與主機(jī)的交互。溫度采集電路、1602液晶顯示電路、I2C存儲器電路為該設(shè)計的三個核心模塊,實(shí)現(xiàn)主要設(shè)計功能,同時實(shí)現(xiàn)按鍵輸入電路。
2.1 溫度采集電路設(shè)計
該設(shè)計采用Dallas公司生產(chǎn)的3引腳T0-T2小體積封裝溫度傳感器DSl8820。DSl820是美國Dallas半導(dǎo)體公司推出的第一片支持“單總線”接口的溫度傳感器。它具有微型化、低功耗、高性能,抗干擾能力強(qiáng),易配微處理器等優(yōu)點(diǎn),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號,供微機(jī)處理。
溫度測量范圍為-55~+125 ℃,可編程為9~12位A/D轉(zhuǎn)換精度,被測溫度用符號擴(kuò)展的16位數(shù)字量方式串行輸出。測溫分辨率可達(dá)O.062 5 ℃,其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生,易于系統(tǒng)集成。多個DSl8820可以并聯(lián)到三根或兩根線上,CPU只需一根端口線就能與諸多DSl8820通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。以上特點(diǎn)使DSl8820非常適用于遠(yuǎn)距離多點(diǎn)溫度檢測系統(tǒng)。溫度傳感器電路圖如圖2所示。
2.2 I2C存儲器擴(kuò)展電路設(shè)計
I2C總線(Inter Integrated Circuitbus)包括一條數(shù)據(jù)線(SDA)和一條時鐘線(SCL),是單片機(jī)系統(tǒng)常用的總線結(jié)構(gòu)。這種總線結(jié)構(gòu)盡可能地節(jié)省了單片機(jī)I/O資源,為多路溫度采集保留了最大的擴(kuò)展空間。
該設(shè)計中采用的存儲器AT24C16是Atmel公司生產(chǎn)的I2C接口E2PROM芯片。AT24C16中帶有片內(nèi)尋址寄存器。每寫入或讀出一個數(shù)據(jù)字節(jié)后,該地址寄存器自動加1,以實(shí)現(xiàn)對下一個存儲單元的操作,且所有字節(jié)都以單一操作方式讀取。為降低總的寫入時間,一次操作可寫入多達(dá)8 B的數(shù)據(jù)。I2C存儲器電路圖3所示。
2.3 液晶顯示電路設(shè)計
液晶顯示電路采用1602帶字庫液晶實(shí)現(xiàn)。這一液晶模塊,接口功能明確,操作簡單,簡化了電路設(shè)計,自帶字庫極大地方便了顯示操作的實(shí)現(xiàn)。
3 系統(tǒng)功能實(shí)現(xiàn)
系統(tǒng)軟件設(shè)計主要有兩項(xiàng)任務(wù),是用于不間斷記錄溫度數(shù)據(jù);二是用于接收用戶輸入,響應(yīng)用戶指令。
溫度記錄程序中每隔固定時間間隔采集溫度數(shù)據(jù),將溫度數(shù)據(jù)與當(dāng)前時間一并記錄。若不擴(kuò)展實(shí)時時鐘芯片,可用軟件方式,依據(jù)時間間隔計算轉(zhuǎn)換得到當(dāng)前時間,避免使用時鐘芯片增加系統(tǒng)成本。對于用戶按鍵輸入,以外部中斷方式予以響應(yīng)。
該設(shè)計中沒有采用操作系統(tǒng),因此,多任務(wù)的調(diào)度是系統(tǒng)功能實(shí)現(xiàn)的關(guān)鍵之一。該設(shè)計沒有輸入中斷產(chǎn)生時,為普通單任務(wù)系統(tǒng);中斷產(chǎn)生時,工作在多任務(wù)模式下。因此,中斷產(chǎn)生后,兩個任務(wù)模仿Linux操作,系統(tǒng)系多線程工作模式實(shí)現(xiàn)調(diào)度。
由于單片機(jī)工作頻率所限,加之溫度傳感器為單總線串行器件,讀/寫占用時間周期相對較長,因此系統(tǒng)應(yīng)考慮環(huán)境溫度變化的劇烈程度。
4 結(jié)語
該設(shè)計可以實(shí)現(xiàn)溫度數(shù)據(jù)的采集與長時間數(shù)據(jù)記錄,既可以單獨(dú)采樣其中任意一路,也可以實(shí)現(xiàn)多路同時采樣,同時可以與主機(jī)交互。該系統(tǒng)的整個運(yùn)行過程在同一地點(diǎn)進(jìn)行集中監(jiān)控,方便又節(jié)省人力,實(shí)現(xiàn)了溫度的采集、顯示、存儲于一體的集成記錄功能。設(shè)計使用的外圍元件較少。具有設(shè)計簡單,擴(kuò)展靈活,功能較全面等特點(diǎn)。