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