畢業(yè)論文---基于80c51單片機(jī)的電子體溫計設(shè)計_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  畢 業(yè) 設(shè) 計(論 文)</p><p>  基于80c51單片機(jī)的電子體溫計設(shè)計</p><p>  畢業(yè)設(shè)計(論文)任務(wù)書</p><p> 姓名學(xué)號班級08應(yīng)用電子技術(shù)</p><p> 題目基于單片機(jī)80C51的電子體溫計的設(shè)計</p><p> 設(shè)計(論文)主要內(nèi)容本設(shè)計所介紹的數(shù)字溫度

2、計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準(zhǔn)確的場所,或科研實(shí)驗(yàn)室使用,該設(shè)計控制器使用單片機(jī)AT89C51,測溫傳感器使用DS18B20,用4位共陰極LED數(shù)碼管以串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以上要求。</p><p> 重點(diǎn)研究問題根據(jù)溫度計特性設(shè)計產(chǎn)品,要求能準(zhǔn)確讀出被測體溫,精確到0.1℃,體溫計要求溫度只能上升不能下降,否則影響讀數(shù),讀

3、出結(jié)果后要有復(fù)位,方便多次測量,本產(chǎn)品要求高地位報警,在36.2℃-37.3℃之間不報警,超出這個范圍就顯示提示符號,本產(chǎn)品還有溫度計/體溫計互換功能</p><p> 主要技術(shù)指標(biāo)精確度: ±0.1監(jiān)測范圍0-127℃刷新時間:1s</p><p> 其它要說明的問題每次測完體溫手動復(fù)位</p><p> 指導(dǎo)老師意見指導(dǎo)教師簽字:年 月 日&

4、lt;/p><p><b>  指導(dǎo)教師意見</b></p><p><b>  評閱教師意見</b></p><p><b>  答辯小組評議意見</b></p><p><b>  目    錄</b></p><p>  摘要&#

5、183;····································

6、····································

7、3;···7</p><p>  關(guān)鍵詞·····························

8、;····································

9、83;·········7</p><p>  0.引言······················

10、83;····································&

11、#183;···············7</p><p>  1. 總體設(shè)計方案···············&#

12、183;····································

13、···········7</p><p>  2.方案二的總體設(shè)計框圖···················

14、3;·································8</p><p&g

15、t;  2.1 主控制器··································

16、3;·······················8</p><p>  2.2 顯示電路········

17、····································

18、3;··············8</p><p>  2.3溫度傳感器·················

19、····································

20、3;··8</p><p>  (1) DS18B20性能特點(diǎn)···························

21、3;···················8</p><p>  (2) DS18B20內(nèi)部結(jié)構(gòu)··········

22、3;····································9&

23、lt;/p><p>  (3) DS18B20控制方法······························&#

24、183;················9</p><p>  (4) DS18B20的通信協(xié)議·············&

25、#183;·······························10</p><p>  3. D

26、S18B20溫度傳感器與單片機(jī)的接口電路································12</p

27、><p>  4. 系統(tǒng)整體硬件電路································

28、·························12</p><p>  4.1 主板電路······&

29、#183;····································

30、;················12</p><p>  4.2 顯示電路···············

31、····································

32、3;·······13</p><p>  5.系統(tǒng)軟件算法分析·······················

33、83;·······························14</p><p>  5.1主程序

34、····································

35、3;·························14</p><p>  5.2溫度采集子程序·····

36、83;····································&

37、#183;··········14</p><p>  5.3數(shù)據(jù)處理子程序····················

38、····························17</p><p>  5.4數(shù)據(jù)轉(zhuǎn)換子程序···

39、;····································

40、83;············18</p><p>  5.5 顯示數(shù)據(jù)子程序··················&

41、#183;·····························18</p><p>  5.6 判斷大小子程序·

42、;····································

43、83;··········19</p><p>  6.數(shù)據(jù)測試·····················

44、····································

45、3;··········19</p><p>  7.結(jié)束語·····················&#

46、183;····································

47、·············20</p><p>  答 謝 辭··················&

48、#183;····································

49、;············20</p><p>  參考文獻(xiàn)···················

50、3;····································&#

51、183;··············21</p><p>  基于單片機(jī)AT89S51的數(shù)字體溫計的設(shè)計</p><p><b>  摘要</b></p><p>  傳統(tǒng)的體溫計是由水銀制成的,存在測溫時

