王超
摘 要:溫度是工農(nóng)業(yè)生產(chǎn)中一個普遍而又重要的參數(shù)。因此,對于溫度這個參數(shù)的測量與控制就顯得尤為重要。該文設(shè)計了基于I 2C串行總線的兩點溫度測量系統(tǒng),闡述了I 2C總線的特點及基本原理,選用了STC89C52單片機為系統(tǒng)的核心,并設(shè)計了單片機的時鐘電路、復(fù)位電路和電源電路,選用了DS1621溫度傳感器采集環(huán)境溫度,選用了液晶顯示器LCD1602顯示采集到的溫度值,并進(jìn)行了單片機端口的選擇和各器件之間的連接,進(jìn)行了LCD1602和DS1621芯片的驅(qū)動程序和主程序的編寫,并進(jìn)行了仿真。
關(guān)鍵詞:STC89C52 I 2C DS1621 液晶顯示器
中圖分類號:TH89 文獻(xiàn)標(biāo)識碼:A 文章編號:1672-3791(2015)11(c)-0088-03
溫度是工農(nóng)業(yè)生產(chǎn)中一個普遍而又重要的參數(shù)。因此,對于溫度這個參數(shù)的測量與控制就顯得尤為重要。以往這些溫度的檢測工作大多是由人工完成,不但工作量大,記錄的數(shù)據(jù)少,難以滿足現(xiàn)代溫度測量的要求。傳感器技術(shù)、微控制器技術(shù)和計算機技術(shù)的發(fā)展,為現(xiàn)代的溫度測量與控制系統(tǒng)的設(shè)計提供了技術(shù)基礎(chǔ),基于傳感器技術(shù)、微控制器技術(shù)和計算機技術(shù)的溫度測量系統(tǒng)會大大地降低人們測量溫度的工作量,而且測得的溫度數(shù)據(jù)也更加地精確。
基于以上情況,該文提出了一種基于單片機為核心掛接兩個帶有I 2C接口的溫度傳感器組建溫度采集系統(tǒng),并通過液晶顯示器顯示出來。
系統(tǒng)設(shè)計分為硬件電路設(shè)計和軟件及仿真設(shè)計兩大部分。
1 系統(tǒng)硬件電路設(shè)計
硬件電路的設(shè)計包括了溫度傳感器的選型、單片機的選型、液晶顯示器的選型及其部件之間的電連接。
溫度傳感器選用DS1621溫度傳感器,DS1621是由DALLAS公司生產(chǎn)的一種功能非常強的數(shù)字式溫度傳感器。通過讀取內(nèi)部的計數(shù)值和用于溫度補償?shù)拿繑z氏度計數(shù)值,利用公式計算還可提高溫度值的精度。DS1621無需外圍元件即可測量溫度,將結(jié)果以9位數(shù)字量(兩字節(jié)傳輸)輸出,測溫范圍為-55 ℃~+155 ℃,精度為0.5 ℃,轉(zhuǎn)換時間為1 s,數(shù)據(jù)的寫入和讀出通過一個2線I 2C串行接口完成。
I 2C總線(Inter Integrated Circuit BUS,內(nèi)部集成電路總線)是由PHILIPS公司開發(fā)的一種兩線式串行總線,用于連接微控制器及其外圍設(shè)備。I 2C總線由數(shù)據(jù)線SDA與時鐘SCL構(gòu)成串行總線,可用于發(fā)送與接收數(shù)據(jù)。數(shù)據(jù)可以在CPU與被控IC芯片之間、IC芯片與IC芯片之間進(jìn)行雙向傳送,最高傳送速率可100 kb/s。
該設(shè)計選擇MCS-51系列的一款通用MCU芯片—STC89C52,其本身并沒有I 2C接口電路,但可以通過軟件來模擬I 2C接口。采用2片DS1621采集溫度,將第一片地址連接成000(A2A1A0均接低電平),將第二片地址連接成001(A2A1接低電平,A0接高電平)。STC89C52芯片的并行引腳P2.6和P2.7連接到溫度傳感器DS1621的SDL和SCL總線。
液晶顯示器選用了LCD1602,溫度采集的結(jié)果通過LCD1602切換輪流顯示出來,LCD1602的數(shù)據(jù)線連接至MCU的P3口。
該系統(tǒng)總體結(jié)構(gòu)如圖1所示,以單片機STC89C52為核心,由電源電路、時鐘電路、復(fù)位電路、溫度傳感器(2個)和LCD1602液晶顯示構(gòu)成。
2 軟件設(shè)計及仿真
熟悉LCD1602的命令集及編程思路后,在keil軟件上進(jìn)行軟件設(shè)計,軟件分為多個文件,包含LCD1602和DS1621芯片的驅(qū)動程序和主程序。將程序按其邏輯劃分為多個模塊,這樣可以使軟件結(jié)構(gòu)看起來更清晰,且容易維護(hù)。
主程序設(shè)計如下所示。
#include "lcd1602.h"
#include "utility.h"
#include "ds1621.h"
void main()
{
unsigned char s[10],i,a[2]; //數(shù)組s存放顯示的字符串,a存放DS1621的地址
a[1] = ‘\0; //用于顯示
Lcd1602_Initialize();
Lcd1602_Write(1,0,"th temp(c):");
for(i = 0; i < 2; ++i) //初始化2個DS1621
{
Ds1621_SetDeviceAddress(i);
Ds1621_WriteConfig(0x03);
Ds1621_SetTemperatureLimit(40,35);
}
同時在Proteus軟件繪制系統(tǒng)硬件電路圖,并與Keil軟件實現(xiàn)聯(lián)調(diào),仿真結(jié)果如圖2和圖3所示,圖2為第一片溫度傳感器的溫度實時值,圖3為第二片溫度傳感器的溫度實時值。
3 結(jié)語
該設(shè)計實現(xiàn)了兩點溫度的測量系統(tǒng),傳感器DS1621集成度高,直接輸出數(shù)字信號,通過I 2C總線實現(xiàn)信號傳輸,DS1621的選用簡化了電路設(shè)計、方便了程序設(shè)計。以STC89C52單片機為系統(tǒng)核心,使系統(tǒng)結(jié)構(gòu)簡單、且易于實現(xiàn)。系統(tǒng)帶有的液晶顯示器LCD1602使人機交互更加友好。 該系統(tǒng)可應(yīng)用于諸多溫度采集的場合使用。
參考文獻(xiàn)
[1] 彭芬.單片機C語言技術(shù)應(yīng)用技術(shù)[M].西安:西安電子科技大學(xué)出版社,2012.
[2] 梁森.自動檢測與轉(zhuǎn)換技術(shù)[M].北京:機械工業(yè)出版社,2012.
[3] 烏云高娃.C語言程序設(shè)計[M].北京:高等教育出版社,2012.
[4] 張萌.單片機應(yīng)用系統(tǒng)開發(fā)綜合實例[M].北京:清華大學(xué)出版社,2007.