


版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、功能說(shuō)明:本裝置的功能是對(duì)溫度進(jìn)行實(shí)時(shí)監(jiān)測(cè)與控制。由溫度傳感器DS18B20對(duì)溫度進(jìn)行采樣和轉(zhuǎn)換成數(shù)字信號(hào)送入單片機(jī),并與設(shè)定的報(bào)警溫度上、下限值進(jìn)行比較,信息通過(guò)LCD顯示出來(lái)。如實(shí)時(shí)溫度超過(guò)設(shè)定的上、下限值,一方面由LCD顯示信息,并發(fā)出警報(bào)聲;另一方面自動(dòng)控制繼電器(Relay)開(kāi)接通或斷開(kāi),從而控制加熱源的開(kāi)與斷,達(dá)到對(duì)溫度進(jìn)行實(shí)時(shí)控制的目的。89C51+珂昭接蜂鳴器K3-VCCEAXIP2.0P3.4P2.1P2.2F2.3P2.4Pl0Pl.lPl.2Pl.3Pl.4Pl.5Pl.6Pl.7P3.5P3.6P3.7P2.iVSELCD初始化寫入報(bào)警上下限值境位DB0DB2DBSDB
2、4PE?DB7戢蜒CKYIRsrwe+5VTDS18E20R4.7k+V按健掃描RelayOn顯示EHK0M程序清單:TEMP_ZHEQU24H;實(shí)時(shí)溫度值存放單元TEMPLEQU25H;低溫度值存放單元TEMPHEQU26H;高溫度值存放單元TEMP_THEQU27H;高溫報(bào)警值存放單元TEMP_TLEQU28H;低溫報(bào)警值存放單元TEMPHCEQU29H;存十位數(shù)BCD碼TEMPLCEQU2AH;存?zhèn)€位數(shù)BCD碼K1EQUP2.1K2EQUP2.2K3EQUP2.3K4EQUP2.4SPKEQUP3.4RELAYEQUP2.0XEQU2FH;LCD地址變量RSEQUP3.5RWEQUP3.
3、6EEQUP3.7FLAGEQU20H.0;DS18B20是否存在標(biāo)記KEY_UDEQU20H.1;設(shè)定KEY的UP與DOWN標(biāo)記DQEQUP2.5;=主程序=MAIN:ACALLSET_LCD;LCD初始化設(shè)置子程序ACALLWR_THL;將報(bào)警上下線寫入暫存寄存器TOOP:ACALLRESET_1820;18B20復(fù)位子程序JNBFLAG,TOOP1;DS1820不存在ACALLMEU_OK;顯示"OK"菜單ACALLRE_THL;把EEROM里溫度報(bào)警值拷貝回暫存器ACALLTEMP_BJ;顯示溫度標(biāo)記"C"JMPTOOP2TOOP1:ACALLM
4、EU_ERROR;顯示"ERROR"菜單ACALLTEMP_BJ;顯示溫度標(biāo)記JMP$TOOP2:ACALLRE_TEMPACALLSET_DATAACALLTEMP_COMP;實(shí)際溫度值與標(biāo)記溫度值比較子程序ACALLP_KEY;鍵掃描子程序SJMPTOOP2讀取溫度數(shù)據(jù)子程序RE_TEMP:ACALLRESET_1820;18B20復(fù)位子程序JNBFLAG,TOOP1;DS1820不存在MOVA,#0CCH;跳過(guò)ROM匹配ACALLWRITE_1820;寫入子程序MOVA,#44H;發(fā)出溫度轉(zhuǎn)換命令A(yù)CALLWRITE_1820;調(diào)寫入子程序ACALLRESET_182
5、0;調(diào)復(fù)位子程序MOVA,#0CCH;跳過(guò)ROM匹配ACALLWRITE_1820;寫入子程序MOVA,#0BEH;發(fā)出讀溫度命令A(yù)CALLWRITE_1820;寫入子程序ACALLREAD_1820;調(diào)用讀入子程序RET溫度數(shù)據(jù)處理顯示子程序SET_DATA:ACALLCONV_TEMP;處理溫度BCD碼子程序ACALLDISP_BCD;顯示區(qū)BCD碼溫度值刷新子程序ACALLCONV;數(shù)據(jù)轉(zhuǎn)換子程序RET按鍵鍵掃描子程序;K1鍵未按,轉(zhuǎn)到PK1處;K1鍵未按,轉(zhuǎn)到PK1處P_KEY:;按鍵K1處理JBK1,PK1ACALLSPK_BZJNBK1,$MOVDPTR,#M_ALAX1MOVA,
6、#1ACALLLCD_PRINTACALLLOOK_ALARMJBK3,$ACALLSPK_BZJMPPK2;K1鍵按下,一聲鳴響;等按鍵放開(kāi);存M_ALAX1表;顯示字符;顯示信息區(qū);等待K3按下;一聲鳴響;轉(zhuǎn)到標(biāo)號(hào)PK2處PK1:PK2:按鍵K2處理JBK2,PK3;K2鍵未按,轉(zhuǎn)到PK3處ACALLSPK_BZ;K2鍵按下,一聲鳴響JNBK2,$;等按鍵放開(kāi)MOVDPTR,#TA1;存#TA1表MOVA,#1ACALLLCD_PRINT;顯示字符ACALLSET_ALARM;設(shè)定報(bào)警值TH、TLACALLWR_THL;將設(shè)定的TH,TL值寫入DS18B20內(nèi)ACALLWRITE_E2JA
7、CALLMEU_OK;顯示"OK"菜單ACALLTEMP_BJ;顯示溫度標(biāo)記PK3:RETTA1:DB"RESETALERTCODE"J設(shè)定報(bào)警值TH、TL子程序;設(shè)定報(bào)警值TH、TLSETALARM:ACALLLOOK_ALARMA0:JBK1,A2ACALLSPK_BZJNBK1,$CPL20H.1;UP/DOWN標(biāo)記A2:JB20H.1,A3;20H.1=1,UPJMPA8;20H.1=0,DOWNA3:JBK2,A5;TH值調(diào)整(增加)ACALLSPK_BZINCTEMP_THMOVA,TEMP_THCJNEA,#120,A4MOVTEMP_TH
8、,#0A4:ACALLLOOK_ALARMMOVR5,#10ACALLDELAYJMPA3A5:JBK3,A7;TL值調(diào)整(增加)ACALLSPK_BZINCTEMP_TLMOVA,TEMP_TLCJNEA,#99,A6MOVTEMP_TL,#00HA6:ACALLLOOK_ALARMJMOVR5,#10ACALLDELAYJMPA5A7:JBK4,A0;確定調(diào)整OKACALLSPK_BZJNBK4,$RETA8:JBK2,A10;TH值調(diào)整(減少)ACALLSPK_BZDECTEMP_THMOVA,TEMP_THCJNEA,#0FFH,A9JMPA12A9:ACALLLOOK_ALARMMO
9、VR5,#10ACALLDELAYJMPA0A10:JBK3,A13;TL值調(diào)整(減少)ACALLSPK_BZDECTEMP_TLMOVA,TEMP_TLCJNEA,#0FFH,A11JMPA12A11:ACALLLOOK_ALARMJMOVR5,#10ACALLDELAYJMPA0A12:CPL20H.1JMPA3A13:JMPA7RET顯示信息區(qū)子程序LOOK_ALARM:MOVDPTR,#M_ALAX2;指針指到顯示信息區(qū)MOVA,#2;顯示在第二行ACALLLCD_PRINTMOVA,#0C6HACALLTEMP_BJ1MOVA,TEMP_TH;加載TH數(shù)據(jù)MOVX,#3;設(shè)置位置AC
10、ALLSHOW_LINE2H;顯示數(shù)據(jù)MOVA,#0CEHACALLTEMP_BJ1MOVA,TEMP_TL;加載TL數(shù)據(jù)MOVX,#12;設(shè)置位置ACALLSHOW_LINE2L;顯示數(shù)據(jù)RETM_ALAX1:DB"LOOKALERTCODE",0M_ALAX2:DB"TH:TL:",0TEMP_BJ1:B0:ACALLWR_COMMMOVDPTR,#BJ2MOVR1,#0MOVR0,#2MOVA,R1MOVCA,A+DPTRACALLWR_DATAINCR1DJNZR0,B0RET00H,"C"BJ2:DB;指針指到顯示信息區(qū)SH
11、OW_LINE2H:;在LCD的第二行顯示數(shù)字MOVB,#100DIVABADDA,#30HPUSHBMOVB,XACALLLCDP2POPBMOVA,#0AHXCHA,BDIVABADDA,#30HINCXPUSHBMOVB,XACALLLCDP2POPBINCXMOVA,BMOVB,XADDA,#30HACALLLCDP2RETSHOW_LINE2L:;在LCD的第二行顯示數(shù)字MOVB,#100DIVABMOVA,#0AHXCHA,BDIVABADDA,#30HPUSHBMOVB,XCALLLCDP2POPBINCXMOVA,BMOVB,XADDA,#30HACALLLCDPRET;溫度值
12、比較子程序;實(shí)際溫度值與標(biāo)記溫度值比較子程序TEMP_COMP:MOVA,TEMP_THSUBBA,TEMP_ZH;減數(shù)被減數(shù),則JCTCL1;借位標(biāo)志位C=1,轉(zhuǎn)MOVA,TEMP_ZHSUBBA,TEMP_TL;減數(shù)被減數(shù),則JCTCL2;借位標(biāo)志位C=1,轉(zhuǎn)MOVDPTR,#BJ5ACALLTEMP_BJ3CLRRELAYRET;繼電器吸合TCL1:MOVDPTR,#BJ3;存入#BJ3表ACALLTEMP_BJ3;調(diào)用顯示高、低溫度及加熱標(biāo)記子程序SETBRELAY;繼電器關(guān)閉ACALLSPK_BZRETTCL2:MOVDPTR,#BJ4;存入#BJ4表ACALLTEMP_BJ3;調(diào)用
13、顯示高、低溫度及加標(biāo)記子程序ACALLSPK_BZ;調(diào)用鳴響子程序RET;顯示高、低溫度及加熱標(biāo)記程序TEMP_BJ3:A,#0CEHWR_COMMR1,#0R0,#2MOVACALLMOVMOVBJJ:MOVA,R1MOVCA,A+DPTRACALLWR_DATAINCR1DJNZR0,BJJRETBJ3:DB">H"BJ4:DB"<L"BJ5:DB"!"報(bào)警上下線寫入暫存器子程序WR_THL:JBRETWR_T:FLAG,WR_TACALLRESET_1820LCALLWRITE_1820MOVLCALLA,#0CCH
14、WRITE_1820;跳過(guò)ROM匹配MOVA,#4EH;寫暫存寄存器LCALLWRITE_1820MOVA,TEMP_TH;TH(報(bào)警上限)LCALLWRITE_1820MOVA,TEMP_TL;TL(報(bào)警下限)LCALLWRITE_1820MOVA,#7FH;12位精確度LCALLWRITE_1820RETJ報(bào)警值拷貝到EEROM子程序WRITE_E2:ACALLRESET_1820MOVA,#0CCH;跳過(guò)ROM匹配LCALLWRITE_1820MOVA,#48H;48H為拷貝到EEROM的指令代碼RET報(bào)警值拷貝回暫存器子程序RE_THL:ACALLRESET_1820MOVA,#0CC
15、H;跳過(guò)ROM匹配LCALLWRITE_1820MOVA,#0B8H;把EEROM里的溫度報(bào)警值拷貝回暫存器ACALLWRITE_1820RETJ處理溫度BCD碼子程序;處理溫度BCD碼子程序CONV_TEMP:MOVA,TEMPH;判溫度是否零下ANLA,#80HJZTC1;溫度零上轉(zhuǎn)CLRCMOVA,TEMPL;二進(jìn)制數(shù)求補(bǔ)(雙字節(jié))CPLA;取反加1ADDA,#01HMOVTEMPL,AMOVA,TEMPHCPLAADDCA,#00HMOVTEMPH,ASJMPTC2TC1:TC2:MOVTEMPHC,#0AHMOVA,TEMPHCSWAPAMOVTEMPHC,AMOVA,TEMPLAN
16、LA,#0FHMOVDPTR,#DOTTABMOVCA,A+DPTRMOVTEMPLC,AMOVA,TEMPLANLA,#0F0HSWAPAMOVTEMPL,AMOVA,TEMPHANLA,#0FHSWAPAORLA,TEMPLMOVTEMP_ZH,ALCALLHEX2BCD1MOVTEMPL,AANLA,#0F0HSWAPAORLA,TEMPHCMOVTEMPHC,AMOVA,TEMPLANLA,#0FHSWAPAORLA,TEMPLCMOVTEMPLC,AMOVA,R4JZTC3ANLA,#0FH;乘0.0625;TEMPLCLOW=小數(shù)部分BCD;整數(shù)部分;取出高四位;取出低四位;重新組
17、合;TEMPHCLOW=十位數(shù)BCD;TEMPLCHI=個(gè)位數(shù)BCDSWAPA;TEMPHCHI=百位數(shù)BCDMOVR4,AMOVA,TEMPHCANLA,#0FHORLA,R4MOVTEMPHC,ATC3:RETHEX2BCD1:MOVB,#064H;十六進(jìn)制->BCDDIVAB;B=A%100MOVR4,A;R7=百位數(shù)MOVA,#0AHXCHA,BDIVAB;B=A%BSWAPAORLA,BRET;小數(shù)部分碼表DOTTAB:DB00H,00H,01H,01H,02H,03H,03H,04HDB05H,05H,06H,06H,07H,08H,08H,09H;顯示區(qū)BCD碼溫度值刷新子
18、程序;顯示區(qū)BCD碼溫度值刷新DISP_BCD:MOVA,TEMPLCANLA,#0FHMOV70H,A;小數(shù)位MOVA,TEMPLCSWAPAANLA,#0FHMOV71H,A;個(gè)位MOVA,TEMPHCANLA,#0FHMOV72H,A;十位MOVA,TEMPHCSWAPAANLA,#0FHMOV73H,A;百位MOVA,TEMPHCANLA,#0F0HCJNEA,#010H,DI0SJMPDI2DI0:MOVA,TEMPHCANLA,#0FHJNZDI2;十位數(shù)是0MOVA,TEMPHCSWAPAANLA,#0FHMOV73H,#0AH;符號(hào)位不顯示MOV72H,A;十位數(shù)顯示符號(hào)DI2
19、:RETDS18B20復(fù)位初始化子程序RESET_1820:;復(fù)位(有具體的時(shí)序要求)SETBDQNOPCLRDQ;主機(jī)發(fā)出延時(shí)537微秒的復(fù)位低脈沖MOVR1,#3DLY:MOVR0,#107DJNZR0,$DJNZR1,DLY;然后拉高數(shù)據(jù)線SETBDQNOPNOPNOPMOVR0,#25HT2:JNBDQ,T3;等待DS18B20回應(yīng)DJNZR0,T2JMPT4T3:SETBFLAG;置標(biāo)志位,表示DS1820存在JMPT5T4:CLRFLAGJMPT7;清標(biāo)志位,表示DS1820不存在T5:MOVR0,#117T6:DJNZR0,T6T7:SETBDQRET;時(shí)序要求延時(shí)一段時(shí)間;復(fù)位
20、子程序?qū)懭隓S18B20子程序WRITE_1820:;寫入DS18B20R2,#8CMOVCLRWR1:CLRMOVDQR3,#6有具體的時(shí)序要求);一共8位數(shù)據(jù);總線低位,開(kāi)始寫入DJNZR3,$RRC;保持16微秒以上DATA分成8個(gè)BIT環(huán)移給CA;把字節(jié)MOVDQ,C;寫入一個(gè)BITMOVR3,#23DJNZR3,$;等待SETBDQ;重新釋放總線NOPDJNZR2,WR1;寫入下一個(gè)BITSETBDQRET;寫入子程序讀出DS18B20子程序EAD_1820:;將溫度低位、高位、TH、TL從DS18B20中讀出MOVR4,#4;movr4,#4MOVR1,#TEMPL;存入25H、2
21、6H、27H、28HRE0:MOVR2,#8;數(shù)據(jù)一共有8位RE1:CLRCSETBDQNOPNOPCLRDQ;讀前總線保持為低NOPNOPNOPSETBDQ;開(kāi)始讀總線釋放MOVR3,#9DJNZR3,$;延時(shí)18微妙MOVC,DQ;從總線讀到一個(gè)BITMOVR3,#23;DJNZR3,$;等待50微秒RRCA;把讀得的位價(jià)值環(huán)移給ADJNZR2,RE1;讀下一個(gè)BITMOVR1,AINCR1;R1內(nèi)數(shù)據(jù)遞增DJNZR4,RE0RET;讀出子程序LCD1602顯示程序=;初始化設(shè)置SET_LCD:;對(duì)LCD做初始化設(shè)置及測(cè)試CLRECALLINIT_LCD;初始化LCDCALLSTORE_D
22、ATA;將自定義字符存入LCD的CGRAMRETLCD初始化子程序INIT_LCD:;8位I/O控制LCD接口初始化MOVA,#38HCALLWR_COMMcalldelay1MOVA,#0CH;開(kāi)顯示,顯示光標(biāo),光標(biāo)不閃爍CALLWR_COMMcalldelay1MOVA,#01H;清除LCD顯示屏CALLWR_COMMcalldelay1RET;顯示溫度標(biāo)記子程序;顯示溫度標(biāo)記子程序TEMP_BJ:MOVA,#0CBHACALLWR_COMMMOVDPTR,#BJ;指針指到顯示消息MOVR1,#0MOVR0,#2TP1:MOVA,R1MOVCA,A+DPTRACALLWR_DATAINCR
23、1DJNZR0,TP1RETBJ:DB00H,"C"自定義字符子程序;將自定義字符寫入LCD1602的CGRAM中STORE_DATA:MOVA,#40HACALLWR_COMMMOVR2,#08HMOVDPTR,#D_DATAMOVR3,#00HS_DATA:MOVA,R3MOVCA,A+DPTRACALLWR_DATA;寫入數(shù)據(jù)INCR3DJNZR2,S_DATARETD_DATA:DB0CH,12H,12H,0CH,00H,00H,00H,00H;顯示“OK”信息子程序MEU_OK:MOVDPTR,#M_OK1;指針指到顯示消息MOVA,#1;顯示在第一行CALLLC
24、D_PRINTMOVDPTR,#M_OK2;指針指到顯示消息MOVA,#2;顯示在第一行CALLLCD_PRINTRETM_OK1:DB"DS18B20OK",0M_OK2:DB"TEMP:",0顯示“ERROR”信息子程序MEU_ERROR:MOVDPTR,#M_ERROR1;指針指到顯示消息1MOVA,#1;顯示在第一行ACALLLCD_PRINTMOVDPTR,#M_ERROR2;指針指到顯示消息1MOVA,#2;顯示在第一行ACALLLCD_PRINTRETM_ERROR1:DB"DS18B20ERROR",0M_ERROR2
25、:DB"TEMP:",0顯示菜單LCD_PRINT:;在LCD的第一行或第二行顯示字符CJNEA,#1,LINE2;判斷是否為第一行LINE1:ACALLCLR_LINE;清除該行字符數(shù)據(jù)MOVA,#80H;設(shè)置LCD的第一行地址ACALLWR_COMM;寫入命令JMPFILLLINE2:ACALLCLR_LINEMOVA,#0C0H;清除該行字符數(shù)據(jù);設(shè)置LCD的第二行地址ACALLWR_COMMACALLWR_COMMFILL:CLRA;填入字符MOVCA,A+DPTRMOVCA,A+DPTR;由消息區(qū)取出字符CJNEA,#0,LC1;判斷是否為結(jié)束碼RETLC1:AC
26、ALLWR_DATA;寫入數(shù)據(jù)INCDPTR;指針加1JMPFILL;繼續(xù)填入字符RET數(shù)據(jù)轉(zhuǎn)換CONV:;加載百位數(shù)據(jù)MOVA,73HMOVX,#6;設(shè)置位置CJNEA,#1,CO1JMPCO2CO1:MOVA,#""MOVB,XACALLLCDP2JMPCO3CO2:ACALLSHOW_LINE2;顯示數(shù)據(jù)CO3:INCX;MOVA,72H;mova,72h;十位ACALLSHOW_LINE2INCX;incXMOVA,71H;mova,71h;個(gè)位ACALLSHOW_LINE2INCX;incXMOVA,#'.'MOVB,XACALLLCDP2MOVA,70H;h;加載小數(shù)點(diǎn)位I
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生產(chǎn)制造業(yè)生產(chǎn)設(shè)備智能化升級(jí)改造方案
- 財(cái)務(wù)會(huì)計(jì)準(zhǔn)則測(cè)試題及答案
- 行政管理與市政學(xué)發(fā)展趨勢(shì)試題及答案更新
- 鄉(xiāng)村畜牧產(chǎn)業(yè)發(fā)展扶持協(xié)議
- 五保戶供養(yǎng)合同協(xié)議書
- 市場(chǎng)開(kāi)發(fā)合作規(guī)劃協(xié)議書
- 行政管理中的決策心理學(xué)應(yīng)用探索試題及答案
- 自考行政管理本科制定計(jì)劃試題及答案策略
- 自考行政管理團(tuán)隊(duì)合作試題及答案
- 2025年市政學(xué)重要考點(diǎn)分享試題及答案
- 2025團(tuán)員考試試題及答案
- 2025年全國(guó)防災(zāi)減災(zāi)日專題培訓(xùn)課件
- 2025-2030中國(guó)氯氧化鉍行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025年中考語(yǔ)文二輪復(fù)習(xí):說(shuō)明文閱讀 測(cè)試卷(含答案解析)
- 視頻監(jiān)控介紹課件
- 統(tǒng)計(jì)學(xué)試題及答案解析
- 跨學(xué)科實(shí)踐制作微型密度計(jì)人教版物理八年級(jí)下學(xué)期
- 2025屆高考語(yǔ)文作文備考之審題立意30道選擇題訓(xùn)練(附答案)
- 21. 三黑和土地 課件
- 挖掘機(jī)理論試題及答案
- 2025 中小學(xué)征訂教輔謀利問(wèn)題整治工作自查報(bào)告
評(píng)論
0/150
提交評(píng)論