52、長、。讀數(shù)不便等缺點(diǎn),不方便人們的使用。此在最近的數(shù)字體溫計的電路制作中,基本都是用溫度傳感器采集溫度,再經(jīng)過放大電路放大,放大后的電壓在接入A/D轉(zhuǎn)換器變成數(shù)信號,最后才輸入微控芯片中,經(jīng)過微控芯片處理后再輸出顯示。這樣的系統(tǒng)不僅電路比較雜,而且成本較高。而本文所用的DS18B20則是一片集成了溫度的采集和A/D轉(zhuǎn)化為一體的芯片,這樣報警統(tǒng)簡單、而且操作靈活,可編程程度大大的提高。</p><p>  關(guān)鍵詞:

53、單片機(jī),溫度計, DS18B20,AT89S51</p><p>  Based on AT89S51 single-chip design of digital thermometer</p><p>  Abstract:The traditional by mercury thermometer is made, the existence temperature measuring

54、 duration. Readings inconvenience, inconvenience shortcomings, such as the use of people. In the latest digital thermometer in the circuit, basic is made with temperature sensors to collect temperature, then amplified ci

55、rcuit amplifier, amplification voltage in the access A/D converter into several signal, and finally the input micro control chip, through the micro control chip processing output shown aga</p><p>  Key words

56、: Microprocessor, temperature, DS18B20,AT89S51</p><p><b>  0. 引言</b></p><p>  隨著人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施

57、就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。</p><p>  本設(shè)計所介紹的數(shù)字體溫計與傳統(tǒng)的體溫計相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,精確度達(dá)到±0.1,該設(shè)計控制器使用單片機(jī)AT89S51,測溫傳感器使用DS18B20,用3位共陽極LED數(shù)碼管以串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以上要求。</p><p><b

58、>  1. 總體設(shè)計方案</b></p><p>  由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一

59、只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計要求。</p><p>  2.方案的總體設(shè)計框圖</p><p>  溫度計電路設(shè)計總體設(shè)計方框圖如圖1所示,控制器采用單片機(jī)AT89S51,溫度傳感器采用DS18B20,用4位LED數(shù)碼管以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。</p><p>  圖1 總體設(shè)計方框圖</p&

60、gt;<p><b>  2.1 主控制器</b></p><p>  單片機(jī)AT89S51具有低電壓供電和體積小等特點(diǎn),四個端口只需要三個口就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)電池供電。</p><p><b>  2.2 顯示電路</b></p><p>  顯示電路采用

61、4位共陰LED數(shù)碼管,從P1串口輸出段碼。P3位碼處可擴(kuò)展。</p><p><b>  2.3溫度傳感器</b></p><p>  由DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,可廣泛用于工業(yè)、民用、軍事等領(lǐng)域的溫度測量及控制儀器、測控系統(tǒng)和大型設(shè)備中。它具有體積小,接口方便,傳輸距離遠(yuǎn)等特點(diǎn)。 <

62、/p><p>  (1) DS18B20性能特點(diǎn) </p><p>  采用單總線專用技術(shù),既可通過串行口線,也可通過其它I/O口線與微機(jī)接口,無須經(jīng)過其它變換電路,直接輸出被測溫度值(9位二進(jìn)制數(shù),含符號位);</p><p>  測溫范圍為-55℃-+125℃,測量分辨率為0.0625℃;</p><p>  內(nèi)含64位經(jīng)過激光修正的只讀存

63、儲器ROM;</p><p>  適配各種單片機(jī)或系統(tǒng)機(jī);</p><p>  用戶可分別設(shè)定各路溫度的上、下限;</p><p><b>  內(nèi)含寄生電源。 </b></p><p>  (2) DS18B20內(nèi)部結(jié)構(gòu) </p><p>  DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻R

64、OM,溫度傳感器,非揮發(fā)的溫度報警觸發(fā)器TH和TL,高速暫存器。64位光刻ROM是出廠前被光刻好的,它可以看作是該DS18B20的地址序列號。64位ROM結(jié)構(gòu)圖如圖3所示。不同的器件地址序列號不同。 DS18B20的管腳排列如圖2所示。</p><p>  圖2 DS18B20引腳分布圖</p><p>  DS18B20高速暫存器共9個存儲單元,如表1所示:</p>

65、;<p><b>  表1</b></p><p>  圖3 64位ROM結(jié)構(gòu)圖</p><p>  以12位轉(zhuǎn)化為例說明溫度高低字節(jié)存放形式及計算:12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個高低兩個8位的RAM中,二進(jìn)制中的前面5位是符號位。如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,

66、這5位為1,測到的數(shù)值需要取反加1再乘于0.0625才能得到實(shí)際溫度。如表2所示:</p><p><b>  表2</b></p><p>  (3) DS18B20控制方法 </p><p>  DS18B20有六條控制命令,如表3所示:</p><p><b>  表3</b></p&g

