2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p>  畢 業(yè) 論 文</p><p>  設(shè)計課題:模擬恒溫控制系統(tǒng)的設(shè)計 </p><p>  班 級 09電氣班</p><p>  專 業(yè) 電氣自動化</p><p><b>  目錄</b></p><p><b>  摘要1<

2、/b></p><p><b>  緒論1</b></p><p>  第一章 總體設(shè)計方案1</p><p>  1.1、數(shù)字溫度計設(shè)計方案論證1</p><p>  1.2、方案選擇1</p><p>  第二章 總體設(shè)計框圖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溫度傳感器與單片機的接口電路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、 計算溫度子程序12</p><p>  4.6、顯示數(shù)據(jù)刷新子程序13</p><p>  第五章 溫度控制器程序清單14</p><p>  第六章 實物圖</p><p><b>  結(jié)束語23</b></p><p><b>  參考文獻23<

6、/b></p><p><b>  摘要</b></p><p>  在生產(chǎn)生活中,溫度是一個很重要的參數(shù),例如在水產(chǎn)養(yǎng)殖中的經(jīng)常要控制水溫,室溫在一定的溫度范圍之內(nèi),因為生物的生存溫度是有限的,不可以在過高或過低的環(huán)境中生存。所以的如果可以利用單片機技術(shù)在開發(fā)一個設(shè)備去控制溫度,那就可以為養(yǎng)殖業(yè)提高經(jīng)濟效益。還有在一些工廠內(nèi),員工的工作環(huán)境的溫度和設(shè)備的存放溫

7、度都有嚴(yán)格的要求,這是就要一些溫控,設(shè)備去控制這些溫度,確保了生命很財產(chǎn)的安全。這些溫控系統(tǒng)的應(yīng)用范圍是很廣的,例如鋼鐵廠的溫控監(jiān)督,水產(chǎn)業(yè)的恒溫控制,房地產(chǎn)中的新型房屋中的恒溫控制,本文就講解了模擬恒溫控制系統(tǒng)的設(shè)計。</p><p>  單片機是一種集CPU、RAM、ROM、I/O接口和中斷系統(tǒng)等部分于一體的器件,只需要外加電源和晶振就可實現(xiàn)對數(shù)字信息的處理和控制。所有單片機的出現(xiàn)解決了許多工業(yè)控制的問題。&

8、lt;/p><p>  本論文側(cè)重介紹“模擬恒溫控制系統(tǒng)的設(shè)計”的軟件設(shè)計及相關(guān)內(nèi)容。論文的主要內(nèi)容包括:采樣、濾波、鍵盤、LED顯示和報警系統(tǒng),加熱控制系統(tǒng),單片機MCS-51的開發(fā)以及系統(tǒng)應(yīng)用軟件開發(fā)等。作為控制系統(tǒng)中的一個典型實驗設(shè)計,單片機溫度控制系統(tǒng)綜合運用了微機原理、自動控制原理、模擬電子技術(shù)、數(shù)字控制技術(shù)、鍵盤顯示技術(shù)等諸多方面的知識,是對所學(xué)知識的一次綜合測試。</p><p>

9、;  關(guān)鍵詞:單片機,數(shù)字控制,溫度計, DS18B20,STC89C52RC</p><p><b>  緒論</b></p><p>  1946年第一臺電子計算機誕生至今,只有50年的時間,依靠微電子技術(shù)和半導(dǎo)體技術(shù)的進步,從電子管——晶體管——集成電路——大規(guī)模集成電路,現(xiàn)在一塊芯片上完全可以集成幾百萬甚至上千萬只晶體管,使得計算機體積更小,功能更強。特別是近

10、20年時間里,計算機技術(shù)獲得飛速的發(fā)展,計算機在工農(nóng)業(yè),科研,教育,國防和航空航天領(lǐng)域獲得了廣泛的應(yīng)用,計算機技術(shù)已經(jīng)是一個國家現(xiàn)代科技水平的重要標(biāo)志。 單片機誕生于20世紀(jì)70年代,象fairchid公司研制的F8單片微型計算機。所謂單片機是利用大規(guī)模集成電路技術(shù)把中央處理單元(Center Processing Unit,也即常稱的CPU)和數(shù)據(jù)存儲器(RAM)、程序存儲器(ROM)及其他I/O通信口集成在一塊芯片上,構(gòu)成一

