版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p><b> 摘 要1</b></p><p><b> 關(guān)鍵詞1</b></p><p><b> 1緒論1</b></p><p><b> 2系統(tǒng)方案論證1<
2、;/b></p><p> 2.1方案論述1</p><p> 2.2方案比較2</p><p><b> 3系統(tǒng)硬件設(shè)計(jì)3</b></p><p> 3.1理論基礎(chǔ)3</p><p> 3.2信號(hào)分析5</p><p> 3.3功能描
3、述5</p><p> 3.4復(fù)位電路5</p><p> 3.5液位定位及光電開關(guān)6</p><p> 3.61602顯示屏7</p><p> 3.7DS18B20溫度傳感器7</p><p><b> 4軟件設(shè)計(jì)8</b></p><p>
4、; 4.1整體設(shè)計(jì)及說明8</p><p> 4.2DS18B20流程設(shè)計(jì)9</p><p> 4.31602字符型LCD流程設(shè)計(jì)9</p><p><b> 5總結(jié)11</b></p><p><b> 參考文獻(xiàn)12</b></p><p> A
5、bstract13</p><p> Key words13</p><p> 附錄1 系統(tǒng)電路圖14</p><p><b> 附錄2程序15</b></p><p><b> catalog</b></p><p> Abstract1</p&g
6、t;<p> Key words1</p><p> 1 Introduction1</p><p> 2 System demonstration program1</p><p> 2.1Program exposition1</p><p> 2.2Program comparison2</p
7、><p> 3 System hardware design3</p><p> 3.1Theoretical basis3</p><p> 3.2Signal analyzer5</p><p> 3.3Function description5</p><p> 3.4Reset circu
8、it5</p><p> 3.5Liquid level positioning and photoelectric switches6</p><p> 3.61602 Display7</p><p> 3.7DS18B20 Temperature sensor7</p><p> 4 Software design
9、8</p><p> 4.1The overall design and instruction8</p><p> 4.2DS18B20 orchestration design9</p><p> 4.31602 character LCD orchestration designer9</p><p> 5 Sum
10、mary11</p><p> Reference12</p><p> Abstract .13</p><p> Key words13</p><p> Appendix 1 System circuit diagram14</p><p> Appendix 2 Program15<
11、/p><p> 基于51單片機(jī)的空氣智能加濕器</p><p> 摘 要 在日常生活中加濕器得到了廣泛的應(yīng)用,但是現(xiàn)有的加濕器都需要手工控制開啟和關(guān)閉并且不具備對(duì)室內(nèi)空氣溫濕度的監(jiān)測(cè),人們?cè)谑褂眠^程中存在過度加濕和干燒的問題,不僅給室內(nèi)空氣舒適度造成負(fù)面影響并且還存在安全隱患。因此開發(fā)設(shè)計(jì)一種價(jià)格低廉、功耗低、具有自動(dòng)控制功能的加濕器顯得尤為必要。本設(shè)計(jì)采用智能控制,以AT80S51單片
12、機(jī)為核心,外接輔助電路,通過實(shí)現(xiàn)加濕器的防干燒、聲光報(bào)警、智能開啟和關(guān)閉以及室內(nèi)溫濕度的顯示功能基本實(shí)現(xiàn)加濕器的智能化。 </p><p> 關(guān)鍵詞 單片機(jī); 智能; 加濕器; 相對(duì)濕度; 傳感器</p><p><b> 緒論</b></p><p> 隨著科學(xué)技術(shù)的發(fā)展,社會(huì)的不斷進(jìn)步,人們對(duì)生活質(zhì)量的要求在不斷提高。無(wú)論是工
13、業(yè)、農(nóng)業(yè)、信息產(chǎn)業(yè)還是服務(wù)行業(yè),它們都朝著智能化、人性化的方向發(fā)展。以人為本的產(chǎn)品設(shè)計(jì)思路體現(xiàn)了極大的實(shí)際價(jià)值。 </p><p> 四季更替,邁過了氣候宜人的秋季,寒冷干燥的冬季向人們一步步走來。在這個(gè)季節(jié)很多人容易皮膚干燥、嗓子干痛。身邊迫切需要一臺(tái)小型加濕設(shè)備。據(jù) 此,我們?cè)O(shè)計(jì)了集顯示、檢測(cè)、液位保護(hù)、聲光報(bào)警、手動(dòng)調(diào)節(jié)、基于微處理器自動(dòng)控制的室內(nèi)智能加濕器。在生活中,我們隨處可見使用加濕器的場(chǎng)合。經(jīng)調(diào)查
14、,在人們不斷追求健康生活方式的今天,此實(shí)用新型的室內(nèi)加濕器應(yīng)有廣泛的市場(chǎng)前景,極易為家庭所接受,在技術(shù)水準(zhǔn)上具有領(lǐng)先水平,在市場(chǎng)競(jìng)爭(zhēng)中占有絕對(duì)優(yōu)勢(shì)。 </p><p> 工作原理:采用電容三點(diǎn)式振蕩電路驅(qū)動(dòng)壓電陶瓷超聲換能器產(chǎn)生超聲波, 基于超聲波高頻振蕩原理,在需要進(jìn)行霧化加濕時(shí),將蒸餾水放入水杯中,水將 被超聲波打碎,在水表面產(chǎn)生大量直徑達(dá)微米級(jí)的顆粒——水霧。這樣便達(dá)到了 給空氣加濕的功能。</p&
15、gt;<p><b> 系統(tǒng)方案論證</b></p><p> 為了能夠設(shè)計(jì)出一種成本低廉,精確度較高,連接簡(jiǎn)單的智能加濕器系統(tǒng),本設(shè)計(jì)給出了兩種方案。</p><p><b> 方案論述</b></p><p> 方案一由單片機(jī)SPCE061為主控制器,通過濕敏電阻EYHS77,對(duì)室內(nèi)的濕度進(jìn)行實(shí)時(shí)
16、采集,通過A/D轉(zhuǎn)換,把信號(hào)送到LCD顯示。單片機(jī)通過對(duì)采集的環(huán)境參數(shù)與內(nèi)部存儲(chǔ)的環(huán)境數(shù)據(jù)庫(kù)的對(duì)比分析,最終做出決策,系統(tǒng)自動(dòng)發(fā)出指令,控制加濕器進(jìn)行相應(yīng)動(dòng)作。系統(tǒng)的總體結(jié)構(gòu)框圖,如圖2.1所示。</p><p><b> 圖2.1 結(jié)構(gòu)框圖</b></p><p> 方案二由兩個(gè)DS18B20溫度傳感器一個(gè)水位傳感器、單片機(jī)AT89S51、1602LCD液晶顯示
17、屏、聲光報(bào)警器、以及一個(gè)光電耦合開關(guān)等部分組成。兩個(gè)溫度傳感器分別采集室內(nèi)空氣的干濕球溫度,并將采集的溫度傳送至單片機(jī)。單片機(jī)對(duì)這兩個(gè)數(shù)據(jù)加以處理并結(jié)合室內(nèi)濕度要求參數(shù)控制加濕器的開啟和閉合。另外,水位傳感器還能監(jiān)測(cè)水位,單片機(jī)根據(jù)水位高低控制聲光報(bào)警裝置。自動(dòng)加濕器包括加濕模塊、報(bào)警模塊、自動(dòng)斷電模塊。系統(tǒng)的總體結(jié)構(gòu)框圖,如圖2.2所示。</p><p><b> 圖2.2 結(jié)構(gòu)框圖</b&g
18、t;</p><p><b> 方案比較</b></p><p> 方案一采用的控制器是SPCE061單片機(jī),方案二采用的是AT89S51,與方案一單片機(jī)相比較,AT89S51單片機(jī)功耗低,性能高而且成本不高,并且完全能夠滿足本方案的需求。</p><p> 方案一采用的是濕敏電阻,方案二采用的是DS18B20溫度傳感器,利用干濕球法測(cè)濕
19、度。濕敏電阻的線性度及抗污染性差,在檢測(cè)環(huán)境濕度時(shí),濕敏元件要長(zhǎng)期暴露在待測(cè)環(huán)境中,很容易被污染而影響其測(cè)量精度及長(zhǎng)期穩(wěn)定性。與方案一相比干濕球測(cè)濕度的方法更加精確。</p><p> 與方案一相比,方案二加入了一個(gè)水位傳感器和聲光報(bào)警器系統(tǒng),當(dāng)水位過低時(shí)系統(tǒng)自動(dòng)發(fā)出警告,避免了因水位過低造成加濕器損毀的情況,使系統(tǒng)更加安全。</p><p> 綜上所述,根據(jù)對(duì)兩種方案的比較以及對(duì)設(shè)計(jì)
20、的智能加濕器系統(tǒng)成本低廉,精確度較高,連接簡(jiǎn)單的要求,選擇方案二來設(shè)計(jì)本智能加濕器。</p><p><b> 系統(tǒng)硬件設(shè)計(jì) </b></p><p> 智能加濕器的硬件部分主要由由兩個(gè)DS18B20溫度傳感器一個(gè)水位傳感器、單片機(jī)AT89S51、1602LCD液晶顯示屏、聲光報(bào)警器、以及一個(gè)光電耦合開關(guān)等部分組成。系統(tǒng)電路圖見附錄1。</p>&l
21、t;p><b> 理論基礎(chǔ)</b></p><p><b> 單片機(jī)</b></p><p> T89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和
22、閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89S51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89S51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列如圖3.1所示。</p><p> 圖3.1 AT89S51芯片引腳圖</p><p> AT89S51共有40個(gè)引腳,大致可分為4類:電源引腳、時(shí)鐘電路引腳、I/O引腳、控制線引腳。根據(jù)開
23、發(fā)的需要和單片機(jī)的結(jié)構(gòu),我們就可以實(shí)現(xiàn)單片機(jī)的自動(dòng)工作,即實(shí)現(xiàn)自動(dòng)化。</p><p> DS18B20傳感器</p><p> 傳感器是一種按一定的精度把被測(cè)量轉(zhuǎn)換為與之有確定關(guān)系的、便于應(yīng)用的某種物理的測(cè)量器件或裝置,用于滿足系統(tǒng)信息傳輸、存儲(chǔ)、顯示、記錄及控制等要求。在本系統(tǒng)的開發(fā)過程中主要用到了DS18B20數(shù)字溫度傳感器,內(nèi)部結(jié)構(gòu)圖如圖3.2所示。 </p>&
24、lt;p> 圖3.2 DS18B20數(shù)字溫度傳感器內(nèi)部結(jié)構(gòu)</p><p> 1602LCD液晶顯示屏</p><p> 在單片機(jī)系統(tǒng)中應(yīng)用液晶顯示器作為輸出器件有以下幾個(gè)優(yōu)點(diǎn):顯示質(zhì)量高;數(shù)字式接口;體積小,重量輕;功耗低。</p><p> 1602LCD主要技術(shù)參數(shù):</p><p> 顯示容量:16×2個(gè)字符
25、。</p><p> 芯片工作電壓:4.5—5.5V。</p><p> 工作電流:2.0mA(5.0V)。</p><p> 模塊最佳工作電壓:5.0V。</p><p> 字符尺寸:2.95×4.35(W×H)mm。</p><p><b> 信號(hào)分析</b>&l
26、t;/p><p> 本系統(tǒng)分信號(hào)的主要有溫度傳感器的輸入信號(hào)和單片機(jī)輸出的控制信號(hào)構(gòu)成。首先由單片機(jī)向溫度傳感器發(fā)出讀信號(hào),隨后溫度傳感器做出響應(yīng),單片機(jī)待DS18B20完成收集到得溫度信息進(jìn)行AD處理并存儲(chǔ)為數(shù)字信號(hào)后,開始讀取溫度值,并對(duì)其信號(hào)做位處理使之達(dá)到用戶需求的精度以及計(jì)算得到相對(duì)濕度,最后通過1602LCD顯示溫濕度值。另外,系統(tǒng)在運(yùn)行過程中還有專門的控制聲光報(bào)警系統(tǒng)、光電耦合開關(guān)的控制信號(hào),這些控制
27、信號(hào)比較簡(jiǎn)單,不再一一論述。</p><p><b> 功能描述</b></p><p> 參考舒適性空調(diào)的相對(duì)濕度40%—65%的要求,在功能設(shè)計(jì)過程中以40%為最適相對(duì)濕度參考值。單片機(jī)一方面通過監(jiān)測(cè)加濕器內(nèi)部的水位,達(dá)到加濕器防干燒的功能,即只有在水位下限以上時(shí)加濕器才能通電工作。另一方面通過處理兩個(gè)溫度傳感器測(cè)得的干濕球溫度得到室內(nèi)相對(duì)濕度,并和人體最適相
28、對(duì)濕度做比較。在水位符合要求的前提下,若室內(nèi)相對(duì)濕度高于人體最適值則控制加濕器不動(dòng)作,反之則對(duì)加濕器通電開始加濕,直到室內(nèi)空氣達(dá)到最適濕度時(shí)斷電。另外,單片機(jī)通過和聲光報(bào)警器以及1602LCD顯示屏相連,還具有了溫濕度及水位的顯示功能??傊?,在現(xiàn)有的加濕器內(nèi)加入此單片機(jī)將實(shí)現(xiàn)加濕器的防干燒、聲光報(bào)警、智能開啟和關(guān)閉以及室內(nèi)溫濕度的顯示功能基本實(shí)現(xiàn)加濕器的智能化。</p><p><b> 復(fù)位電路&l
29、t;/b></p><p> 復(fù)位電路的基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號(hào)。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號(hào),以防電源開關(guān)或電源插頭分-合過程中引起的抖動(dòng)而影響復(fù)位。圖3.3所示的RC復(fù)位電路可以實(shí)現(xiàn)上述基本功能。</p><p> 圖3.3 上電及手動(dòng)復(fù)位電路圖</p><p><b>
30、液位定位及光電開關(guān)</b></p><p> 由于開發(fā)過程時(shí)間緊迫,暫時(shí)未購(gòu)買到合適的液位監(jiān)測(cè)傳感器,因此在實(shí)際開發(fā)過程中采用三個(gè)開關(guān)進(jìn)行代替,按下按鈕表示水位到達(dá)相應(yīng)的水位。另外為了直觀的看出控制輸出信號(hào)的轉(zhuǎn)臺(tái),開發(fā)過程中將光電開關(guān)改為一發(fā)光二極管并與電阻串聯(lián)接地。如圖3.4所示。</p><p> 圖3.4 水位計(jì)光電開關(guān)替代元件</p><p>
31、;<b> 1602顯示屏</b></p><p> 利用滑動(dòng)變阻器調(diào)節(jié)背光燈與顯示字符的對(duì)比度,利用三極管及單片機(jī)控制背光的的暗與滅。接線原理見圖3.5。</p><p> 圖3.5 1602接線原理圖</p><p> DS18B20溫度傳感器</p><p> 由于此款溫度傳感器輸出串行通信信號(hào),電路圖相
32、對(duì)簡(jiǎn)單,見圖3.6。</p><p> 圖3.6 DS18B20溫度傳感器接線圖</p><p><b> 軟件設(shè)計(jì)</b></p><p><b> 整體設(shè)計(jì)及說明</b></p><p> 系統(tǒng)軟件實(shí)現(xiàn)的功能:通過LCD顯示溫濕度值及水位;比較監(jiān)測(cè)到的水位,發(fā)現(xiàn)低水位時(shí)自動(dòng)掉電并聲光報(bào)警
33、;根據(jù)相對(duì)濕度值控制加濕器的開關(guān)。</p><p> 系統(tǒng)軟件流程圖設(shè)計(jì)如圖4.1所示。</p><p> 圖4.1 主程序流程圖</p><p> 初始化開始,然后載入程序,根據(jù)顯示數(shù)據(jù)讀出干球溫度T,濕球溫度TS,根據(jù)干濕球溫度求出相對(duì)濕度D,然后讀出顯示的水位H,判斷水位H是否大于最小水位Ho:若H<=Ho,則聲光報(bào)警并關(guān)閉加濕器,然后顯示溫濕度,
34、再讀出一個(gè)干球溫度T,濕球溫度TS,計(jì)算出相對(duì)濕度D,讀出水位H循環(huán),直至H>Ho成立后,判斷相對(duì)濕度D與最小濕度Do的大小比較;若D<=Do則開啟加濕器,顯示溫濕度,循環(huán)直至相對(duì)濕度D<=Do,關(guān)閉加濕器,然后顯示溫濕度過程循環(huán)。</p><p> DS18B20流程設(shè)計(jì)</p><p> 每個(gè)DS18B20溫度傳感器的流程圖設(shè)計(jì)如圖4.2所示。</p>
35、<p> 圖4.2 DS18B20模塊程序流程圖</p><p> 傳感器DS18B20復(fù)位,跳過ROM匹配后啟動(dòng)溫度轉(zhuǎn)換,DS18B20復(fù)位然后跳過ROM匹配,再讀取溫度后進(jìn)行溫度處理,保留一位小數(shù)。</p><p> 1602字符型LCD流程設(shè)計(jì)</p><p> 1602字符型LCD流程設(shè)計(jì)如圖4.3所示。</p><
36、p> 圖4.3 1602液晶驅(qū)動(dòng)程序流程圖</p><p> 顯示器1602初始化后延時(shí)15ms,顯示模式設(shè)置,延時(shí)5ms顯示關(guān)閉,延時(shí)5ms顯示清屏,再延時(shí)5ms顯示光標(biāo)移動(dòng)設(shè)置延時(shí)5ms顯示開及光標(biāo)設(shè)置,然后顯示位置設(shè)置,延時(shí),顯示溫度各位數(shù)值。此部分主要程序過長(zhǎng),參見附錄3。</p><p><b> 總結(jié)</b></p><p&
37、gt; 通過本次單片機(jī)學(xué)習(xí)課程的畢業(yè)設(shè)計(jì),使自己在理解單片機(jī)基本電路的基礎(chǔ)上掌握了簡(jiǎn)單電路的設(shè)計(jì)方法,同時(shí)對(duì)整個(gè)課題的編程方法和技巧也有了一定的認(rèn)識(shí)和理解,并初步具備了獨(dú)立編程和系統(tǒng)調(diào)試的能力。在本次課題設(shè)計(jì)中,自己遇到了不少問題,通過請(qǐng)教老師和翻閱資料,最終將問題解決。總之,通過本次設(shè)計(jì),使自己受益匪淺。另外,在智能加濕器的開發(fā)過程中我體會(huì)到了自動(dòng)化得真正含義,對(duì)以后的學(xué)習(xí)和工作奠定了一定的基礎(chǔ),以后進(jìn)一步的學(xué)習(xí)過程中一方面要拓展智
38、能的加濕器的功能和應(yīng)用范圍,使之更加完善。另一方面還要探究新的課題,開發(fā)新的單片機(jī)應(yīng)用系統(tǒng),問何那得清如許,為由源頭活水來。走上單片機(jī)開發(fā)之路,我要將自己的知識(shí)轉(zhuǎn)化為社會(huì)可以運(yùn)用的技術(shù),為社會(huì)的進(jìn)步盡自己一份力量。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 薛殿華.空氣調(diào)節(jié).北京:清華大學(xué)出版社,2001:112-114.</p&
39、gt;<p> [2] 楊振江等.新穎實(shí)用電子設(shè)計(jì)與制作.西安電子科大出版社,2000:137-139.</p><p> [3] 謝自美.電子線路設(shè)計(jì)、實(shí)驗(yàn)、測(cè)試(第二版).華中理工大學(xué)出版社,2000:73-77.</p><p> [4] 譚博學(xué),苗匯靜.集成電路原理及應(yīng)用.電子工業(yè)出版社,2011:163-165.</p><p> [
40、5] 王港元.電工電子實(shí)踐指導(dǎo)(第二版).江西科學(xué)技術(shù)出版社,2005:59.</p><p> [6] 胡玉峰.自動(dòng)與人工觀測(cè)數(shù)據(jù)的差異[J].應(yīng)用氣象學(xué)報(bào),2004:15.</p><p> [7] 趙玉剛.邱東.傳感器基礎(chǔ). 北京:中國(guó)林業(yè)出版社;北京大學(xué)出版社,2006:187-191.</p><p> [8] 張俊謨.單片機(jī)中級(jí)教程:原理與應(yīng)用.
41、北京:北京航空航天大學(xué)出版社,2006:96-99.</p><p> [9] 黃曉因.張連根.干濕球法測(cè)量相對(duì)濕度算法研究及單片機(jī)實(shí)現(xiàn)[J].云南族大學(xué)學(xué)報(bào):自然科學(xué)版.2003.I 2 ( 3 ) : 155 -157.</p><p> [10] PRODUCTS DATA BOOK. Mitsubishi Electric Corp. 2007:57-58.</p>
42、<p> Air Intelligent Humidifier Based On Mcu-51</p><p> Abstract Humidifier to get a wide range of applications in daily life,but the existing humidifier manual controls to open and close and do no
43、t have the monitoring of the indoor air temperature and humidity,in the process of using excessive humidification and dry,not only makes a negative affect on indoor air comfort and also has a security risk.So the develop
44、ment of design a cheap, low power consumption,with automatic control function of the diffuser is necessary.This design uses intelligent gr</p><p> Key Words microcontroller; intelligent; Humidifier; Rel
45、ative humidity; Sensor</p><p><b> 附錄1 系統(tǒng)電路圖</b></p><p><b> 系統(tǒng)電路圖</b></p><p><b> 附錄2 程序</b></p><p> 讀取數(shù)據(jù)及傳送的程序如下:</p><
46、;p> READ_TEMP: ;讀1820內(nèi)部溫度子程序.</p><p> CALL RESET</p><p> JB 70h,EXT1</p><p> CALL SKIP_ROM</p><p> CALL TEMP_CONV ;溫度AD變換</p><p> CALL DELAY_600M
47、S</p><p> CALL RESET</p><p> CALL SKIP_ROM</p><p> CALL TEMP_GET ;發(fā)取溫度的命令</p><p> CALL READ ;接收...</p><p><b> EXT1:</b></p><p&g
48、t;<b> RET</b></p><p> SKIP_ROM:;跳過ROM檢測(cè)</p><p> MOV A,#0CCH ;#0CCH為跳過rom命令</p><p> CALL WRITE</p><p><b> RET</b></p><p> RECA
49、LL_EPROM:;重調(diào)Eprom</p><p> MOV A,#0B8H</p><p> CALL WRITE</p><p><b> RET</b></p><p> TEMP_CONV:</p><p> MOV A,#44H ;AD變換</p><p&g
50、t; CALL WRITE</p><p><b> RET</b></p><p><b> TEMP_GET:</b></p><p> MOV A ,#0BEH;讀18b20命令</p><p> CALL WRITE</p><p><b> R
51、ET</b></p><p> ;********* 18B20基本時(shí)序子程序</p><p> RESET: ;初始化子程序</p><p><b> SETB P1.2</b></p><p><b> NOP</b></p><p> CLR P
52、1.2 ;拉低</p><p> MOV R3,#150 ; *4=600US</p><p> CALL DELAY_BY_R3</p><p> SETB P1.2;拉高</p><p> MOV R3,#15 ; 60US</p><p> CALL DELAY_BY_R3</p>
53、<p> MOV R3,#60 ;4個(gè)周期*60=240US內(nèi)檢測(cè)</p><p> A1: JNB P1.2,A2 ;檢測(cè)到低平信號(hào)</p><p> DJNZ R3,A1 ;如果沒有應(yīng)答的低電平信號(hào),返回A1重新檢測(cè),超時(shí)后下一行,</p><p> SETB 70h ;DS1820不存在.</p><p><b&
54、gt; JMP A3</b></p><p> A2: CLR 70h</p><p> MOV R3,120;240US;等恢復(fù)時(shí)間2*120=240us</p><p> DJNZ R3, $</p><p><b> A3:</b></p><p><b>
55、 RET</b></p><p><b> WRITE:</b></p><p> MOV R2,#8;一個(gè)字節(jié)為8位</p><p> CLR C ;C位清0 C位用來放A的一位數(shù)據(jù),用移位的方法放入C</p><p> B1: SETB P1.2</p><p><b
56、> NOP</b></p><p><b> CLR P1.2</b></p><p> MOV R3,#4 ;16US</p><p> CALL DELAY_BY_R3</p><p> RRC A;把A中的數(shù)送入C</p><p> MOV P1.2,C ;
57、把C送入總線</p><p> MOV R3,#12;48US(一位數(shù)據(jù)的發(fā)送:60us<tx<120us)</p><p> CALL DELAY_BY_R3</p><p> SETB P1.2 ;拉高1us結(jié)束一位</p><p><b> NOP</b></p><p&g
58、t; DJNZ R2,B1</p><p><b> RET</b></p><p><b> READ:</b></p><p> MOV R1,#4 ;接收4個(gè)字節(jié)數(shù)據(jù)依次是1.低位 2.高位. 3.高限 4.低限</p><p> MOV R0,#28H;低位放28H;高位放29h
59、(1. 28H,2. 29H 3. 2AH 4. 2BH )</p><p> C0: MOV R2,#8;一字節(jié)數(shù)據(jù)8位</p><p> C1: CLR C ;清除C</p><p><b> SETB P1.2</b></p><p><b> NOP</b></p>&
60、lt;p><b> NOP</b></p><p> CLR P1.2 ;拉低.</p><p> NOP ;1us秒后拉高?</p><p><b> SETB P1.2</b></p><p> MOV R3,#4 ;16us后采數(shù)據(jù)</p><p>
61、 CALL DELAY_BY_R3</p><p> MOV C,P1.2 ;讀出18b20的數(shù)據(jù)</p><p> RRC A ;移入A</p><p> MOV R3,#12;48US恢復(fù)時(shí)間</p><p> CALL DELAY_BY_R3</p><p> DJNZ R2,C1 ;一個(gè)字節(jié)收完&l
62、t;/p><p> MOV @R0,A ;移入存儲(chǔ)位</p><p> INC R0 ;下一位;29h</p><p> DJNZ R1,C0 ;全部取完嗎?沒有重復(fù)</p><p><b> RET</b></p><p> LCD控制及顯示子程序</p><p&g
63、t; DISPLAY: MOV A,R1</p><p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> CALL WRITE_DATA_TO_LCD</p><p><b> INC R1</b></p><p&g
64、t; DJNZ R0,DISPLAY</p><p><b> RET</b></p><p> WRITE_NOT_CHECK_BUSY:</p><p><b> SETB E</b></p><p><b> NOP</b></p><p&g
65、t;<b> NOP</b></p><p> CLR RS ;寫入控制命令的子程序</p><p><b> CLR RW</b></p><p><b> CLR E</b></p><p><b> RET</b></p>&
66、lt;p><b> ENABLE:</b></p><p><b> SETB E</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p> CLR RS ;寫入控制命令的子程序</
67、p><p><b> CLR RW</b></p><p><b> CLR E</b></p><p> ACALL TEST_BUSY</p><p><b> SETB E</b></p><p><b> RET</b>
68、;</p><p> TEST_BUSY:</p><p><b> SETB E</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p> MOV P0,#0FFH ;判斷液晶顯示器是否忙的
69、子程序</p><p><b> CLR RS</b></p><p><b> SETB RW</b></p><p><b> CLR E</b></p><p><b> NOP</b></p><p><b&g
70、t; SETB E</b></p><p> JB P0.7,TEST_BUSY ;如果P0.7為高電平表示忙就循環(huán)等待</p><p><b> RET</b></p><p> WRITE_DATA_TO_LCD:</p><p><b> SETB E</b></p
71、><p><b> NOP</b></p><p><b> NOP</b></p><p> SETB RS ;RS=1</p><p> CLR RW ;RW=0 ;準(zhǔn)備寫入數(shù)據(jù)</p><p> CLR E ;E=0 ;執(zhí)行顯示命令</p><
72、p> ACALL TEST_BUSY ;判斷液晶模塊是否忙?</p><p> SETB E ;E=1 ;顯示完成,程序停車</p><p><b> RET</b></p><p> ;**********數(shù)據(jù)轉(zhuǎn)換*******</p><p> DATA_CONV: ;數(shù)據(jù)轉(zhuǎn)換</p>
73、<p> MOV A,28H ;低字節(jié)</p><p> ANL A,#0FH;去除高位</p><p> MOV B,#6;乘6得到實(shí)際數(shù)值的100倍.</p><p><b> MUL AB</b></p><p><b> MOV B,#10</b></p>
74、<p><b> DIV AB</b></p><p> MOV 33H,A;小數(shù)位高</p><p> MOV 32H,B; 小數(shù)位低</p><p><b> MOV A,28H</b></p><p> MOV C,29H.0 ;29h高位的低4字節(jié)</p>
75、<p><b> RRC A</b></p><p> MOV C,29H.1</p><p><b> RRC A</b></p><p> MOV C,29H.2</p><p><b> RRC A</b></p><p>
76、 MOV C,29H.3</p><p><b> RRC A</b></p><p> MOV 28H,A ;重新合成.結(jié)果存在28H.</p><p><b> MOV A,28H</b></p><p><b> MOV B,#10</b></p>
77、<p><b> DIV AB</b></p><p> MOV 26H,A ;整數(shù)位高</p><p> MOV 25H,B ;整數(shù)位低</p><p> ;-------------------------</p><p><b> MOV A,2AH</b></p&g
78、t;<p><b> MOV B,#10</b></p><p><b> DIV AB</b></p><p> MOV 40H,B ;高溫限值個(gè)位</p><p><b> MOV B,#10</b></p><p><b> DIV AB
79、</b></p><p> MOV 41H,B;十位</p><p> MOV 42H,A;百位</p><p> ;----------------------------</p><p><b> MOV A,2BH</b></p><p><b> MOV B
80、,#10</b></p><p><b> DIV AB</b></p><p> MOV 43H,B ;低溫限值位個(gè)位</p><p><b> MOV B,#10</b></p><p><b> DIV AB</b></p><p&
81、gt; MOV 44H,B ;十位</p><p> MOV 45H,A ;百位</p><p><b> CLR C</b></p><p> MOV A,28H;現(xiàn)溫度值與高溫限值比較</p><p> SUBB A,2AH</p><p> JC BIG ;如果高.則關(guān)機(jī)器<
82、;/p><p><b> CLR C</b></p><p> MOV A,2BH;現(xiàn)溫度與低溫限值比較</p><p> SUBB A,28H</p><p> JC X_BIG ;低溫限值比現(xiàn)溫高,則開機(jī)器</p><p> AJMP CONVERT_END</p><
83、;p><b> BIG:</b></p><p> AJMP CONVERT_END</p><p><b> X_BIG:</b></p><p> CONVERT_END:</p><p><b> RET</b></p><p>
84、 ;*********顯示溫度**************</p><p> DISPLAY_18B20_TEMP: ;LCD_顯示子程序</p><p> MOV P0,#10000000B; 顯示位置</p><p> ACALL ENABLE ;執(zhí)行指令</p><p> MOV DPTR,#TAB3;顯示'WENDU:
85、'</p><p> MOV R1,#0 ;碼表初值</p><p> MOV R0,#7;字?jǐn)?shù)</p><p> CALL DISPLAY</p><p> ;---------------顯示溫度值高位</p><p> MOV DPTR,#LED_DATA</p><p>
86、; MOV R1,26H ;碼表初值</p><p> MOV R0,#1;字?jǐn)?shù)</p><p> CALL DISPLAY</p><p> ;---------------顯示溫度值低位</p><p> MOV DPTR,#LED_DATA</p><p> MOV R1,25H ;碼表初值</
87、p><p> MOV R0,#1;字?jǐn)?shù)</p><p> CALL DISPLAY</p><p> ;---------------顯示小數(shù)點(diǎn)</p><p> MOV DPTR,#DOT</p><p> MOV R1,#0 ;碼表初值</p><p> MOV R0,#1;字?jǐn)?shù)&l
88、t;/p><p> CALL DISPLAY</p><p> ;---------------顯示溫度值小數(shù)高位</p><p> MOV DPTR,#LED_DATA</p><p> MOV R1,33H ;碼表初值</p><p> MOV R0,#1;字?jǐn)?shù)</p><p> C
89、ALL DISPLAY</p><p> ;---------------顯示溫度值小數(shù)低位</p><p> MOV DPTR,#LED_DATA</p><p> MOV R1,32H ;碼表初值</p><p> MOV R0,#1;字?jǐn)?shù)</p><p> CALL DISPLAY</p>
90、<p> ;---------------顯示單位度</p><p> MOV DPTR,#SIGN</p><p> MOV R1,#0 ;碼表初值</p><p> MOV R0,#2;字?jǐn)?shù)</p><p> CALL DISPLAY</p><p><b> RET</b&
91、gt;</p><p> ;*********顯示限值.*****************</p><p> DISPLAY_18B20_TEMP_XZ:</p><p> MOV P0,#11000000B; 顯示位置</p><p> ACALL ENABLE ;執(zhí)行指令</p><p> MOV DPT
92、R,#TAB_L ; 顯示'L:'</p><p> MOV R1,#0 ;碼表初值</p><p> MOV R0,#2;字?jǐn)?shù)</p><p> CALL DISPLAY</p><p> ;---------------顯示溫度限值高位</p><p> MOV DPTR,#LED_DAT
93、A</p><p> MOV R1,45H ;碼表初值</p><p> MOV R0,#1;字?jǐn)?shù)</p><p> CALL DISPLAY</p><p> ;---------------顯示溫度限值低位</p><p> MOV DPTR,#LED_DATA</p><p>
94、 MOV R1,44H ;碼表初值</p><p> MOV R0,#1;字?jǐn)?shù)</p><p> CALL DISPLAY</p><p> ;-----------------</p><p> MOV DPTR,#LED_DATA</p><p> MOV R1,43H ;碼表初值</p>
95、<p> MOV R0,#1;字?jǐn)?shù)</p><p> CALL DISPLAY</p><p> MOV P0,#11000111B; 顯示位置</p><p> ACALL ENABLE</p><p> ;-- ----------------------------------------</p>&l
96、t;p> MOV DPTR,#TAB_H ; 顯示'H:'</p><p> MOV R1,#0 ;碼表初值</p><p> MOV R0,#2;字?jǐn)?shù)</p><p> CALL DISPLAY</p><p> ;---------------顯示高溫度限值高位</p><p>
97、MOV DPTR,#LED_DATA</p><p> MOV R1,42H ;碼表初值</p><p> MOV R0,#1;字?jǐn)?shù)</p><p> CALL DISPLAY</p><p> ;---------------顯示高溫度限值低位</p><p> MOV DPTR,#LED_DATA<
98、/p><p> MOV R1,41H ;碼表初值</p><p> MOV R0,#1;字?jǐn)?shù)</p><p> CALL DISPLAY</p><p> ;-------------------</p><p> MOV DPTR,#LED_DATA</p><p> MOV R1,4
99、0H ;碼表初值</p><p> MOV R0,#1;字?jǐn)?shù)</p><p> CALL DISPLAY</p><p><b> RET</b></p><p> ;******** *提示語(yǔ)****************</p><p> DISPLAY_18B20_HELLO:&
100、lt;/p><p> MOV P0,#10000000B; 顯示位置</p><p> ACALL ENABLE ;執(zhí)行指令</p><p> MOV DPTR,#TAB_HELLO</p><p> MOV R1,#0 ;碼表初值</p><p> MOV R0,#16;字?jǐn)?shù)</p><p&
101、gt; CALL DISPLAy</p><p><b> RET</b></p><p><b> ;/*</b></p><p> DISPLAY_18B20_TESTING:</p><p> MOV P1,#10000000B; 顯示位置</p><p>
102、 ACALL ENABLE ;執(zhí)行指令</p><p> MOV DPTR,#TAB_TESTING</p><p> MOV R1,#0 ;碼表初值</p><p> MOV R0,#16;字?jǐn)?shù)</p><p> CALL DISPLAy</p><p><b> RET</b><
103、;/p><p><b> ;*/</b></p><p> DISPLAY_18B20_ERROR:</p><p> MOV P0,#00000001B ;清屏并光標(biāo)復(fù)位</p><p> ACALL ENABLE</p><p> MOV DPTR,#TAB1</p>&l
104、t;p> MOV R1,#0 ;碼表初值</p><p> MOV R0,#16;字?jǐn)?shù)</p><p> CALL DISPLAy</p><p><b> RET</b></p><p> DISPLAY_WATING:</p><p> MOV P0,#00000001B ;
105、清屏并光標(biāo)復(fù)位</p><p> ACALL ENABLE;調(diào)用寫入命令子程序</p><p> MOV P0,#10000000B; 顯示位置</p><p> ACALL ENABLE ;執(zhí)行指令</p><p> MOV DPTR,#TAB2</p><p> MOV R1,#0 ;碼表初值</p
106、><p> MOV R0,#13;字?jǐn)?shù)</p><p> CALL DISPLAy</p><p><b> RET</b></p><p> DISPLAY_SAVE:</p><p> MOV P0,#00000001B ;清屏并光標(biāo)復(fù)位</p><p> AC
107、ALL ENABLE;調(diào)用寫入命令子程序</p><p> MOV P0,#10000000B; 顯示位置</p><p> ACALL ENABLE ;執(zhí)行指令</p><p> MOV DPTR,#TAB_SAVE</p><p> MOV R1,#0 ;碼表初值</p><p> MOV R0,#10;
108、字?jǐn)?shù)</p><p> CALL DISPLAy</p><p><b> RET</b></p><p> DISPLAY_SETING_TEMP_H:</p><p> MOV P0,#00000001B ;清屏并光標(biāo)復(fù)位</p><p> ACALL ENABLE;調(diào)用寫入命令子程
109、序</p><p> MOV P0,#10000000B; 顯示位置</p><p> ACALL ENABLE ;執(zhí)行指令</p><p> MOV DPTR,#TAB_SETING_TEMP_H</p><p> MOV R1,#0 ;碼表初值</p><p> MOV R0,#13;字?jǐn)?shù)</p&g
110、t;<p> CALL DISPLAy</p><p><b> RET</b></p><p> DISPLAY_SETING_TEMP_L:</p><p> MOV P0,#00000001B ;清屏并光標(biāo)復(fù)位</p><p> ACALL ENABLE;調(diào)用寫入命令子程序</p>
111、;<p> MOV P0,#10000000B; 顯示位置</p><p> ACALL ENABLE ;執(zhí)行指令</p><p> MOV DPTR,#TAB_SETING_TEMP_L</p><p> MOV R1,#0 ;碼表初值</p><p> MOV R0,#13;字?jǐn)?shù)</p><p&
112、gt; CALL DISPLAy</p><p><b> RET</b></p><p> DISPLAY_ON:</p><p> MOV P0,#11001101B; 顯示位置</p><p> ACALL ENABLE ;執(zhí)行指令</p><p> MOV DPTR,#TAB_
113、ON</p><p> MOV R1,#0 ;碼表初值</p><p> MOV R0,#3;字?jǐn)?shù)</p><p> CALL DISPLAy</p><p><b> RET</b></p><p> DISPLAY_OFF:</p><p> MOV P0,
114、#11001101B; 顯示位置</p><p> ACALL ENABLE ;執(zhí)行指令</p><p> MOV DPTR,#TAB_OFF</p><p> MOV R1,#0 ;碼表初值</p><p> MOV R0,#3;字?jǐn)?shù)</p><p> CALL DISPLAy</p><
115、;p><b> RET</b></p><p><b> ;/*</b></p><p> ADJ_FLASH:</p><p> MOV P1,#1 ;在顯示數(shù)字的位置用三個(gè)空格..</p><p> ACALL ENABLE;</p><p><b&
116、gt; ;*/</b></p><p> ;***** *提示語(yǔ)****************</p><p> TM0: ;定時(shí)器程序.</p><p> DJNZ R0,N1</p><p><b> CPL 02H</b></p><p>
117、MOV R0,#14H</p><p><b> N1:</b></p><p> MOV TL0,#0B0H</p><p> MOV TH0,#3CH</p><p> RETI ;中斷返回</p><p> ;****廷時(shí)程序***********<
118、/p><p> DELAY_BY_R3:</p><p><b> NOP</b></p><p><b> NOP</b></p><p> DJNZ R3,DELAY_BY_R3</p><p><b> RET</b></p>
119、<p> DELAY_BY_R6:</p><p> D1: MOV R7,#250</p><p><b> DJNZ R7,$</b></p><p> DJNZ R6,D1</p><p><b> RET</b></p><p> DELAY_2
120、MS:</p><p><b> MOV R6,#2</b></p><p> F2: MOV R7,#75</p><p><b> x1: NOP</b></p><p><b> NOP</b></p><p> DJNZ R7,
121、x1</p><p> DJNZ R6,F2</p><p><b> RET</b></p><p> DELAY_600MS:</p><p><b> MOV R6,#0</b></p><p> G2: MOV R7,#0</p><
122、p><b> G1: NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></
123、p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p> DJNZ R7,G1</p><p> DJNZ R6,G2</p><p><
124、;b> RET</b></p><p><b> DELAY_1M:</b></p><p><b> MOV R6,#0</b></p><p><b> MOV R7,#0</b></p><p><b> E1: NOP</b
125、></p><p><b> NOP</b></p><p> DJNZ R7,E1</p><p> DJNZ R6,E1</p><p><b> RET</b></p><p> DEFINE_DATA:</p><p> DB
126、 0CH,12H,12H,0CH,00H,00H,00H,00H;度</p><p> DB 04H,0CH,12H,0DH,1EH,04H,08H,00H;今</p><p> DB 0EH,04H,1FH,04H,04H,0AH,11H,00H;天</p><p> DB 0EH,0EH,0EH,1FH,04H,0EH,17H,00H;是</p>
127、;<p> DB 10H,1FH,02H,0FH,0AH,1FH,02H,00H;年</p><p> DB 0FH,09H,0FH,09H,0FH,09H,13H,00H;月</p><p> DB 0FH,09H,09H,0FH,09H,09H,0FH,00H;日</p><p> LED_DATA: DB '0123456789&
128、#39;</p><p> TAB_HELLO:</p><p> DB 'Hello!' ;6</p><p> DB 0H,1H,2H,3H,4H,5H,6H</p><p> TAB_TESTING:</p><p> DB 'TEXTING...' ;10</p&
129、gt;<p><b> TAB1:</b></p><p> DB '18B20 NO CONNECT'</p><p><b> TAB2:</b></p><p> DB 'Waiting......'</p><p><b>
130、TAB3:</b></p><p> DB 'WENDU: '</p><p><b> DOT:</b></p><p><b> DB "."</b></p><p><b> SIGN:</b></p>
131、<p> DB 00H,'C'</p><p><b> TAB_L:</b></p><p><b> DB 'L:'</b></p><p><b> TAB_H:</b></p><p><b> DB
132、39;H:'</b></p><p> TAB_SETING_TEMP_H:</p><p> DB 'SETING_TMP:H '</p><p> TAB_SETING_TEMP_L:</p><p> DB 'SETING_TMP:L '</p><p>
133、;<b> TAB_SAVE:</b></p><p> DB 'SAVEING...'</p><p><b> TAB_ON:</b></p><p><b> DB 'ON '</b></p><p><b> TAB_
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子系統(tǒng)課程設(shè)計(jì)---基于stc51單片機(jī)的計(jì)算器
- 單片機(jī)課程設(shè)計(jì)-- 基于51單片機(jī)的電子時(shí)鐘系統(tǒng)
- 單片機(jī)電子系統(tǒng)課程設(shè)計(jì)—簡(jiǎn)易電子琴
- 單片機(jī)課程設(shè)計(jì)---基于51單片機(jī)的電子鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)的簡(jiǎn)易電子琴
- 單片機(jī)課程設(shè)計(jì)---基于51單片機(jī)的電子顯示屏設(shè)計(jì)
- 基于單片機(jī)的智能加濕器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--- 基于51單片機(jī)的簡(jiǎn)約電子鐘
- 基于51單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)—基于51單片機(jī)的溫度監(jiān)控系統(tǒng)設(shè)計(jì)
- 智能加濕器單片機(jī)課程設(shè)計(jì)說明書
- 基于51單片機(jī)的課程設(shè)計(jì)
- 51單片機(jī)課程設(shè)計(jì)——智能電風(fēng)扇
- 基于51單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)的紅外線設(shè)計(jì)
- 電子系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)---基于單片機(jī)51的電子時(shí)鐘設(shè)計(jì)
- 單片機(jī)電子系統(tǒng)課程設(shè)計(jì)—紅外遙控密碼鎖
- 基于單片機(jī)智能空氣加濕器系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——基于51單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論