版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 基于單片機(jī)的熱水控制器系統(tǒng)設(shè)計(jì)</p><p> 摘要:本文介紹了用51單片機(jī)設(shè)計(jì)的一種多功能熱水控制器,具有自動和手動加水、設(shè)置水溫、實(shí)時(shí)顯示水量及溫度和報(bào)警功能,并且具有結(jié)構(gòu)簡單、可靠性高、成本低等特點(diǎn)。 </p><p> 當(dāng)前市場上的熱水控制器基本上采用雙金屬片溫控,控溫精度低、可靠性差、功能單一。隨著微電子技術(shù)的發(fā)展,單片微處理器功能日益增強(qiáng),價(jià)格低廉,
2、在各方面得到廣泛應(yīng)用。在熱水控制器中應(yīng)用單片機(jī),具有設(shè)計(jì)簡單、可靠性高、功能易擴(kuò)展等優(yōu)點(diǎn)。</p><p> 本文著重于熱水器在智能控制方面的探討。</p><p> 關(guān)鍵詞:單片機(jī),熱水器,51,加熱</p><p> Abstract: This paper introduces single-chip design with 51 of a multi-
3、functional water control, with automatic and manual water and set the water temperature, water and temperature in real-time display and alarm functions, and simple structure, high reliability, cost low.</p><p&
4、gt; At present the market is basically the use of hot water controller Bimetal temperature control, temperature control accuracy of the low reliability of poor, single function. With the development of microelectronic t
5、echnology, the growing single-chip microprocessor functions and low prices, in all respects been widely used. Hot water applications in single-chip controller with a simple design, high reliability and easy expansion of
6、functions and so on. This article focuses on the water heater in</p><p> Key words: microcontroller, water heater, 51, heating</p><p><b> 目 錄</b></p><p> 1整體設(shè)計(jì)方案
7、- 4 -</p><p> 1.1課程設(shè)計(jì)要求- 4 -</p><p> 1.2設(shè)計(jì)目的- 4 -</p><p> 2設(shè)計(jì)方案- 5 -</p><p> 3硬件電路設(shè)計(jì)- 6 -</p><p> 3.1DS1820的工作原理- 7 -</p><p>
8、 3.2寄生電源電路- 8 -</p><p> 3.3溫度測量原理- 8 -</p><p> 3.4高溫自動報(bào)警電路- 10 -</p><p> 3.5基本溫度水溫測量電路- 10 -</p><p> 3.6顯示電路及鍵盤電路- 11 -</p><p> 3.7水溫和水量控制電
9、路- 12 -</p><p> 4系統(tǒng)軟件設(shè)計(jì)- 13 -</p><p> 4.1鍵盤和顯示- 14 -</p><p> 4.2水溫測量- 15 -</p><p> 5結(jié)論- 15 -</p><p> 6參考文獻(xiàn)- 20 -</p><p> 7致謝
10、- 20 -</p><p> 8附錄- 21 -</p><p> 附錄一:程序清單- 21 -</p><p> 附錄二:總原理圖- 46 -</p><p><b> 整體設(shè)計(jì)方案</b></p><p><b> 課程設(shè)計(jì)要求</b></p&
11、gt;<p> 完成基于單片機(jī)的熱水控制器系統(tǒng)的設(shè)計(jì),能夠?qū)崿F(xiàn)水溫的自動加熱,并檢測水溫大小,對溫度進(jìn)行顯示。</p><p> 程序設(shè)計(jì)合理、簡潔。</p><p> 自行設(shè)計(jì)檢測及相關(guān)處理電路。</p><p> 完成單片機(jī)數(shù)據(jù)采集及處理的硬件電路設(shè)計(jì)及相關(guān)軟件編程。</p><p> 輔助電路及元器件自選。 &l
12、t;/p><p><b> 自選傳感器類型</b></p><p> 加熱范圍40~100攝氏度</p><p><b> 設(shè)計(jì)目的</b></p><p> 現(xiàn)代科技飛速發(fā)展,擁有淵博的知識是今后一展鴻圖的基礎(chǔ).實(shí)踐也同知識一樣重要,如果不在學(xué)生的實(shí)踐技能的鍛煉上下功夫,單憑課堂理論課學(xué)習(xí),勢
13、必出現(xiàn)理論與實(shí)踐脫節(jié),學(xué)習(xí)與應(yīng)用脫節(jié)的局面。任隨書本上把單片微機(jī)技術(shù)介紹得多么重要、多么實(shí)用、多么好用,我們?nèi)匀粫械侥侵皇强罩袠情w,離自己十分遙遠(yuǎn),或者會因此而對它失去興趣,或者會感到它高深莫測無從下手,這些情況都會令課堂教學(xué)的效果大打折扣。</p><p> “基于單片機(jī)應(yīng)用設(shè)計(jì)”的目的就是讓我們在理論學(xué)習(xí)的基礎(chǔ)上,通過完成一個(gè)涉及MCS-51單片機(jī)多種資源應(yīng)用并具有綜合功能的小系統(tǒng)目標(biāo)板的設(shè)計(jì)與編程應(yīng)用,
14、使之不但能夠?qū)⒄n堂上學(xué)到的理論知識與實(shí)際應(yīng)用結(jié)合起來,而且能夠?qū)﹄娮与娐贰㈦娮釉骷?、印制電路板等方面的知識進(jìn)一步加深認(rèn)識,同時(shí)在軟件編程、排錯(cuò)調(diào)試、焊接技術(shù)、相關(guān)儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高,為今后能夠獨(dú)立進(jìn)行某些單片機(jī)應(yīng)用系統(tǒng)的開發(fā)設(shè)計(jì)工作打下一定的基礎(chǔ)。</p><p><b> 設(shè)計(jì)方案</b></p><p> 本文介紹了用51單片機(jī)設(shè)
15、計(jì)的一種多功能熱水控制器,具有自動和手動加水、設(shè)置水溫、實(shí)時(shí)顯示水量及溫度和報(bào)警功能,并且具有結(jié)構(gòu)簡單、可靠性高、成本低等特點(diǎn)。 </p><p> 當(dāng)前市場上的熱水控制器基本上采用雙金屬片溫控,控溫精度低、可靠性差、功能單一。隨著微電子技術(shù)的發(fā)展,單片微處理器功能日益增強(qiáng),價(jià)格低廉,在各方面得到廣泛應(yīng)用。在熱水控制器中應(yīng)用單片機(jī),具有設(shè)計(jì)簡單、可靠性高、功能易擴(kuò)展等優(yōu)點(diǎn)。</p><p&g
16、t; 熱水控制器主要實(shí)現(xiàn)對水溫的控制,并滿足不同用戶的個(gè)性需求。因此一個(gè)較完善的控制器應(yīng)具有以下功能:</p><p> 水溫的測量與顯示;水量的測量與顯示;用戶設(shè)定功能(如水溫設(shè)定,定時(shí)設(shè)定等);對電加熱管的控制功能;一些功能鍵(如定時(shí)自動加水,恒溫控制,手動加水,手動加熱等)。</p><p><b> 圖1 原理框圖</b></p><
17、p><b> 硬件電路設(shè)計(jì)</b></p><p> 根據(jù)熱水控制器的功能要求,并結(jié)合對51系列單片機(jī)的資源分析,采用此系列中的主流型號89C51作為電路系統(tǒng)的控制核心。電熱水控制器的總體布局如圖1所示?;居布娐穲D如圖2(a)~(c)所示。在本系統(tǒng)中,P0.0~P0.3用于七段碼顯示,P2.6控制水閘開關(guān),P2.7控制電加熱管,P3.3~P3.5用于按鍵設(shè)計(jì)和讀取水量,P3.0
18、~P3.2用于跟DS1820通信進(jìn)行水溫測量,P2.0~P2.1對七段碼進(jìn)行掃描,P2.2~P2.5 LED指示燈顯示,P3.7控制揚(yáng)聲器用于報(bào)警和指示。</p><p><b> 1.水溫測量電路</b></p><p> 水溫測量電路如圖4所示,測溫元件采用DALLAS的單線數(shù)字溫度傳感器DS1820。DS1820提供九位溫度讀數(shù),測量范圍-55℃~125℃,
19、采用獨(dú)特1-WIRE 總線協(xié)議,只需一根口線即實(shí)現(xiàn)與MCU的雙向通訊,具有連接簡單,高精度,高可靠性等特點(diǎn)。在工作時(shí),通過總線向其提供電源,單片機(jī)發(fā)出指令碼讀取溫度值。</p><p> DS1820的工作原理</p><p> DS1820采用3腳PR-35封裝或8腳SOIC封裝,管腳排列如圖2所示。圖中3號引腳為GND,2號引腳I/O為數(shù)據(jù)輸入/輸出端(即單線總線),該腳為漏極開路
20、輸出,常態(tài)下呈高電平。1號引腳VDD是外部+5V電源端,不用時(shí)應(yīng)接地。NC為空腳。圖3所示為DS1820的內(nèi)部框圖,它主要包括寄生電源、溫度傳感器、64位激光ROM單線接口、存放中間數(shù)據(jù)的高速暫存器(內(nèi)含便箋式RAM),用于存儲用戶設(shè)定的溫度上下限值的TH和TL解發(fā)器存儲與控制邏輯、8位循環(huán)冗余校驗(yàn)碼(CRC)發(fā)生器等七部分。</p><p> 圖2 DS1820引腳圖</p><p>
21、 圖3 DS18B20內(nèi)部結(jié)構(gòu)圖</p><p><b> 寄生電源電路</b></p><p> 寄生電源由二極管VD1、VD2和寄生電容C組成。電源檢測電路用于判定供電方式。寄生電源供電時(shí),VDD端接地,器件從單線總線上獲取電源。在I/O線呈低電平時(shí),改由C上的電壓Vc繼續(xù)向器件供電。該寄生電源有兩個(gè)優(yōu)點(diǎn):第一,檢測遠(yuǎn)程溫度時(shí)無需本地電源;第二,缺少正常電源
22、時(shí)也能讀ROM。若采用外部電源VDD,則通過VD2向器件供電。</p><p><b> 溫度測量原理</b></p><p> DS1820測量溫度時(shí)使用特有的溫度測量技術(shù)。其測量電路框圖如圖3所示。DS1820內(nèi)部的低溫度系數(shù)振蕩器能產(chǎn)生穩(wěn)定的頻率信號f0,高溫度系數(shù)振蕩器則將被測溫度轉(zhuǎn)換成頻率信號f。當(dāng)計(jì)數(shù)門打開時(shí),DS1820對f0計(jì)數(shù),計(jì)數(shù)門開通時(shí)間由高
23、溫度系數(shù)振蕩器決定。芯片內(nèi)部還有斜率累加器,可對頻率的非線性予以被償。測量結(jié)果存入溫度寄存器中。一般情況下的溫度值應(yīng)為9位(符號點(diǎn)1位),但因符號位擴(kuò)展成高8位,故以16位被碼讀出。</p><p> 圖4 DS1820測溫原理框圖</p><p><b> 高速暫存器</b></p><p> 在正常測溫情況下,DS1820的測溫分辨
24、力為0.5℃,可采用下述方法獲得高分辨率的溫度測量結(jié)果:首先用DS1820提供的讀暫存器指令(BEH)讀出以0.5℃為分辨率的溫度測量結(jié)果,然后切去測量結(jié)果中的最低有效位(LSB),得到所測實(shí)際溫度的整數(shù)部分Tz,然后現(xiàn)用BEH指令取計(jì)數(shù)器1的計(jì)數(shù)剩余值Cs和每度計(jì)數(shù)值CD??紤]到DS1820測量溫度的整數(shù)部分以0.25℃、0.75℃為進(jìn)位界限的關(guān)系,實(shí)際溫度Ts可用下式計(jì)算:</p><p> Ts=(Tz-
25、0.25℃)+(CD-Cs)/CD</p><p><b> 高溫自動報(bào)警電路</b></p><p> DS1820完成溫度轉(zhuǎn)換后,就把測得的溫度值與TH、TL作比較。若T>TH或T<TL,則將該器件內(nèi)的告警標(biāo)志置位,并對主機(jī)發(fā)出的告警搜索命令作出響應(yīng)。因此,可用多只DS1820同時(shí)測量溫度并進(jìn)行告警搜索。一旦某測溫點(diǎn)越限,主機(jī)利用告警搜索命令即可識
26、別正在告警的器件,并讀出其序號,而不必考慮非告警器件。</p><p><b> CRC的產(chǎn)生</b></p><p> 在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余校驗(yàn)碼(CRC)。主機(jī)根據(jù)ROM的前56位來計(jì)算CRC值,并和存入DS1820中的CRC值作比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。CRC的函數(shù)表達(dá)式為:CRC=X8+X5+X3+1。此外,DS18
27、20尚需依上式為暫存器中的數(shù)據(jù)來產(chǎn)生一個(gè)8位CRC送給主機(jī),以確保暫存器數(shù)據(jù)傳送無誤。</p><p> 基本溫度水溫測量電路</p><p> 基本溫度水溫測量電路如圖5所示,本系統(tǒng)中,一個(gè)DS18B20溫度傳感器,三個(gè)七段碼顯示與四個(gè)LED燈指示,四個(gè)功能按鍵與水量設(shè)定按鍵使用同一組按鍵。按鍵的優(yōu)先權(quán)高于水量信號,水量高檔位信號優(yōu)先權(quán)高于低檔位信號,以保證能優(yōu)先響應(yīng)按鍵。</
28、p><p> 圖5 基本溫度水溫測量、鍵盤電路</p><p><b> 顯示電路及鍵盤電路</b></p><p> 顯示電路如圖6所示,溫度采用二位七段碼顯示,顯示范圍0℃~99℃。水量采用一位七段顯示,顯示1、2、3、4,四檔水位。對溫度和水量進(jìn)行循環(huán)掃描顯示。四個(gè)LED用于當(dāng)前按鍵功能設(shè)定。</p><p>
29、 設(shè)置按鍵兩個(gè),一個(gè)十位按鍵,一個(gè)個(gè)位按鍵。</p><p> 圖6 基本顯示電路圖圖</p><p><b> 水溫和水量控制電路</b></p><p> 水溫和水量控制電路如圖7所示,單片機(jī)通過光電耦合對繼電器進(jìn)行控制,用來切斷或接通加熱管電源,關(guān)閉或打開水閥,從而達(dá)到對水溫和水量的控制。</p><p>
30、 圖7 水溫和水量控制電路</p><p><b> 系統(tǒng)軟件設(shè)計(jì)</b></p><p> 系統(tǒng)軟件采用匯編語言精簡指令編寫。本系統(tǒng)中鍵盤掃描、漏電檢測等子程序都通過查詢實(shí)現(xiàn),并采用12MHz的時(shí)鐘頻率,對指令的運(yùn)行時(shí)間進(jìn)行了精確計(jì)算和設(shè)計(jì),保證軟件的可靠性和穩(wěn)定性。系統(tǒng)主程序框圖如圖7所示,DS1820工作程序流程圖如圖8所示。</p>&l
31、t;p><b> 鍵盤和顯示</b></p><p> 本系統(tǒng)中,有四個(gè)功能按鍵:定時(shí)加水、恒溫控制、手動加水和手動加熱;三個(gè)七段碼顯示與四個(gè)LED燈指示。</p><p> (1) 按下定時(shí)加水按鈕時(shí),定時(shí)LED變亮,并以當(dāng)前時(shí)間為定時(shí)時(shí)標(biāo),每24小時(shí)自動加水至設(shè)定水量;若長按此鈕超過5秒,定時(shí)LED滅,并聽到“嘟”一聲進(jìn)行水量設(shè)定,此后每按一下鈕,水量
32、顯示加一檔,1~4檔循環(huán)顯示,不按此鈕超過5秒,再次聽到“嘟”一聲,水量設(shè)定完畢。系統(tǒng)的定時(shí)功能主要通過軟件完成。</p><p> ?。?)按下恒溫控制鈕,恒溫LED變亮,表示進(jìn)行恒溫控制,再按一下LED滅,取消恒溫控制。與水量設(shè)定類似,長按后,進(jìn)行溫度設(shè)定。</p><p> (3)按下手動加熱鈕時(shí),加熱LED變亮,加熱至65℃,如水量少于1檔,則先加水到1檔,再按一次取消加熱。&l
33、t;/p><p> ?。?)按下手動加水鈕時(shí),加水至設(shè)定水量值,長按可設(shè)定水量。手動加水過程中,再次按下取消加水。正常情況下,兩個(gè)七段碼顯示當(dāng)前水溫,另一個(gè)顯示當(dāng)前水位。</p><p><b> 水溫測量</b></p><p> 溫度讀取是通過與DS1820通信完成。DS1820通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念。因此系統(tǒng)對DS182
34、0的各種操作必須按協(xié)議進(jìn)行。DS1820是美國DALLAS公司生產(chǎn)的單線數(shù)字溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微處理器等優(yōu)點(diǎn),特別適合于構(gòu)成多點(diǎn)溫度測控系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號供微機(jī)處理,而且每片DS1820都有唯一的產(chǎn)品號并可存入其ROM中,以使在構(gòu)成大型溫度測控系統(tǒng)時(shí)在單線上掛任意多個(gè)DS1820芯片。從DS1820讀出或?qū)懭隓S1820信息僅需要一根口線,共讀寫及溫度變換功率來源于數(shù)據(jù)總線,該
35、總線本身也可以向所掛接的DS1820供電,而無需額處電源。DS1820能提供九位溫度讀數(shù),它無需任何外圍硬件即可方便地構(gòu)成溫度檢測系統(tǒng)。</p><p><b> 結(jié)論</b></p><p> 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已
36、經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。 回顧起此次單片機(jī)課程設(shè)計(jì),至今我仍感慨頗多,的確,從選題到定稿,從理論到實(shí)踐,在整整兩星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)
37、不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,比如說對單片機(jī)匯編語言掌握得不好……通過這次課程設(shè)計(jì)之后,一定把以前所學(xué)過的知識重</p><p> 1.
38、在設(shè)計(jì)程序之前,務(wù)必要對所用單片機(jī)的內(nèi)部結(jié)構(gòu)有一個(gè)系統(tǒng)的了解,知道該單片機(jī)片內(nèi)有哪些資源,它的引腳功能都要了解</p><p> 2.設(shè)計(jì)程序采用什么編程語言并不是非常重要,關(guān)鍵要有一個(gè)清晰的思路和一個(gè)完整的軟件流程圖.</p><p> 3.在設(shè)計(jì)程序時(shí),不能妄想一次就將整個(gè)程序設(shè)計(jì)好,"反復(fù)修改,不斷改進(jìn)"是程序設(shè)計(jì)的必經(jīng)之路.</p><p
39、> 4.在設(shè)計(jì)程序過程中遇到問題是很正常的,但我們應(yīng)該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題.</p><p><b> 圖8 主程序流程圖</b></p><p><b> 參考文獻(xiàn)</b></p><p> [1]蘇長贊主編:《實(shí)用遙控技術(shù)手冊》,北京:人民郵電出版社,1996年。
40、</p><p> [2]陳永甫主編:《紅外探測與控制電路》,北京:人民郵電出版社,2004年。</p><p> [3]無線電愛好者叢書編委會,黃繼昌等主編:《實(shí)用識別電路》,北京: 人民郵電出版社,2005年。</p><p><b> 致謝</b></p><p> 首先感謝各位指導(dǎo)老師,各位同學(xué)給
41、我的支持和幫助,感謝他們在這幾個(gè)月份給與的關(guān)鍵性指導(dǎo)和提議。</p><p> 同時(shí)我也感謝家里的父母,為我提供了一個(gè)很好的學(xué)習(xí)環(huán)境,和無微不至的關(guān)懷,在我感到困難和灰心時(shí),他們對我的鼓勵(lì),我的成功有他們不可以或缺的功勞。</p><p> 感謝我的指導(dǎo)老師,他們嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;他們循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪。 <
42、/p><p> 歲月如流,流走的是時(shí)光,流不動的是永存于心底的這份情愫!</p><p><b> 附錄</b></p><p><b> 附錄一:程序清單</b></p><p> ORG 0000H;系統(tǒng)主程序JMP MAIN </p><p><b>
43、 ORG 000BH</b></p><p> JMP LEDINT0</p><p><b> ORG 001BH</b></p><p> JMP LEDINT1</p><p><b> ORG 0100H</b></p><p>
44、PP5:JMP PP1</p><p> PP7:JMP PP2</p><p> MAIN: MOV 34H,#0FFH</p><p> MOV 35H,#0FFH</p><p> MOV 36H,#00H</p><p> MOV 37H,#00H</p><p>
45、 clr p1.6</p><p> setb p1.7</p><p> MOV SP,#60H ;給堆棧指針賦初值</p><p> MOV TMOD,#51H ;定時(shí)器0工作于方式定時(shí)器1作為計(jì)數(shù)器</p><p> M
46、OV TH0,#0ECH ;給計(jì)數(shù)寄存器的高8位賦初值</p><p> MOV TL0,#77H ;給計(jì)數(shù)寄存器的低8位賦初值</p><p> MOV 30H,#20</p><p> mov 31h,#10</p><p>
47、 MOV 32H,#20</p><p> mov 33h,#10</p><p> mov th1,#00h</p><p> mov tl1,#00h</p><p> MOV IE,#82H</p><p>
48、 SETB TR0 ;計(jì)時(shí)開始</p><p> setb tr1 ;開始計(jì)數(shù)</p><p><b> mov r0,#0</b
49、></p><p><b> mov r1,#0</b></p><p><b> mov r2,#0</b></p><p><b> mov r3,#0</b></p><p><b> mov r4,#0</b></p>
50、<p> LOOP: mov dptr,#0a100h ;讀取鍵盤狀態(tài)</p><p> movx a,@dptr</p><p> MOV 21H,A ;把A的內(nèi)容賦給緩沖區(qū)21H,再比較判斷然后輸出</p><p> JNB 21H.7,PP3 ;加
51、水到50</p><p> JNB 21H.6,PP7 ;加水到80</p><p> JNB 21H.5,PP5 ;加水到100</p><p><b> MOV A,34H</b></p><p><b> CLR
52、C</b></p><p><b> SUBB A,#1</b></p><p> JC PP3 ;C是1 轉(zhuǎn)PP3</p><p> JZ TTL4
53、; ;A=0 轉(zhuǎn)TTL4</p><p> AJMP BB ;無條件轉(zhuǎn)移</p><p> TTL4:MOV A,35H&l
54、t;/p><p><b> CLR C</b></p><p> SUBB A,#10</p><p><b> JC PP3</b></p><p><b> MOV A,36H</b></p><p><b> CLR C</b
55、></p><p><b> SUBB A,#5</b></p><p><b> JC BB</b></p><p><b> JZ TTL5</b></p><p><b> AJMP PP6</b></p><p&g
56、t; TTL5:MOV A,37H</p><p><b> CLR C</b></p><p> SUBB A,#10</p><p><b> JC BB</b></p><p><b> AJMP PP6</b></p><p> BB
57、: MOV A,R0</p><p> LCALL XIANSHI</p><p> MOV DPTR , #0A000h</p><p> MOVx @DPTR,A</p><p> lcall delay</p><
58、p><b> MOV A,R1</b></p><p> LCALL XIANSHI</p><p> MOV DPTR , #0A001h</p><p> MOVx @DPTR,A</p><p> lcall delay</p>
59、<p><b> MOV A,R2</b></p><p> LCALL XIANSHI</p><p> MOV DPTR , #0A002h</p><p> MOVx @DPTR,A</p><p> lcall delay<
60、/p><p><b> MOV A,R3</b></p><p> LCALL XIANSHI</p><p> MOV DPTR , #0A003h</p><p> MOVx @DPTR,A</p><p> lcall del
61、ay</p><p><b> MOV A,R4</b></p><p> LCALL XIANSHI</p><p> MOV DPTR , #0A004h</p><p> MOVx @DPTR,A</p><p> lca
62、ll delay</p><p><b> ajmp loop</b></p><p><b> pp3: </b></p><p><b> MOV A,#0</b></p><p> LCALL XIANSHI</p><p>
63、 MOV DPTR , #0A000h</p><p> MOVx @DPTR,A</p><p> lcall delay</p><p><b> MOV A,#5</b></p><p> LCALL XIANSHI</p><
64、p> MOV DPTR , #0A001h</p><p> MOVx @DPTR,A</p><p> lcall delay</p><p><b> MOV A,34H</b></p><p><b> CLR C </b&
65、gt;</p><p><b> SUBB A,#1</b></p><p><b> JC PP3</b></p><p> JZ TTL </p><p> TTL:MOV A,35H</p><p><b> CL
66、R C</b></p><p> SUBB A,#55</p><p><b> JC PP3</b></p><p><b> JMP LOOP</b></p><p> pp2: MOV A,#8</p><p> LCALL XIANS
67、HI</p><p> MOV DPTR , #0A001h</p><p> MOVx @DPTR,A</p><p> lcall delay</p><p><b> MOV A,#0</b></p><p> LCALL
68、 XIANSHI</p><p> MOV DPTR , #0A000h</p><p> MOVx @DPTR,A</p><p> lcall delay</p><p><b> MOV A,34H</b></p><p>
69、<b> CLR C </b></p><p><b> SUBB A,#2</b></p><p><b> JC PP2</b></p><p><b> JZ TTL1</b></p><p> TTL1:MOV A,35H</p&g
70、t;<p><b> CLR C</b></p><p> SUBB A,#55</p><p><b> JC PP2</b></p><p><b> JMP LOOP</b></p><p> PP6: MOV A,#10</p&
71、gt;<p> LCALL XIANSHI</p><p> MOV DPTR , #0A002h</p><p> MOVx @DPTR,A</p><p> lcall delay</p><p><b> MOV A,#13</b>
72、</p><p> LCALL XIANSHI</p><p> MOV DPTR , #0A001h</p><p> MOVx @DPTR,A</p><p> lcall delay</p><p><b> MOV A,#13<
73、;/b></p><p> LCALL XIANSHI</p><p> MOV DPTR , #0A000h</p><p> MOVx @DPTR,A</p><p> lcall delay</p><p><b> MOV A
74、,34H</b></p><p><b> CLR C </b></p><p><b> SUBB A,#4</b></p><p><b> JC PP6</b></p><p><b> JZ TTL6</b></p>
75、<p><b> JMP LOOP</b></p><p> TTL6:MOV A,35H</p><p><b> CLR C</b></p><p> SUBB A,#55</p><p><b> JC PP6</b></p><
76、;p><b> JMP LOOP</b></p><p> pp1: MOV A,#9</p><p> LCALL XIANSHI</p><p> MOV DPTR , #0A000h</p><p> MOVx @DPTR,A&
77、lt;/p><p> lcall delay</p><p><b> MOV A,#9</b></p><p> LCALL XIANSHI</p><p> MOV DPTR , #0A001h</p><p> MOVx @D
78、PTR,A</p><p> lcall delay</p><p><b> MOV A,34H</b></p><p><b> CLR C </b></p><p><b> SUBB A,#4</b></p><p><b>
79、 JC PP1</b></p><p><b> JZ TTL2</b></p><p> TTL2:MOV A,35H</p><p><b> CLR C</b></p><p> SUBB A,#55</p><p><b> JC PP
80、1</b></p><p><b> JMP LOOP </b></p><p> TEMPER_L EQU 36H;DS1820溫度測量子程序TEMPER_H EQU
81、 35HDQ BIT P3.2; DS18B20初始化程序INIT_1820: SETB DQ NOP
82、 CLR DQ MOV R0,#06BHTSR1: DJNZ R0,TSR1 ;
83、0;延時(shí) SETB DQ MOV R0,#25HTSR2: JNB DQ,TSR3 DJNZ
84、160; R0,TSR2 LJMP TSR4 ; 延時(shí)TSR3: SETB
85、FLAG1 ; 置標(biāo)志位,表示DS1820存在 LJMP TSR5TSR4: CLR FLAG1&
86、#160; ; 清標(biāo)志位,表示DS1820不存在 LJMP TSR7TSR5: MOV R0,#06BHTS
87、R6: DJNZ </p><p> ;***********************</p><p> ;定時(shí)器0中斷服務(wù)子程序</p><p> ;***********************</p><p><b> LEDINT0:&
88、lt;/b></p><p> PUSH PSW ;壓棧保護(hù)現(xiàn)場</p><p> PUSH ACC</p><p> clr ET0 ;防
89、止連續(xù)中斷</p><p> CLR TR0 ;禁止定時(shí)器計(jì)數(shù) CLR TR1 </p><p> MOV TH0,#3CH ;重新給計(jì)數(shù)器賦初值</p><p> MOV TL0,#0B0H</p
90、><p> DJNZ 30H,LEDRET ;定時(shí)1s到了嗎?</p><p> djnz 31h,ibtd ;水溫水位分別顯示20秒</p><p><b> CLR ET0</b></p><p> MOV TMOD,#15H
91、160; ;定時(shí)器1工作于方式定時(shí)器0作為計(jì)數(shù)器</p><p> MOV TH1,#0ECH ;給計(jì)數(shù)寄存器的高8位賦初值</p><p> MOV TL1,#77H ;給計(jì)數(shù)寄存器的低8位賦初值</p><p> MOV 32H,#20</p>&
92、lt;p> mov 33h,#10 </p><p> mov th0,#00h</p><p> mov tl0,#00h</p><p> MOV IE,#88H ;IE是寄存器,88H的輸入設(shè)置了中斷--
93、--</p><p> setb tr1 </p><p> SETB TR0
94、0; ;開始計(jì)數(shù)</p><p><b> mov r0,#0</b></p><p><b> mov r1,#0</b></p><p><b> mov r2,#0</b>
95、;</p><p><b> mov r3,#0</b></p><p><b> mov r4,#0</b></p><p><b> POP PSW</b></p><p><b> POP ACC</b></p><p&g
96、t;<b> RETI</b></p><p> IBTD:MOV 30H,#20 ;是,則重新賦初值</p><p><b> MOV A,TH1</b></p><p><b> MOV 34H,A</b></p><p><
97、;b> MOV R2,A</b></p><p><b> MOV A,TL1</b></p><p><b> MOV 35H,A</b></p><p> MOV R3,A </p><p> MOV TH1,#00H</p>&
98、lt;p> MOV TL1,#00H </p><p> CLR A &
99、#160; </p><p><b> MOV R4,A</b></p><p><b> MOV R5,A</b></p><p><b> MOV R6,A</b></p><
100、p> MOV R7,#16</p><p> PP0: CLR C</p><p><b> MOV A,R3</b></p><p><b> RLC A</b></p><p><b> MOV R3,A</b></
101、p><p><b> MOV A,R2</b></p><p> RLC A ;把十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)</p><p><b> MOV R2,A</b></p><p><b> MOV A,R6</b>&l
102、t;/p><p><b> ADDC A,R6</b></p><p> DA A </p><p><b> MOV R6,A</b><
103、;/p><p><b> MOV A,R5</b></p><p><b> ADDC A,R5</b></p><p><b> DA A</b></p><p><b> MOV R5,A</b></p><p><b
104、> MOV A,R4</b></p><p><b> ADDC A,R4</b></p><p><b> DA A</b></p><p><b> MOV R4,A</b></p><p> DJNZ R7,PP0
105、60; ;轉(zhuǎn)換完畢</p><p> MOV A,R4 ;把R4,R5,R6中的十進(jìn)制數(shù)一位一位的存放于R4,R3,R2,R1,R0中</p><p><b> MOV R4,A</b></p><p><b> MOV A,R5&l
106、t;/b></p><p><b> SWAP A</b></p><p> ANL A,#0FH</p><p><b> MOV R3,A</b></p><p><b> MOV A,R5</b></p><p> ANL A,#0
107、FH</p><p><b> MOV R2,A</b></p><p><b> MOV A,R6</b></p><p><b> SWAP A</b></p><p> ANL A,#0FH</p><p><b> MOV R
108、1,A</b></p><p><b> MOV A,R6</b></p><p> ANL A,#0FH</p><p><b> MOV R0,A</b></p><p> LEDRET:SETB TR0</p><p> SETB TR1
109、; ;啟動定時(shí)器</p><p><b> ;啟動計(jì)數(shù)器</b></p><p> MOV IE,#82H</p><p> POP ACC ;出棧</p
110、><p><b> POP PSW</b></p><p> RETI ;中斷返回</p><p><b> ledint1:</b><
111、/p><p> PUSH PSW ;壓棧保護(hù)現(xiàn)場</p><p> PUSH ACC</p><p> clr ET1
112、0; ;防止連續(xù)中斷</p><p> CLR TR0 ;禁止定時(shí)器計(jì)數(shù)</p><p> CLR TR1 </p><p> MOV TH1,#3CH
113、160; ;重新給計(jì)數(shù)器賦初值</p><p> MOV TL1,#0B0H</p><p> DJNZ 32H,LEDRET1 ;定時(shí)1s到了嗎?</p><p> djnz 33h,IBTD1 ;顯示水位時(shí)間到了沒有???</p>
114、;<p><b> ;到就去顯示水溫</b></p><p> MOV TMOD,#51H ;定時(shí)器0工作于方式定時(shí)器1作為計(jì)數(shù)器</p><p> MOV TH0,#0ECH
115、60; ;給計(jì)數(shù)寄存器的高8位賦初值</p><p> MOV TL0,#77H ;給計(jì)數(shù)寄存器的低8位賦初值</p><p> MOV 30H,#20</p><p> mov 31h,#10 </
116、p><p> mov th1,#00h</p><p> mov tl1,#00h</p><p> MOV IE,#82H</p><p> SETB TR0
117、 ;計(jì)時(shí)開始</p><p> setb tr1 ;開始計(jì)數(shù)</p><p><b> mov r0,#0</b></p><p><b> mov
118、r1,#0</b></p><p><b> mov r2,#0</b></p><p><b> mov r3,#0</b></p><p><b> mov r4,#0</b></p><p><b> POP PSW</b><
119、;/p><p><b> POP ACC</b></p><p> RETI </p><p> IBTD1:MOV 32H,#20 ;是,則重新賦初值</p><p> ;******************
120、********</p><p> ;將十六進(jìn)制轉(zhuǎn)換為BCD碼 **</p><p> ; **************************</p><p><b> MOV A,TH0</b></p><p><b> MOV 36H,A</b>&l
121、t;/p><p><b> MOV R2,A</b></p><p><b> MOV A,TL0</b></p><p><b> MOV 37H,A</b></p><p> MOV R3,A </p><p> MOV
122、 TH0,#00H</p><p> MOV TL0,#00H </p><p> CLR A
123、60; </p><p><b> MOV R4,A</b></p><p><b> MOV R5,A</b></p><p><b> MOV R6,A<
124、/b></p><p> MOV R7,#16</p><p> PP4: CLR C</p><p><b> MOV A,R3</b></p><p><b> RLC A</b></p><p><b> M
125、OV R3,A</b></p><p><b> MOV A,R2</b></p><p><b> RLC A</b></p><p><b> MOV R2,A</b></p><p><b> MOV A,R6</b></p
126、><p><b> ADDC A,R6</b></p><p><b> DA A</b></p><p><b> MOV R6,A</b></p><p><b> MOV A,R5</b></p><p><b>
127、; ADDC A,R5</b></p><p><b> DA A</b></p><p><b> MOV R5,A</b></p><p><b> MOV A,R4</b></p><p><b> ADDC A,R4</b>&
128、lt;/p><p><b> DA A</b></p><p><b> MOV R4,A</b></p><p> DJNZ R7,PP4</p><p><b> ;轉(zhuǎn)換完畢</b></p><p><b> MOV A,R4<
129、/b></p><p><b> MOV R4,A</b></p><p><b> MOV A,R5</b></p><p><b> SWAP A</b></p><p> ANL A,#0FH</p><p><b> M
130、OV R3,A</b></p><p><b> MOV A,R5</b></p><p> ANL A,#0FH</p><p><b> MOV R2,A</b></p><p><b> MOV A,R6</b></p><p>
131、;<b> SWAP A</b></p><p> ANL A,#0FH</p><p><b> MOV R1,A</b></p><p><b> MOV A,R6</b></p><p> ANL A,#0FH</p><p><b
132、> MOV R0,A</b></p><p> LEDRET1:SETB TR0 ;啟動定時(shí)器</p><p> SETB TR1 ;啟動計(jì)數(shù)器</p><p><b> setb et1</b></p>&
133、lt;p><b> setb ea</b></p><p> POP ACC ;出棧</p><p><b> POP PSW</b></p><p> RETI ;中斷返回&l
134、t;/p><p> delay: mov r7,#15</p><p> TM: mov r6,#10</p><p> AA: djnz r6,AA</p><p> djnz r7,TM </p><p> RET
135、 </p><p> XIANSHI: </p><p><b> inc a</b></p><p> movc a,@a+pc</p><p> RET &
136、#160; &
137、#160;
138、;
139、160; db 0c0h,0f9h,0a4h,0b0h,99h,92h
140、,82h, 0f8h,80h,90h ;數(shù)據(jù)顯示分別 為:0,1,2,3,4,5,6,7,8,9</p><p> db 88h,83h,0c6h,0a1h,86h,8eh,0ffh, 0f7h ;為顯示ADD而用的數(shù)據(jù)</p><p><b> END</b></p><p><b> 附錄
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的燃?xì)鉄崴骺刂破髟O(shè)計(jì)
- 基于單片機(jī)的熱水器控制器設(shè)計(jì)【畢業(yè)論文】
- 基于單片機(jī)的家用熱水器控制器設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 【畢業(yè)論文】基于單片機(jī)的家用熱水器控制器設(shè)計(jì)
- 【畢業(yè)論文】基于單片機(jī)的家用熱水器控制器設(shè)計(jì)
- 基于單片機(jī)的pid控制器設(shè)計(jì)
- 基于單片機(jī)的水位控制器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)控制的時(shí)鐘控制器
- 畢業(yè)設(shè)計(jì)論文基于單片機(jī)的電熱水器控制器設(shè)計(jì)
- 基于單片機(jī)的太陽能熱水器控制器
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)的定時(shí)控制器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——基于單片機(jī)的步進(jìn)電機(jī)控制器設(shè)計(jì)
- 基于單片機(jī)的洗衣機(jī)控制器設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)---基于單片機(jī)的恒溫控制器的設(shè)計(jì)
- 基于單片機(jī)控制的電梯控制器
- 單片機(jī)課程設(shè)計(jì)——基于單片機(jī)的步進(jìn)電機(jī)控制器設(shè)計(jì)
- 基于單片機(jī)控制的時(shí)鐘控制器
- 基于單片機(jī)的電熱水器定時(shí)控制器設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)水溫控制器的設(shè)計(jì)設(shè)計(jì)
- 畢業(yè)基于單片機(jī)的pid控制器設(shè)計(jì)
評論
0/150
提交評論