67、t;<p>  (4) DS18B20的通信協(xié)議</p><p>  DS18B20器件要求采用嚴(yán)格的通信協(xié)議,以保證數(shù)據(jù)的完整性。該協(xié)議定義了幾種信號類型:復(fù)位脈沖,應(yīng)答脈沖時隙;寫0,寫1時隙;讀0,讀1時隙。與DS18B20的通信,是通過操作時隙完成單總線上的數(shù)據(jù)傳輸。發(fā)送所有的命令和數(shù)據(jù)時,都是字節(jié)的低位在前,高位在后。</p><p><b>  復(fù)位和應(yīng)

68、答脈沖時隙</b></p><p>  每個通信周期起始于微控制器發(fā)出的復(fù)位脈沖,其后緊跟DS18B20發(fā)出的應(yīng)答脈沖,在寫時隙期間,主機(jī)向DS18B20器件寫入數(shù)據(jù),而在讀時隙期間,主機(jī)讀入來自DS18B20的數(shù)據(jù)。在每一個時隙,總線只能傳輸一位數(shù)據(jù)。時序圖見圖4。</p><p>  圖4 復(fù)位和應(yīng)答脈沖時隙</p><p><b>  

69、寫時隙</b></p><p>  當(dāng)主機(jī)將單總線DQ從邏輯高拉到邏輯低時,即啟動一個寫時隙,所有的寫時隙必須在60~120us完成,且在每個循環(huán)之間至少需要1us的恢復(fù)時間。寫0和寫1時隙如圖所示。在寫0時隙期間,微控制器在整個時隙中將總線拉低;而寫1時隙期間,微控制器將總線拉低,然后在時隙起始后15us之釋放總線。時序圖見圖5。</p><p><b>  讀時隙

70、</b></p><p>  DS18B20器件僅在主機(jī)發(fā)出讀時隙時,才向主機(jī)傳輸數(shù)據(jù)。所以在主機(jī)發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時隙,以便DS18B20能夠傳輸數(shù)據(jù)。所有的讀時隙至少需要60us,且在兩次獨(dú)立的讀時隙之間,至少需要1us的恢復(fù)時間。每個讀時隙都由主機(jī)發(fā)起,至少拉低總線1us。在主機(jī)發(fā)起讀時隙之后,DS18B20器件才開始在總線上發(fā)送0或1,若DS18B20發(fā)送1,則保持總線為高電平。

71、若發(fā)送為0,則拉低總線當(dāng)發(fā)送0時,DS18B20在該時隙結(jié)束后,釋放總線,由上拉電阻將總線拉回至高電平狀態(tài)。DS18B20發(fā)出的數(shù)據(jù),在起始時隙之后保持有效時間為15us。因而主機(jī)在讀時隙期間,必須釋放總線。并且在時隙起始后的15us之內(nèi)采樣總線的狀態(tài)。時序圖見圖5。</p><p><b>  圖5 讀寫時序</b></p><p>  3. DS18B20溫度傳

72、感器與單片機(jī)的接口電路</p><p>  DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,單片機(jī)端口接單線總線,為保證在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET管來完成對總線的上拉。</p><p>  當(dāng)DS18B20處于寫存儲器操作和溫度A/D轉(zhuǎn)換操作時,總線上必

73、須有強(qiáng)的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。</p><p>  4. 系統(tǒng)整體硬件電路</p><p><b>  4.1 主板電路</b></p><p>  系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,單片機(jī)主板電路等,如圖7 所示。</p

74、><p>  圖7 單片機(jī)主板電路</p><p>  圖7中有2獨(dú)立式按鍵可以分別復(fù)位和切換體溫計/溫度計功能,圖中報警位可以在被測溫度不在上下限范圍內(nèi)時,顯示‘L’和‘H’高低顯示報警,同時LED數(shù)碼管將沒有被測溫度值顯示,這時可以讀出示數(shù),從而判斷出被測的體溫值是否在正常范圍。</p><p>  圖7 中的按健復(fù)位電路是手動復(fù)位,使用比較方便,在程序跑飛時,可

75、以手動復(fù)位,這樣就不用在重起單片機(jī)電源</p><p><b>  4.2 顯示電路</b></p><p>  顯示電路是使用的串口顯示,這種顯示最大的優(yōu)點(diǎn)就是使用口資源比較少,只用p2部分口,顯示比較清晰。</p><p>  5.系統(tǒng)軟件算法分析</p><p>  系統(tǒng)程序主要包括主程序,溫度采集(包括DS18B

76、20初始化子程序、寫DS18B20子程序、讀DS18B20子程序),賦初值子程序,按鍵掃描子程序,溫度數(shù)據(jù)轉(zhuǎn)換子程序,顯示數(shù)據(jù)處理子程序,判斷大小子程序,溫度高低限值報警子程序。</p><p><b>  5.1主程序</b></p><p>  主程序的主要功能是負(fù)責(zé)溫度的實(shí)時顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進(jìn)行一次。這樣可以在一秒

