基于單片機89C51控制的溫度智能控制系統.doc_第1頁
基于單片機89C51控制的溫度智能控制系統.doc_第2頁
基于單片機89C51控制的溫度智能控制系統.doc_第3頁
基于單片機89C51控制的溫度智能控制系統.doc_第4頁
基于單片機89C51控制的溫度智能控制系統.doc_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論