【正文】
B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。(也可采用發(fā)光二級(jí)管報(bào)警電路,如過(guò)需要報(bào)警,則只需將相應(yīng)位置1,當(dāng)參數(shù)判斷完畢后,再看報(bào)警模型單元ALARM 的內(nèi)容是否與預(yù)設(shè)一樣,如不一樣,則發(fā)光報(bào)警)報(bào)警電路硬件連接見(jiàn)圖。 好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案;216。最后在單片機(jī)開(kāi)發(fā)板上進(jìn)行測(cè)試,經(jīng)過(guò)觀(guān)測(cè)實(shí)驗(yàn)現(xiàn)象與結(jié)果,本設(shè)計(jì)達(dá)到設(shè)計(jì)要求。sbit DQ = P2^3。 for(i=0。 E = 0。 write(sign)。 delay(3)。 m = 1。 for(i=200。 TMPL = read_byte()。 table[0]=table[0]+0x30。 delay(200)。 if(key==0) { min++。 L1602_char(2,5,table1[1])。 L1602_init()。 }}}/*****************************中斷函數(shù),對(duì)溫度下限調(diào)整******************/alert1()interrupt 2{ ulong m。 L1602_char(2,6,table1[1])。 L1602_char(2,2,table[1])。 write_byte(start)。 0x01。if(bitval==1)DQ=1。 }}/********************************************************************* 名稱(chēng) : Reset()* 功能 : 復(fù)位DS18B20* 輸入 : 無(wú)* 輸出 : 無(wú)***********************************************************************/uchar Reset(void){ uchar deceive_ready。 if(hang == 1) a = 0x80。 delay(1)。 iN。在此,非常感謝老師的啟蒙和教導(dǎo)。這一期的課程設(shè)計(jì)我早已經(jīng)做好了充分的準(zhǔn)備。 顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對(duì)分離后的溫度顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)標(biāo)志位位為1時(shí)將符號(hào)顯示位移入第一位。其中有兩個(gè)是用于選擇切換設(shè)置報(bào)警上下限溫度,另外兩個(gè)分別用于設(shè)置報(bào)警溫度的加和減。因此,可用多只DS18B20同時(shí)測(cè)量溫度并進(jìn)行報(bào)警搜索。DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的E2PROM。圖 熱敏電阻 方案三采用鉑電阻,其優(yōu)點(diǎn)是測(cè)量精度高,測(cè)量范圍廣,但同時(shí)也存在缺點(diǎn):熱響應(yīng)慢,且成本很高。然后用文本編輯器(如EDIT、CCED等)編寫(xiě)軟件,編寫(xiě)好后,用編譯器對(duì)源程序文件編譯,查錯(cuò),直到?jīng)]有語(yǔ)法錯(cuò)誤,除了極簡(jiǎn)單的程序外,一般應(yīng)用仿真機(jī)對(duì)軟件進(jìn)行調(diào)試,直到程序運(yùn)行正確為止。 單片機(jī)芯片 各類(lèi)單片機(jī)應(yīng)用芯片 由此來(lái)看,單片機(jī)有著微處理器所不具備的功能,它可單獨(dú)地完成現(xiàn)代工業(yè)控制所要求的智能化控制功能,這是單片機(jī)最大的特征。隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活、工作、科研、各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù)。單片機(jī)由芯片內(nèi)僅有CPU的專(zhuān)用處理器發(fā)展而來(lái)。所以新世紀(jì)的工科大學(xué)生既要掌握通用微機(jī),又要掌握“單片機(jī)”。這里所說(shuō)的開(kāi)發(fā)過(guò)程[3]并不是一般書(shū)中所說(shuō)的從任務(wù)分析開(kāi)始,我們假設(shè)已設(shè)計(jì)并制作好硬件,下面就是編寫(xiě)軟件的工作。通過(guò)將參考終點(diǎn)保持在抑制溫度并測(cè)量該電壓,便可推斷出檢測(cè)結(jié)點(diǎn)的溫度,數(shù)據(jù)采集部分則由帶有A/D通道的單片機(jī),在將隨被測(cè)溫度變化的電壓或者電流采集過(guò)來(lái),進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)處理,在顯示電路上,就可以將被測(cè)溫度顯示出來(lái)。 DS18B20的內(nèi)部結(jié)構(gòu)DS18B20采用3腳PR-35封裝或8腳SOIC封裝。當(dāng)符號(hào)位S=0時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位S=1時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。采用寄生電源供電方式時(shí)VDD端接地。 主程序發(fā)DS18B20復(fù)位命令發(fā)跳過(guò)ROM命令發(fā)讀取溫度命令讀取操作,CRC校驗(yàn)9字節(jié)完?CRC校驗(yàn)正?確?移入溫度暫存器結(jié)束 NNYY啟動(dòng)系統(tǒng)初始化DS18B20跳過(guò)ROM發(fā)出溫度轉(zhuǎn)換命令并讀取溫度值顯示溫度值溫度是否超過(guò)上下限聲音報(bào)警YN 圖 主程序圖 讀溫度流程圖 讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。(5)按下調(diào)整下限按鍵,進(jìn)入下限調(diào)節(jié)界面,通過(guò)調(diào)節(jié)加減按鍵,可以對(duì)溫度下限進(jìn)行調(diào)節(jié)通過(guò)以上測(cè)試,設(shè)計(jì)符合預(yù)期要求。此次的任務(wù)是數(shù)字溫度計(jì)的設(shè)計(jì),而在此之前已經(jīng)有很多人研究過(guò)了,我們要參考他們的想法,擔(dān)有些地方我們也要勇敢的跳出他們的框架,結(jié)合我們的實(shí)際情況進(jìn)行分析設(shè)計(jì),思想不局限于前人。min=10。 E = 0。}/********************************************************************* 名稱(chēng) : L1602_char(uchar hang,uchar lie,char sign)* 功能 : 改變液晶中某位的值,如果要讓第一行,第五個(gè)字符顯示b ,調(diào)用該函數(shù)如下 L1602_char(1,5,39。) break。 i++)。 i8。 EA=1。 table[2]= temp/10%10+0x30。 L1602_string(1,1,warning)。 L1602_char(2,7,table1[0])。 delay(200)。 while(P1==0x77)。 L1602_string(2,1,low=)。 L1602_init()。 }}/*****************************中斷函數(shù),對(duì)溫度上限調(diào)整******************/void alert2()interrupt 0{ ulong m。0x0f。 delay(2)。 i8。 return(deceive_ready)。 if(hang == 1) a = 0x80。 delay(1)。 0x01。 //1602使能引腳sbit RW=P2^6。程序只有在經(jīng)常寫(xiě)與讀的過(guò)程中才能提高。正確認(rèn)識(shí)測(cè)試是非常重要的,測(cè)試目標(biāo)決定了試也是有價(jià)值的,完整的測(cè)試是評(píng)定測(cè)試質(zhì)量的一種。二是執(zhí)行軟件(子程序),它是用來(lái)完成各種實(shí)質(zhì)性的功能如測(cè)量、計(jì)算、顯示、通訊等。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直到溫度寄存器值大致被測(cè)溫度值。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。復(fù)位電路采用上電結(jié)合按鈕復(fù)位。 可以任意設(shè)置上下限溫度的報(bào)警功能;178。用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。關(guān)鍵字:?jiǎn)纹瑱C(jī);數(shù)字溫度計(jì);STC89C52;DS18B20;PROTEUS;Abstract:The monolithic integrated circuit has the volume small, the power loss low, the control function strong, the expansion nimble, merits and so on microminiaturization and easy to operate, widely applies in the instrument measuring appliance, the union different type sensor, may realize such as physical quantity and so on voltage, power, frequency, humidity, temperature, current capacity, speed, thickness, angle, length, degree of hardness, element, pressure curriculum design was in studies in the monolithic integrated circuit basic principle to carry on, the prehensive utilization studied the monolithic integrated circuit knowledge to plete a monolithic integrated circuit application system design.This article mainly introduced based on the 89S52 monolithic integrated circuit temperature measurement system, in detail described the use numeral temperature sensor DS18B20 development temperature measurement system process, key to the sensor under monolithic integrated circuit hardware connection, the software programming as well as various modules system flow has carried on the exhaustive analysis, 11 has also carried on the introduction to various part of electric circuits, This system may facilitate realization temperature gathering and the demonstration, and may according to need to establish