77、之內(nèi)測量一次被測溫度,其程序流程見圖9所示。</p><p>  5.2溫度采集子程序</p><p>  讀出溫度子程序的主要功能是讀出RAM中的2字節(jié),。其程序流程圖如下圖示:</p><p><b>  圖示溫度采集流程圖</b></p><p>  5.3 數(shù)據(jù)處理子程序</p><p>

78、  數(shù)據(jù)轉(zhuǎn)換子程序?qū)AM中20H、21H讀取值進(jìn)行處理,整理出需要的數(shù)據(jù)符號位存22H,整數(shù)位存21H,小數(shù)位存20H,其程序流程圖如下圖所示。</p><p>  5.4 數(shù)據(jù)轉(zhuǎn)換子程序</p><p>  將所得數(shù)據(jù)轉(zhuǎn)換成要顯示的數(shù)據(jù),提取出百位、十位、個位,小數(shù)位其它位送至各自內(nèi)存,程序流程圖如下圖所示。</p><p><b>  5.5 顯示子

79、程序</b></p><p>  將所得數(shù)據(jù)轉(zhuǎn)換成要顯示的數(shù)據(jù),提取出百位、十位、個位,小數(shù)位其它位送至各自內(nèi)存,程序流程圖如下圖所示。</p><p>  5.6 判斷大小子程序</p><p>  判斷大小子程序主要功能是用在體溫計部分,使溫度只具有上升功能而不能下降,以保證測量體溫時的讀數(shù)準(zhǔn)確,具體步驟如下圖:</p><p&g

80、t;<b>  6.數(shù)據(jù)測試</b></p><p>  該溫度計的量程為-50℃~150℃,溫度計部分為1-150℃,讀數(shù)精度為0.1℃,實(shí)際使用一般在0℃~100℃。采用0℃~50℃和50℃~100℃的精密水銀溫度計作檢驗(yàn)標(biāo)準(zhǔn),對設(shè)計的溫度計進(jìn)行測試,其結(jié)果表明能達(dá)到該精度要求。對人體溫度測量與水銀溫度計對比,相差±0.1,可達(dá)到精度要求。</p><p&g

81、t;<b>  7.結(jié)束語</b></p><p>  該溫度測試系統(tǒng)不僅具有結(jié)構(gòu)簡單、體積小、價格低廉、精確度較高、反應(yīng)速度較快、數(shù)字化顯示和不易損壞等特點(diǎn),而且性能穩(wěn)定,適用范圍廣,因此特別適用于對測溫要求比較準(zhǔn)確的場所。</p><p>  本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于體溫精確測

82、量,也可以科研實(shí)驗(yàn)室使用,該設(shè)計控制器使用單片機(jī)AT89S51,測溫傳感器使用DS18B20,用4位共陰極LED數(shù)碼管以串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以上要求。</p><p><b>  答 謝 辭</b></p><p>  經(jīng)過一個月的忙碌,本次畢業(yè)設(shè)計已經(jīng)接近尾聲,作為一個大專生的畢業(yè)設(shè)計,由于經(jīng)驗(yàn)的匱乏,難免有許多考慮不周全的地方,但通過這次的

83、畢業(yè)設(shè)計,我也能夠領(lǐng)悟到一些含義,可以把我們在大學(xué)里所學(xué)的知識有力的結(jié)合在一起,再自己發(fā)揮一下,理論應(yīng)用于實(shí)踐,從而提高了自己的學(xué)習(xí)能力,以及分析處理問題的能力。</p><p>  在這里,首先我要感謝周偉老師。從畢業(yè)設(shè)計選題到設(shè)計完成,周老師給予了我耐心指導(dǎo)與細(xì)心關(guān)懷,有了周老師耐心指導(dǎo)與細(xì)心關(guān)懷,我才不會在設(shè)計的過程中迷失方向,失去前進(jìn)動力。周老師有嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和精益求精的工作作風(fēng),這些都

84、是我所需要學(xué)習(xí)的,感謝周老師給予了我這樣一個學(xué)習(xí)機(jī)會,謝謝!</p><p>  其次,我要感謝大學(xué)兩年來所有的老師,為我們打下電子專業(yè)知識的基礎(chǔ);同時我還要感謝所有的同學(xué)們,正是因?yàn)橛辛四銈兊闹С趾凸膭?還要感謝我的父母,他們在生活上給予我很大的支柱和鼓勵,是他們給予我努力學(xué)習(xí)的信心和力量。</p><p>  最后,我要感謝江蘇農(nóng)林學(xué)院兩年來對我的大力栽培,我的母校---江蘇農(nóng)林學(xué)院,

