![電子技術(shù)應(yīng)用模塊課程設(shè)計水溫控制器_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/408b93fe-f3c0-4098-ad04-1a07f8e54b53/408b93fe-f3c0-4098-ad04-1a07f8e54b531.gif)
![電子技術(shù)應(yīng)用模塊課程設(shè)計水溫控制器_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/408b93fe-f3c0-4098-ad04-1a07f8e54b53/408b93fe-f3c0-4098-ad04-1a07f8e54b532.gif)
![電子技術(shù)應(yīng)用模塊課程設(shè)計水溫控制器_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/408b93fe-f3c0-4098-ad04-1a07f8e54b53/408b93fe-f3c0-4098-ad04-1a07f8e54b533.gif)
![電子技術(shù)應(yīng)用模塊課程設(shè)計水溫控制器_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/408b93fe-f3c0-4098-ad04-1a07f8e54b53/408b93fe-f3c0-4098-ad04-1a07f8e54b534.gif)
![電子技術(shù)應(yīng)用模塊課程設(shè)計水溫控制器_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/29/408b93fe-f3c0-4098-ad04-1a07f8e54b53/408b93fe-f3c0-4098-ad04-1a07f8e54b535.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、上饒職業(yè)技術(shù)學(xué)院電子工程系課程設(shè)計課程名稱:電子技術(shù)應(yīng)用模塊 題目名稱: 水溫控制器 年 級:06級 學(xué)生專業(yè):應(yīng)用電子技術(shù)學(xué)生學(xué)號:zd06010040 54 指導(dǎo)教師: 學(xué)生姓名: 技術(shù)職稱:高級工程師 2008年5月30日課程設(shè)計任務(wù)書1 課程名稱 電子技術(shù)應(yīng)用模塊2 課程性質(zhì) 必選專業(yè)課3 適用年級 06級4 適用專業(yè) 應(yīng)用電子技術(shù)5 設(shè)計題目 水溫控制器6 實驗要求 選開7 選題要求 最多組數(shù)2組 每組最多人數(shù)2人8 指導(dǎo)老師 吳國輝 職稱 高級工程師9 設(shè)計目的9.1 進一步掌握模擬電子技術(shù),數(shù)字電子技術(shù)等課程的知識在本課程設(shè)計中的應(yīng)用9.2 熟悉電路的設(shè)計過程及設(shè)計方法9.3 掌
2、握課程設(shè)計的基本過程和課程設(shè)計報告的撰寫方法10 設(shè)計要求10.1 設(shè)計一個水溫控制器10.2 溫度設(shè)定范圍為40到90。最小區(qū)分度為110.3 環(huán)境溫度降低時,溫度控制的靜態(tài)誤差不超過111 課程設(shè)計的進度安排11.1 2008年5月9日到17日,完成初稿11.2 2008年5月18日到30日,上交課程設(shè)計報告及實驗樣品12 參考書目12.1 黃永定 主編 電子線路實驗與課程設(shè)計 北京 機械工業(yè)出版社 2005.812.2 謝自美 電子線路設(shè)計、實驗、測試 武漢 華中科技大學(xué)出版社 12.3 高吉祥 全國大學(xué)生電子設(shè)計競賽培訓(xùn)系列教程 北京 電子工業(yè)出版社 2000年 13 任務(wù)書下達時間
3、2008年4月28日課程設(shè)計評分標(biāo)準(zhǔn)(選開實驗)姓名: 年級:06 級 專業(yè):應(yīng)用電子技術(shù) 班級:06電子(1)班 總分:考核項目平 時 成 績設(shè) 計 報 告總成績考核內(nèi)容態(tài)度、紀(jì)律(20%)設(shè)計報告書寫和水平(80%)考核環(huán)節(jié)團結(jié)協(xié)作有鉆研精神愛護公物文明衛(wèi)生遵守紀(jì)律和制度摘要符合要求、語句通順、內(nèi)容充實、圖表和曲線清晰符合規(guī)范、文字規(guī)范。方案選擇、論證、設(shè)計、計算正確。分值66880100評分評分教師: 評分時間: 年月 日課程設(shè)計評分標(biāo)準(zhǔn)(選開實驗)姓名: 年級:06 級 專業(yè):應(yīng)用電子技術(shù) 班級:06電子(1)班 總分:考核項目平 時 成 績設(shè) 計 報 告總成績考核內(nèi)容態(tài)度、紀(jì)律(20
4、%)設(shè)計報告書寫和水平(80%)考核環(huán)節(jié)團結(jié)協(xié)作有鉆研精神愛護公物文明衛(wèi)生遵守紀(jì)律和制度摘要符合要求、語句通順、內(nèi)容充實、圖表和曲線清晰符合規(guī)范、文字規(guī)范。方案選擇、論證、設(shè)計、計算正確。分值66880100評分評分教師: 評分時間: 年月 日課程設(shè)計報告年級 06級 專業(yè) 應(yīng)用電子技術(shù) 班級1班 姓名 溫美軍 王樂指導(dǎo)老師 吳國輝 職稱 高級工程師課程名稱 電子技術(shù)應(yīng)用模塊課程性質(zhì) 必選專業(yè)課設(shè)計項目 水溫控制器系統(tǒng) 實驗要求 選開1 設(shè)計目的1.1 進一步掌握模擬電子技術(shù)、數(shù)字電子技術(shù)等課程的知識在本課程設(shè)計中的應(yīng)用1.2 熟悉電路的設(shè)計過程及設(shè)計方法1.3 掌握課程設(shè)計的基本過程和課程設(shè)
5、計報告的撰寫方法2 設(shè)計要求2.1 設(shè)計一個水溫控制器2.2 溫度設(shè)定范圍為40到90。最小區(qū)分度為12.3 環(huán)境溫度降低時,溫度控制的靜態(tài)誤差不超過13 課程設(shè)計的進度安排3.1 2008年五月9號到17號,完成初稿3.2 2008五月18號到30號,上交課程設(shè)計報告及實驗樣品水溫控制系統(tǒng)摘要 本系統(tǒng)以at89c51,at89c2051單片機為核心,主要包括傳感器溫度采集,a/d模/數(shù)轉(zhuǎn)換,按扭操作,單片機控制,數(shù)碼管數(shù)字顯示等部分。本系統(tǒng)采用pid算法實現(xiàn)溫度控制功能,通過串行通信完成兩片單片機信息的交互而實現(xiàn)溫度設(shè)定、控制和顯示。本設(shè)計還可以通過串口與上位機(電腦)連接,實現(xiàn)電腦控制。系
6、統(tǒng)設(shè)計有體積小、交互性強等優(yōu)點。為了實現(xiàn)高精度的水溫控制,本單片機系統(tǒng)采用pid算法控制和pwm脈寬調(diào)制相結(jié)合的技術(shù),通過控制雙向可控硅改變電爐和電源的接通、斷開,從而改變水溫加熱時間的方法來實現(xiàn)對水溫的控制。本系統(tǒng)由鍵盤顯示和溫度控制兩個模塊組成,通過模塊間的通信完成溫度設(shè)定、實溫顯示、水溫升降等功能。具有電路結(jié)構(gòu)簡單、程序簡短、系統(tǒng)可靠性高、操作簡便等特點。關(guān)鍵詞 度傳感器, 溫度校準(zhǔn),溫度控制 1 引言 隨著新技術(shù)的不斷開發(fā)與應(yīng)用,近年來單片機發(fā)展十分迅速,一個以微機應(yīng)用為主的新技術(shù)革命浪潮正在蓬勃興起,單片機的應(yīng)用已經(jīng)滲透到電力、冶金、化工、建材、機械、食品、石油等各個行業(yè)。傳統(tǒng)的溫度
7、采集方法不僅費時費力,而且精度差,單片機的出現(xiàn)使得溫度的采集和數(shù)據(jù)處理問題能夠得到很好的解決。本系統(tǒng)采用了ds18b20單總線可編程溫度傳感器,來實現(xiàn)對溫度的采集和轉(zhuǎn)換,大大簡化了電路的復(fù)雜度,以及算法的要求。在一些溫控系統(tǒng)電路中,廣泛采用的是通過熱電偶、熱電阻或pn結(jié)測溫電路經(jīng)過相應(yīng)的信號調(diào)理電路,轉(zhuǎn)換成ad轉(zhuǎn)換器能接收的模擬量,再經(jīng)過采樣保持電路進行ad轉(zhuǎn)換,最終送入單片機及其相應(yīng)的外圍電路,完成監(jiān)控。但是由于傳統(tǒng)的信號調(diào)理電路實現(xiàn)復(fù)雜、易受干擾、不易控制且精度不高。本文介紹單片機結(jié)合ds18b20水溫控制系統(tǒng)設(shè)計,因此,本系統(tǒng)用一種新型的可編程溫度傳感器(ds18b20),不需復(fù)雜的信號
8、調(diào)理電路和ad轉(zhuǎn)換電路能直接與單片機完成數(shù)據(jù)采集和處理,實現(xiàn)方便、精度高,可根據(jù)不同需要用于各種場合.2 ds18b20溫度傳感器實驗2.1 工作原理ds18b20是dallas公司生產(chǎn)的一線式數(shù)字溫度傳感器。它將地址線、數(shù)據(jù)線和控制線合為一根雙向串行傳輸數(shù)據(jù)的信號線,允許在這根信號線上掛接多個ds18b20;因此,單片機只需通過一根i/o線就可以多個ds18b20通信。每個芯片內(nèi)外還有一個64位的rom,其中存有各個器件自身的序列號,作為器件獨有的id號碼。ds18b20簡化了測量器件與計算機的接口電路,使得電路簡單,使用更加方便。ds18b20的特性: 測溫范圍:-55+125 轉(zhuǎn)換精度:
9、912位二進制數(shù)(包括一位符號),可編程確定轉(zhuǎn)換精度的位數(shù)。 測溫分辨率:9位精度為:0.5,12位精度為0.0625。 轉(zhuǎn)換時間:9位精度為93.75ms,10位精度為187.5ms,12位精度為750ms。 具有非易失性上、下限報警設(shè)定的功能。 ds18b20的硬件電路圖如圖2-1。ds18b20的溫度值是以補碼的形式表示的,在處理數(shù)據(jù)的時候要特別注意。下面列出了用12位精度測出的數(shù)字量,用十六位補碼的形式表示。18b20引腳示表2-1 溫度值與ds18b20輸出的二進制值對照表溫度值/ 數(shù)字輸出(二進制)數(shù)字輸出(十六進制)+850000 0101 0101 0000圖2-1 ds意圖0
10、55oh+25.06260000 0001 1001 00010191h+10.1250000 0000 1010 001000a2h+0.50000 0000 0000 10000008h00000 0000 0000 00000000h+0.51111 1111 1111 1000fff8h-10.1251111 1111 0101 1110ff5eh-25.06261111 1110 0110 1111fe6fh-551111 1100 1001 0000fc90hds18b20有嚴(yán)格的讀寫時序,讀寫數(shù)據(jù)都應(yīng)按照此時序進行,否則讀出的溫度數(shù)值將產(chǎn)生錯誤。使用ds18b20時,主機應(yīng)先向d
11、s18b20送出復(fù)位信號,主機將數(shù)據(jù)線拉低并保持480960µs;然后再釋放數(shù)據(jù)線,由上拉電阻拉高1560µs;然后再由ds18b20發(fā)出低電平60240µs,就完成了復(fù)位操作。在主機對ds18b20寫數(shù)據(jù)時,應(yīng)先將數(shù)據(jù)線拉低1µs以上,再寫入數(shù)據(jù)(寫1為高,寫0為低)。待主機寫入的數(shù)據(jù)變化1560µs后,ds18b20將對數(shù)據(jù)線采樣。要求主機寫入數(shù)據(jù)到ds18b20的保持時間為60120µs。2次寫數(shù)據(jù)操作的間隙應(yīng)大于1µs。讀數(shù)據(jù)之前,主機應(yīng)先將數(shù)據(jù)線拉低,再釋放。ds18b20在數(shù)據(jù)線從高電平跳低后15µs內(nèi)
12、將數(shù)據(jù)送到數(shù)據(jù)線上。主機在15µs后讀取數(shù)據(jù)線。如要了解有關(guān)ds18b20更多的知識,請查閱相關(guān)資料,此處不再敘述。2.2、電路原理圖圖2-2 ds18b20溫度傳感器實驗23、元器件清單類別型號數(shù)量單位說明集成電路at89c51 1片ds18b201片74ls2451片雙向驅(qū)動器數(shù)碼管5位5位3 溫度校準(zhǔn)實驗3.1、工作原理對于精度要求不高的測量,ds18b20完全能夠滿足要求。但是對于精度要求較高的場合,由于ds18b20內(nèi)部采用了模數(shù)轉(zhuǎn)換器,并且其本身具有分散性,則經(jīng)常通過校準(zhǔn)程序來彌補偏差,運用校準(zhǔn)程序的前提時要有比ds18b20更為精確的測溫儀器,這里為了說明問題,我們使用
13、點溫計代替。例如:實際溫度(ds18b20)理想溫度(點溫計)偏差值55.2+0.21010.6+0.62020.9+0.94039.2-0.86061.3+1.38081.9+1.99092.2+2.2圖3-1 實際溫度偏差溫度曲線通過曲線,可以看出溫度的偏差基本呈上升趨勢,初步分三個階段進行補償,019.99,補償值為+0.5;2069.99,補償值為+1.1;7099.99,補償值為+2.0。如要整個溫度范圍內(nèi)更為精確的顯示,可以將溫度的范圍劃分為更多的段,進行更加細(xì)致的補償。程序方面只需要在溫讀轉(zhuǎn)換子程序后插入一溫度補償子程序即可,然后再分別測量以上溫度值,與理想溫度值比較,寫出相對誤
14、差。3.2、參考程序;. ;表示省略 ;.jiao_z equ 7eh ;校準(zhǔn)數(shù)據(jù)的整數(shù)部分jiao_x equ 7dh ;校準(zhǔn)數(shù)據(jù)的小數(shù)部分j1_z equ 00h ;第1段校準(zhǔn)數(shù)據(jù)的整數(shù)部分j1_x equ 80h ;第1段校準(zhǔn)數(shù)據(jù)的小數(shù)部分j2_z equ 01h ;第2段校準(zhǔn)數(shù)據(jù)的整數(shù)部分j2_x equ 02h ;第2段校準(zhǔn)數(shù)據(jù)的小數(shù)部分j3_z equ 02h ;第3段校準(zhǔn)數(shù)據(jù)的整數(shù)部分j3_x equ 00h ;第3段校準(zhǔn)數(shù)據(jù)的小數(shù)部分 ;. ;表示省略 ;. main_loop: lcall get_temper ;讀取溫度值 lcall data_change ;調(diào)用數(shù)據(jù)轉(zhuǎn)換
15、子程序 lcall jiaozheng ;注意將校準(zhǔn)子程序插入到此處 lcall data_chuli ;調(diào)用數(shù)據(jù)處理子程序 lcall display sjmp main_loop ;. ;表示省略jiaozheng: ;校準(zhǔn)子程序 mov a , 28h cjne a , #20 , jz1jz1: jc jz4 cjne a , #70 , jz2jz2: jc jz3 mov jiao_z , #j3_z ;7099.99,補償值為+2.0 mov jiao_x , #j3_x ajmp jz5jz3: mov jiao_z , #j2_z ; 2069.99,補償值為+1.1 mov
16、 jiao_x , #j2_x ajmp jz5jz4: mov jiao_z , #j1_z ; 019.99,補償值為+0.5 mov jiao_x , #j1_xjz5: mov a , 27h add a , #80h mov 27h , a mov a , 28h addc a , #01h mov 28h , a ret ;. ;表示省略 ;.說明:加省略號的地方表示還有程序,與ds18b20傳感器實驗的程序有聯(lián)系 4 溫度控制過程實驗4.1、工作原理用800w熱得快代替加熱裝置,對一杯水進行加熱;4.1.1、通過改變滑動變阻器,來調(diào)節(jié)熱得快的功率;4.1.2、繪制出水溫在不同功率
17、加熱情況下的溫度隨時間的上升曲線;4.1.3、繪制出水溫在自然環(huán)境下溫度隨時間的下降曲線;4.1.4、根據(jù)繪制的曲線,在設(shè)定的溫度基礎(chǔ)上,選擇出合適的功率來加熱,以便得到最理想的動態(tài)平衡。4.2、工作原理要改變加熱裝置的功率,通過改變加在其兩端的電壓值實現(xiàn),考慮到安全問題,這里使用固態(tài)繼電器通過改變其通斷時間來調(diào)節(jié)加熱裝置功率的大小,電路圖如圖3-4。圖中控制部分是由555電路構(gòu)成的占空比可調(diào)方波發(fā)生器,總時間為t=0.39s,約等于市交流電的40倍。通過調(diào)節(jié)滑動變阻器來改變方波的占空比,從而改變通過加熱加熱裝置的平均電壓獲得不同的功率。如:占空比為1:2,則加熱裝置獲得的平均電壓約等于110
18、v,則加熱裝置的功率變?yōu)樵瓉淼?:4。4.3、電路原理圖圖4-3 功率可調(diào)水溫加熱電路圖4.4、元器件清單類別型號數(shù)量單位說明集成電路555 1片固態(tài)繼電器1只電阻10k2只滑動變阻器100k1只二極管1n41482只電容4.7µ1只0.01µ1只5 水溫控制系統(tǒng)的總體調(diào)試5.1、工作原理工作原理如下框圖。 預(yù) 置 控 制溫度采集 電路單片機數(shù)碼顯示工作指示控制電路超溫報警電 源加熱器其中恒溫部分為動態(tài)控制過程。如人工設(shè)定溫度80.5,如果當(dāng)前溫度小于人工設(shè)定的溫度,如當(dāng)前溫度位25,則啟動加熱裝置;當(dāng)兩者溫度差小于0.000.99(此值可根據(jù)加熱裝置的功率來設(shè)定),則切斷
19、加熱裝置,利用余熱繼續(xù)加熱,經(jīng)過一段時間后,加熱裝置余熱耗盡,水溫開始下降,當(dāng)下降到兩者溫差小于1.001.99再次接通加熱裝置,直至溫差小于0.000.99的時候再次切斷,周而復(fù)始,最終達到動態(tài)平衡。5.2、總電路原理圖圖4-5 水溫控制系統(tǒng)總電路原理圖說明:整個電路分為六大部分,ds18b20溫度檢測,51單片機數(shù)據(jù)處理及輸出控制信號,獨立式按鍵人工設(shè)定溫度,功率調(diào)節(jié)電路、報警電路。搭接或制作的時候可以先將每一部分硬件電路調(diào)試好,然后進行整體連接調(diào)試。 6、水溫控制系統(tǒng)總程序 ;堆棧區(qū)為30h40h ;顯示緩沖區(qū)為4ah4eh ;讀取后的溫度值高4位存放在28h中,低8位在29h ;轉(zhuǎn)換后
20、的數(shù)據(jù)整數(shù)部分在28h中,小數(shù)部分在27h ;ds18b20溫度轉(zhuǎn)換子程序,6m晶振。alam bit p2.6 ;當(dāng)ds18b20不存在時的提示端口,為高電平。pt18b20 bit p2.5 ;ds18b20的端口flag1 bit 2fh.0 ;是否檢測到ds18b20標(biāo)志位fuhao bit 2fh.1 ;符號標(biāo)志位,用于顯示溫度的符號。key bit 2fh.2 ;是否按下人工設(shè)定溫度按鍵,1是,0否temph equ 2ah ;溫度轉(zhuǎn)換高4位暫存區(qū)templ equ 2bh ;溫度轉(zhuǎn)換低8位暫存區(qū)stemph equ 2ch ;暫存人工輸入數(shù)據(jù)的高4位stempl equ 2dh
21、;暫存人工輸入溫度的低8位dis_fuhao equ 4ahdis_shi equ 4bh ;顯示的十位數(shù)緩沖區(qū)dis_ge equ 4ch ;顯示的個位數(shù)緩沖區(qū)dis_shif equ 4dh ;顯示的十分位數(shù)緩沖區(qū)dis_baif equ 4eh ;顯示的百分位數(shù)緩沖區(qū)get_shi equ 50h ;人工設(shè)定溫度十位緩沖區(qū)get_ge equ 51h ;人工設(shè)定溫度個位緩沖區(qū)get_shif equ 52h ;人工設(shè)定溫度十分位緩沖區(qū)get_baif equ 53h ;人工設(shè)定溫度百分位緩沖區(qū)jiao_z equ 7eh ;校準(zhǔn)數(shù)據(jù)的整數(shù)部分jiao_x equ 7dh ;校準(zhǔn)數(shù)據(jù)的小數(shù)
22、部分delay1 equ 7ch ;用于控制人工設(shè)定溫度時的延時時間xuhao equ 7bh ;用于控制人工設(shè)定溫度輸入數(shù)據(jù)時的位置 org 0000h ljmp main org 0030hmain: mov sp , #30h ;設(shè)置堆棧區(qū) mov 2fh , #00h anl p2 , #0e0h ;屏蔽低五位,即初始化顯示不亮 clr p3.3 ;初始化時關(guān)閉加熱裝置 clr p3.4 ;初始化時關(guān)閉報警裝置 mov r0 , #4ah mov r7 , #0ahclr0: ;清除顯示緩沖區(qū) mov r0 , #00h inc r0 djnz r7 , clr0main_loop:
23、jb p3.0 , dkey1 lcall data_get ;調(diào)用人工設(shè)定溫度獲取子程序dkey1: jb p3.2 , dkey2 ;輸入鍵取消人工溫度設(shè)定 lcall display lcall display jb p3.2 , dkey2 clr p3.3 clr p3.4 clr key jnb p3.2 , $dkey2: lcall get_temper ;讀取溫度值 lcall data_change ;調(diào)用數(shù)據(jù)轉(zhuǎn)換子程序 lcall jiaozheng ;調(diào)用校正子程序 lcall data_chuli ;調(diào)用數(shù)據(jù)處理子程序 lcall display ;響應(yīng)時間大約為80
24、0ms jnb key , deky3 lcall t_control ;調(diào)用溫度控制子程序deky3: sjmp main_loopdata_change: ;數(shù)據(jù)轉(zhuǎn)換子程序 jnb 28h.3 , cha1 ;轉(zhuǎn)換后的結(jié)果符號位由標(biāo)志fuhao確定 setb fuhao ;整數(shù)部分存放在28h中,小數(shù)部分存放在27h中 mov a , 28h cpl a mov 28h , a mov a , 29h cpl a add a , #01h mov 29h , a mov a , 28h addc a , #00h mov 28h , a ajmp cha2cha1: clr fuhaoch
25、a2: mov 27h , 29h mov a , 27h anl a , #0fh swap a mov 27h , a mov a , 29h anl a , #0f0h swap a mov 29h , a mov a , 28h anl a , #0fh swap a orl a , 29h mov 28h , a mov temph , 28h mov templ , 27h retdata_chuli: ;數(shù)據(jù)處理子程序。 mov r2 , 27h ;將最終轉(zhuǎn)換得到的結(jié)果送入顯示緩沖區(qū) lcall hbd2 ;注意,轉(zhuǎn)換后均以bcd碼表示 mov a , r2 mov 27h ,
26、a anl a , #0fh mov 4eh , a mov a , r2 anl a , #0f0h swap a mov 4dh , a mov a , 28h mov c , f0 addc a , #00h mov 28h , a mov b , #10 div ab mov 4bh , a mov 4ch , b ret hbd2: mov r4 , #3 ;獲取三位十進制碼hbd3: mov a , r2 ;原小數(shù)擴大十倍 mov b , #10 mul ab mov r2,a push b ;保存溢出的一位十進制碼 djnz r4 , hbd3 ;計算完四位十進制碼 pop ac
27、c ;取出千分位 mov r3 , a pop acc ;取出百分位 mov r2 , a pop acc ;取出十分位 swap a orl a , r2 ;拼裝成高字節(jié)碼小數(shù) mov r2 , a cjne r3 , #05 , hbd4 ;若千分位大于等于5,則向前進位,小于5則舍去hbd4: jc hbd5 add a , #01h da a mov r2 , a mov f0 , chbd5: retdata_get: jnb p3.0 , $ mov dis_shi , #00h mov dis_ge , #00h mov dis_shif , #00h mov dis_baif
28、, #00hdata_get1: jb p3.0 , dget1 mov delay1 , #02h lcall yshe jb p3.0 , dget1 sjmp retd ;按下確定鍵后表示溫度已經(jīng)設(shè)定好,返回dget1: jb p3.1 , dget2 lcall yshe jb p3.1 , dget2 inc xuhao mov a , xuhao cjne a , #04 , dget2 mov xuhao , #00hdget2: jb p3.2 , dget3 lcall yshe jb p3.2 , dget3 mov r0 , #xuhao cjne r0 , #00h ,
29、 dget31 inc get_shi mov a , get_shi cjne a , #05h , dget32 mov get_shi , #00hdget32: mov dis_shi , get_shi sjmp dget38dget31: cjne r0 , #01h , dget33 inc get_ge mov a , get_ge cjne a , #0ah ,dget34 mov get_ge , #00hdget34: mov dis_ge , get_ge sjmp dget38dget33: cjne r0 , #02h ,dget35 inc get_shif mo
30、v a , get_shif cjne a , #0ah , dget36 mov get_shif , #00hdget36: mov dis_shif , get_shif sjmp dget38dget35: inc get_baif mov a , get_baif cjne a , #0ah , dget37 mov get_baif , #00hdget37: mov dis_baif , get_baif sjmp dget38dget38: mov delay1 , #25 lcall yshe setb keydget3: lcall display1 sjmp data_g
31、et1retd: jnb p3.0 , $ rett_control: ;溫度控制子程序 mov a , get_shif anl a , #0fh swap a mov r2 , a mov a , get_baif anl a , #0fh orl a , r2 mov r2 , a lcall bhd1 mov a , r3 anl a , #0f0h mov stempl , a mov a , get_shi mov b , #10 mul ab add a , get_ge mov stemph , a clr c mov a , stempl subb a , templ mov
32、 a , stemph subb a , temph jc tcon1 cjne a , #00h , tcon2 clr p3.3 ;溫差小于1,切斷加熱裝置tcon2: setb p3.3 ;溫差大于1,啟動加熱裝置 cjne a , #02h , tcon3tcon3: jc tcon4 setb p3.4 ajmp tcon1tcon4: clr p3.4 ajmp retttcon1: clr p3.3 clr c mov a , templ subb a , stempl mov a , temph subb a , stemph cjne a , #02h , tcon5tcon
33、5: jc tcon6 setb p3.4tcon6: clr p3.4rett: ret ;標(biāo)號: 1 功能:單字節(jié)碼小數(shù)轉(zhuǎn)換成單字節(jié)十六進制小數(shù) ;入口條件:待轉(zhuǎn)換的雙字節(jié)碼小數(shù)在r2中。 ;出口信息:轉(zhuǎn)換后的雙字節(jié)十六進制小數(shù)在r3中。 ;影響資源:psw、a、r2r6 堆棧需求: 字節(jié)bhd1: mov r6 , #08h ;準(zhǔn)備計算兩個字節(jié)小數(shù) mov r3 , #00hbhd2: mov a , r2 ;按十進制倍增 add a , r2 da a mov r2 , a mov a , r3 ;將進位標(biāo)志移入結(jié)果中 rlc a mov r3 , a djnz r6 , bhd2 ;
34、共計算8小數(shù) ret ;以下是讀取ds18b20溫度的子程序 ;讀出的溫度低位存入29h(temper_l),高位存入28h(temper_h)get_temper: ; 讀出轉(zhuǎn)換后的溫度值 setb pt18b20 lcall init_1820 ;先復(fù)位ds18b20 jb flag1,tss2 ret ; 判斷ds1820是否存在?若ds18b20不存在則返回tss2: ;ds18b20已經(jīng)被檢測到! mov a,#0cch ; 跳過rom匹配 lcall write_1820 mov a,#44h ; 發(fā)出溫度轉(zhuǎn)換命令 lcall write_1820 ;這里通過調(diào)用顯示子程序?qū)崿F(xiàn)延時
35、一段時間, lcall y750ms ;等待ad轉(zhuǎn)換結(jié)束,12位的話750毫秒 lcall init_1820 ;準(zhǔn)備讀溫度前先復(fù)位 mov a,#0cch ; 跳過rom匹配 lcall write_1820 mov a,#0beh ; 發(fā)出讀溫度命令 lcall write_1820 lcall read_18200 ; 將讀出的溫度數(shù)據(jù)保存到28h/29h retinit_1820: setb pt18b20 nop clr pt18b20 mov r1,#3 ;主機發(fā)出延時600微秒的復(fù)位低脈沖tsr1: mov r0,#48 djnz r0,$ djnz r1,tsr1 setb p
36、t18b20 ;然后拉高數(shù)據(jù)線 nop nop mov r0,#25htsr2: jnb pt18b20,tsr3 ;等待ds18b20回應(yīng) djnz r0,tsr2 ljmp tsr4 ; 延時tsr3: setb flag1 ; 置標(biāo)志位,表示ds1820存在 ljmp tsr5tsr4: clr flag1 ; 清標(biāo)志位,表示ds1820不存在。 setb alam ; 點亮二極管表示ds1820不存在。 mov 29h,#00h ; 不存在時溫度值顯示為零。 mov 28h,#00h ljmp tsr7tsr5: mov r0,#57tsr6: djnz r0,tsr6 ; 時序要求延
37、時一段時間tsr7: setb pt18b20 retwrite_1820: ; 寫ds18b20的子程序 mov r2,#8 ; 一共8位數(shù)據(jù) clr cwr1: clr pt18b20 mov r3,#3 djnz r3,$ rrc a mov pt18b20,c mov r3,#12 djnz r3,$ setb pt18b20 nop djnz r2,wr1 setb pt18b20 retread_18200: ; 讀ds18b20的程序,從ds18b20中讀出兩個字節(jié)的溫度數(shù)據(jù) mov r4,#2 ; 將溫度高位和低位從ds18b20中讀出 mov r1,#29h ; 低位存入29
38、h(temper_l),高位存入28h(temper_h)re00: mov r2,#8 ;數(shù)據(jù)一共有8位re01: clr c setb pt18b20 nop clr pt18b20 nop nop setb pt18b20 mov r3,#5re10: djnz r3,re10 mov c,pt18b20 mov r3,#12re20: djnz r3,re20 rrc a djnz r2,re01 mov r1,a dec r1 djnz r4,re00 retdisplay: ;顯示子程序 mov dptr , #shuma ;注意采用的是動態(tài)顯示的方式,需要對數(shù)碼管進行逐個掃描 j
39、b fuhao , display1 mov p1 , #0a7h ajmp display2display1: mov p1 , #0bfhdisplay2: setb p2.0 acall y2ms clr p2.0 mov a , dis_shi movc a , a+dptr mov p1 , a setb p2.1 acall y2ms clr p2.1 mov a , dis_ge movc a , a+dptr anl a , #7fh mov p1 , a setb p2.2 acall y2ms clr p2.2 mov a , dis_shif movc a , a+dpt
40、r mov p1 , a setb p2.3 acall y2ms clr p2.3 mov a , dis_baif movc a , a+dptr mov p1 , a setb p2.4 acall y2ms clr p2.4 retdisplays: ;人工設(shè)定溫度時顯示子程序 mov dptr , #shuma ;注意采用的是動態(tài)顯示的方式,需要對數(shù)碼管進行逐個掃描 mov r0 , #xuhao mov p1 , #0ffh setb p2.0 acall y2ms clr p2.0 mov a , dis_shi movc a , a+dptr cjne r0 , #00h , diss1 anl a , #7fhdiss1: mov p1 , a setb p2.1 acall y2ms clr p2.1 mov a , dis_ge movc a , a+dptr cjne r0 , #01h , diss2 anl a , #7fhdiss2: mov p1 , a setb p2.2 acall y
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 21三黑和土地 (說課稿)-2024-2025學(xué)年六年級上冊語文統(tǒng)編版
- 14文言文二則《兩小兒辯日》(說課稿)-2023-2024學(xué)年統(tǒng)編版語文六年級下冊
- 2024年五年級數(shù)學(xué)上冊 5 簡易方程第16課時 實際問題與方程(5)配套說課稿 新人教版
- 2024-2025學(xué)年高中物理 第10章 熱力學(xué)定律 4 熱力學(xué)第二定律說課稿1 新人教版選修3-3
- 2025道路綠化養(yǎng)護委托合同
- 1 春夏秋冬(說課稿)-2023-2024學(xué)年二年級下冊科學(xué)湘科版
- 2025格式條款合同的法律效力如何
- 2025家庭裝飾裝修合同
- 15 古詩二首《絕句》(說課稿)-2023-2024學(xué)年統(tǒng)編版語文二年級下冊001
- 西寧鍋爐防腐噴涂施工方案
- 2024年步步高高考英語大一輪復(fù)習(xí)(新人教版)基礎(chǔ)知識默寫本必修第一冊含答案
- 盤錦市重點中學(xué)2024年中考英語全真模擬試卷含答案
- 2024年《幼兒教師職業(yè)道德》教案
- 平安產(chǎn)險湖南省商業(yè)性雞蛋價格指數(shù)保險條款
- 石家莊市第四十中學(xué)2021-2022學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試題
- 《共演戰(zhàn)略》分析工具
- 揚州市古樹名木匯編
- 提高臥床患者踝泵運動的執(zhí)行率
- 裝配式建筑預(yù)制構(gòu)件運輸與堆放-預(yù)制構(gòu)件運輸基本要求
- Ar-CO2 混合氣安全技術(shù)說明書
- 廣東省普通高中學(xué)生檔案
評論
0/150
提交評論