版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、DS18B20溫度控制數(shù)碼管顯示(匯編非常詳細(xì))*1、P1.6=f進(jìn)入設(shè)定溫度報(bào)警值TL狀態(tài):*2、P1.6f進(jìn)入設(shè)定溫度報(bào)警值TH狀態(tài):L20H283、P1.6f返回4、設(shè)定過程:P1.4匐口鍵(UP)P1.5f鍵(DOWN),可快速調(diào)。*TIMER_LDATA23HTIMER_HDATA24HTIMER_COUNDATA25HTEMPLDATA26HTEMPHDATA27HTEMP_THDATA28HTEMP_TLDATA29HTEMPHCDATA2AHTEMPLCDATA2BHTEMP_ZHDATA2CHBEEPEQUP3.7DATA_LINEEQUP3.3RELAYEQUP1.3FLA
2、G1EQU20H.0FLAG2EQU20H.1K1EQUP1.4K2EQUP1.5K3EQUP1.6K4EQUP1.7ORG0000HJMPMAINORG000BHAJMPINT_T0;MAIN:MOVSP,#30HMOVTMOD,#01H;T0,方式1MOVTIMER_L,#00H;50ms定時(shí)值MOVTIMER_H,#4CHMOVTIMER_COUN,#00H;中斷計(jì)數(shù)MOVIE,#82HLCALLREAD_E2;LCALLRE_18B20MOV20H,#00HSETBBEEPSETBRELAYMOV7FH,#0AHCALLRESETJNBFLAG1,MAIN1JMPSTARTMAIN1:
3、CALLRESETJBFLAG1,STARTLCALLBEEP_BLJMPMAIN1START:MOVA,#0CCHCALLWRITEMOVA,#044HCALLWRITECALLRESETMOVA,#0CCHCALLWRITEMOVA,#0BEHCALLWRITECALLREADCALLCONVTEMPCALLDISPBCDCALLDISP1CALLSCANKEY;EA=1,ET0=1;熄滅符;復(fù)位與檢測(cè)DS18B20;FLAG1=0,DS18B20不存在;DS18B20錯(cuò)誤,報(bào)警;跳過ROM匹配發(fā)出溫度轉(zhuǎn)換命令;跳過ROM匹配;發(fā)出讀溫度命令;讀溫度數(shù)據(jù)LCALLTEMP_COMPJMPM
4、AIN1J;DS18B20復(fù)位與檢測(cè)子程序;FLAG1=1OK,FLAG1=0ERROR;RESET:SETBDATA_LINENOPCLRDATA_LINEMOVR0,#64H;主機(jī)發(fā)出延時(shí)600微秒的復(fù)位低脈沖RESET1:MOVR1,#03HDJNZR0,$MOVR0,#64HDJNZR1,RESET1SETBDATA_LINE;然后拉高數(shù)據(jù)線RESET2:NOPMOVR0,#25HJNBDATA_LINE,RESET3;等待DS18B20回應(yīng)DJNZR0,RESET2JMPRESET4;延時(shí)RESET3:SETBFLAG1;置標(biāo)志位,表示DS1820存在RESET4:JMPRESET5
5、CLRFLAG1;涓標(biāo)志位,表小DS1820/、存在RESET5:JMPRESET6MOVR0,#064HDJNZR0,$;時(shí)序要求延時(shí)一段時(shí)間RESET6:SETBDATA_LINERETJ;=WRITE:MOVR2,#8;一共8位數(shù)據(jù)CLRCYWR1:CLRDATA_LINE;開始寫入DS18B20總線要處于復(fù)位(低)狀態(tài)MOVR3,#09DJNZR3,$;總線復(fù)位保去芋18微妙以上RRCA;把一個(gè)字節(jié)DATA分成8個(gè)BIT環(huán)移給CMOVDATA_LINE,C;寫入一個(gè)BITMOVR3,#23DJNZR3,$;等待46微妙SETBDATA_LINE;重新釋放總線NOPDJNZR2,WR1;
6、寫入下一個(gè)BITSETBDATA_LINERET尸=;ADS18B20中讀出溫度低位、高位和報(bào)警值TH、TL;存入26H、27H、28H、29H;READ:MOVR4,#4MOVR1,#26H;將溫度高位和低位從;存入26H、27H、28HDS18B20中讀出、29HRE00:RE01:MOVR2,#8CLRCSETBDATA_LINENOPNOPCLRDATA_LINE;讀前總線保持為低NOPNOPNOPSETBDATA_LINE;開始讀總線釋放MOVR3,#09;延時(shí)18微妙DJNZR3,$MOVC,DATA_LINE;從DS18B20總線讀得一一個(gè)BITMOVR3,#23DJNZR3,$
7、;等待46微妙RRCA;把讀得的位值環(huán)移給ADJNZR2,RE01;讀卜一個(gè)BITMOVR1,AINCR1DJNZR4,RE00RETJ;200ms對(duì)閃動(dòng)標(biāo)記取反一次JINT_T0:PUSHACCPUSHPSWMOVTL0,TIMER_LMOVTH0,TIMER_HINCTIMER_COUNMOVA,TIMER_COUNCJNEA,#04H,INT_ENDMOVTIMER_COUN,#00HCPLFLAG2INTEND:POPPSWPOPACCRETI;重新對(duì)DS18B20初始化;將設(shè)定的溫度報(bào)警值寫入DS18B20尸=RE_18B20:JBFLAG1,RE_18B20ARETRE_18B20
8、A:CALLMOVRESETA,#0CCH;跳過ROM匹配LCALLWRITEMOVA,#4EH;寫暫存寄存器LCALLWRITEMOVA,TEMP_TH;TH(報(bào)警上限)LCALLWRITEMOVA,TEMP_TL;TL(報(bào)警下限)LCALLWRITEMOVA,#7FH;12位精確度LCALLWRITERET;=;功能鍵掃描子程序;=SCANKEY:SCAN_K1:MOVP1,#0F0HJBK1,SCAN_K2CALLBEEP_BLCALLALERT_TLSCAN_K11:CALLALERT_PLAYJBK1,SCAN_K1CALLBEEP_BLCALLALERT_THSCAN_K2:CAL
9、LALERT_PLAYJBK1,SCAN_K11CALLBEEP_BLJBK2,SCAN_K3SCAN_K3:CALLBEEP_BLJBK3,SCAN_K4CALLBEEPBLLCALLRESET_ALERTLCALLRE_18B20LCALLWRITE_E2SCAN_K4:JBK4,SCAN_ENDCALLBEEP_BLSCAN_END:RETJ;設(shè)置溫度報(bào)警值尸=RESET_ALERT:CALLALERT_TLCALLALERT_PLAYJNBK3,$;K3為位移鍵SETBTR0RESET_TL:CALLALERT_PLAYJNBFLAG2,R_TL01mov75H,7m;送入熄滅符mov
10、76H,7mCALLALERT_PLAYJMPR_TL02R_TL01:CALLALERT_TLmov75h,7Eh;送設(shè)定值mov76h,7DhCALLALERT_PLAY;顯示設(shè)定值R_TL02:JNBK1,K011AJNBK2,K011BJNBK3,RESET_THJMPRESET_TLK011A:INCTEMP_TLMOVA,TEMP_TLCJNEA,#120,K012A;沒有到設(shè)定上限值,轉(zhuǎn)MOVTEMP_TL,#0K012A:CALLTL_DELJMPRESET_TLK011B:DECTEMP_TLMOVA,TEMP_TLCJNEA,#00H,K012B;沒有到設(shè)5限值,轉(zhuǎn)MOVT
11、EMP_TL,#119K012B:CALLTL_DELJMPRESET_TLJRESET_TH:CALLBEEP_BLJNBK3,$RESET_TH1:CALLALERT_PLAYJNBFLAG2,R_TH01mov75H,7fh;送入熄滅符mov76H,7mCALLALERT_PLAYJMPR_TH02R_TH01:CALLALERT_THmov75h,7Eh;mov76h,7DhCALLALERT_PLAYR_TH02:JNBK1,K021AJNBK2,K021BJNBK3,K002JMPRESET_TH1K021A:INCTEMP_THMOVA,TEMP_THCJNEA,#120,K02
12、2A;沒有到設(shè)定上限值,轉(zhuǎn)MOVTEMP_TH,#0K022A:CALLTH_DELJMPRESET_TH1K021B:DECTEMP_TH;減1MOVA,TEMP_THCJNEA,#00H,K022B;沒有到設(shè)5限值,轉(zhuǎn)MOVTEMP_TH,#119K022B:CALLTH_DELJMPRESET_TH1K002:CALLBEEP_BLCLRTR0;關(guān)閉中斷RETJ;鍵延時(shí)子程序;多次調(diào)用報(bào)警值顯示程序來延時(shí);TL_DEL:;報(bào)警低值延時(shí)MOVR2,#0AHTL_DEL1:CALLALERT_TLCALLALERT_PLAYDJNZR2,TL_DEL1RETTH_DEL:;報(bào)警高值延時(shí)MOV
13、R2,#0AHTH_DEL1:CALLALERT_THCALLALERT_PLAYDJNZR2,TH_DEL1RET實(shí)時(shí)溫度值與設(shè)定報(bào)警溫度值TH、TL比較子程序當(dāng)實(shí)際溫度大于當(dāng)實(shí)際溫度小于TH的設(shè)定值時(shí),顯示TH的設(shè)定值時(shí),顯示“H;繼電器關(guān)閉。“O;繼電器吸合。當(dāng)實(shí)際溫度小于TL的設(shè)定值時(shí),顯示“L:閃動(dòng)顯示標(biāo)記符H、L、OTEMP_COMP:SETBTR0;啟動(dòng)中斷MOVA,TEMP_THSUBBA,TEMP_ZH;減數(shù)被減數(shù),則JCCHULI1;借位標(biāo)志位C=1,轉(zhuǎn)MOVA,TEMP_ZHSUBBA,TEMP_TL;減數(shù)被減數(shù),則JCCHULI2;借位標(biāo)志位C=1,轉(zhuǎn)JNBFLAG2,
14、T_COMP1;FLAG2=0,顯示標(biāo)記字符MOV74H,#0AH;熄滅符LCALLDISP1JMPT_COMP2T_COMP1:MOV74H,#00HLCALLDISP1;顯示"O"T_COMP2:CLRRELAY;繼電器吸合CLRTR0;關(guān)閉中斷RET;超溫處理;CHULI1:SETBRELAY;繼電器關(guān)閉JNBFLAG2,CHULI10MOV74H,#0AH;熄滅符LCALLDISP1JMPCHULI11CHULI10:MOV74H,#0DHLCALLDISP1;顯示"H"CALLBEEP_BL;蜂鳴器響CHULI11:CLRTR0;關(guān)閉中斷RET
15、;欠溫處理;CHULI2:;欠溫處理JNBFLAG2,CHULI20MOV74H,#0AH;熄滅符LCALLDISP1JMPCHULI21CHULI20:MOV74H,#0CHLCALLDISP1;顯示"L"CALLBEEP_BL;蜂鳴器響CHULI21:CLRTR0;關(guān)閉中斷RET;把DS18B20暫存器里的溫度報(bào)警值拷貝到EEROMJWRITE_E2:CALLRESETMOVA,#0CCH;跳過ROM匹配LCALLWRITEMOVA,#48H;溫度報(bào)警值拷貝到EEROMLCALLWRITERETJ;把DS18B20EEROM里的溫度報(bào)警值拷貝回暫存器;READ_E2:C
16、ALLRESETMOVA,#0CCH;跳過ROM匹配LCALLWRITEMOVA,#0B8H;溫度報(bào)警值拷貝回暫存器CALLWRITERET.*;處理溫度BCD碼子程序.*;CONVTEMP:MOVA,TEMPH;判溫度是否零下ANLA,#80HJZTEMPC1;溫度零上轉(zhuǎn)CLRCMOVA,TEMPL;一進(jìn)制數(shù)求補(bǔ)(雙字節(jié))CPLA;取反加1ADDA,#01HMOVTEMPL,AMOVA,TEMPH;一CPLAADDCA,#00HMOVTEMPH,A;TEMPHCHI=符號(hào)位MOVTEMPHC,#0BHSJMPTEMPC11TEMPC1:MOVTEMPHC,#0AH;TEMPC11:MOVA,
17、TEMPHCSWAPAMOVTEMPHC,AMOVA,TEMPLANLA,#0FH乘0.0625MOVDPTR,#TEMPDOTTABMOVCA,A+DPTRMOVTEMPLC,A;TEMPLCLOW=小數(shù)部分BCDMOVA,TEMPL;整數(shù)部分ANLA,#0F0HSWAPAMOVTEMPL,AMOVA,TEMPHANLA,#0FHSWAPAORLA,TEMPLMOVTEMP_ZH,A;組合后的臉入TEMP_ZHLCALLHEX2BCD1MOVTEMPL,AANLA,#0F0HSWAPAORLA,TEMPHC;TEMPHCLOW=十位數(shù)BCDMOVTEMPHC,AMOVA,TEMPLANLA,
18、#0FHSWAPA;TEMPLCHI=個(gè)位數(shù)BCDORLA,TEMPLCMOVTEMPLC,AMOVA,R7BCDJZTEMPC12ANLA,#0FHSWAPAMOVR7,AMOVA,TEMPHC;TEMPHCHI=百位數(shù)ANLA,#0FHORLA,R7MOVTEMPHC,ATEMPC12:RET;小數(shù)部分碼表;TEMPDOTTAB:DB00H,01H,01H,02H,03H,03H,04H,04H,05H,06HDB06H,07H,08H,08H,09H,09HJ;顯示區(qū)BCD碼溫度值刷新子程序JDISPBCD:MOVA,TEMPLCANLA,#0FHMOV70H,A;小數(shù)位MOVA,TEM
19、PLCSWAPAANLA,#0FHMOV71H,A;個(gè)位MOVA,TEMPHCANLA,#0FHMOV72H,A;十位MOVA,TEMPHCSWAPAANLA,#0FHMOV73H,A;百位MOVA,TEMPHCANLA,#0F0HCJNEA,#010H,DISPBCD0SJMPDISPBCD2DISPBCD0:MOVA,TEMPHCANLA,#0FHJNZDISPBCD2;十位數(shù)是0MOVA,TEMPHCSWAPAANLA,#0FHMOV73H,#0AH;符號(hào)位不顯示MOV72H,A;十位數(shù)顯示符號(hào)DISPBCD2:RET;*;溫度顯示子程序;*;顯示數(shù)據(jù)在70H73H單元內(nèi),用4位共陽數(shù)碼
20、管顯示,P0口輸出段碼數(shù)據(jù),;P2口作掃描控制,每個(gè)LED數(shù)碼管亮2MS時(shí)間再逐位循環(huán)。DISP1:MOVR1,#70H;指向顯示數(shù)據(jù)首址;掃描控制字初值MOVR5,#7FHPLAY:MOVP0,#0FFHMOVA,R5MOVP2,A;掃描字放入AMOVA,R1;取顯示數(shù)據(jù)到AMOVDPTR,#TAB;取段碼表地址MOVCA,A+DPTR;查顯示數(shù)據(jù)對(duì)應(yīng)段碼MOVP0,AMOVA,R5;段碼放入P0口JBACC.6,LOOP5CLRP0.7;小數(shù)點(diǎn)處理LOOP5:LCALLDL_MS;顯示2MSINCR1;指向卜一個(gè)地址MOVA,R5;放回R5內(nèi)JNBACC.3,ENDOUT;ACC.3=0時(shí)
21、一次顯示結(jié)束RRA;A中數(shù)據(jù)循環(huán)左移MOVR5,A;放入R5中AJMPPLAY;跳回PLAY循環(huán)ENDOUT:MOVP0,#0FFH;一次顯布結(jié)束,P0口復(fù)位MOVP2,#0FFHRET;P2口復(fù)位TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0C7H,89H;“0"“I”"2""3""4""5""6"""7""包""9"H"DL_
22、MS:MOVR6,#0AH;2MS延時(shí)程序,LED顯示程序用DL1:MOVR7,#64HDL2:DJNZR7,DL2DJNZR6,DL1RET.*;;單字節(jié)十六進(jìn)制轉(zhuǎn)BCD*HEX2BCD1:MOVB,#064HDIVABMOVR7,AMOVA,#0AHXCHA,BDIVABSWAPAORLA,BRET;報(bào)警值TH、TL數(shù)據(jù)轉(zhuǎn)換;ALERT_TL:ALERT_TL1:MOV79H,#0CHMOV78H,#0BHMOVA,TEMP_TLMOVR0,#77HMOVB,#064HDIVABCJNEA,#01H,ALERT_TL1MOVR0,AJMPALERT_TL2MOVA,#0BH;顯示ALERT_TL2:MOVR0,AMOVA,#0AHXCHA,BDIVABDECR0MOVR0,AMOV7DH,ADECR0MOVR0,BMOV7EH,BRET;ALERT_TH:MOV79H,#0DHMOV78H,#0BHMOVA,TEMP_THALERTALERT_TH1:_TH2:MOVR0,#77HMOVB,#064HDI
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版小學(xué)數(shù)學(xué)六年級(jí)下冊(cè)課件:《圓錐的認(rèn)識(shí)》教學(xué)課件
- 現(xiàn)代氣動(dòng)與液壓技術(shù) 課件 5氣動(dòng)馬達(dá)
- 九年級(jí)數(shù)學(xué)上冊(cè)-解一元一次方程-去分母課件-人教新課標(biāo)版2
- 第4章 第1節(jié) 免疫系統(tǒng)的組成和功能-2024-2025學(xué)年高二生物選擇性必修1 (配人教版)配套課件
- Unit3Couldyoupleasetellmewheretherestroomsare課件英語人教版九年級(jí)全一冊(cè)
- StarterUnit1HelloSectionA1a2d課件河南鄭州上學(xué)期人教版七年級(jí)英語上冊(cè)
- 山東省日照市2024-2025學(xué)年高三上學(xué)期開學(xué)校際聯(lián)考數(shù)學(xué)試題(原卷版)
- 湖南省永州市2025屆高三上學(xué)期第一次模擬考試數(shù)學(xué)試題
- 云南省昆明市(2024年-2025年小學(xué)四年級(jí)語文)人教版小升初模擬(上學(xué)期)試卷及答案
- 浙江省衢州市(2024年-2025年小學(xué)四年級(jí)語文)人教版專題練習(xí)(下學(xué)期)試卷及答案
- 《低壓配電設(shè)備安裝與調(diào)試》課件 勞動(dòng) 學(xué)習(xí)任務(wù)2 掛壁式配電箱安裝與調(diào)試
- 《工業(yè)革命作業(yè)設(shè)計(jì)方案-2023-2024學(xué)年初中歷史與社會(huì)人教版新課程標(biāo)準(zhǔn)》
- 2024年中國(guó)鐵道科學(xué)研究院集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 小學(xué)三年級(jí)數(shù)獨(dú)比賽“六宮”練習(xí)題(88道)
- 慢性粒細(xì)胞性白血病
- 廢水處理方案課件
- 醫(yī)院融資計(jì)劃書
- 人工智能的機(jī)器學(xué)習(xí)方法
- 國(guó)家開放大學(xué)電大專科《網(wǎng)絡(luò)系統(tǒng)管理與維護(hù)》形考任務(wù)2答案
- 鄰居火災(zāi)調(diào)解協(xié)議書
- 實(shí)習(xí)生錄用-OFFER正式通知
評(píng)論
0/150
提交評(píng)論