85、她提供了一個自我發(fā)揮,自我成長的平臺,使自己明白了一個道理, 理想可以很大,但是,我們必須將它建立在具體的、可以實(shí)現(xiàn)的事業(yè)之上,選擇一種事業(yè)追求時,要考慮自己的長處,避開自己的短處,一生的事業(yè),我們要用畢生的經(jīng)歷去實(shí)現(xiàn)。在此過程中,我們必須持之以恒,堅持不懈!千萬不可以半途而廢!</p><p>  在論文即將完成之際,我的心情無法平靜,從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長、同學(xué)、朋友給了我無言的幫助

86、,在這里請接受我誠摯的謝意!在我們探索人生,追求夢想的過程中,必須滿懷信心,堅定目標(biāo),追求卓越,永爭第一!</p><p><b>  參考文獻(xiàn):</b></p><p>  [1] 胡漢才.單片機(jī)原理及接口技術(shù)(簡第二版).北京:北京清華大學(xué)出版社.2004</p><p>  [2] 李廣弟.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社.

87、1994</p><p>  [3] 閻石.數(shù)字電子技術(shù)基礎(chǔ)(第三版). 北京:高等教育出版社.1989</p><p>  [4] 朱定華.單片機(jī)原理及接口技術(shù)[M].北京:電子工業(yè)出版社.2001 </p><p>  [5] 譚家玉.單片機(jī)原理及接口技術(shù)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社.2003</p><p>  [6] 李朝青.

88、單片機(jī)原理及接口技術(shù)(簡明修訂版).杭州:北京航空航天大學(xué)出版社.1998</p><p><b>  附錄 總程序</b></p><p><b>  ORG 0000H</b></p><p>  LJMP MAIN11</p><p><b>  ORG 0100H</b&g

89、t;</p><p>  FLAG EQU 24H</p><p><b>  RST:</b></p><p>  MOV 3AH,#0;初始化比較值為0</p><p>  JNB P2.3,$</p><p><b>  MAIN10:</b></p>

90、<p>  MOV R0,#10</p><p><b>  DJNZ R0,$</b></p><p>  JNB P2.4,$</p><p><b>  CPL P2.5</b></p><p><b>  MAIN11:</b></p>&

91、lt;p>  ACALL ANJIAN1</p><p>  ACALL ANJIAN3</p><p>  ACALL FCZ;賦初值</p><p>  ACALL TEMP_CAIJI;溫度采集</p><p>  ACALL SJCL;數(shù)據(jù)處理</p><p>  ACALL PDDX;判斷大小子程

92、序,只允許數(shù)據(jù)增加</p><p>  ACALL SJZH;數(shù)據(jù)轉(zhuǎn)換子程序</p><p>  ACALL GDWCL;高低限制溫測量</p><p>  ACALL DISPLAY;顯示</p><p>  JMP MAIN11</p><p><b>  MAIN20:</b><

93、/p><p>  MOV R0,#15</p><p><b>  DJNZ R0,$</b></p><p>  JNB P2.4,$</p><p><b>  CPL P2.5</b></p><p><b>  MAIN21:</b></p&

94、gt;<p>  ACALL ANJIAN2</p><p>  ACALL TEMP_CAIJI</p><p>  ACALL SJCL</p><p>  MOV 37H,#20</p><p>  ACALL SJZH</p><p>  ACALL DISPLAY</p><

95、p>  JMP MAIN21</p><p>  ANJIAN1:;按鍵</p><p>  MOV R1,#15</p><p><b>  SETB P2.4</b></p><p>  JNB P2.4,AJ2</p><p><b>  JMP AJ</b>&l

96、t;/p><p>  AJ1:MOV R0,#200</p><p>  AJ2:DJNZ R0,$</p><p>  DJNZ R1,AJ1</p><p>  JNB P2.4,MAIN20</p><p><b>  AJ:RET</b></p><p>  AN

97、JIAN2:;按鍵</p><p>  MOV R1,#20</p><p><b>  SETB P2.4</b></p><p>  JNB P2.4,AJI2</p><p><b>  JMP AJI</b></p><p>  AJI1:MOV R0,#200&l

98、t;/p><p>  AJI2:DJNZ R0,$</p><p>  DJNZ R1,AJI1</p><p>  JNB P2.4,RST</p><p><b>  AJI:RET</b></p><p>  ANJIAN3:;按鍵3復(fù)位</p><p>  MOV

