【正文】
雜,不需要大量復雜運算的系統(tǒng)中是非常適合的。以STC89C52單片機為處理核心,通過數(shù)字溫度傳感器DS18B20將檢測到的數(shù)據(jù)輸入單片機進行處理,與聲光報警電路組合就可以構成溫度報警系統(tǒng),這種設計系統(tǒng)的成本較小,結構簡單、操作方便,并且測量也很準確,能夠滿足工業(yè)、農業(yè)生產對溫度要求不是特別高的地方。 C. DS18B20 can be directly read out the temperature on the north side, and threewire system with singlechip connected to a decrease of the external hardware circuit, with lowcost and easy use.The introduction of a costbased STC89C52 MCU a temperature measurement circuits, the circuits used DS18B20 highprecision temperature sensor, measuring scope 0 186。該電路設計新穎、功能強大、結構簡單。C。而熱電偶和熱電阻測出的一般都是電壓,再轉換成對應的溫度,這些方法相對比較復雜,需要比較多的外部硬件支持。傳統(tǒng)的測溫元件有熱電偶和二電阻。C, 186。著重介紹軟硬件系統(tǒng)的各部分電路,介紹了集成溫度傳感器DS18B20的原理,STC89C52單片機功能和應用。 C, up to a maximum resolution of 186。如何設計一款成本低廉、報警準確、操作簡單的智能溫度報警系統(tǒng)成為一個重要問題。將單片機控制方法運用到溫度控制系統(tǒng)中,可以克服溫度控制系統(tǒng)中存在的嚴重滯后現(xiàn)象,同時在提高采樣頻率的基礎上可以很大程度的提高控制效果和控制精度。 設計內容及要求采用STC 89C52單片機作為處理器。溫度信號由溫度芯片DS18B20采集,并以數(shù)字信號的方式傳送給單片機。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。使用Atmel 公司高密度非易失性存儲器技術制造,與工業(yè)80C51 產品指令和引腳完全兼容。另外,AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式。作為輸出口,每位能驅動8個TTL邏 輯電平。 在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。 在flash編程和校驗時,P1口接收低8位地址字節(jié)。 在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX DPTR) 時,P2 口送出高八位地址。P3口是一個具有內部上拉電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅動4 個 TTL 邏輯電平。復位輸入。MCS51器件有單獨的程序存儲器和數(shù)據(jù)存儲器。數(shù)據(jù)存儲器:AT89S52 有256 字節(jié)片內數(shù)據(jù)存儲器。直接尋址方式訪問特殊功能寄存器(SFR)。因此,高128字節(jié)數(shù)據(jù)RAM也可用于堆??臻g。當WDT激活后,晶振工作,WDT在每個機器周期都會增加。WDT的使用為了激活WDT,用戶必須向WDTRST寄存器(地址為0A6H的SFR)依次寫入01EH和0E1H。為了復位WDT,用戶必須向WDTRST 寫入01EH 和0E1H(WDTRST 是只讀寄存器)。掉電和空閑方式下的 WDT在掉電模式下,晶振停止工作,這意味這WDT也停止了工作。通過中斷退出掉電模式的情形有很大的不同。這就意味著WDT 應該在中斷服務程序中復位。為了防止WDT在待機模式下復位AT89S52,用戶應該建立一個定時器,定時離開待機模式,喂狗,再重新進入待機模式。它具有獨特的單線接口僅需要一個端口引腳進行通信,并可通過數(shù)據(jù)線供電,~。開漏單總線接口引腳。 DS18B20的內部結構示意圖如下圖所示。高速暫存器RAM由9個字節(jié)的存儲器組成。器件中還有一個計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產生的時鐘脈沖進行計數(shù)進而完成溫度測量。 DS18B20的接口電路當DS18B20處于寫存儲器操作和溫度A/D轉換操作時,總線上必須有上拉,上拉開啟時間最大為10us。DS18B20有嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。數(shù)據(jù)和命令的傳輸都是低位在先。它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。管腳功能 LCD1602引腳圖LCD1602采用標準的16腳接口,其中: 第1腳:VSS為電源地 第2腳:VCC接5V電源正極 第3腳:V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高 第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器 第5腳:RW為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。15腳背光正極,16腳背光負極。因為1602識別的是ASCII碼,試驗可以用ASCII碼直接賦值,在單片機編程中還可以用字符型常量或變量賦值,如39。光標加1),N=0(讀或寫一個字符后地址指針減1amp。液晶LCD的RS、RW175。(1),,8位數(shù)據(jù)線DB0~DB7接到單片機的P0口。 具體程序如下所示; void lcd_init()//1602初始化{ write_(0x38)。 write_(0x0c)。 }void lcd_display()//1602顯示初始化{lcd_init()。//第二行第一個字符開始顯示 display(str2)。//CPU將總線拉高 dq=0。//CPU將總線拉高延時60微妙 if(dq==0) delayus(240)。//初始化溫度傳感器 ds_write(0xcc)。//忽略ROM指令 ds_write(0xbe)。// tvalue=8。//如果溫度小于0,取反加一 tflag=1。 disdata[0]=tvalue/1000+0x30。//小數(shù)點后一位 if(tflag==0) flagdat=0x20。//十位為0不顯示 } } write_(0xc0)。//第二行第二個顯示溫度百位 write_(0xc2)。//第二行第四個顯示溫度個位 write_(0xc4)。//第二行第六個顯示小數(shù)點后一位} void main()//主程序{lcd_display(