基于單片機的溫度記錄系統(tǒng)

2.2 I2C存儲器擴展電路設計
I2C總線(Inter Integrated Circuitbus)包括一條數(shù)據(jù)線(SDA)和一條時鐘線(SCL),是單片機系統(tǒng)常用的總線結(jié)構(gòu)。這種總線結(jié)構(gòu)盡可能地節(jié)省了單片機I/O資源,為多路溫度采集保留了最大的擴展空間。
該設計中采用的存儲器AT24C16是Atmel公司生產(chǎn)的I2C接口E2PROM芯片。AT24C16中帶有片內(nèi)尋址寄存器。每寫入或讀出一個數(shù)據(jù)字節(jié)后,該地址寄存器自動加1,以實現(xiàn)對下一個存儲單元的操作,且所有字節(jié)都以單一操作方式讀取。為降低總的寫入時間,一次操作可寫入多達8 B的數(shù)據(jù)。I2C存儲器電路圖3所示。
2.3 液晶顯示電路設計
液晶顯示電路采用1602帶字庫液晶實現(xiàn)。這一液晶模塊,接口功能明確,操作簡單,簡化了電路設計,自帶字庫極大地方便了顯示操作的實現(xiàn)。
3 系統(tǒng)功能實現(xiàn)
系統(tǒng)軟件設計主要有兩項任務,是用于不間斷記錄溫度數(shù)據(jù);二是用于接收用戶輸入,響應用戶指令。
溫度記錄程序中每隔固定時間間隔采集溫度數(shù)據(jù),將溫度數(shù)據(jù)與當前時間一并記錄。若不擴展實時時鐘芯片,可用軟件方式,依據(jù)時間間隔計算轉(zhuǎn)換得到當前時間,避免使用時鐘芯片增加系統(tǒng)成本。對于用戶按鍵輸入,以外部中斷方式予以響應。
該設計中沒有采用操作系統(tǒng),因此,多任務的調(diào)度是系統(tǒng)功能實現(xiàn)的關鍵之一。該設計沒有輸入中斷產(chǎn)生時,為普通單任務系統(tǒng);中斷產(chǎn)生時,工作在多任務模式下。因此,中斷產(chǎn)生后,兩個任務模仿Linux操作,系統(tǒng)系多線程工作模式實現(xiàn)調(diào)度。
由于單片機工作頻率所限,加之溫度傳感器為單總線串行器件,讀/寫占用時間周期相對較長,因此系統(tǒng)應考慮環(huán)境溫度變化的劇烈程度。
4 結(jié)語
該設計可以實現(xiàn)溫度數(shù)據(jù)的采集與長時間數(shù)據(jù)記錄,既可以單獨采樣其中任意一路,也可以實現(xiàn)多路同時采樣,同時可以與主機交互。該系統(tǒng)的整個運行過程在同一地點進行集中監(jiān)控,方便又節(jié)省人力,實現(xiàn)了溫度的采集、顯示、存儲于一體的集成記錄功能。設計使用的外圍元件較少。具有設計簡單,擴展靈活,功能較全面等特點。













評論