99、R1,#15</p><p><b>  SETB P2.3</b></p><p>  JNB P2.3,AJ32</p><p><b>  JMP AJ3</b></p><p>  AJ31:MOV R0,#200</p><p>  AJ32:DJNZ R0,$

100、</p><p>  DJNZ R1,AJ31</p><p>  JNB P2.3,RST</p><p><b>  AJ3:RET</b></p><p>  FCZ:;高低報警賦初值</p><p>  MOV 3BH,#36;低溫整數(shù)位</p><p>  M

101、OV 3CH,#3;低溫小數(shù)位</p><p>  MOV 3DH,#37;高溫整數(shù)位</p><p>  MOV 3EH,#8;高溫小數(shù)位</p><p><b>  RET</b></p><p>  ;**********************數(shù)據(jù)處理***********************</

102、p><p><b>  SJCL:</b></p><p>  MOV A,21H;高位數(shù)據(jù)送A</p><p>  ANL A,#0F0H;屏蔽后四位</p><p>  MOV 22H,A;符號位送22H</p><p><b>  MOV A,21H</b><

103、/p><p>  ANL A,#07H;屏弊前五位</p><p>  SWAP A;高低互換</p><p>  MOV 21H,A;存21H</p><p>  MOV A,20H;低位送A</p><p>  ANL A,#0F0H;屏蔽低四位</p><p>  SWAP A

104、;高低互換</p><p>  ORL A,21H;合并,整數(shù)部分?jǐn)?shù)據(jù)存21H</p><p>  CJNE A,#85,SJ1;判斷是否等于初始值85</p><p>  MOV A,#0;是就送0</p><p>  SJ1:MOV 21H,A;不是就轉(zhuǎn)存</p><p>  MOV A,20H;20H

105、送A</p><p>  ANL A,#0FH;屏蔽高四位</p><p>  MOV B,#10;處理小數(shù)位程序</p><p>  MUL AB;A*10</p><p>  MOV B,#16;</p><p>  DIV AB;a除16</p><p>  MOV 20H,

106、A;小數(shù)部分?jǐn)?shù)據(jù)存20H</p><p>  MOV A,22H;判斷正負(fù)</p><p>  CJNE A,#0F0H,Q1</p><p>  MOV 22H,#18;送負(fù)號</p><p>  ANL 21H,#80H;屏蔽最高位</p><p><b>  JMP Q2</b>&l

107、t;/p><p>  Q1:MOV 22H,#20</p><p><b>  Q2:RET</b></p><p>  ;********************數(shù)據(jù)轉(zhuǎn)換******************</p><p>  SJZH:;數(shù)據(jù)處理子程序</p><p>  MOV A,21H

108、;整數(shù)送A</p><p>  MOV B,#100;100送B</p><p>  DIV AB;百位送A</p><p>  MOV 31H,A;百位送31H</p><p>  MOV 31H,#20;去掉該句顯示百位</p><p>  MOV A,B;余數(shù)送A</p><p

109、>  MOV B,#10;10送B</p><p>  DIV AB;除10</p><p>  MOV 30H,22H;-符號位</p><p>  MOV 32H,A;十位送32H</p><p>  MOV 33H,B;個位送33H</p><p>  ;MOV 34H,#19小數(shù)點(diǎn)送33H省

110、略</p><p>  MOV 34H,20H;小數(shù)位送34H</p><p>  MOV 35H,#17;℃符號送35H</p><p>  MOV 36H,#20;備用</p><p><b>  E1:RET</b></p><p>  ;**********************

111、顯示***********************</p><p><b>  DISPLAY:</b></p><p>  LP:MOV 38H,#1;38h送1</p><p>  MOV R3,#3;R3送延時的100</p><p>  LP1:MOV R0,#30H;30H送#30,地址</p&

112、gt;<p>  MOV R1,#8;R1送8</p><p>  MOV R2,#0FEH;R2送初始位碼</p><p>  LOOP:MOV P3,R2;位碼送P3口</p><p><b>  NOP</b></p><p><b>  NOP</b></p>

113、;<p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  MOV A,R2</b></p><p>  RL A;左移位碼</p>

114、<p><b>  MOV R2,A</b></p><p>  MOV A,@R0;送段碼數(shù)據(jù)到A</p><p>  MOV DPTR,#TABLE;查表獲取段碼數(shù)據(jù)</p><p>  MOVC A,@A+DPTR;段碼數(shù)據(jù)送A</p><p>  CJNE R2,#0EFH,TA1</p