11、個最小的計算機系統(tǒng),而現(xiàn)代的單片機則加上了中斷單元,定時單元及A/D轉(zhuǎn)換等更復(fù)雜、更完善的電路,使得單片機的功能越來越強大,應(yīng)用更廣泛。 20世紀(jì)70年代,微電子技術(shù)正處于發(fā)展階段,集成電路屬于中規(guī)模發(fā)展時期,各種新材料新工藝尚未成熟,單片機仍處在初級的發(fā)展階段,元件集成規(guī)模還比較小,功能比較簡單,一般均把CPU、RAM有</p><p>  本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫

12、范圍廣,測溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準(zhǔn)確的場所,或科研實驗室使用,該設(shè)計控制器使用單片機STC89C51RC,測溫傳感器使用DS18B20,用4位共陽極LED數(shù)碼管以串口傳送數(shù)據(jù),實現(xiàn)溫度顯示,能準(zhǔn)確達到以上要求。</p><p>  第一章 總體設(shè)計方案</p><p>  1.1、數(shù)字溫度計設(shè)計方案論證</p><p><b>

13、;  1.1.2 方案一</b></p><p>  用keil編程軟件遍好要控制的溫度范圍,燒錄到單片機STC89C52RC中,然后采用一只溫度傳感器DS18B20去采集溫度,再用一根電熱絲和一個風(fēng)扇分別表示升溫和散熱系統(tǒng)。DS18B20采集的溫度信息處理后在發(fā)給單片機再進行運算,單片機做出判斷后再控制電熱絲和風(fēng)扇去調(diào)控溫度在事先編程時設(shè)定的溫度。這樣要改變設(shè)定的溫度時就會有點繁瑣。</p&g

14、t;<p><b>  1.1.1 方案二</b></p><p>  由于考慮到用戶對溫度要求的范圍不一樣,方案一的改變溫度的設(shè)定值有點繁瑣,又不能時刻監(jiān)控溫度是多少?所以在方案一的基礎(chǔ)上加上1個4位數(shù)碼管LG3641BH,用于顯示當(dāng)前的溫度;再加上一個蜂鳴器YHE12-05 SOT,用于溫度過高或過低報警;再加上3個點動按鈕,用于設(shè)定要控制的溫度范圍,這樣就免了重新編寫溫度

15、值的繁瑣步驟。</p><p><b>  1.1.3 方案三</b></p><p>  考慮到有些人對設(shè)備的指示燈和LED數(shù)碼管的溫度數(shù)值不明其含義,于是在方案三上加上一個16*16的點陣模塊,當(dāng)溫度過低時點陣就顯示“注意,溫度過低,請檢查升溫系統(tǒng)”,當(dāng)溫度過高時點陣就現(xiàn)示“注意,溫度過高,請檢查散熱系統(tǒng)”,當(dāng)溫度在設(shè)定值的范圍時點陣就顯示“當(dāng)前的溫度正常”。&l

16、t;/p><p><b>  1.2、方案選擇</b></p><p>  從三種方案中很容易看出,方案一,電路比較簡單,軟件設(shè)計也比較簡單,但是不夠人性化,方案三制作的成本高,軟件設(shè)計復(fù)雜,只有方案而的最合適,電路和軟件的設(shè)計難度剛好,故選擇方案二。</p><p>  第二章 總體設(shè)計框圖</p><p>  溫度計電

17、路設(shè)計總體設(shè)計方框圖如圖2-1所示,控制器采用單片機STC89S51,溫度傳感器采用DS18B20,用3位LED數(shù)碼管以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。</p><p>  圖2-1 總體設(shè)計方框圖</p><p><b>  2.1、主控制器</b></p><p><b>  .</b></p><p&g

18、t;<b>  2.2、顯示電路</b></p><p>  顯示電路采用4位共陽LED數(shù)碼管,從P3口RXD,TXD串口輸出段碼。</p><p><b>  2.3、溫度傳感器</b></p><p>  DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件

19、相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:</p><p>  ●獨特的單線接口僅需要一個端口引腳進行通信;</p><p>  ●多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;</p><p><b>  ●無須外部器件;</b></p>

20、<p>  ●可通過數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;</p><p><b>  ●零待機功耗;</b></p><p>  ●溫度以9或12位數(shù)字;</p><p>  ●用戶可定義報警設(shè)置;</p><p>  ●報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件;</p>

21、<p>  ●負電壓特性,電源極性接反時,溫度計不會因發(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)開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,

22、最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用一線進行通信的原因。溫度報警觸發(fā)器TH和TL,可通過軟件寫入戶報警上下限。</p><p>  DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲器,結(jié)構(gòu)如圖2-3所示。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時被刷新。第

