基于單片機(jī)89C51控制的溫度智能控制系統(tǒng).doc_第1頁
基于單片機(jī)89C51控制的溫度智能控制系統(tǒng).doc_第2頁
基于單片機(jī)89C51控制的溫度智能控制系統(tǒng).doc_第3頁
基于單片機(jī)89C51控制的溫度智能控制系統(tǒng).doc_第4頁
基于單片機(jī)89C51控制的溫度智能控制系統(tǒng).doc_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

TEMPER_LEQU41H;用于保存讀出溫度的低8位TEMPER_HEQU40H;用于保存讀出溫度的高8位FLAG1EQU38H;是否檢測(cè)到DS18B20標(biāo)志位A_BIT1EQU31H;數(shù)碼管個(gè)位數(shù)存放內(nèi)存位置B_BIT1EQU32H;數(shù)碼管十位數(shù)存放內(nèi)存位置D_BIT1EQU35H;數(shù)碼管百位數(shù)存放內(nèi)存位置DQEQUP3.2;30H,31H,32H,33H:X個(gè)位十位XMOD7:MOVSP,#60HLCALLGET_TEMPER;調(diào)用讀溫度子程序LCALLTEMPCOVLCALLJDQGZLCALLDISPLAY;調(diào)用數(shù)碼管顯示子程序AJMPMOD7TEMP0:INCAAJMPTEMP1TEMPCOV:MOVA,TEMPER_L;數(shù)據(jù)處理子程序TEMPCOVMOVB,#16DIVABJBB.3,TEMP0TEMP1:MOV34H,A;將TEMPER_L的高四位右移四位,存入34H中(溫度值)MOVA,B;將TEMPER_L的低四位X10/16得小數(shù)后一位數(shù).MOVB,#10MULABMOVB,#16DIVABMOV30H,A;將小數(shù)后一位數(shù).存入30H中MOVA,TEMPER_H;TEMPER_H中存放高8位數(shù),權(quán)重16MOVB,#16MULABADDA,34H;34H中存入溫度值的整數(shù)部分MOVB,#10DIVABMOV31H,B;個(gè)位存入31H中MOVB,#10;DIVAB;MOV32H,B;十位存入32H中MOVB,#10;DIVAB;MOV35H,B;百位存入33H中MOVA,TEMPER_HMOV33H,#10H;JBACC.7,EXIT7MOV33H,#00HEXIT7:RETINIT_1820:;這是DS18B20復(fù)位初始化子程序SETBDQNOPCLRDQ;主機(jī)發(fā)出延時(shí)537微秒的復(fù)位低脈沖MOVR1,#3TSR1:MOVR0,#107DJNZR0,$DJNZR1,TSR1SETBDQ;然后拉高數(shù)據(jù)線NOPNOPNOPMOVR0,#25HTSR2:JNBDQ,TSR3;等待DS18B20回應(yīng)DJNZR0,TSR2LJMPTSR4;延時(shí)TSR3:SETBFLAG1;置標(biāo)志位,表示DS1820存在LJMPTSR5TSR4:CLRFLAG1;清標(biāo)志位,表示DS1820不存在LJMPTSR7TSR5:MOVR0,#117TSR6:DJNZR0,TSR6;時(shí)序要求延時(shí)一段時(shí)間TSR7:SETBDQRET;-GET_TEMPER:;讀出轉(zhuǎn)換后的溫度值SETBDQLCALLINIT_1820;先復(fù)位DS18B20JBFLAG1,TSS2RET;判斷DS1820是否存在?若DS18B20不存在則返回TSS2:MOVA,#0CCH;跳過ROM匹配LCALLWRITE_1820MOVA,#44H;發(fā)出溫度轉(zhuǎn)換命令LCALLWRITE_1820LCALLDISPLAY;等待AD轉(zhuǎn)換結(jié)束,12位的話750微秒LCALLINIT_1820;準(zhǔn)備讀溫度前先復(fù)位MOVA,#0CCH;跳過ROM匹配LCALLWRITE_1820MOVA,#0BEH;發(fā)出讀溫度命令LCALLWRITE_1820LCALLREAD_18200;將讀出的溫度數(shù)據(jù)保存到35H/36HRET;寫DS18B20的子程序(有具體的時(shí)序要求)WRITE_1820:MOVR2,#8;一共8位數(shù)據(jù)CLRCWR1:CLRDQMOVR3,#6DJNZR3,$RRCAMOVDQ,CMOVR3,#23DJNZR3,$SETBDQNOPDJNZR2,WR1SETBDQRET;讀DS18B20的程序,從DS18B20中讀出兩個(gè)字節(jié)的溫度數(shù)據(jù)READ_18200:MOVR4,#2;將溫度高位和低位從DS18B20中讀出MOVR1,#TEMPER_L;低位存入TEMPER_L(TEMPER_L),高位存入(TEMPER_H)RE00:MOVR2,#8;數(shù)據(jù)一共有8位RE01:CLRCSETBDQNOPNOPCLRDQNOPNOPNOPSETBDQMOVR3,#9RE10:DJNZR3,RE10MOVC,DQMOVR3,#23RE20:DJNZR3,RE20RRCADJNZR2,RE01MOVR1,ADECR1DJNZR4,RE00RET;顯示子程序DISPLAY:MOVDPTR,#TAB;指定查表啟始地址MOVR0,#4DPL1:MOVR1,#250;顯示1000次DPLOP:MOVA,A_BIT1;取個(gè)位數(shù)MOVCA,A+DPTR;查個(gè)位數(shù)的7段代碼MOVP1,A;送出個(gè)位的7段代碼CLRP3.7;開個(gè)位顯示ACALLD1MS;顯示1MSSETBP3.7MOVA,B_BIT1;取十位數(shù)MOVCA,A+DPTR;查十位數(shù)的7段代碼MOVP1,A;送出十位的7段代碼CLRP3.5;開十位顯示ACALLD1MS;顯示1MSSETBP3.5MOVA,D_BIT1;取百位數(shù)MOVCA,A+DPTR;查百位數(shù)的7段代碼MOVP1,A;送出百位的7段代碼CLRP3.4;開百位顯示ACALLD1MS;顯示1MSSETBP3.4MOVP1,#00HDJNZR1,DPLOP;100次沒完循環(huán)DJNZR0,DPL1;4個(gè)100次沒完循環(huán)RETJDQGZ:MOVR7,34H;34H為溫度的整數(shù)位.MOVA,#10;這里以10度為例,若高于10度,剛開啟繼電器SUBBA,R7;10度減當(dāng)前溫度.JCKAI;如果高于10度,則KAISETBP3.3;關(guān)閉,P3.3接PNP三極管AJ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論