115、><p>  ORL A,#80H</p><p>  TA1:MOV P1,A;段碼數(shù)據(jù)送P0口</p><p><b>  INC R0</b></p><p><b>  D1:NOP</b></p><p><b>  NOP</b></

116、p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  DJNZ R3,D1</p><p>  DJNZ R1,LOOP;8位沒顯示完返回loop</p&g

117、t;<p>  DJNZ 38H,LP1;顯示n次</p><p><b>  RET</b></p><p>  TABLE:DB 3FH,06H,5BH,4FH,66H</p><p>  DB 6DH,7DH,07H,7FH,6FH</p><p>  DB 6FH,6FH,6FH,6FH,6FH

118、</p><p>  DB 6FH,6FH,39H,40H,80H</p><p>  DB 00H,38H,76H</p><p>  ;39H ℃符號17,40H負(fù)號18,80H小數(shù)點(diǎn)19,00H不顯示20,76高溫 38低溫</p><p>  ;*******************溫度采集*********************

119、*****</p><p>  TEMP_CAIJI:</p><p>  ACALL RESTE1820</p><p>  JB FLAG,START</p><p><b>  RET</b></p><p>  START:MOV A,#0CCH;跳過ROM工作</p>&

120、lt;p>  ACALL WRITE1820</p><p>  MOV A,#44H;啟動1820工作</p><p>  ACALL WRITE1820</p><p>  ACALL RESTE1820;準(zhǔn)備讀溫度前復(fù)位</p><p>  MOV A,#0CCH;跳過ROM工作</p><p>  ACA

121、LL WRITE1820</p><p>  MOV A,#0BEH;準(zhǔn)備讀1820內(nèi)部RAM</p><p>  ACALL WRITE1820</p><p>  ACALL READ1820;讀得一組數(shù)據(jù)</p><p><b>  RET</b></p><p>  ;**********

122、********讀1820程序********************</p><p><b>  READ1820:</b></p><p><b>  MOV R4,#2</b></p><p>  MOV R1,#20H;低位20h</p><p>  RE0:MOV R2,#8</p

123、><p>  RE1: CLR C</p><p>  SETB P2.0;讀前釋放總線</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p&

124、gt;<b>  NOP</b></p><p>  CLR P2.0;拉低總線準(zhǔn)備讀</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p&g

125、t;  SETB P2.0;釋放</p><p>  MOV R3,#9;</p><p>  RE2:DJNZ R3,RE2;延時19us</p><p>  MOV C,P2.0;讀一位</p><p>  MOV R3,#23;延時47us</p><p>  RE3:DJNZ R3,RE3</p>

126、;<p>  RRC A;右移準(zhǔn)備讀下一位</p><p>  DJNZ R2,RE1;已讀完?未讀完轉(zhuǎn)RE1</p><p>  MOV @R1,A;讀完送數(shù)據(jù)儲存</p><p>  INC R1;修改指針</p><p>  DJNZ R4,RE0;是否全部讀完</p><p><b> 

127、 RET</b></p><p>  ;*********************寫1820程序******************</p><p>  WRITE1820:</p><p>  MOV R0,#8;共讀8位</p><p><b>  CLR C</b></p><p&g

128、t;<b>  SETB P2.0</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  WR1:CLR P2.0</p><p

129、><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  MOV R1,#7;延時15us</p><p><b>  DJNZ R1,$</b></p>

130、<p><b>  RRC A;右移</b></p><p>  MOV P2.0,C;寫入一位</p><p>  MOV R1,#23;延時47us</p><p><b>  DJNZ R1,$</b></p><p><b>  SETB P2.0</b>&l

131、t;/p><p><b>  NOP</b></p><p>  DJNZ R0,WR1;是否寫完?沒寫完轉(zhuǎn)WR1</p><p><b>  SETB P2.0</b></p><p><b>  RET </b></p><p>  ;********

132、************復(fù)位程序********************</p><p>  RESTE1820:</p><p><b>  SETB P2.0</b></p><p><b>  NOP</b></p><p>  CLR P2.0;主機(jī)發(fā)延時537微秒的復(fù)位低脈沖</p&

133、gt;<p><b>  MOV R1,#3</b></p><p>  TSR1:MOV R0,#107</p><p><b>  DJNZ R0,$</b></p><p>  DJNZ R1,TSR1</p><p>  SETB P2.0 ;然后拉高數(shù)據(jù)線</p&g

134、t;<p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  MOV R0,#25H</p><p>  TSR2:JNB P2.0,TSR3 ;等待DS18B20回應(yīng)<

135、;/p><p>  DJNZ R0,TSR2 ;延時</p><p><b>  LJMP TSR4</b></p><p>  TSR3:SETB FLAG ;置標(biāo)志位,表示DS18B20存在</p><p><b>  LJMP TSR5</b></p><p>  TS

