版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 畢 業(yè) 論 文</p><p> 設(shè)計(jì)課題:模擬恒溫控制系統(tǒng)的設(shè)計(jì) </p><p> 班 級(jí) 09電氣班</p><p> 專(zhuān) 業(yè) 電氣自動(dòng)化</p><p><b> 目錄</b></p><p><b> 摘要1<
2、/b></p><p><b> 緒論1</b></p><p> 第一章 總體設(shè)計(jì)方案1</p><p> 1.1、數(shù)字溫度計(jì)設(shè)計(jì)方案論證1</p><p> 1.2、方案選擇1</p><p> 第二章 總體設(shè)計(jì)框圖2</p><p>
3、2.1、主控制器3</p><p> 2.2、顯示電路3</p><p> 2.3、溫度傳感器3</p><p> 2.4、元件清單7</p><p> 第三章 硬件部分8</p><p> 3.1、DS18B20溫度傳感器與單片機(jī)的接口電路8</p><p> 3.2
4、、系統(tǒng)整體硬件電路8</p><p> 第四章 軟件部分10</p><p> 4.1、系統(tǒng)軟件算法分析10</p><p> 4.2、主程序10</p><p> 4.3、讀出溫度子程序11</p><p> 4.4、溫度轉(zhuǎn)換命令子程序11</p><p> 4.5、
5、 計(jì)算溫度子程序12</p><p> 4.6、顯示數(shù)據(jù)刷新子程序13</p><p> 第五章 溫度控制器程序清單14</p><p> 第六章 實(shí)物圖</p><p><b> 結(jié)束語(yǔ)23</b></p><p><b> 參考文獻(xiàn)23<
6、/b></p><p><b> 摘要</b></p><p> 在生產(chǎn)生活中,溫度是一個(gè)很重要的參數(shù),例如在水產(chǎn)養(yǎng)殖中的經(jīng)常要控制水溫,室溫在一定的溫度范圍之內(nèi),因?yàn)樯锏纳鏈囟仁怯邢薜?,不可以在過(guò)高或過(guò)低的環(huán)境中生存。所以的如果可以利用單片機(jī)技術(shù)在開(kāi)發(fā)一個(gè)設(shè)備去控制溫度,那就可以為養(yǎng)殖業(yè)提高經(jīng)濟(jì)效益。還有在一些工廠內(nèi),員工的工作環(huán)境的溫度和設(shè)備的存放溫
7、度都有嚴(yán)格的要求,這是就要一些溫控,設(shè)備去控制這些溫度,確保了生命很財(cái)產(chǎn)的安全。這些溫控系統(tǒng)的應(yīng)用范圍是很廣的,例如鋼鐵廠的溫控監(jiān)督,水產(chǎn)業(yè)的恒溫控制,房地產(chǎn)中的新型房屋中的恒溫控制,本文就講解了模擬恒溫控制系統(tǒng)的設(shè)計(jì)。</p><p> 單片機(jī)是一種集CPU、RAM、ROM、I/O接口和中斷系統(tǒng)等部分于一體的器件,只需要外加電源和晶振就可實(shí)現(xiàn)對(duì)數(shù)字信息的處理和控制。所有單片機(jī)的出現(xiàn)解決了許多工業(yè)控制的問(wèn)題。&
8、lt;/p><p> 本論文側(cè)重介紹“模擬恒溫控制系統(tǒng)的設(shè)計(jì)”的軟件設(shè)計(jì)及相關(guān)內(nèi)容。論文的主要內(nèi)容包括:采樣、濾波、鍵盤(pán)、LED顯示和報(bào)警系統(tǒng),加熱控制系統(tǒng),單片機(jī)MCS-51的開(kāi)發(fā)以及系統(tǒng)應(yīng)用軟件開(kāi)發(fā)等。作為控制系統(tǒng)中的一個(gè)典型實(shí)驗(yàn)設(shè)計(jì),單片機(jī)溫度控制系統(tǒng)綜合運(yùn)用了微機(jī)原理、自動(dòng)控制原理、模擬電子技術(shù)、數(shù)字控制技術(shù)、鍵盤(pán)顯示技術(shù)等諸多方面的知識(shí),是對(duì)所學(xué)知識(shí)的一次綜合測(cè)試。</p><p>
9、; 關(guān)鍵詞:?jiǎn)纹瑱C(jī),數(shù)字控制,溫度計(jì), DS18B20,STC89C52RC</p><p><b> 緒論</b></p><p> 1946年第一臺(tái)電子計(jì)算機(jī)誕生至今,只有50年的時(shí)間,依靠微電子技術(shù)和半導(dǎo)體技術(shù)的進(jìn)步,從電子管——晶體管——集成電路——大規(guī)模集成電路,現(xiàn)在一塊芯片上完全可以集成幾百萬(wàn)甚至上千萬(wàn)只晶體管,使得計(jì)算機(jī)體積更小,功能更強(qiáng)。特別是近
10、20年時(shí)間里,計(jì)算機(jī)技術(shù)獲得飛速的發(fā)展,計(jì)算機(jī)在工農(nóng)業(yè),科研,教育,國(guó)防和航空航天領(lǐng)域獲得了廣泛的應(yīng)用,計(jì)算機(jī)技術(shù)已經(jīng)是一個(gè)國(guó)家現(xiàn)代科技水平的重要標(biāo)志。 單片機(jī)誕生于20世紀(jì)70年代,象fairchid公司研制的F8單片微型計(jì)算機(jī)。所謂單片機(jī)是利用大規(guī)模集成電路技術(shù)把中央處理單元(Center Processing Unit,也即常稱(chēng)的CPU)和數(shù)據(jù)存儲(chǔ)器(RAM)、程序存儲(chǔ)器(ROM)及其他I/O通信口集成在一塊芯片上,構(gòu)成一
11、個(gè)最小的計(jì)算機(jī)系統(tǒng),而現(xiàn)代的單片機(jī)則加上了中斷單元,定時(shí)單元及A/D轉(zhuǎn)換等更復(fù)雜、更完善的電路,使得單片機(jī)的功能越來(lái)越強(qiáng)大,應(yīng)用更廣泛。 20世紀(jì)70年代,微電子技術(shù)正處于發(fā)展階段,集成電路屬于中規(guī)模發(fā)展時(shí)期,各種新材料新工藝尚未成熟,單片機(jī)仍處在初級(jí)的發(fā)展階段,元件集成規(guī)模還比較小,功能比較簡(jiǎn)單,一般均把CPU、RAM有</p><p> 本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫
12、范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用,該設(shè)計(jì)控制器使用單片機(jī)STC89C51RC,測(cè)溫傳感器使用DS18B20,用4位共陽(yáng)極LED數(shù)碼管以串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以上要求。</p><p> 第一章 總體設(shè)計(jì)方案</p><p> 1.1、數(shù)字溫度計(jì)設(shè)計(jì)方案論證</p><p><b>
13、; 1.1.2 方案一</b></p><p> 用keil編程軟件遍好要控制的溫度范圍,燒錄到單片機(jī)STC89C52RC中,然后采用一只溫度傳感器DS18B20去采集溫度,再用一根電熱絲和一個(gè)風(fēng)扇分別表示升溫和散熱系統(tǒng)。DS18B20采集的溫度信息處理后在發(fā)給單片機(jī)再進(jìn)行運(yùn)算,單片機(jī)做出判斷后再控制電熱絲和風(fēng)扇去調(diào)控溫度在事先編程時(shí)設(shè)定的溫度。這樣要改變?cè)O(shè)定的溫度時(shí)就會(huì)有點(diǎn)繁瑣。</p&g
14、t;<p><b> 1.1.1 方案二</b></p><p> 由于考慮到用戶(hù)對(duì)溫度要求的范圍不一樣,方案一的改變溫度的設(shè)定值有點(diǎn)繁瑣,又不能時(shí)刻監(jiān)控溫度是多少?所以在方案一的基礎(chǔ)上加上1個(gè)4位數(shù)碼管LG3641BH,用于顯示當(dāng)前的溫度;再加上一個(gè)蜂鳴器YHE12-05 SOT,用于溫度過(guò)高或過(guò)低報(bào)警;再加上3個(gè)點(diǎn)動(dòng)按鈕,用于設(shè)定要控制的溫度范圍,這樣就免了重新編寫(xiě)溫度
15、值的繁瑣步驟。</p><p><b> 1.1.3 方案三</b></p><p> 考慮到有些人對(duì)設(shè)備的指示燈和LED數(shù)碼管的溫度數(shù)值不明其含義,于是在方案三上加上一個(gè)16*16的點(diǎn)陣模塊,當(dāng)溫度過(guò)低時(shí)點(diǎn)陣就顯示“注意,溫度過(guò)低,請(qǐng)檢查升溫系統(tǒng)”,當(dāng)溫度過(guò)高時(shí)點(diǎn)陣就現(xiàn)示“注意,溫度過(guò)高,請(qǐng)檢查散熱系統(tǒng)”,當(dāng)溫度在設(shè)定值的范圍時(shí)點(diǎn)陣就顯示“當(dāng)前的溫度正常”。&l
16、t;/p><p><b> 1.2、方案選擇</b></p><p> 從三種方案中很容易看出,方案一,電路比較簡(jiǎn)單,軟件設(shè)計(jì)也比較簡(jiǎn)單,但是不夠人性化,方案三制作的成本高,軟件設(shè)計(jì)復(fù)雜,只有方案而的最合適,電路和軟件的設(shè)計(jì)難度剛好,故選擇方案二。</p><p> 第二章 總體設(shè)計(jì)框圖</p><p> 溫度計(jì)電
17、路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖2-1所示,控制器采用單片機(jī)STC89S51,溫度傳感器采用DS18B20,用3位LED數(shù)碼管以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。</p><p> 圖2-1 總體設(shè)計(jì)方框圖</p><p><b> 2.1、主控制器</b></p><p><b> .</b></p><p&g
18、t;<b> 2.2、顯示電路</b></p><p> 顯示電路采用4位共陽(yáng)LED數(shù)碼管,從P3口RXD,TXD串口輸出段碼。</p><p><b> 2.3、溫度傳感器</b></p><p> DS18B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件
19、相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下:</p><p> ●獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;</p><p> ●多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;</p><p><b> ●無(wú)須外部器件;</b></p>
20、<p> ●可通過(guò)數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;</p><p><b> ●零待機(jī)功耗;</b></p><p> ●溫度以9或12位數(shù)字;</p><p> ●用戶(hù)可定義報(bào)警設(shè)置;</p><p> ●報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件;</p>
21、<p> ●負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作; </p><p> DS18B20采用3腳PR-35封裝或8腳SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖如圖2-2所示。</p><p> 圖2-2 DS18B20內(nèi)部結(jié)構(gòu)</p><p> 64位ROM的結(jié)構(gòu)開(kāi)始8位是產(chǎn)品類(lèi)型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48位,
22、最后8位是前面56位的CRC檢驗(yàn)碼,這也是多個(gè)DS18B20可以采用一線進(jìn)行通信的原因。溫度報(bào)警觸發(fā)器TH和TL,可通過(guò)軟件寫(xiě)入戶(hù)報(bào)警上下限。</p><p> DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖2-3所示。頭2個(gè)字節(jié)包含測(cè)得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第
23、5個(gè)字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式,DS18B20出廠時(shí)該位被設(shè)置為0,用戶(hù)要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來(lái)設(shè)置分辨率。</p><p> 圖2-3 DS18B20字節(jié)定義</p>&
24、lt;p> 由表2-1可見(jiàn),DS18B20溫度轉(zhuǎn)換的時(shí)間比較長(zhǎng),而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長(zhǎng)。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。</p><p> 高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來(lái)檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。</p><p> 當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開(kāi)始啟
25、動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1、2字節(jié)。單片機(jī)可以通過(guò)單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。</p><p> 當(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ù)值。表2-2是一部分溫度值對(duì)應(yīng)的二進(jìn)制溫度
26、數(shù)據(jù)。</p><p> 表2-1 DS18B20溫度轉(zhuǎn)換時(shí)間表</p><p> 表2-2 一部分溫度對(duì)應(yīng)值表</p><p> DS18B20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較。若T>TH或T<TL,則將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的報(bào)警搜索命令做出響應(yīng)。因此,可用多只DS18B20同時(shí)測(cè)量溫度并進(jìn)行報(bào)警搜索
27、。在64位ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余檢驗(yàn)碼(CRC)。主機(jī)ROM的前56位來(lái)計(jì)算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。</p><p> DS18B20的測(cè)溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入。器件中
28、還有一個(gè)計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將-55℃所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1、溫度寄存器中,計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。</p><p> 減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,減
29、法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到0時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直到溫度寄存器值大致被測(cè)溫度值。另外,由于DS18B20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化DS
30、18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)。</p><p> 2.4、元件清單 </p><p><b> 如表2-3</b></p><p><b> 第三章 硬件部分</b></p><p> 3.1、DS18B20溫度傳感器與單片機(jī)的接口電路</
31、p><p> DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式,如圖3-4 所示單片機(jī)端口接單線總線,為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET管來(lái)完成對(duì)總線的上拉。</p><p> 圖3-4 DS18B20與單片機(jī)的接口電路</p><p&
32、gt; 當(dāng)DS18B20處于寫(xiě)存儲(chǔ)器操作和溫度A/D轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開(kāi)啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。</p><p> 3.2、系統(tǒng)整體硬件電路</p><p> 3.2.1 主板電路</p><p> 系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,上
33、下限報(bào)警調(diào)整電路,單片機(jī)主板電路等,如圖3-5 所示。圖3-5中有三個(gè)獨(dú)立式按鍵可以分別調(diào)整溫度計(jì)的上下限報(bào)警設(shè)置,圖中蜂鳴器可以在被測(cè)溫度不在上下限范圍內(nèi)時(shí),發(fā)出報(bào)警鳴叫聲音,同時(shí)LED數(shù)碼管將沒(méi)有被測(cè)溫度值顯示,這時(shí)可以調(diào)整報(bào)警上下限,從而測(cè)出被測(cè)的溫度值。圖3-5 中的按健復(fù)位電路是上電復(fù)位加手動(dòng)復(fù)位,使用比較方便,在程序跑飛時(shí),可以手動(dòng)復(fù)位,這樣就不用在重起單片機(jī)電源,就可以實(shí)現(xiàn)復(fù)位。</p><p>
34、 3.2.2 顯示電路</p><p> 顯示電路是使用的串口顯示,這種顯示最大的優(yōu)點(diǎn)就是使用口資源比較少,只用p3口的RXD,和TXD,串口的發(fā)送和接收,四只數(shù)碼管采用74LS164右移寄存器驅(qū)動(dòng),顯示比較清晰,如圖3-6所示。</p><p> 圖3-5 單片機(jī)主板電路</p><p> 圖3-6 溫度顯示電路</p><p>&l
35、t;b> 第四章 軟件部分</b></p><p> 4.1、系統(tǒng)軟件算法分析</p><p> 系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序等。</p><p><b> 4.2、主程序</b></p><p> 主程序的主要功能是負(fù)責(zé)溫度
36、的實(shí)時(shí)顯示、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程見(jiàn)圖4-1所示。</p><p> 圖4-1 主程序流程圖</p><p> 4.3、讀出溫度子程序</p><p> 讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。其程序流程
37、圖如圖4-2示</p><p> 圖4-2 讀溫度流程圖</p><p> 4.4、溫度轉(zhuǎn)換命令子程序</p><p> 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)始命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如上圖,圖4-3所示</p><p> 圖4-3
38、 溫度轉(zhuǎn)換流程</p><p> 4.5、 計(jì)算溫度子程序</p><p> 計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖4-4所示。</p><p> 圖4-4 計(jì)算溫度流程圖</p><p> 4.6、顯示數(shù)據(jù)刷新子程序</p><p> 顯示數(shù)據(jù)刷新
39、子程序主要是對(duì)顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號(hào)顯示位移入下一位。程序流程圖如圖4-5。</p><p> 圖4-5 顯示數(shù)據(jù)刷新流程圖</p><p> 第五章 溫度控制器程序清單</p><p> S1OK EQU 5FH</p><p> TEMPUTER EQU 39H</p>
40、<p> TEMPH EQU 5EH</p><p> TEMPL EQU 5DH</p><p> MS50 EQU 5CH</p><p> SIGN EQU 5BH</p><p> S1 BIT P1.0</p><p> S2 BIT P1.1</
41、p><p> S3 BIT P1.2</p><p> S4 BIT P1.3</p><p> ORG 0000H</p><p> LJMP MAIN</p><p> ORG 000BH</p><p> LJMP TOIT</p><p
42、> ORG 0030H</p><p> MAIN: MOV SP, #60H</p><p> MOV TMOD, #01H</p><p> MOV TH0, #3CH</p><p> MOV TL0, #0B0H</p><p><b> SETB ET0
43、</b></p><p><b> SETB TR0</b></p><p><b> SETB EA</b></p><p> MOV TEMPH, #30</p><p> MOV TEMPL, #9</p><p> MOV TEMPUT
44、ER, #15 ;溫度最始值</p><p> MOV S1OK, #00H</p><p> MOV SIGN, #00H</p><p> MOV 38H, #0BH</p><p> MOV 37H, #0CH</p><p> MOV 36H, #0BH</p>
45、<p> ACALL DISP</p><p><b> ACALL T1S</b></p><p> ; *****************************************</p><p><b> ; 主程序</b></p><p> START: JB
46、 S1, NET1</p><p> ACALL T12MS</p><p> JB S1, NET1</p><p> JNB S1, $</p><p><b> INC SIGN</b></p><p> MOV A, SIGN</p><p>
47、CJNE A, #1, TIAO</p><p> ACALL TIAOTL</p><p> TIAO:CJNE A, #2, NET1</p><p> MOV SIGN, #0</p><p> ACALL TIAOTH</p><p> ; ******************************
48、***********</p><p> NET1: MOV A, S1OK</p><p> CJNE A, #1, START</p><p> MOV A, TEMPUTER</p><p> SUBB A, TEMPH</p><p> JNB ACC.7, ALEM</p&g
49、t;<p> MOV A, TEMPUTER</p><p> SUBB A, TEMPL</p><p> JB ACC.7, ALEM</p><p> SETB P2.1</p><p> ACALL WENDU</p><p> ACALL DISP</p>
50、<p> MOV S1OK, #00H</p><p> AJMP START</p><p> ALEM: MOV 36H, #0CH</p><p> MOV 37H, #0CH</p><p> MOV 38H, #0CH</p><p> CLR P2.1<
51、;/p><p> ACALL DISP</p><p><b> ACALL T1S</b></p><p> LCALL WENDU</p><p> LCALL DISP</p><p> MOV S1OK, #00H</p><p> SJMP STA
52、RT</p><p> ;*****************************************</p><p> TIAOTL:MOV 50H, TEMPUTER</p><p> MOV 37H, TEMPL</p><p> ACALL BIN_BCD</p><p> ACAL
53、L DISP</p><p> ACALL T12MS</p><p> ACALL T12MS</p><p> ACALL T12MS</p><p> ACALL T12MS</p><p> MOV 36H, #0AH</p><p> MOV 37H, #0AH&l
54、t;/p><p> MOV 38H, #0AH</p><p> ACALL DISP</p><p> ACALL T12MS</p><p> ACALL T12MS</p><p> ACALL T12MS</p><p> ACALL T12MS</p><
55、;p> JB S2, ADD1</p><p> ACALL T12MS</p><p> JB S2, ADD1</p><p> JNB S2, $</p><p><b> INC TEMPL</b></p><p> MOV A, TEMPL</p>
56、;<p> CJNE A, #100, ADD1</p><p> MOV TEMPL, #0</p><p> ADD1: JB S3, ADD2</p><p> ACALL T12MS</p><p> JB S3, ADD2</p><p> JNB S3, $</
57、p><p><b> DEC TEMPL</b></p><p> MOV A, TEMPL</p><p> CJNE A, #00 , ADD2</p><p> MOV TEMPL,#100</p><p> ADD2: JB S4, TIAOTL</p><p
58、> ACALL T12MS</p><p> JB S4, TIAOTL</p><p><b> JNB S4, $</b></p><p> MOV TEMPUTER, 50H</p><p> LJMP START</p><p><b> ; 高位調(diào)整<
59、/b></p><p> ; *****************************************</p><p> TIAOTH:MOV 50H, TEMPUTER</p><p> MOV 37H, TEMPH</p><p> ACALL BIN_BCD</p><p>
60、 ACALL DISP</p><p> ACALL T12MS</p><p> ACALL T12MS</p><p> ACALL T12MS</p><p> ACALL T12MS</p><p> MOV 36H, #0AH</p><p> MOV
61、 37H, #0AH</p><p> MOV 38H, #0AH</p><p> ACALL DISP</p><p> ACALL T12MS</p><p> ACALL T12MS</p><p> ACALL T12MS</p><p> ACALL T
62、12MS</p><p> JB S2, ADD11</p><p> ACALL T12MS</p><p> JB S2, ADD11</p><p> JNB S2, $</p><p><b> INC TEMPH</b></p><p>
63、MOV A, TEMPH</p><p> CJNE A, #100, ADD11</p><p> MOV TEMPH, #0</p><p> ADD11: JB S3, ADD22</p><p> ACALL T12MS</p><p> JB S3, ADD22</p>&
64、lt;p> JNB S3, $</p><p><b> DEC TEMPH</b></p><p> MOV A, TEMPH</p><p> CJNE A, #00 , ADD22</p><p> MOV TEMPH,#100</p><p> ADD22: JB
65、 S4, TIAOTH</p><p> ACALL T12MS</p><p> JB S4, TIAOTH</p><p><b> JNB S4, $</b></p><p> MOV TEMPUTER, 50H</p><p> LJMP START</p>&l
66、t;p><b> ; 一秒定時(shí)中段</b></p><p> ; *****************************************</p><p> TOIT: PUSH PSW</p><p> PUSH ACC</p><p> MOV TH0, #3CH<
67、/p><p> MOV TL0, #0B0H</p><p> INC MS50</p><p> MOV A, MS50</p><p> CJNE A, #14H, RETURN</p><p> MOV S1OK, #1</p><p> MOV MS50
68、, #00H</p><p> RETURN:POP ACC</p><p><b> POP PSW</b></p><p><b> RETI</b></p><p> ; *****************************************</p>
69、<p><b> ;溫度總子程序</b></p><p> ; *****************************************</p><p> wendu: ACALL INIT_1820</p><p> ACALL RE_CONFIG</p><p> ACALL
70、 GET_TEMPER</p><p> ACALL TEMPER_COV</p><p><b> RET</b></p><p> ; *****************************************</p><p> ;DS18B20初始化程序</p><p>
71、; ; *****************************************</p><p> INIT_1820:</p><p><b> SETB P2.0</b></p><p><b> NOP</b></p><p><b> CLR P2.0</
72、b></p><p> MOV R0,#06BH</p><p> MOV R1,#03H</p><p><b> TSR1:</b></p><p> DJNZ R0,TSR1 ; 延時(shí)</p><p> MOV R0,#6BH</p><p> DJ
73、NZ R1,TSR1</p><p><b> SETB P2.0</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p> M
74、OV R0,#25H</p><p><b> TSR2:</b></p><p> JNB P2.0,TSR3</p><p> DJNZ R0,TSR2</p><p> LJMP TSR4 ; 延時(shí)</p><p><b> TSR3:</b></p&g
75、t;<p> SETB 20H.1 ; 置標(biāo)志位,表示DS1820存在</p><p><b> LJMP TSR5</b></p><p><b> TSR4:</b></p><p> CLR 20H.1 ; 清標(biāo)志位,表示DS1820不存在</p><p><b&
76、gt; LJMP TSR7</b></p><p><b> TSR5:</b></p><p> MOV R0,#06BH</p><p> MOV R1,#03H</p><p> TSR6:DJNZ R0,TSR6 ; 延時(shí)</p><p> MOV R0,#6BH
77、</p><p> DJNZ R1,TSR6</p><p> TSR7:SETB P2.0</p><p><b> RET</b></p><p> ; *****************************************</p><p> ; 重新寫(xiě)DS18B20暫存
78、存儲(chǔ)器設(shè)定值</p><p> ; *****************************************</p><p> RE_CONFIG:JB 20H.1,RE_CONFIG1 ; 若DS18B20存在,轉(zhuǎn)RE_CONFIG1</p><p><b> RET</b></p><p> RE_
79、CONFIG1:</p><p> MOV A,#0CCH ; 發(fā)SKIP ROM命令</p><p> LCALL WRITE_1820</p><p> MOV A,#4EH ; 發(fā)寫(xiě)暫存存儲(chǔ)器命令</p><p> LCALL WRITE_1820</p><p> MOV A,#00H ; TH(報(bào)警
80、上限)中寫(xiě)入00H</p><p> LCALL WRITE_1820</p><p> MOV A,#00H ; TL(報(bào)警下限)中寫(xiě)入00H</p><p> LCALL WRITE_1820</p><p> MOV A,#1FH ; 選擇9位溫度分辨率</p><p> LCALL WRITE_182
81、0</p><p><b> RET</b></p><p> ; *****************************************</p><p> ; 讀出轉(zhuǎn)換后的溫度值</p><p> ; *****************************************</p&g
82、t;<p> GET_TEMPER:</p><p> SETB P2.0 ; 定時(shí)入口</p><p> LCALL INIT_1820</p><p> JB 20H.1,TSS2</p><p> RET ; 若DS18B20不存在則返回</p><p><b> TSS2:&
83、lt;/b></p><p> MOV A,#0CCH ; 跳過(guò)ROM匹配</p><p> LCALL WRITE_1820</p><p> MOV A,#44H ; 發(fā)出溫度轉(zhuǎn)換命令</p><p> LCALL WRITE_1820</p><p> LCALL INIT_1820</p&
84、gt;<p> MOV A,#0CCH ; 跳過(guò)ROM匹配</p><p> LCALL WRITE_1820</p><p> MOV A,#0BEH ; 發(fā)出讀溫度命令</p><p> LCALL WRITE_1820</p><p> LCALL READ_18200</p><p>
85、 MOV 37H,A ; 將讀出的溫度數(shù)據(jù)保存</p><p><b> RET</b></p><p> ; *****************************************</p><p> ; 寫(xiě)DS18B20的程序</p><p> ; ***********************
86、******************</p><p> WRITE_1820:</p><p><b> MOV R2,#8</b></p><p><b> CLR C</b></p><p> WR1:CLR P2.0</p><p><b> NOP
87、</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> RRC A</b></p><p> MOV P
88、2.0,C</p><p> MOV R3,#35</p><p><b> DJNZ R3,$</b></p><p><b> SETB P2.0</b></p><p><b> NOP</b></p><p> DJNZ R2,WR1&
89、lt;/p><p><b> SETB P2.0</b></p><p><b> RET</b></p><p> ; *****************************************</p><p> ; 讀DS18B20的程序,從DS18B20中讀出兩個(gè)字節(jié)的溫度數(shù)據(jù)&l
90、t;/p><p> ; *****************************************</p><p> READ_18200:</p><p> MOV R4,#2 ; 將溫度高位和低位DS18B20中讀 </p><p> RE00:MOV R2,#8</p><p> RE01:CLR
91、 C</p><p><b> SETB P2.0</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> CLR P2.0</b></p><p><b&
92、gt; NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> SETB P2.0</b></p><p><b> NOP</b></p><
93、p><b> NOP</b></p><p> MOV C,P2.0</p><p> MOV R3,#35</p><p><b> RE20:</b></p><p> DJNZ R3,RE20</p><p><b> RRC A</b
94、></p><p> DJNZ R2,RE01</p><p><b> MOV @R1,A</b></p><p><b> DEC R1</b></p><p> DJNZ R4,RE00</p><p><b> RET</b>&l
95、t;/p><p> ; *****************************************</p><p> ; 將從DS18B20中讀出的溫度數(shù)據(jù)進(jìn)行轉(zhuǎn)換</p><p> ; *****************************************</p><p> TEMPER_COV:</p>
96、<p> MOV A,#0F0H</p><p> ANL A,36H ; 舍去溫度低位中小數(shù)點(diǎn)</p><p><b> SWAP A</b></p><p><b> MOV 37H,A</b></p><p><b> MOV A,36H</b>&
97、lt;/p><p> JNB ACC.3,TEMPER_COV1 ; 四舍五入去溫度值</p><p><b> INC 37H</b></p><p> TEMPER_COV1:</p><p><b> MOV A,35H</b></p><p> ANL A,#0
98、7H</p><p><b> SWAP A</b></p><p> ADD A,37H</p><p> MOV 37H,A ; 保存變換后的溫度數(shù)據(jù)</p><p> LCALL BIN_BCD</p><p><b> RET</b></p>
99、<p> ; *****************************************</p><p> ; 將16進(jìn)制的溫度數(shù)據(jù)轉(zhuǎn)換成壓縮BCD碼</p><p> ; 38H中放百位,37十位,36個(gè)位</p><p> ; *****************************************</p>&
100、lt;p><b> BIN_BCD:</b></p><p> MOV 39H,37H</p><p> MOV A,37H</p><p> MOV B,#100</p><p><b> DIV AB</b></p><p> M
101、OV 38H,A</p><p> MOV 37H,B</p><p> XCH A,B</p><p> MOV B,#10</p><p><b> DIV AB</b></p><p> MOV 37H,A</p><p>
102、; MOV 36H,B</p><p><b> RET</b></p><p> DISP: SETB RS0</p><p> MOV R0, #36H</p><p> MOV R7, #3</p><p> LOOPP:MOV A, @R0</p>
103、;<p> MOV DPTR, #TAB</p><p> MOVC A, @A+DPTR</p><p> MOV SBUF, A</p><p> JNB TI, $</p><p><b> CLR TI</b></p><p><b> INC
104、 R0</b></p><p> DJNZ R7, LOOPP</p><p><b> CLR RS0</b></p><p><b> RET</b></p><p> TAB: DB 11H, 0D7H, 32H, 92H, 0D4H, 98H, 18H, 0D1H
105、, 10H, 90H ,0FFH, 070H, 0FEH</p><p><b> ; 延時(shí)子程序</b></p><p> T12MS: SETB RS1</p><p> MOV R7, #18H</p><p> TM: MOV R6, #0FFH</p><p>
106、 TM6: DJNZ R6, TM6</p><p> DJNZ R7, TM</p><p><b> CLR RS1</b></p><p><b> RET</b></p><p><b> ; 開(kāi)機(jī)延時(shí)程序</b></p><p>
107、; T1S: SETB RS1</p><p> MOV R6, #3</p><p> LSP:ACALL T12MS</p><p> DJNZ R6, LSP</p><p><b> CLR RS1</b></p><p><b> RET</b>
108、;</p><p><b> END</b></p><p><b> 第六章 實(shí)物圖</b></p><p><b> 圖4-6 實(shí)物圖1</b></p><p> 圖4-7 實(shí)物圖2 </p><p><b> 結(jié)束語(yǔ)<
109、;/b></p><p> 經(jīng)過(guò)將近一個(gè)月的努力,關(guān)于《模擬恒溫控制系統(tǒng)的設(shè)計(jì)》論文已經(jīng)完成的七七八八了。期間如果沒(méi)有同學(xué)和老師的幫助我是不可能完成的,所以我在這里要感謝老師和同學(xué)們。</p><p> 這次論文的設(shè)計(jì)不僅使我的思考能力得到了提高,我的動(dòng)手能力也得到了提升,進(jìn)一步拉近我和單片機(jī)的距離,使我更進(jìn)一步的了解了單片機(jī)和其他的元器件的使用,但最重要的是和同學(xué)們之間的知識(shí)的
110、交流,我們之間取長(zhǎng)補(bǔ)短,還有老師的資料和輔導(dǎo)。</p><p> 三年的大學(xué)生活就快走到尾聲了,我們的大學(xué)生活就要畫(huà)上句號(hào),心中是無(wú)盡的難舍與眷戀?;厥兹?,取得了些許成績(jī),生活中有艱辛也有快樂(lè),感謝老師三年對(duì)我的孜孜教誨,對(duì)我成長(zhǎng)的關(guān)心和愛(ài)護(hù)。學(xué)友情深,情同兄妹。三年的風(fēng)風(fēng)雨雨,我們一同走過(guò),充滿(mǎn)著關(guān)愛(ài),給我留下值得珍藏的美好的記憶。</p><p> 在我十幾年的求學(xué)歷程里,離不開(kāi)
111、父母的鼓勵(lì)和支持,是他們辛苦的勞作,無(wú)私的付出,為我創(chuàng)造良好的學(xué)習(xí)環(huán)境,我才能順利的完成學(xué)業(yè),感激他們一直以來(lái)對(duì)我的撫養(yǎng)與培育。</p><p> 最后,我要特別感謝xx老師。三年來(lái)一直是xx老師當(dāng)任我們的班主任,他的付出同學(xué)們是可想而知的,是他在我寫(xiě)畢業(yè)論文時(shí),給我們巨大的幫助和鼓勵(lì),使我能夠順利完成畢業(yè)設(shè)計(jì),在此表示衷心感謝。</p><p> xx老師認(rèn)真負(fù)責(zé)工作的態(tài)度,嚴(yán)謹(jǐn)?shù)闹?/p>
112、學(xué)精神和深厚的理論水平都使我受益匪淺。他無(wú)論是在理論上還是在實(shí)踐中,都給我很大的幫助,使我得到不少的提高,這對(duì)我以后的生活工作都是一種巨大的幫助,感謝他的耐心的輔導(dǎo)。</p><p> 在系統(tǒng)開(kāi)發(fā)過(guò)程中xx老師給我的幫助真的很大,幫助我解決了不少的難點(diǎn),使得系統(tǒng)能及時(shí) 的開(kāi)發(fā)完成,謝謝。</p><p><b> 參考文獻(xiàn)</b></p><p
113、> 閆玉德.MCS-51單片機(jī)原理與應(yīng)用(c語(yǔ)言版).機(jī)械工業(yè)出版社,2002</p><p> 郭天祥.新概念51單片機(jī)C語(yǔ)言. 電子工業(yè)出版社, 2009-1-1</p><p> 周堅(jiān).單片機(jī)C語(yǔ)言輕松入門(mén). 北京航天航空大學(xué)出版社, 2006-7-1</p><p> 洪應(yīng),宋國(guó)富. 凌陽(yáng)16位單片機(jī)實(shí)用技. 中國(guó)鐵道出版
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文--基于單片機(jī)的自動(dòng)恒溫控制系統(tǒng)的設(shè)計(jì)
- 電氣自動(dòng)化畢業(yè)論文---自動(dòng)洗衣機(jī)plc控制系統(tǒng)設(shè)計(jì)
- 電氣自動(dòng)化畢業(yè)論文-室內(nèi)防盜智能控制系統(tǒng)設(shè)計(jì)
- 電氣自動(dòng)化畢業(yè)論文---系統(tǒng)的自動(dòng)控制
- 自動(dòng)加料機(jī)控制系統(tǒng)設(shè)計(jì)【自動(dòng)化畢業(yè)論文】
- 電氣工程與自動(dòng)化畢業(yè)論文船舶自動(dòng)靠岸控制系統(tǒng)設(shè)計(jì)
- 電氣自動(dòng)化畢業(yè)論文----五層電梯plc控制系統(tǒng)
- 電氣自動(dòng)化技術(shù)畢業(yè)論文--室內(nèi)防盜智能控制系統(tǒng)設(shè)計(jì)
- 電氣自動(dòng)化畢業(yè)論文--五層電梯plc控制系統(tǒng)
- 電氣自動(dòng)化畢業(yè)論文---基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)
- 電氣自動(dòng)化畢業(yè)論文基于單片機(jī)的自動(dòng)門(mén)控制系統(tǒng)設(shè)計(jì)
- 電氣工程與自動(dòng)化畢業(yè)論文船舶舵機(jī)控制系統(tǒng)改進(jìn)設(shè)計(jì)
- 電氣自動(dòng)化電梯畢業(yè)論文---五層電梯plc控制系統(tǒng)
- 電氣自動(dòng)化控制系統(tǒng)的設(shè)計(jì)
- 畢業(yè)論文(或設(shè)計(jì))基于單片機(jī)恒溫控制系統(tǒng)的設(shè)計(jì)
- 智能交通監(jiān)控系統(tǒng)設(shè)計(jì)-電氣自動(dòng)化自動(dòng)化畢業(yè)論文
- 電氣自動(dòng)化畢業(yè)論文
- 基于plc的自動(dòng)化機(jī)臺(tái)控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 程控制與自動(dòng)化儀表課程設(shè)計(jì)--管式換熱器恒溫控制系統(tǒng)設(shè)計(jì)
- 電氣自動(dòng)化畢業(yè)論文
評(píng)論
0/150
提交評(píng)論