版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
;*;**;**;**;**;**;*;***
!-DS18B20溫度控制數碼管顯示(匯編非常詳細)1、P1.6=→進入設定溫度報警值TL狀態(tài):精品文檔放心下載L--202、P1.6→進入設定溫度報警值TH狀態(tài):H--283、P1.6→返回4、設定過程:P1.4→加鍵(UP),P1.5→減鍵(DOWN),可快速調。 *謝謝閱讀TIMER_LDATA23HTIMER_HDATA24HTIMER_COUNDATA25HTEMPLDATA26HTEMPHDATA27HTEMP_THDATA28HTEMP_TLDATA29HTEMPHCDATA2AHTEMPLCDATA2BHTEMP_ZHDATA2CHBEEPEQUP3.7DATA_LINEEQUP3.3RELAYEQUP1.3FLAG1EQU20H.0FLAG2EQU20H.1;-------------------------------------------------K1EQUP1.4K2EQUP1.5K3EQUP1.6K4EQUP1.7;=================================================精品文檔放心下載!-ORG0000HJMPMAINORG000BHAJMPINT_T0;--------------------------------------------------MAIN:MOVSP,#30HMOVTMOD,#01H;T0,方式1MOVTIMER_L,#00H;50ms定時值MOVTIMER_H,#4CHMOVTIMER_COUN,#00H;中斷計數MOVIE,#82H;EA=1,ET0=1LCALLREAD_E2;LCALLRE_18B20MOV20H,#00HSETBBEEPSETBRELAYMOV7FH,#0AH;熄滅符CALLRESET;復位與檢測DS18B20JNBFLAG1,MAIN1;FLAG1=0,DS18B20不存在JMPSTARTMAIN1:CALLRESETJBFLAG1,STARTLCALLBEEP_BL;DS18B20錯誤,報警JMPMAIN1START:MOVA,#0CCH;跳過ROM匹配CALLWRITEMOVA,#044H;發(fā)出溫度轉換命令CALLWRITECALLRESETMOVA,#0CCH;跳過ROM匹配CALLWRITEMOVA,#0BEH;發(fā)出讀溫度命令CALLWRITECALLREAD;讀溫度數據CALLCONVTEMPCALLDISPBCDCALLDISP1CALLSCANKEY!-LCALL TEMP_COMPJMP MAIN1;=====================================================;DS18B20復位與檢測子程序感謝閱讀;FLAG1=1OK,FLAG1=0ERROR精品文檔放心下載;======================================================感謝閱讀RESET:RESET1:RESET2:RESET3:RESET4:RESET5:
SETBDATA_LINENOPCLRDATA_LINEMOVR0,#64H ;主機發(fā)出延時600微秒的復位低脈沖感謝閱讀MOVR1,#03HDJNZR0,$MOVR0,#64HDJNZR1,RESET1SETBDATA_LINE ;然后拉高數據線NOPMOVR0,#25HJNBDATA_LINE,RESET3 ;等待DS18B20回應精品文檔放心下載DJNZR0,RESET2JMPRESET4 ;延時SETBFLAG1 ;置標志位,表示DS1820存在謝謝閱讀JMPRESET5CLRFLAG1 ;清標志位,表示DS1820不存在精品文檔放心下載JMPRESET6MOVR0,#064HDJNZR0,$ ;時序要求延時一段時間RESET6: SETBDATA_LINERET;===========================================================謝謝閱讀;;===========================================================謝謝閱讀WRITE:
MOVR2,#8CLRCY
;一共8位數據WR1:CLRDATA_LINE
;開始寫入DS18B20總線要處于復位(低)狀態(tài)謝謝閱讀MOVR3,#09DJNZR3,$RRCAMOVDATA_LINE,C
;總線復位保持18微妙以上;把一個字節(jié)DATA分成8個BIT環(huán)移給C感謝閱讀;寫入一個BITMOVR3,#23DJNZR3,$SETBDATA_LINE
;等待46微妙;重新釋放總線!-NOPDJNZR2,WR1 ;寫入下一個BITSETBDATA_LINERET;============================================================感謝閱讀;從DS18B20中讀出溫度低位、高位和報警值TH、TL精品文檔放心下載;存入26H、27H、28H、29H;============================================================謝謝閱讀READ: MOVR4,#4MOVR1,#26HRE00: MOVR2,#8RE01: CLRCSETBDATA_LINENOPNOPCLRDATA_LINENOPNOPNOPSETBDATA_LINEMOVR3,#09DJNZR3,$MOVC,DATA_LINEMOVR3,#23DJNZR3,$RRCADJNZR2,RE01MOV@R1,AINCR1DJNZR4,RE00RET;--------------------------------------------精品文檔放心下載;200ms對閃動標記取反一次;--------------------------------------------感謝閱讀INT_T0:
;將溫度高位和低位從DS18B20中讀出;存入26H、27H、28H、29H;讀前總線保持為低;開始讀總線釋放;延時18微妙;從DS18B20總線讀得一個BIT;等待46微妙;把讀得的位值環(huán)移給A;讀下一個BITPUSH ACCPUSH PSWMOV TL0,TIMER_LMOV TH0,TIMER_HINC TIMER_COUNMOV A,TIMER_COUNCJNE A,#04H,INT_ENDMOV TIMER_COUN,#00HCPL FLAG2!-INT_END:POP PSWPOP ACCRETI;==========================================================;重新對DS18B20初始化謝謝閱讀;將設定的溫度報警值寫入DS18B20;==========================================================謝謝閱讀RE_18B20:JB FLAG1,RE_18B20ARETRE_18B20A:CALLRESETMOVA,#0CCH;跳過ROM匹配LCALLWRITEMOVA,#4EH;寫暫存寄存器LCALLWRITEMOVA,TEMP_TH;TH(報警上限)LCALLWRITEMOVA,TEMP_TL;TL(報警下限)LCALLWRITEMOVA,#7FH;12位精確度LCALLWRITERET;====================================================感謝閱讀;功能鍵掃描子程序;====================================================謝謝閱讀SCANKEY:MOV P1,#0F0HJB K1,SCAN_K2CALL BEEP_BLSCAN_K1: CALL ALERT_TLCALL ALERT_PLAYJB K1,SCAN_K1CALL BEEP_BLSCAN_K11: CALL ALERT_THCALL ALERT_PLAYJB K1,SCAN_K11CALL BEEP_BLSCAN_K2: JB K2,SCAN_K3CALL BEEP_BLSCAN_K3: JB K3,SCAN_K4CALL BEEP_BL!-LCALL RESET_ALERTLCALL RE_18B20LCALL WRITE_E2SCAN_K4: JB K4,SCAN_ENDCALL BEEP_BLSCAN_END: RET;================================================謝謝閱讀;設置溫度報警值;================================================精品文檔放心下載RESET_ALERT:CALLALERT_TLCALLALERT_PLAYJNBK3,$;K3為位移鍵SETBTR0RESET_TL:CALLALERT_PLAYJNBFLAG2,R_TL01mov75H,7fh;送入熄滅符mov76H,7fhCALLALERT_PLAYJMPR_TL02R_TL01:CALLALERT_TLmov75h,7Eh;送設定值mov76h,7DhCALLALERT_PLAY;顯示設定值R_TL02:JNBK1,K011AJNBK2,K011BJNBK3,RESET_THJMPRESET_TLK011A:INCTEMP_TLMOVA,TEMP_TLCJNEA,#120,K012A;沒有到設定上限值,轉MOVTEMP_TL,#0K012A:CALLTL_DELJMPRESET_TLK011B:DECTEMP_TLMOVA,TEMP_TLCJNEA,#00H,K012B;沒有到設定下限值,轉MOVTEMP_TL,#119K012B:CALLTL_DELJMPRESET_TL!-;-------------------------------------------------------RESET_TH:CALLBEEP_BLJNBK3,$RESET_TH1:CALLALERT_PLAYJNBFLAG2,R_TH01mov75H,7fh;送入熄滅符mov76H,7fhCALLALERT_PLAYJMPR_TH02R_TH01:CALLALERT_THmov75h,7Eh;mov76h,7DhCALLALERT_PLAYR_TH02:JNBK1,K021AJNBK2,K021BJNBK3,K002JMPRESET_TH1K021A:INCTEMP_THMOVA,TEMP_THCJNEA,#120,K022A;沒有到設定上限值,轉MOVTEMP_TH,#0K022A:CALLTH_DELJMPRESET_TH1K021B:DECTEMP_TH;減1MOVA,TEMP_THCJNEA,#00H,K022B;沒有到設定下限值,轉MOVTEMP_TH,#119K022B:CALLTH_DELJMPRESET_TH1K002:CALLBEEP_BLCLRTR0;關閉中斷RET;-----------------------------------------------------;鍵延時子程序;多次調用報警值顯示程序來延時;-----------------------------------------------------TL_DEL:;報警低值延時MOVR2,#0AH!-TL_DEL1: CALL ALERT_TLCALL ALERT_PLAYDJNZ R2,TL_DEL1RETTH_DEL: ;報警高值延時MOV R2,#0AHTH_DEL1: CALL ALERT_THCALL ALERT_PLAYDJNZ R2,TH_DEL1RET;====================================================精品文檔放心下載;實時溫度值與設定報警溫度值TH、TL比較子程序謝謝閱讀;當實際溫度大于TH的設定值時,顯示“H”,繼電器關閉。精品文檔放心下載;當實際溫度小于TH的設定值時,顯示“O”,繼電器吸合。謝謝閱讀;當實際溫度小于TL的設定值時,顯示“L”。;閃動顯示標記符H、L、O;====================================================感謝閱讀TEMP_COMP:SETBTR0;啟動中斷MOVA,TEMP_THSUBBA,TEMP_ZH;減數>被減數,則JCCHULI1;借位標志位C=1,轉MOVA,TEMP_ZHSUBBA,TEMP_TL;減數>被減數,則JCCHULI2;借位標志位C=1,轉JNBFLAG2,T_COMP1;FLAG2=0,顯示標記字符MOV74H,#0AH;熄滅符LCALLDISP1JMPT_COMP2T_COMP1:MOV74H,#00HLCALLDISP1;顯示"O"T_COMP2:CLRRELAY;繼電器吸合CLRTR0;關閉中斷RET;---------------------------------------------;超溫處理;---------------------------------------------CHULI1:SETBRELAY;繼電器關閉JNBFLAG2,CHULI10MOV74H,#0AH;熄滅符LCALLDISP1JMPCHULI11CHULI10:MOV74H,#0DH!-LCALL DISP1;CALL BEEP_BL
;顯示"H";蜂鳴器響CHULI11:CLR TR0RET;---------------------------------------------謝謝閱讀
;關閉中斷;欠溫處理;---------------------------------------------精品文檔放心下載CHULI2:
;欠溫處理JNB FLAG2,CHULI20MOV 74H,#0AH ;熄滅符LCALL DISP1JMP CHULI21CHULI20: MOV 74H,#0CHLCALL DISP1 ;顯示"L";CALL BEEP_BL ;蜂鳴器響CHULI21: CLR TR0 ;關閉中斷RET;------------------------------------------------------------謝謝閱讀;把DS18B20暫存器里的溫度報警值拷貝到EEROM謝謝閱讀;------------------------------------------------------------精品文檔放心下載WRITE_E2:CALL RESETMOV A,#0CCH ;跳過ROM匹配LCALL WRITEMOV A,#48H ;溫度報警值拷貝到EEROM感謝閱讀LCALL WRITERET;--------------------------------------------------------------感謝閱讀;把DS18B20EEROM里的溫度報警值拷貝回暫存器感謝閱讀;-------------------------------------------------------------感謝閱讀READ_E2:CALL RESETMOV A,#0CCH
;跳過ROM匹配LCALL WRITEMOV A,#0B8H
;溫度報警值拷貝回暫存器CALL WRITERET;*****************************************************精品文檔放心下載處理溫度BCD碼子程序;****************************************************感謝閱讀CONVTEMP: MOV A,TEMPH ;判溫度是否零下謝謝閱讀ANL A,#80H!-JZTEMPC1;溫度零上轉CLRCMOVA,TEMPL;二進制數求補(雙字節(jié))CPLA;取反加1ADDA,#01HMOVTEMPL,AMOVA,TEMPH;-CPLAADDCA,#00HMOVTEMPH,A;TEMPHCHI=符號位MOVTEMPHC,#0BHSJMPTEMPC11TEMPC1:MOVTEMPHC,#0AH;TEMPC11:MOVA,TEMPHCSWAPAMOVTEMPHC,AMOVA,TEMPLANLA,#0FH;乘0.0625MOVDPTR,#TEMPDOTTABMOVCA,@A+DPTRMOVTEMPLC,A;TEMPLCLOW=小數部分BCDMOVA,TEMPL;整數部分ANLA,#0F0HSWAPAMOVTEMPL,AMOVA,TEMPHANLA,#0FHSWAPAORLA,TEMPLMOVTEMP_ZH,A;組合后的值存入TEMP_ZHLCALLHEX2BCD1MOVTEMPL,AANLA,#0F0HSWAPAORLA,TEMPHC;TEMPHCLOW=十位數BCDMOVTEMPHC,AMOVA,TEMPLANLA,#0FHSWAPA;TEMPLCHI=個位數BCDORLA,TEMPLCMOVTEMPLC,AMOVA,R7!-JZ TEMPC12ANL A,#0FHSWAP AMOV R7,AMOV A,TEMPHC
;TEMPHCHI=
百位數
BCDANL A,#0FHMOV TEMPHC,ATEMPC12: RET;-----------------------------------------------------------精品文檔放心下載小數部分碼表;-----------------------------------------------------------感謝閱讀TEMPDOTTAB:DB00H,01H,01H,02H,03H,03H,04H,04H,05H,06HDB06H,07H,08H,08H,09H,09H謝謝閱讀;===========================================================精品文檔放心下載;顯示區(qū)BCD碼溫度值刷新子程序;===========================================================感謝閱讀DISPBCD:MOVA,TEMPLCANLA,#0FHMOV70H,A;小數位MOVA,TEMPLCSWAPAANLA,#0FHMOV71H,A;個位MOVA,TEMPHCANLA,#0FHMOV72H,A;十位MOVA,TEMPHCSWAPAANLA,#0FHMOV73H,A;百位MOVA,TEMPHCANLA,#0F0HCJNEA,#010H,DISPBCD0SJMPDISPBCD2DISPBCD0:MOVA,TEMPHCANLA,#0FHJNZDISPBCD2;十位數是0MOVA,TEMPHC!-SWAP AANL A,#0FHMOV 73H,#0AH
;符號位不顯示MOV 72H,A
;十位數顯示符號DISPBCD2:
RET;***************************************************************謝謝閱讀溫度顯示子程序;***************************************************************謝謝閱讀;顯示數據在70H-73H單元內,用4位共陽數碼管顯示,P0口輸出段碼數據,謝謝閱讀;P2口作掃描控制,每個LED數碼管亮2MS時間再逐位循環(huán)。精品文檔放心下載DISP1:MOVR1,#70H;指向顯示數據首址MOVR5,#7FH;掃描控制字初值PLAY:MOVP0,#0FFHMOVA,R5;掃描字放入AMOVP2,AMOVA,@R1;取顯示數據到AMOVDPTR,#TAB;取段碼表地址MOVCA,@A+DPTR;查顯示數據對應段碼MOVP0,A;段碼放入P0口MOVA,R5JBACC.6,LOOP5;小數點處理CLRP0.7LOOP5:LCALLDL_MS;顯示2MSINCR1;指向下一個地址MOVA,R5;放回R5內JNBACC.3,ENDOUT;ACC.3=0時一次顯示結束RRA;A中數據循環(huán)左移MOVR5,A;放入R5中AJMPPLAY;跳回PLAY循環(huán)ENDOUT:MOVP0,#0FFH;一次顯示結束,P0口復位MOVP2,#0FFH;P2口復位RETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0C7H,89H感謝閱讀“0"“1"“2"“3"“4"“5"“6"“7"“8"“9"“滅"“-"“L”“H"精品文檔放心下載DL_MS: MOV R6,#0AH ;2MS延時程序,LED顯示程序用感謝閱讀DL1: MOV R7,#64HDL2: DJNZ R7,DL2!-DJNZ R6,DL1RET;******************************************************;單字節(jié)十六進制轉BCD謝謝閱讀;******************************************************HEX2BCD1:MOVB,#064H精品文檔放心下載DIV ABMOV R7,AMOV A,#0AHXCH A,BDIV ABSWAP AORL A,BRET;===============================================感謝閱讀;報警值TH、TL數據轉換;===============================================感謝閱讀ALERT_TL:MOV79H,#0CHMOV78H,#0BHMOVA,TEMP_TLMOVR0,#77HMOVB,#064HDIVABCJNEA,#01H,ALERT_TL1MOV@R0,AJMPALERT_TL2ALERT_TL1:MOVA,#0BH;顯示“-”MOV@R0,AALERT_TL2:MOVA,#0AHXCHA,BDIVABDECR0MOV@R0,AMOV7DH,ADECR0MOV@R0,BMOV7EH,BRET;-----------------------------------------------ALERT_TH:MOV79H,#0DHMOV78H,#0BH!-MOVA,TEMP_THMOVR0,#77HMOVB,#064HDIVABCJNEA,#01H,ALERT_TH1MOV@R0,AJMPALERT_TH2ALERT_TH1:MOVA,#0BH;顯示“-”MOV@R0,AALERT_TH2:MOVA,#0AHXCHA,BDIVABDECR0M
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025嶺南文化創(chuàng)意產業(yè)園項目啟動儀式籌辦服務合同協(xié)議書
- 2025含破碎錘挖掘機買賣合同書
- 2025咖啡粉批發(fā)合同
- 2025金屬制品委托加工合同
- 2023三年級英語上冊 Unit 5 Let's eat The first period第一課時說課稿 人教PEP
- 5 應對自然災害(說課稿)2023-2024學年統(tǒng)編版道德與法治六年級下冊
- 保母阿姨合同范例
- 人用工合同范例
- 上海檢測合同范例
- 金屬防水材料施工方案
- 2025年廣西教育出版社有限公司招聘筆試參考題庫含答案解析
- 中醫(yī)膏方臨床應用與制備工藝規(guī)范 DB32/T 4870-2024
- JJG(交通) 208-2024 車貨外廓尺寸動態(tài)現場檢測設備
- 蘇北四市(徐州、宿遷、淮安、連云港)2025屆高三第一次調研考試(一模)英語試卷(含答案)
- 2025年信息系統(tǒng)集成服務公司組織架構和業(yè)務流程
- 西藏自治區(qū)拉薩市城關區(qū)多校2024-2025學年六年級上學期期中英語試題
- 胸外科講課全套
- 2023年海南省公務員錄用考試《行測》真題卷及答案解析
- 公安法制培訓
- 中醫(yī)診斷學八綱辨證課件
- 淺談如何有效提高小學數學教學質量課件
評論
0/150
提交評論