136、R4:CLR FLAG ;置標(biāo)志位,表示DS18B20不存在</p><p><b>  LJMP TSR7</b></p><p>  TSR5:MOV R0,#117</p><p>  TSR6:DJNZ R0,TSR6 ;延時一段時間</p><p>  TSR7:SETB P2.0</p&g

137、t;<p><b>  RET</b></p><p>  ;********************判斷大小*******************</p><p>  PDDX:;判斷大小子程序,使溫度只增不減</p><p><b>  MOV A,3AH</b></p><p>

138、  CJNE A,21H,PD1;判斷是否相等</p><p>  JMP XSPD;相等跳轉(zhuǎn)小數(shù)判斷,不等就作差</p><p><b>  PD1:;作差</b></p><p>  SUBB A,21H;JC=0寄存器大,jc=1測量值大</p><p>  JNC PD2;判斷整數(shù)大小,測量值小 跳轉(zhuǎn)P

139、D2</p><p>  MOV 3AH,21H;21H送3AH,21H保持不變</p><p>  MOV 39H,20H</p><p><b>  JMP PD</b></p><p>  PD2:MOV 21H,3AH;較大數(shù)據(jù)送21H</p><p>  MOV 20H,39H;

140、較小數(shù)據(jù)送20H</p><p><b>  JMP PD</b></p><p>  XSPD:;小數(shù)判斷</p><p><b>  MOV A,39H</b></p><p>  CJNE A,20H,PD3</p><p><b>  JMP PD</

141、b></p><p><b>  PD3:;作差</b></p><p>  SUBB A,20H</p><p><b>  JNC PD4</b></p><p>  MOV 39H,20H</p><p><b>  JMP PD</b>&

142、lt;/p><p>  PD4:MOV 20H,39H;;;;;;;;;</p><p>  ;****************高低溫測量*******************</p><p><b>  GDWCL:</b></p><p>  DWCL:CLR C</p><p>  MOV

143、A,3BH;低溫測量</p><p>  CJNE A,21H,PD5;判斷是否相等</p><p>  JMP XSPD2;相等跳轉(zhuǎn)小數(shù)判斷,不等就作差</p><p><b>  PD5:;作差</b></p><p>  SUBB A,21H;JC=0寄存器大,jc=1測量值大</p><

144、;p>  JNC PD6;判斷整數(shù)大小,測量值小 跳轉(zhuǎn)PD2</p><p>  JMP GWCL;JC=1,檢測是否高溫</p><p><b>  JMP PD</b></p><p>  PD6:MOV 37H,#21;JC=0,送低溫符號</p><p><b>  JMP PD&l

145、t;/b></p><p>  XSPD2:MOV A,3CH;低溫小數(shù)判斷</p><p>  CJNE A,20H,PD7</p><p><b>  JMP PD8</b></p><p><b>  PD7:;作差</b></p><p>  SUBB A,

146、20H</p><p><b>  JNC PD8</b></p><p>  JMP GWCL;JC=1,檢測是否高溫</p><p><b>  JMP PD</b></p><p>  PD8:MOV 37H,#21;JC=0,送低溫符號</p><p><

147、b>  JMP PD</b></p><p>  ;-----------------------------------------</p><p>  GWCL:CLR C</p><p>  MOV A,3DH;高溫整數(shù)測量</p><p>  CJNE A,21H,PD9;判斷是否相等</p>&

148、lt;p>  JMP XSPD3;相等跳轉(zhuǎn)小數(shù)判斷,不等就作差</p><p>  PD9:;作差</p><p>  SUBB A,21H;JC=0寄存器大,jc=1測量值大</p><p>  JNC PD10;判斷整數(shù)大小,測量值小 跳轉(zhuǎn)PD10</p><p>  MOV 37H,#22;JC=1,送高溫符號---

149、-C=1</p><p><b>  JMP PD</b></p><p>  PD10:MOV 37H,#20;JC=0,送空符號</p><p><b>  JMP PD</b></p><p>  XSPD3:MOV A,3EH;高溫小數(shù)判斷</p><p>

150、  CJNE A,20H,PD11</p><p><b>  JMP PD12</b></p><p>  PD11:;作差</p><p>  SUBB A,20H</p><p><b>  JNC PD12</b></p><p>  MOV 37H,#22;

151、JC=1,送高溫符號</p><p><b>  JMP PD</b></p><p>  PD12:MOV 37H,#20;JC=0,</p><p><b>  JMP PD</b></p><p><b>  PD:RET</b></p><p&

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論