23、5個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設(shè)置為0,用戶要去改動,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。</p><p>  圖2-3  DS18B20字節(jié)定義</p>&

24、lt;p>  由表2-1可見,DS18B20溫度轉(zhuǎn)換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。因此,在實際應(yīng)用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。</p><p>  高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。</p><p>  當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟

25、動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。</p><p>  當(dāng)符號位S=0時,表示測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十進制;當(dāng)符號位S=1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數(shù)值。表2-2是一部分溫度值對應(yīng)的二進制溫度

26、數(shù)據(jù)。</p><p>  表2-1 DS18B20溫度轉(zhuǎn)換時間表</p><p>  表2-2 一部分溫度對應(yīng)值表</p><p>  DS18B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較。若T>TH或T<TL,則將該器件內(nèi)的報警標(biāo)志位置位,并對主機發(fā)出的報警搜索命令做出響應(yīng)。因此,可用多只DS18B20同時測量溫度并進行報警搜索

27、。在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(CRC)。主機ROM的前56位來計算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機收到的ROM數(shù)據(jù)是否正確。</p><p>  DS18B20的測溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。器件中

28、還有一個計數(shù)門,當(dāng)計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù)進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55℃所對應(yīng)的一個基數(shù)分別置入減法計數(shù)器1、溫度寄存器中,計數(shù)器1和溫度寄存器被預(yù)置在-55℃所對應(yīng)的一個基數(shù)值。</p><p>  減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當(dāng)減法計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,減

29、法計數(shù)器1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到0時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測溫度值。另外,由于DS18B20單線通信功能是分時完成的,它有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作按協(xié)議進行。操作協(xié)議為:初使化DS

30、18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。</p><p>  2.4、元件清單 </p><p><b>  如表2-3</b></p><p><b>  第三章 硬件部分</b></p><p>  3.1、DS18B20溫度傳感器與單片機的接口電路</

31、p><p>  DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖3-4 所示單片機端口接單線總線,為保證在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET管來完成對總線的上拉。</p><p>  圖3-4 DS18B20與單片機的接口電路</p><p&

32、gt;  當(dāng)DS18B20處于寫存儲器操作和溫度A/D轉(zhuǎn)換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。</p><p>  3.2、系統(tǒng)整體硬件電路</p><p>  3.2.1 主板電路</p><p>  系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,上

33、下限報警調(diào)整電路,單片機主板電路等,如圖3-5 所示。圖3-5中有三個獨立式按鍵可以分別調(diào)整溫度計的上下限報警設(shè)置,圖中蜂鳴器可以在被測溫度不在上下限范圍內(nèi)時,發(fā)出報警鳴叫聲音,同時LED數(shù)碼管將沒有被測溫度值顯示,這時可以調(diào)整報警上下限,從而測出被測的溫度值。圖3-5 中的按健復(fù)位電路是上電復(fù)位加手動復(fù)位,使用比較方便,在程序跑飛時,可以手動復(fù)位,這樣就不用在重起單片機電源,就可以實現(xiàn)復(fù)位。</p><p> 

34、 3.2.2 顯示電路</p><p>  顯示電路是使用的串口顯示,這種顯示最大的優(yōu)點就是使用口資源比較少,只用p3口的RXD,和TXD,串口的發(fā)送和接收,四只數(shù)碼管采用74LS164右移寄存器驅(qū)動,顯示比較清晰,如圖3-6所示。</p><p>  圖3-5 單片機主板電路</p><p>  圖3-6 溫度顯示電路</p><p>&l

35、t;b>  第四章 軟件部分</b></p><p>  4.1、系統(tǒng)軟件算法分析</p><p>  系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。</p><p><b>  4.2、主程序</b></p><p>  主程序的主要功能是負責(zé)溫度

36、的實時顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖4-1所示。</p><p>  圖4-1 主程序流程圖</p><p>  4.3、讀出溫度子程序</p><p>  讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程

37、圖如圖4-2示</p><p>  圖4-2 讀溫度流程圖</p><p>  4.4、溫度轉(zhuǎn)換命令子程序</p><p>  溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如上圖,圖4-3所示</p><p>  圖4-3

38、 溫度轉(zhuǎn)換流程</p><p>  4.5、 計算溫度子程序</p><p>  計算溫度子程序?qū)AM中讀取值進行BCD碼的轉(zhuǎn)換運算,并進行溫度值正負的判定,其程序流程圖如圖4-4所示。</p><p>  圖4-4 計算溫度流程圖</p><p>  4.6、顯示數(shù)據(jù)刷新子程序</p><p>  顯示數(shù)據(jù)刷新

