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