资源描述:
《基于51单片机――Ds18B20温度采集LCD显示汇编程序.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、TEMP_ZHEQU24H;实测温度值存放单元TEMPLEQU25HTEMPHEQU26HTEMP_THEQU27H;高温报警值存放单元TEMP_TLEQU28H;低温报警值存放单元TEMPHCEQU29H;正、负温度值标记TEMPLCEQU2AHTEMPFCEQU2BHK1EQUP1.4;查询按键K2EQUP1.5;设置/调整键K3EQUP1.6;调整键K4EQUP1.7;确定键BEEPEQUP3.7;蜂鸣器RELAYEQUP1.3;指示灯LCD_XEQU2FH;LCD字符显示位置LCD_RS
2、EQUP2.0;LCD寄存器选择信号LCD_RWEQUP2.1;LCD读写信号LCD_ENEQUP2.2;LCD允许信号FLAG1EQU20H.0;DS18B20是否存在标志KEY_UDEQU20H.1;设定按键的增、减标志DQEQUP3.3;DS18B20数据信号ORG0000HLJMPMAINORG0030HMAIN:MOVSP,#60HMOVA,#00HMOVR0,#20H;将20H~2FH单元清零MOVR1,#10HCLEAR:MOV@R0,AINCR0DJNZR1,CLEARLCALL
3、SET_LCDLCALLRE_18B20START:LCALLRST;调用18B20复位子程序JNBFLAG1,START1;DS1820不存在LCALLMENU_OK;DS1820存在,调用显示正确信息子程序MOVTEMP_TH,#055H;设置TH初值85度MOVTEMP_TL,#019H;设置TL初值25度LCALLRE_18B20A;调用暂存器操作子程序LCALLWRITE_E2;写入DS18B20LCALLTEMP_BJ;显示温度标记JMPSTART2START1:LCALLMENU_
4、ERROR;调用显示出错信息子程序LCALLTEMP_BJ;显示温度标记SJMP$START2:LCALLRST;调用DS18B20复位子程序JNBFLAG1,START1;DS18B20不存在MOVA,#0CCH;跳过ROM匹配命令LCALLWRITEMOVA,#44H;温度转换命令LCALLWRITELCALLRSTMOVA,#0CCH;跳过ROM匹配LCALLWRITEMOVA,#0BEH;读温度命令LCALLWRITELCALLREAD;调用DS18B20数据读取操作子程序LCALLCO
5、NVTEMP;调用温度数据BCD码处理子程序LCALLDISPBCD;调用温度数据显示子程序LCALLCONV;调用LCD显示处理子程序LCALLTEMP_COMP;调用实测温度值与设定温度值比较子程序LCALLPROC_KEY;调用键扫描子程序SJMPSTART2;循环;***************************键扫描子程序*****************************PROC_KEY:JBK1,PROC_K1LCALLBEEP_BLJNBK1,$MOVDPTR,#M_
6、ALAX1MOVA,#1LCALLLCD_PRINTLCALLLOOK_ALARMJBK3,$LCALLBEEP_BLJMPPROC_K2PROC_K1:JBK2,PROC_ENDLCALLBEEP_BLJNBK2,$MOVDPTR,#RST_A1MOVA,#1LCALLLCD_PRINTLCALLSET_ALARMLCALLRE_18B20;将设定的TH,TL值写入DS18B20LCALLWRITE_E2PROC_K2:LCALLMENU_OKLCALLTEMP_BJPROC_END:RET;
7、***************************设定温度报警值TH、TL***************************SET_ALARM:LCALLLOOK_ALARMAS0:JBK1,AS00LCALLBEEP_BLJNBK1,$CPL20H.1;UP/DOWN标记AS00:JB20H.1,ASZ01;20H.1=1,增加JMPASJ01;20H.1=0,减小ASZ01:JBK2,ASZ02;TH值调整(增加)LCALLBEEP_BLINCTEMP_THMOVA,TEMP_THC
8、JNEA,#120,ASZ011MOVTEMP_TH,#0ASZ011:LCALLLOOK_ALARMMOVR5,#10LCALLDELAYJMPASZ01ASZ02:JBK3,ASZ03;TL值调整(增加)LCALLBEEP_BLINCTEMP_TLMOVA,TEMP_TLCJNEA,#99,ASZ021MOVTEMP_TL,#00HASZ021:LCALLLOOK_ALARMMOVR5,#10LCALLDELAYJMPASZ02ASZ03:JBK4,AS0;确定调整LCALLBEEP_BLJ