39、子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進行刷新操作,當(dāng)最高顯示位為0時將符號顯示位移入下一位。程序流程圖如圖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>  ; 一秒定時中段</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 ; 延時</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 ; 延時</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 ; 延時</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>  ; 重新寫DS18B20暫存

78、存儲器設(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ā)寫暫存存儲器命令</p><p>  LCALL WRITE_1820</p><p>  MOV A,#00H ; TH(報警

80、上限)中寫入00H</p><p>  LCALL WRITE_1820</p><p>  MOV A,#00H ; TL(報警下限)中寫入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 ; 定時入口</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 ; 跳過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 ; 跳過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>  ; 寫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中讀出兩個字節(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ù)進行轉(zhuǎn)換</p><p>  ; *****************************************</p><p>  TEMPER_COV:</p>

96、<p>  MOV A,#0F0H</p><p>  ANL A,36H ; 舍去溫度低位中小數(shù)點</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進制的溫度數(shù)據(jù)轉(zhuǎn)換成壓縮BCD碼</p><p>  ; 38H中放百位,37十位,36個位</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>  ; 延時子程序</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>  ; 開機延時程序</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>  第六章 實物圖</b></p><p><b>  圖4-6 實物圖1</b></p><p>  圖4-7 實物圖2 </p><p><b>  結(jié)束語<

109、;/b></p><p>  經(jīng)過將近一個月的努力,關(guān)于《模擬恒溫控制系統(tǒng)的設(shè)計》論文已經(jīng)完成的七七八八了。期間如果沒有同學(xué)和老師的幫助我是不可能完成的,所以我在這里要感謝老師和同學(xué)們。</p><p>  這次論文的設(shè)計不僅使我的思考能力得到了提高,我的動手能力也得到了提升,進一步拉近我和單片機的距離,使我更進一步的了解了單片機和其他的元器件的使用,但最重要的是和同學(xué)們之間的知識的

110、交流,我們之間取長補短,還有老師的資料和輔導(dǎo)。</p><p>  三年的大學(xué)生活就快走到尾聲了,我們的大學(xué)生活就要畫上句號,心中是無盡的難舍與眷戀?;厥兹?,取得了些許成績,生活中有艱辛也有快樂,感謝老師三年對我的孜孜教誨,對我成長的關(guān)心和愛護。學(xué)友情深,情同兄妹。三年的風(fēng)風(fēng)雨雨,我們一同走過,充滿著關(guān)愛,給我留下值得珍藏的美好的記憶。</p><p>  在我十幾年的求學(xué)歷程里,離不開

111、父母的鼓勵和支持,是他們辛苦的勞作,無私的付出,為我創(chuàng)造良好的學(xué)習(xí)環(huán)境,我才能順利的完成學(xué)業(yè),感激他們一直以來對我的撫養(yǎng)與培育。</p><p>  最后,我要特別感謝xx老師。三年來一直是xx老師當(dāng)任我們的班主任,他的付出同學(xué)們是可想而知的,是他在我寫畢業(yè)論文時,給我們巨大的幫助和鼓勵,使我能夠順利完成畢業(yè)設(shè)計,在此表示衷心感謝。</p><p>  xx老師認真負責(zé)工作的態(tài)度,嚴(yán)謹(jǐn)?shù)闹?/p>

112、學(xué)精神和深厚的理論水平都使我受益匪淺。他無論是在理論上還是在實踐中,都給我很大的幫助,使我得到不少的提高,這對我以后的生活工作都是一種巨大的幫助,感謝他的耐心的輔導(dǎo)。</p><p>  在系統(tǒng)開發(fā)過程中xx老師給我的幫助真的很大,幫助我解決了不少的難點,使得系統(tǒng)能及時 的開發(fā)完成,謝謝。</p><p><b>  參考文獻</b></p><p

113、>  閆玉德.MCS-51單片機原理與應(yīng)用(c語言版).機械工業(yè)出版社,2002</p><p>  郭天祥.新概念51單片機C語言. 電子工業(yè)出版社, 2009-1-1</p><p>  周堅.單片機C語言輕松入門. 北京航天航空大學(xué)出版社, 2006-7-1</p><p>  洪應(yīng),宋國富. 凌陽16位單片機實用技.  中國鐵道出版

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論