资源描述:
《DS18B20温度控制数码管显示(汇编非常详细).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、;DS18B20温度控制数码管显示(汇编非常详细)*;*1、P1.6=→进入设定温度报警值TL状态:*;*L--20*;*2、P1.6→进入设定温度报警值TH状态:*;*H--28*;*3、P1.6→返回*;*4、设定过程:P1.4→加键(UP),P1.5→减键(DOWN),可快速调。*;***TIMER_LDATA23HTIMER_HDATA24HTIMER_COUNDATA25HTEMPLDATA26HTEMPHDATA27HTEMP_THDATA28HTEMP_TLDATA29HTEMPHCDATA2AHTEMPLCDATA2BHTEMP_ZHDATA2CHBEEPEQUP3
2、.7DATA_LINEEQUP3.3RELAYEQUP1.3FLAG1EQU20H.0FLAG2EQU20H.1;-------------------------------------------------K1EQUP1.4K2EQUP1.5K3EQUP1.6K4EQUP1.7;=================================================ORG0000HJMPMAINORG000BHAJMPINT_T0;--------------------------------------------------MAIN:MOVSP,#30HMOV
3、TMOD,#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错误,报警JMPMAIN1STA
4、RT:MOVA,#0CCH;跳过ROM匹配CALLWRITEMOVA,#044H;发出温度转换命令CALLWRITECALLRESETMOVA,#0CCH;跳过ROM匹配CALLWRITEMOVA,#0BEH;发出读温度命令CALLWRITECALLREAD;读温度数据CALLCONVTEMPCALLDISPBCDCALLDISP1CALLSCANKEYLCALLTEMP_COMPJMPMAIN1;=====================================================;DS18B20复位与检测子程序;FLAG1=1OK,FLAG1=0ERROR;
5、======================================================RESET:SETBDATA_LINENOPCLRDATA_LINEMOVR0,#64H;主机发出延时600微秒的复位低脉冲MOVR1,#03HRESET1:DJNZR0,$MOVR0,#64HDJNZR1,RESET1SETBDATA_LINE;然后拉高数据线NOPMOVR0,#25HRESET2:JNBDATA_LINE,RESET3;等待DS18B20回应DJNZR0,RESET2JMPRESET4;延时RESET3:SETBFLAG1;置标志位,表示DS1820存在J
6、MPRESET5RESET4:CLRFLAG1;清标志位,表示DS1820不存在JMPRESET6RESET5:MOVR0,#064HDJNZR0,$;时序要求延时一段时间RESET6:SETBDATA_LINERET;===========================================================;;===========================================================WRITE:MOVR2,#8;一共8位数据CLRCYWR1:CLRDATA_LINE;开始写入DS18B20总线要处于复位(低)
7、状态MOVR3,#09DJNZR3,$;总线复位保持18微妙以上RRCA;把一个字节DATA分成8个BIT环移给CMOVDATA_LINE,C;写入一个BITMOVR3,#23DJNZR3,$;等待46微妙SETBDATA_LINE;重新释放总线NOPDJNZR2,WR1;写入下一个BITSETBDATA_LINERET;============================================================;从DS18B20中读出温度