版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘 要</b></p><p> 隨著現(xiàn)代工農(nóng)業(yè)技術(shù)的發(fā)展及人們對(duì)生活環(huán)境要求的提高,人們?cè)谏畹脑S多方面都有著對(duì)溫度進(jìn)行感知和控制的需要。而傳統(tǒng)的溫度計(jì)由于各種原因,精度不能達(dá)到我們預(yù)期的效果,隨著現(xiàn)代微電子及信息科學(xué)的發(fā)展,數(shù)字溫度計(jì)無(wú)疑成為溫度計(jì)設(shè)計(jì)的最有效方案。</p><p> 本文是介紹基于單片機(jī)的數(shù)字溫度計(jì)的設(shè)計(jì),該溫
2、度計(jì)由中央控制器、溫度檢測(cè)器、顯示器及報(bào)警部分組成。該溫度計(jì)的基本范圍為-50℃-110℃,精度誤差小于0.5℃,LCD液晶顯示器直接讀取溫度值顯示,當(dāng)測(cè)量溫度超出報(bào)警門(mén)限時(shí),系統(tǒng)將輸出光報(bào)警信號(hào)。</p><p> 本文主要包括兩個(gè)方面的設(shè)計(jì):一方面是硬件電路的設(shè)計(jì),另一方面是系統(tǒng)程序的設(shè)計(jì)。其中,硬件電路各部分組成如下:中央控制器采用單片機(jī)AT89S51,溫度檢測(cè)部分采用DS18B20溫度傳感器,用LCD液
3、晶1602作為顯示器。其次,系統(tǒng)軟件程序包括主程序,溫度值讀取、轉(zhuǎn)換及計(jì)算程序,顯示數(shù)據(jù)刷新程序等。</p><p> 該溫度計(jì)整體功能的實(shí)現(xiàn)是通過(guò)溫度傳感器DS18B20采集溫度信號(hào)送該給單片機(jī)處理,單片機(jī)再把溫度數(shù)據(jù)送液晶顯示器1602顯示。</p><p> 【關(guān)鍵詞】單片機(jī) 溫度傳感器 DS18B20 LCD液晶顯示器 </p><p><
4、b> ABSTRACT</b></p><p> As the modern industrial and agricultural technology development and people's living environment of increased demand, people in many aspects of life have a right temper
5、ature sensing and control needs. And the traditional thermometer for various reasons, can not achieve the accuracy of the results we expected, with modern microelectronics and the development of information science, digi
6、tal thermometer thermometer undoubtedly become the most effective design programme.</p><p> This paper describes the digital thermometer which is consisted of the central controller, temperature detectors,
7、 monitors and police components.The thermometer’s basic range is from -50 ℃ to 110 ℃,its accuracy error is less than 0.5 ℃ and LCD directly shows numerical temperature. When the measured temperature exceed the limit alar
8、m doors, the system will output alarm signal.</p><p> The paper includes tow aspects of the design: one is hardware circuit design, the other is the system process design. Among them, the hardware component
9、s are as following: the central controller SCM AT89S51,the temperature detection DS18B20 part of a temperature sensor,and LCD monitors, as LCD 1602 F; the system software programs, including the main program, the tempera
10、ture reading, conversion and calculation procedures, the data show that refresh procedures and so on.</p><p> Temperature Sensor DS18B20 acquisition of the temperature signal sent to SCM for processing, SC
11、M then the temperature data sent 1602 F LCD display.</p><p> 【Key words】SCM temperature sensor DS18B20 LCD liquid crystal display </p><p><b> 目 錄</b></p><p><b
12、> 前 言5</b></p><p> 第一章 數(shù)字溫度計(jì)的總體方案設(shè)計(jì)及論證6</p><p> 第二章 數(shù)字溫度計(jì)硬件電路的實(shí)現(xiàn)8</p><p> 第一節(jié) 復(fù)位電路及晶振電路設(shè)計(jì)8</p><p><b> 一、復(fù)位電路8</b></p><p>
13、;<b> 二、晶振電路8</b></p><p> 第二節(jié) 溫度傳感器設(shè)計(jì)9</p><p><b> 一、概述 9</b></p><p> 二、DS18B20的外形及內(nèi)部結(jié)構(gòu)9</p><p> 三、DS18B20工作原理 14</p><p>
14、 四、DS18B20 溫度測(cè)量通信協(xié)議14</p><p> 五、DS18B2的外部電路圖17</p><p> 第三節(jié) 液晶顯示電路設(shè)計(jì)17</p><p> 一、1602的引腳功能介紹18</p><p> 二、1602的標(biāo)準(zhǔn)字庫(kù)18</p><p> 三、1602液晶模塊內(nèi)部的控制指令19
15、</p><p> 四、1602的外部電路圖21</p><p> 第三章 數(shù)字溫度計(jì)軟件設(shè)計(jì)流程及程序22</p><p> 第一節(jié) 主程序設(shè)計(jì)22</p><p> 第二節(jié) 溫度值讀取程序設(shè)計(jì)23</p><p> 一、DS18B20的延時(shí)程序24</p><p>
16、二、DS18B20的初始化程序24</p><p> 三、DS18B20的讀時(shí)序程序25</p><p> 四、DS18B20的寫(xiě)時(shí)序程序26</p><p> 第三節(jié) 計(jì)算溫度程序設(shè)計(jì)27</p><p> 第四節(jié) 顯示數(shù)據(jù)及刷新程序設(shè)計(jì)28</p><p> 第四章 程序調(diào)試29</p
17、><p><b> 結(jié) 論36</b></p><p><b> 結(jié)束語(yǔ)37</b></p><p><b> 參考文獻(xiàn)38</b></p><p><b> 附 件39</b></p><p><b>
18、 一、英文原文39</b></p><p><b> 二、英文翻譯48</b></p><p> 三、工程設(shè)計(jì)圖紙57</p><p><b> 四、源程序58</b></p><p><b> 五、教學(xué)檔案</b></p><p
19、><b> 前 言</b></p><p> 信息科學(xué)和微電子技術(shù)的飛速發(fā)展給控制領(lǐng)域帶來(lái)了巨大的飛躍,控制技術(shù)更加趨向自動(dòng)化和智能化,為無(wú)數(shù)的使用者帶來(lái)了方便。在控制領(lǐng)域里,溫度是一個(gè)常見(jiàn)的名詞,然而它所帶來(lái)的技術(shù)問(wèn)題和所起的作用卻是非同一般的。在控制領(lǐng)域中,對(duì)溫度的控制有著舉足輕重的作用。例如陶瓷的燒烤,只有控制住溫度的適度,才能制作出一件完美的藝術(shù)品,否則只是一件廢品;還有
20、如釀酒的過(guò)程,也需要對(duì)溫度進(jìn)行控制??梢?jiàn),在生活的許多方方面面都有著對(duì)溫度進(jìn)行感知和控制的需要。</p><p> 溫度是一個(gè)十分重要的物理量,對(duì)它的測(cè)量與控制有十分重要的意義。隨著現(xiàn)代工農(nóng)業(yè)技術(shù)的發(fā)展及人們對(duì)生活環(huán)境要求的提高,人們也迫切需要檢測(cè)與控制溫度。在人類(lèi)的生活環(huán)境中,溫度扮演著極其重要的角色。無(wú)論你生活在哪里,從事什么工作,無(wú)時(shí)無(wú)刻不在與溫度打著交道。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等等行業(yè),可
21、以說(shuō)幾乎80%的工業(yè)部門(mén)都不得不考慮著溫度的因素。溫度對(duì)于工業(yè)如此重要,由此推進(jìn)了溫度傳感器的發(fā)展。 </p><p> 測(cè)量溫度的基本方法是使用溫度計(jì)直接讀取溫度。最常見(jiàn)到的測(cè)量溫度的工具是各種各樣的溫度計(jì),例如,水銀玻璃溫度計(jì),酒精溫度計(jì),熱電偶或熱電阻溫度計(jì)等。它們常常以刻度的形式表示溫度的高低,人們必須通過(guò)讀取刻度值的多少來(lái)測(cè)量溫度。而在傳統(tǒng)的模擬信號(hào)溫度測(cè)量系統(tǒng)中,測(cè)溫電路的電磁環(huán)境非常惡劣,各
22、種干擾信號(hào)較強(qiáng),模擬溫度信號(hào)容易受到干擾而產(chǎn)生測(cè)量誤差,影響測(cè)量精度,不能滿足數(shù)字化時(shí)代的需求。利用單片機(jī)和溫度傳感器構(gòu)成的電子式智能溫度計(jì)精度高、抗干擾能力強(qiáng),可擴(kuò)展性強(qiáng)、集成方便得到了廣泛的應(yīng)用。而且可以直接測(cè)量溫度,得到溫度的數(shù)字值,既簡(jiǎn)單方便,又直觀準(zhǔn)確,新型數(shù)字溫度傳感器是溫度計(jì)設(shè)計(jì)的最有效方案。</p><p> 本課題就是一個(gè)對(duì)溫度進(jìn)行檢測(cè),采集和顯示的溫度檢測(cè)系統(tǒng)。它以單片機(jī)(AT89S51)為
23、主要控制器件,DS18B20為溫度傳感器,并通過(guò)LCD液晶1602直接顯示所測(cè)溫度的新型數(shù)字溫度計(jì)。由于本人所學(xué)知識(shí)有限,設(shè)計(jì)過(guò)程中難免會(huì)出現(xiàn)錯(cuò)誤,還請(qǐng)各位老師指正。</p><p> 第一章 數(shù)字溫度計(jì)的總體方案設(shè)計(jì)及論證</p><p> 根據(jù)系統(tǒng)設(shè)計(jì)的功能,本時(shí)鐘溫度系統(tǒng)的設(shè)計(jì)必須采用單片機(jī)軟件系統(tǒng)實(shí)現(xiàn),用單片機(jī)的自動(dòng)控制能力來(lái)測(cè)量、顯示溫度數(shù)值。</p><
24、;p> 初步確定設(shè)計(jì)系統(tǒng)由單片機(jī)主控模塊、測(cè)溫模塊、顯示模塊、報(bào)警模塊共4個(gè)模塊組成,電路系統(tǒng)框圖如圖1.1所示。</p><p> 圖1.1 系統(tǒng)基本方框圖</p><p> 對(duì)于單片機(jī)的選擇,如果用8051系列,由于它沒(méi)有內(nèi)部RAM,系統(tǒng)又需要一定的內(nèi)存存儲(chǔ)數(shù)據(jù)。AT89S51是一個(gè)低功耗、高性能CMOS 8位的單片機(jī),片內(nèi)含8k Bytes ISP的可反復(fù)擦寫(xiě)1000次的
25、Flash只讀程序存儲(chǔ)器,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),功能強(qiáng)大的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。而AT89S51與AT89C51相比,外型管腳完全相同,AT89C51的HEX程序無(wú)須任何轉(zhuǎn)換可直接在AT89S51運(yùn)行,且AT89S51比AT89C51新增了一些功能,相比較后,在本設(shè)計(jì)中選用AT89S51更能很好的實(shí)現(xiàn)溫度計(jì)控制功能。 </p><p> 測(cè)溫
26、電路可以使用熱敏電阻之類(lèi)的器件,利用其感溫效應(yīng),將被測(cè)溫度變化的電壓或電流采集過(guò)來(lái),進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)處理。但是這種感溫電路比較復(fù)雜,且采用熱敏電阻精度低,重復(fù)性、可靠性都比較差。</p><p> 如果采用溫度傳感器DS18B20可以減少外部硬件電路,而且可以很容易直接讀取被測(cè)溫度值,進(jìn)而轉(zhuǎn)換,還可以在高溫報(bào)警,且成本低、易使用,可以很好的滿足設(shè)計(jì)要求。所以本文采用傳感器DS18B20代
27、替?zhèn)鹘y(tǒng)的測(cè)溫電路。</p><p> 溫度的顯示可以采用LED數(shù)碼管來(lái)顯示,LED亮度高、醒目,但是電路復(fù)雜,占用資</p><p> 源多且信息量小。而采用液晶顯示器有明顯的優(yōu)點(diǎn):工作電流比LED小幾個(gè)數(shù)量級(jí),功耗低;尺寸小,厚度約為L(zhǎng)ED的1/3;字跡清晰、美觀、使人舒服;壽命長(zhǎng),使用方便,可得性強(qiáng)。故本設(shè)計(jì)采用LCD來(lái)顯示溫度。</p><p> 第二章
28、 數(shù)字溫度計(jì)硬件電路的實(shí)現(xiàn)</p><p> 第一節(jié) 復(fù)位電路及晶振電路設(shè)計(jì)</p><p> 根據(jù)方案的設(shè)計(jì),系統(tǒng)硬件電路主要由主控單片機(jī)AT80S51、溫度傳感器DS18B20、液晶顯示器1602等組成。</p><p> 影響單片機(jī)系統(tǒng)運(yùn)行穩(wěn)定性的內(nèi)部因素包括復(fù)位電路和振蕩源的穩(wěn)定性,振蕩源的穩(wěn)定性主要由起振時(shí)間、頻率穩(wěn)定度和占空比穩(wěn)定度決定,起振時(shí)
29、間可由電路參數(shù)整定,穩(wěn)定度受振蕩器類(lèi)型、溫度和電壓等參數(shù)影響。</p><p><b> 一、復(fù)位電路</b></p><p> 復(fù)位電路的基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤銷(xiāo)復(fù)位信號(hào)。在本系統(tǒng)中,上電復(fù)位采用電平方式開(kāi)關(guān)復(fù)位,具體電路如圖2.1所示。上電復(fù)位采用RC電路,其中電容為10F,電阻為10K。</p><p&
30、gt;<b> 二、晶振電路</b></p><p> 單片機(jī)系統(tǒng)里晶振的作用非常大,它結(jié)合單片機(jī)內(nèi)部的電路,產(chǎn)生單片機(jī)所必須的時(shí)鐘頻率,單片機(jī)的一切指令的執(zhí)行都是建立在這個(gè)基礎(chǔ)上的,晶振提供的十種頻率越高,單片機(jī)運(yùn)行的速度也就越快。單片機(jī)的晶振頻率應(yīng)低于40MHZ,本設(shè)計(jì)中采用的晶振頻率為12MHZ,具體電路如2.2所示,在晶振上并聯(lián)兩個(gè)30F電容。</p><p&
31、gt; 第二節(jié) 溫度傳感器設(shè)計(jì)</p><p> 一、概述 DS18B20溫度傳感器是一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下: ①獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信; ②多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能; ③無(wú)須
32、外部器件; ④可通過(guò)數(shù)據(jù)線供電,電壓范圍為3.0~5.5V; ⑤零待機(jī)功耗; ⑥溫度以9或12位數(shù)字; ⑦用戶可定義報(bào)警設(shè)置; ⑧報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件; ⑨負(fù)電壓特性,電極接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,只是不能正常工作。</p><p> 二、DS18B20的外形及內(nèi)部結(jié)構(gòu)</p><p> 1、
33、DS18B20引腳定義及電源工作方式</p><p> DS18B20的外形及引腳如圖2.3所示。</p><p> DS18B20引腳功能的詳細(xì)描述如表2.1所示。</p><p> DS18B20的電源供電方式有兩種,一種為寄生電源供電方</p><p> 式,另一種為外部電源工作方式。其中,在寄生電源供電方式</p>
34、<p> 下,DS18B20從單線信號(hào)線上汲取能量:在信號(hào)線DQ處于高電 </p><p> 平期間把能量?jī)?chǔ)存在內(nèi)部電容里,在信號(hào)線處于低電平期間消耗</p><p> 電容上的電能工作,直到高電平到來(lái)再給寄生電源(電容)充電。 圖2.3 DS18B20的引腳</p><p> 其具體電路如圖2.4。</p><p>
35、; 表2.1 DS18B20詳細(xì)引腳功能描述圖</p><p> 圖2.4 寄生電源工作方式</p><p> DS18B20獨(dú)特的寄生電源方式有如下三個(gè)好處: ①進(jìn)行遠(yuǎn)距離測(cè)溫時(shí),無(wú)需本地電源; ②可在沒(méi)有常規(guī)電源的條件下讀取ROM;
36、; ③電路更簡(jiǎn)潔,僅用一根I/O口實(shí)現(xiàn)測(cè)溫 要使DS18B20進(jìn)行精確的溫度轉(zhuǎn)換,I/O線必須保證在溫度轉(zhuǎn)換期間提供足夠的能量,由于每個(gè)DS18B20在溫度轉(zhuǎn)換期間工作電流要達(dá)到1mA,當(dāng)幾個(gè)溫度傳感器掛在同一根I/O線上進(jìn)行多點(diǎn)測(cè)溫時(shí),只靠4.7K上拉電阻就無(wú)法提供足夠的能量,會(huì)造成無(wú)法轉(zhuǎn)換溫度或溫度誤差大。 因此,圖2.4的寄生電源電路只適應(yīng)于單一溫度傳感器測(cè)溫情況下使用,不
37、適宜采用電池供電系統(tǒng)中。并且工作電源VCC必須保證在5V,當(dāng)電源電壓下降時(shí),寄生電源能夠汲取的能量也降低,會(huì)使溫度誤差變大。 DS18B20外部電源供電方式如圖2.5所示,其工作電源由VDD引腳接入,此時(shí)I/O線不需要強(qiáng)上拉,不存在電源電流不足的問(wèn)題,可以保證轉(zhuǎn)換精度,同時(shí)在總線理論上可以掛接任意多個(gè)DS18B20傳感器,組成多點(diǎn)測(cè)溫系統(tǒng)。注意:在外部供電的方式下,DS18B20的GND引腳不能懸空,否則不能轉(zhuǎn)換溫度,讀取的溫度
38、總是85</p><p> 外部電源供電方式是DS18B20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強(qiáng),而且電路也比較簡(jiǎn)單,本設(shè)計(jì)中使用外部電源供電方式。在外接電源方式下,可以充分發(fā)揮DS18B20寬</p><p> 電源電壓范圍的優(yōu)點(diǎn),即使電源電壓VCC降到3V時(shí),依然能夠保證溫度量精度。</p><p> 圖2.5 外部電源工作方式</p>
39、<p> 2、DS18B20內(nèi)部結(jié)構(gòu)</p><p> DS18B20內(nèi)部結(jié)構(gòu)如圖2.6,它主要由四部分組成:64位光刻ROM、溫度傳感器、存儲(chǔ)器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL。</p><p> 圖2.6 DS18B20內(nèi)部結(jié)構(gòu)圖</p><p><b> (1)、光刻ROM</b></p><p&
40、gt; 光刻ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開(kāi)始8位(28H)是產(chǎn)品類(lèi)型標(biāo)號(hào),接著的48位是該DS18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。</p><p><b>
41、?。?)、溫度傳感器</b></p><p> DS18B20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以12位轉(zhuǎn)化為例:用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625℃/LSB形式表達(dá),其中S為符號(hào)位,12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在DS18B20的兩個(gè)8比特的RAM中。DS18B20溫度值格式如二進(jìn)制表2.2所示,其中,前5位是符號(hào)位,如果測(cè)得的溫度大于0,這5位為0,只要將測(cè)得的數(shù)值乘以
42、0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于 0.0625即可得到實(shí)際溫度。</p><p> 例如+125℃的數(shù)字輸出為07D0H,+25.0625℃的數(shù)字輸出為0191H,-25.0625℃的數(shù)字輸出為FF6FH,-55℃的數(shù)字輸出為FC90H。</p><p> 表2.2 DS18B20溫度值格式表</p><p>
43、; ?。?)、DS18B20的存儲(chǔ)器</p><p> DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EEPRAM,后者存放高溫度和低溫度觸發(fā)器的TH、TL。</p><p> ?、?、配置寄存器DS18B20配置寄存器各字節(jié)意義如表2.3下:</p><p> 表2.3 DS18B20寄存器中各位內(nèi)容</p>
44、<p> 其中,低五位一直都是"1",TM是測(cè)試模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式。在DS18B20出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng)。其中,R1和R0用來(lái)設(shè)置分辨率,具體設(shè)置如表2.4所示:(DS18B20出廠時(shí)被設(shè)置為12位)。</p><p> 表2.4 溫度分辨率設(shè)置表</p><p> ②、高速暫存存儲(chǔ)器
45、 高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,其分配如表2.5所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二進(jìn)制補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。單片機(jī)可通過(guò)單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式如表2.2所示。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。第九個(gè)字節(jié)是冗余檢驗(yàn)字節(jié)。</p><p&
46、gt; 表2.5 DS18B20暫存寄存器分布</p><p> 三、DS18B20工作原理 DS18B20的溫度值的位數(shù)因分辨率不同而不同,溫度轉(zhuǎn)換時(shí)的最大延時(shí)為750ms。 DS18B20測(cè)溫原理如圖2.7所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器
47、2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。</
48、p><p> 圖2.7 DS18B20測(cè)溫原理</p><p> 四、DS18B20 溫度測(cè)量通信協(xié)議</p><p> 由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)AT89S51單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)DS18B20芯片的訪問(wèn)?! ∮捎贒S1
49、8B20是在一根I/O線上讀寫(xiě)數(shù)據(jù),因此,對(duì)讀寫(xiě)的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。</p><p> DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的</p><p> 時(shí)序:初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫(xiě)命令后,
50、主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。 DS18B20的復(fù)位時(shí)序如圖2.8所示: 圖2.8 DS18B20的復(fù)位時(shí)序</p><p> DS18B20的讀時(shí)序如圖2.9所示:</p><p> 圖2.9 DS18B20的讀時(shí)序</p><p> 對(duì)于DS18B20的讀時(shí)序分為讀0時(shí)
51、序和讀1時(shí)序兩個(gè)過(guò)程?! ?duì)于DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15um之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個(gè)讀時(shí)序過(guò)程,至少需要60us才能完成。 DS18B20的寫(xiě)時(shí)序如圖2.10所示:</p><p> 圖2.10 DS18B20的寫(xiě)時(shí)序</p><p> 對(duì)于DS18B20的寫(xiě)時(shí)序仍然分為寫(xiě)0時(shí)序和寫(xiě)1時(shí)序
52、兩個(gè)過(guò)程。 對(duì)于DS18B20寫(xiě)0和寫(xiě)1時(shí)序的要求不同,當(dāng)要寫(xiě)0時(shí)序時(shí),單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣I/O總線上的“0”電平,當(dāng)要寫(xiě)1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單總線。 系統(tǒng)對(duì) DS18B20 的各種操作必須按協(xié)議進(jìn)行。根據(jù) DS18B20 的協(xié)議規(guī)定,微控制器控制 DS18B20 完成溫度的轉(zhuǎn)換必須經(jīng)過(guò)以下 4 個(gè)步驟 :</p>
53、<p> ①每次讀寫(xiě)前對(duì) DS18B20 進(jìn)行復(fù)位初始化。復(fù)位要求主 CPU 將數(shù)據(jù)線下拉 500us ,然后釋放, DS18B20 收到信號(hào)后等待 16us~60ms 左右,然后發(fā)出60us~240us 的存在低脈沖,主 CPU 收到此信號(hào)后表示復(fù)位成功。</p><p> ?、诎l(fā)送一條 ROM 指令,具體ROM指令如表2.6所示:</p><p> 表2.6 DS18
54、B20的ROM指令集</p><p> ?、郯l(fā)送存儲(chǔ)器指令,具體存儲(chǔ)器指令如表2.7所示。</p><p><b> ④進(jìn)行數(shù)據(jù)通信。</b></p><p> 表2.7 DS18B20 的存儲(chǔ)器指令集</p><p> 五、DS18B2的外部電路圖</p><p> 根據(jù)設(shè)計(jì)要求,傳感器
55、的硬件電路圖如圖2.11所示。</p><p> 圖2.11 DS18B20外部電路圖</p><p> 第三節(jié) 液晶顯示電路設(shè)計(jì)</p><p> 液晶屏顯示模塊與數(shù)碼管相比,它顯得更為專(zhuān)業(yè)、漂亮。液晶顯示屏以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧、使用方便等諸多優(yōu)點(diǎn),在通訊、儀器儀表、電子設(shè)備、家用電器等低功耗應(yīng)用系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用,使這些電
56、子設(shè)備的人機(jī)界面變得越來(lái)越直觀形象,目前已廣泛應(yīng)用于電子表、計(jì)算器、IC卡電話機(jī)、液晶電視機(jī)、便攜式電腦、掌上型電子玩具、復(fù)</p><p> 印機(jī)、傳真機(jī)等許多方面。1602字符型液晶模塊(帶背光),是目前工控系統(tǒng)中使用最為廣泛的液晶屏之一。</p><p> 一、1602的引腳功能介紹</p><p> 1602采用標(biāo)準(zhǔn)的16腳接口,其引腳功能如下:<
57、;/p><p> 第1腳:VSS為電源地,接GND。 第2腳:VDD接5V正電源?!? 第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度?! ?第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器?! ?第5腳:RW為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和RW
58、共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。 第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令?! ?第7~14腳:D0~D7為8位雙向數(shù)據(jù)線?! ?第15腳:BLA背光電源正極(+5V)輸入引腳?! ?第16腳:BLK背光源負(fù)極,接GND</p><p> 二、1602的標(biāo)準(zhǔn)字庫(kù)
59、60; 1602液晶模塊內(nèi)帶標(biāo)準(zhǔn)字庫(kù),內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了192個(gè)5×7點(diǎn)陣字符,這些字符如表3.1所示。</p><p> 另外還有字符生成RAM(CGRAM)512字節(jié),供用戶自定義字符,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“A”的代碼是01000001B(41
60、H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A”。</p><p> 表3.1 CGROM和CGRAM中字符代碼與字符圖形部分對(duì)應(yīng)關(guān)系</p><p> 三、1602液晶模塊內(nèi)部的控制指令</p><p> 1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表3.2所示。</p><p> 1602的讀寫(xiě)操
61、作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的(其中,1為高電平、0為低電平),各指令的解釋如下:</p><p> 指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置;</p><p> 指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H;指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移;S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效;</p&
62、gt;<p> 表3.2 1602控制器指令</p><p> 指令4:顯示開(kāi)關(guān)控制。 D:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍;</p><p> 指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo);</p>
63、<p> 指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符;</p><p> 指令7:字符發(fā)生器RAM地址設(shè)置;</p><p> 指令8:DDRAM地址設(shè)置;</p><p> 指令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙
64、標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙;</p><p><b> 指令10:寫(xiě)數(shù)據(jù);</b></p><p><b> 指令11:讀數(shù)據(jù);</b></p><p> 液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示
65、字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。表3.3是1602的內(nèi)部顯示地址。</p><p> 表3.3 1602的內(nèi)部顯示地址</p><p> 比如第二行第一個(gè)字符的地址是40H,那么是否直接寫(xiě)入40H就可以將光標(biāo)定位在第二行第一個(gè)字符的位置呢?這樣不行,因?yàn)閷?xiě)入顯示地址時(shí)要求最高位D7恒定為高電平1所以實(shí)際寫(xiě)入的數(shù)據(jù)應(yīng)該是01000000B(40H)+100000
66、00B(80H)=11000000B(C0H)。</p><p> 四、1602的外部電路圖</p><p> 根據(jù)設(shè)計(jì)要求,1602液晶顯示器的硬件電路圖如圖3.1所示。</p><p> 圖3.1 LCD1602外部連接圖</p><p> 第三章 數(shù)字溫度計(jì)軟件設(shè)計(jì)流程及程序</p><p> 單片機(jī)
67、應(yīng)用系統(tǒng)軟件可采用匯編語(yǔ)言和C語(yǔ)言進(jìn)行編寫(xiě),由于匯編語(yǔ)言的可讀性和可移植性都較差,采用匯編語(yǔ)言編寫(xiě)的單片機(jī)應(yīng)用程序不但周期長(zhǎng),而且調(diào)試和排錯(cuò)也比較困難。為了提高編制單片機(jī)應(yīng)用程序的效率,改善程序的可讀性和可移植性,采用C語(yǔ)言無(wú)疑是一種最好的選擇。C語(yǔ)言具有一般高級(jí)語(yǔ)言的特點(diǎn),還能直接對(duì)計(jì)算機(jī)的硬件進(jìn)行操作,表達(dá)和運(yùn)算能力也較強(qiáng)。所以,本設(shè)計(jì)采用C語(yǔ)言編寫(xiě)程序。</p><p><b> 第一節(jié) 主程序
68、設(shè)計(jì)</b></p><p> 主程序的主要功能是負(fù)責(zé)讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值、實(shí)時(shí)顯示溫度值。溫度測(cè)量每1s進(jìn)行一次,這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度。系統(tǒng)主程序首先對(duì)系統(tǒng)進(jìn)行初始化,然后顯示開(kāi)機(jī)畫(huà)面。由于單片機(jī)沒(méi)有停止指令,所以可以設(shè)計(jì)系統(tǒng)程序不斷地循環(huán)執(zhí)行上述顯示結(jié)果。其程序流程如圖3.1所示。</p><p> 第二節(jié) 溫度值讀取程序設(shè)計(jì)<
69、/p><p> 讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。其程序流程圖如圖2.1。溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)始命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750毫秒,在本程序設(shè)計(jì)中采用1秒顯示程序延時(shí)法等待轉(zhuǎn)換的完成。</p><p> 由于DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了三種
70、時(shí)序:初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。我們應(yīng)很好的理解和完成DS18B20各時(shí)序程序設(shè)計(jì)。</p><p> 一、DS18B20的延時(shí)程序</p><p> 首先,設(shè)置DS18B20的延時(shí)子程序,以利于各時(shí)序的精確延時(shí)等待,其具體程序如下。</p><p> void delay_18B20(unsigned int i)</p><p>
71、 {while(i--);</p><p><b> }</b></p><p> 該延時(shí)的指令條數(shù)為2×i+5,每一條指令的周期為2us。</p><p> 二、DS18B20的初始化程序</p><p> 由第二章對(duì)DS18B20的介紹可知,對(duì)DS18B20的初始化要求主 CPU 將數(shù)據(jù)線下拉
72、500us ,然后釋放,DS18B20 收到信號(hào)后等待 16us~60us 左右,然后發(fā)出 60us~240us 的存在低脈沖,主 CPU 收到此信號(hào)后表示復(fù)位成功。根據(jù)初始化時(shí)序的要求編寫(xiě)初始化子程序如下:</p><p> void Init_DS18B20(void) { DQ = 1;
73、 //復(fù)位 DS18B20通信端口 delay_18B20(8); //稍做延時(shí) DQ = 0; //單片機(jī)將DQ拉低,準(zhǔn)備復(fù)位DS18B20 delay_18B20(125); //精確延時(shí)510us</p>&l
74、t;p> delay_18B20(125); </p><p> DQ = 1; //拉高數(shù)據(jù)線 delay_18B20(4); //稍做延時(shí)后</p><p> while(DQ) </
75、p><p><b> {</b></p><p> NOP() ; //等待DS18B20的ACK信號(hào),如果DQ =0則初始化成功;DQ =1則初始化失敗</p><p><b> }</b></p><p> } delay_18B20(60);</
76、p><p> DQ=1; //拉高數(shù)據(jù)線,準(zhǔn)備數(shù)據(jù)傳輸}</p><p> 三、DS18B20的讀時(shí)序程序</p><p> DS18B20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程,對(duì)于DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個(gè)讀時(shí)
77、序過(guò)程,至少需要60us才能完成。由此,DS18B20的寫(xiě)一個(gè)字節(jié)程序如下。 static void ReadOneChar(void) { uchar i=0; uchar dat = 0; for (i=8;i>0;i--) //每次讀取一位,8個(gè)字節(jié)需要讀取8次 {</p><p> dat>>=
78、1; //低位先發(fā) DQ = 0; // 高電平拉成低電平時(shí)讀周期開(kāi)始 NOP(); DQ = 1; // 必須寫(xiě)一,否則讀出的數(shù)據(jù)將是不預(yù)期的數(shù)據(jù) </p><p&g
79、t; delay_18B20(2);if(DQ)dat︱=0x80; </p><p> delay_18B20(30);</p><p><b> DQ=1;</b></p><p> NOP(); //恢復(fù)一線總線</p><p> }
80、 return(dat); }</p><p> 四、DS18B20的寫(xiě)時(shí)序程序</p><p> DS18B20的寫(xiě)時(shí)序仍然分為寫(xiě)0時(shí)序和寫(xiě)1時(shí)序兩個(gè)過(guò)程。對(duì)于DS18B20寫(xiě)0時(shí)序和寫(xiě)1時(shí)序的要求不同,當(dāng)要寫(xiě)0時(shí)序時(shí),單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣I/O總線上的“0”電平,當(dāng)要寫(xiě)1時(shí)序時(shí),單總線被
81、拉低之后,在15us之內(nèi)就得釋放單總線。由此,DS18B20的讀字一個(gè)節(jié)程序如下。 void WriteOneChar(uchar cmd) { unsigned char i=0;</p><p> for (i=8; i>0; i--) {</p><p> if(cmd&0
82、x01) //地位在前 {DQ = 0; //從高電平拉至低電平時(shí),寫(xiě)周期的開(kāi)始 delay_18B20(20); //60us到120us延時(shí) DQ = 1;}
83、0; //發(fā)送數(shù)據(jù)</p><p><b> else</b></p><p> { DQ = 0; </p><p> delay_18B20(20);</p><p><b> DQ = 0;}</b></p><p
84、> delay_18B20(30); //等待DS18B20采樣</p><p> cmd>>=1; //從最低位到最高位傳入 }</p><p><b> }</b></p><p> 第三節(jié) 計(jì)算溫度程序設(shè)計(jì)</p><p>
85、計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖3.3。</p><p> 第四節(jié) 顯示數(shù)據(jù)及刷新程序設(shè)計(jì)</p><p> 顯示數(shù)據(jù)刷新子程序主要時(shí)對(duì)顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為零時(shí)將符號(hào)顯示位移入下一位。程序流程圖如圖4.1。</p><p> 第四章 Keil C51調(diào)試過(guò)程介紹<
86、;/p><p> 程序的調(diào)試我們采用Keil C51.Keil C51 軟件是眾多單片機(jī)應(yīng)用開(kāi)發(fā)的優(yōu)秀軟件之一,它集編輯,編譯,仿真于一體,支持匯編,PLM 語(yǔ)言和 C 語(yǔ)言的程序設(shè)計(jì),界面友好,易學(xué)易用。</p><p> 具體的調(diào)試過(guò)程如下:</p><p> 進(jìn)入 Keil C51 后,屏幕如下圖4.1,4.2所示。幾秒鐘后出現(xiàn)編輯界</p>
87、<p> 圖4.1 啟動(dòng)Keil C51時(shí)的屏幕</p><p> 圖4.2 進(jìn)入Keil C51后的編輯界面</p><p><b> 建立一個(gè)新工程</b></p><p> 單擊Project菜單,在彈出的下拉菜單中選中New Project選項(xiàng),如圖4.3.</p><p><b>
88、 圖4.3 新建工程</b></p><p> 然后選擇你要保存的路徑,輸入工程文件的名字,比如保存到C51目錄里,工程文件的名字為C51,如圖4.4所示,然后點(diǎn)擊保存.</p><p><b> 圖4.4</b></p><p> 這時(shí)會(huì)彈出一個(gè)對(duì)話框,要求選擇單片機(jī)的型號(hào),可以根據(jù)需要選擇單片機(jī),keil c51幾乎支持所
89、有的51核的單片機(jī),這里我們選用Atmel 的89S51,如圖4.5所示,選擇89S51之后,右邊欄是對(duì)這個(gè)單片機(jī)的基本的說(shuō)明,然后點(diǎn)擊確定.</p><p><b> 圖4.5</b></p><p> 完成上一步驟后,屏幕如下圖所示4.6.</p><p><b> 圖4.6</b></p><
90、;p> 到現(xiàn)在為止,我們還沒(méi)有編寫(xiě)一句程序,下面開(kāi)始編寫(xiě)我們的第一個(gè)程序。</p><p> 單擊“File”菜單,再在下拉菜單中單擊“New”選項(xiàng),如圖4.7.</p><p><b> 圖4.7</b></p><p> 新建文件后屏幕如圖4.8所示 </p><p><b> 圖4.8&l
91、t;/b></p><p> 此時(shí)光標(biāo)在編輯窗口里閃爍,這時(shí)可以鍵入用戶的應(yīng)用程序了,但筆者建議首先保存該空白的文件,單擊菜單上的“File”,在下拉菜單中選中“Save As”選項(xiàng)單擊,屏幕如圖</p><p> 4.9所示,在“文件名”欄右側(cè)的編輯框中,鍵入欲使用的文件名,同時(shí),必須鍵入正確的擴(kuò)展名。注意,如果用C語(yǔ)言編寫(xiě)程序,則擴(kuò)展名為(.c);如果用匯編語(yǔ)言編寫(xiě)程序,則擴(kuò)
92、展名必須為(.asm)。然后,單擊“保存”按鈕。 </p><p><b> 圖4.9</b></p><p> 回到編輯界面后,單擊“Target 1”前面的“+”號(hào),然后在“Source Group 1”上單</p><p> 擊右鍵,彈出如圖4.10菜單</p><p><b> 4.10<
93、/b></p><p> 然后單擊“Add File to Group ‘Source Group 1’” 屏幕如圖4.11所示 </p><p><b> 圖4.11</b></p><p> 選中Test.c,然后單擊“Add ”屏幕如圖4.12所示.</p><p><b> ?。?
94、12</b></p><p> 注意到“Source Group 1”文件夾中多了一個(gè)子項(xiàng)“Text1.c”了嗎?子項(xiàng)的多少與所增加的源程序的多少相同 </p><p> ?、堋‖F(xiàn)在,請(qǐng)輸入如下的C語(yǔ)言源程序: </p><p> #include <reg52.h> //包含文件 #include <st
95、dio.h> void main(void) //主函數(shù) { SCON=0x52; TMOD=0x20; TH1=0xf3; TR1=1; //此行及以上3行為PRINTF函數(shù)所必須 printf(“Hello I am KEIL. \n”); //打印程序執(zhí)行的信息 printf(“I will be
96、your friend.\n”); while(1); } </p><p> 在輸入上述程序時(shí),可以看到事先保存待編輯的文件的好處,即Keil c51會(huì)自動(dòng)識(shí)別關(guān)鍵字,并以不同的顏色提示用戶加以注意,這樣會(huì)使用戶少犯錯(cuò)誤,有利于提高編程效率。程序輸入完畢后,在上圖中,單擊“Project”菜單,再在下拉菜單中單擊“Built Target”選項(xiàng),編譯成功后,再單擊“Project”菜單,在下拉
97、菜單中單擊“Start/Stop Debug Session”,</p><p> 屏幕如圖4.13所示.</p><p><b> ?。?13</b></p><p><b> 調(diào)試程序</b></p><p> 在上圖中,單擊“Debug”菜單,在下拉菜單中單擊“Go”選項(xiàng),然后再單擊“D
98、ebug”菜單,在下拉菜單中單擊“Stop Running”選項(xiàng);再單擊“View”菜單,再在下拉菜單中單擊“Serial Windows #1”選項(xiàng),就可以看到程序運(yùn)行后的結(jié)果,其結(jié)果如圖4.14所示.</p><p><b> 4.14</b></p><p> 至此,我們?cè)贙eil C51上做了一個(gè)完整工程的全過(guò)程。</p><p>
99、<b> 結(jié) 論</b></p><p> 溫度的檢測(cè)和控制是一個(gè)經(jīng)典的課題,生活中的各個(gè)領(lǐng)域里經(jīng)常需要檢測(cè)和控制某一特定環(huán)境的溫度,使之能夠穩(wěn)定在一定的溫度范圍之內(nèi)。這就要求系統(tǒng)對(duì)溫度的檢測(cè)具有足夠的精度和實(shí)時(shí)性,控制要有足夠的精度,并且盡可能具有較低的成本,這樣的產(chǎn)品才具有實(shí)用價(jià)值。DS18B20恰好具有這樣的優(yōu)勢(shì),由于其可直接輸出數(shù)字量,不需要AD轉(zhuǎn)換,測(cè)溫范圍大,與單片機(jī)容易接
100、口,成為原來(lái)廣為使用的熱電阻、熱電偶的理想替代品。因此本設(shè)計(jì)可以應(yīng)用于多種溫度控制場(chǎng)合。</p><p> 本設(shè)計(jì)敘述了智能溫度計(jì)的設(shè)計(jì),包括硬件組成和軟件的設(shè)計(jì)。該系統(tǒng)在硬件設(shè)計(jì)上主要是通過(guò)其核心控制器件AT89S51將采集到的數(shù)字溫度電壓值經(jīng)單片機(jī)處理得到相應(yīng)的溫度值,送到LCD顯示器,以數(shù)字形式顯示測(cè)量的溫度。整個(gè)系統(tǒng)的軟件編程就是通過(guò)C語(yǔ)言對(duì)單片機(jī)AT89S51實(shí)現(xiàn)其控制功能,整個(gè)系統(tǒng)結(jié)構(gòu)緊湊,簡(jiǎn)單可靠
101、,操作靈活,功能強(qiáng)大,性能價(jià)格比高,較好的滿足了現(xiàn)代農(nóng)業(yè)生產(chǎn)和科研的需要。</p><p> 通過(guò)仿真軟件Proteus仿真后,很好的實(shí)現(xiàn)了溫度值得顯示,滿足課程要求,具體的仿真圖如下:</p><p><b> 結(jié)束語(yǔ)</b></p><p> 畢業(yè)設(shè)計(jì)完成了,在這個(gè)過(guò)程中使我覺(jué)得不論從理論知識(shí)還是從實(shí)際設(shè)計(jì)中都學(xué)到了不少知識(shí)。首先我要
102、感謝我的導(dǎo)師劉雙臨老師,他在我完成論文的過(guò)程中,給予了我很大的幫助。</p><p> 在論文開(kāi)始的初期,由于對(duì)于溫度計(jì)的認(rèn)識(shí)很少,我對(duì)于論文的結(jié)構(gòu)以及文獻(xiàn)選取等方面都有很多問(wèn)題,通過(guò)對(duì)溫度計(jì)原理的認(rèn)識(shí),并比較多種不同的設(shè)計(jì)方案,最后確定了設(shè)計(jì)溫度計(jì)的功能以及各類(lèi)功能模塊的器件選擇。并在導(dǎo)師的幫助下,找到相應(yīng)的各類(lèi)資料,并大致整理,粗略閱讀了一遍。認(rèn)識(shí)到很多知識(shí)以前都沒(méi)有接觸過(guò),所以制定了一個(gè)大致的計(jì)劃,希望能
103、夠很好的完成論文。</p><p> 在接下來(lái)的畢業(yè)設(shè)計(jì)中,由于在公司實(shí)習(xí),相對(duì)在畢業(yè)設(shè)計(jì)的時(shí)間少了很多。主要是深入對(duì)前期溫度設(shè)計(jì)方案的認(rèn)識(shí)。在這期間,很多知識(shí)都是第一次接觸,通過(guò)查找了很多知識(shí),認(rèn)真閱讀,有了一定的認(rèn)識(shí)。相對(duì)困難最大的還是硬件的設(shè)計(jì)和程序編寫(xiě)方面。這些都需要很多的實(shí)際設(shè)計(jì)經(jīng)驗(yàn),第一次設(shè)計(jì)起來(lái)覺(jué)得相當(dāng)吃力,剛開(kāi)始不知道從何下手。后來(lái),通過(guò)老師的指導(dǎo),在實(shí)際的設(shè)計(jì)過(guò)程中,都有了很大進(jìn)步。</
104、p><p> 在畢業(yè)設(shè)計(jì)的過(guò)程中,還認(rèn)識(shí)到理論知識(shí)對(duì)實(shí)踐有很大的指導(dǎo)作用,只有在正確的理論指導(dǎo)下,才能設(shè)計(jì)出合乎實(shí)際需要的硬件電路。但同時(shí),實(shí)際的應(yīng)用中與理論又會(huì)有一定出入,所以要很好的掌握好理論與實(shí)際的矛盾。</p><p> 這次畢業(yè)設(shè)計(jì)是對(duì)大學(xué)三年所學(xué)知識(shí)的一次實(shí)際應(yīng)用與檢閱,同時(shí)對(duì)自學(xué)能力提出了很高的要求,所以平時(shí)的學(xué)習(xí)離開(kāi)思考,就是嚴(yán)重的錯(cuò)誤,不能只為了考試而學(xué)習(xí)。并且在學(xué)習(xí)的過(guò)
105、程中更要廣闊的接觸各方面的知識(shí),才能更好的為以后的工作打好基礎(chǔ)。</p><p> 在我寫(xiě)論文的過(guò)程中,劉雙臨老師給我提供了許多資料,并對(duì)實(shí)踐中出現(xiàn)的問(wèn)題給予了耐心的解答,完稿之后在百忙中仔細(xì)閱讀,給出修改意見(jiàn)。在設(shè)計(jì)過(guò)程中,還有很多同學(xué)給予我各方面的支持,在此對(duì)他們都表示誠(chéng)摯感謝!</p><p><b> 參考文獻(xiàn)</b></p><p&g
106、t; [1] 徐愛(ài)鈞,智能化測(cè)量控制儀表原理與設(shè)計(jì)(第二版),北京航空航天大學(xué)出版社,2004</p><p> [2] 吳金戌,沈慶陽(yáng),郭庭吉,8051單片機(jī)實(shí)踐與應(yīng)用,清華大學(xué)出版社,2002</p><p> [3] “電子愛(ài)好者”網(wǎng)站:http://www.etun.com;</p><p> [4] 肖玲妮,袁增貴,Protel 99 SE印刷電路
107、板設(shè)計(jì)教程,清華大學(xué)出版社,2003年8月</p><p> [5] 安新艷,Proteus仿真技術(shù)在單片機(jī)教學(xué)中的應(yīng)用,常州信息職業(yè)技術(shù)學(xué)院學(xué)報(bào),2008年7卷1期</p><p> [6]張存吉,羅芬,廖威,葉穎,楊春,基于DS18B20的智能語(yǔ)音數(shù)字溫度計(jì)的設(shè)計(jì),大眾科技,2007年12期</p><p><b> [7]</b>&
108、lt;/p><p><b> [8]</b></p><p><b> [9]</b></p><p><b> [10]</b></p><p><b> [11]</b></p><p><b> [12]<
109、;/b></p><p><b> [13]</b></p><p><b> [14]</b></p><p><b> [15]</b></p><p><b> 附 件</b></p><p><b>
110、; 一、英文原文</b></p><p> The Introduction of AT89S51</p><p> Description</p><p> The AT89S51 is a low-power, high-performance CMOS 8-bit microcomputer with 4K bytes of Flash m
111、emory.The device is manufactured using Atmel’s high-density nonvolatile memory technology and is compatible with the industry-standard MCS-51 instruction set and pinout. The on-chip Flash allows the program memory to be
112、reprogrammed in-system or by a conventional nonvolatile memory programmer. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89S51 is a powerful microcomput</p><p> The AT89S51
113、 provides the following standard features: 4K bytes of Flash, 128 bytes of RAM, 32 I/O lines, two 16-bit timer/counters, a five vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator and c
114、lock circuitry. In addition, the AT89S51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, tim
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字溫度計(jì)課程設(shè)計(jì)---基于51單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)
- 數(shù)字溫度計(jì)課程設(shè)計(jì)---基于51單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)的設(shè)計(jì)
- 溫度計(jì)課程設(shè)計(jì)---基于51單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)的設(shè)計(jì)二稿.doc
- 論文--基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)論文
- 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)論文
- 單片機(jī)課程設(shè)計(jì)-- 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)
- 基于單片機(jī)數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)
- 基于單片機(jī)數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)數(shù)字溫度計(jì)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的數(shù)字溫度計(jì)的設(shè)計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)【文獻(xiàn)綜述】
- 基于單片機(jī)的數(shù)字溫度計(jì)課程設(shè)計(jì)
- 基于單片機(jī)數(shù)字溫度計(jì)開(kāi)題報(bào)告
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)數(shù)字溫度計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論