(物联网)智能家居远程控制系统源程序智能家居远程控制系统刘庆宇;*****************************************************;Filename:BSHB_1_0_2.ASM;MCU:AT89S52OSC:6.0000MHz;IC:MT8870ISD4002LM38674LS04ULN280324C02;Display:LED*4;Buildby:LiuQingYu;Vision:V1.0.2;Date:2008-06-13;********************************************************;功能:利用电话线路,远程控制4组继电器的通断,控制电饭煲、电;暖风等家用电器。
可以设定延时通断。
恢复出厂设置时按住设;置按键按复位键即可恢复默认密码123456;默认开关状态为:关,延时为:无;;如需改变等待振铃次数,请搜索“振铃检测程序”并进行修改。
;;;寄存器组使用:;00:主程序;01:显示子程序;******************************************;输入输出引脚定义;******************************************;MT8870:数据P0.0~P0.3MT_INEQUP1;STD____INT0;ISD4002:;ISDINT____INT1MOSIBITP0.4SSBITP0.5SCLKBITP0.6;HD7279:DATBITP2.4CSBITP3.5CLKBITP3.6;24C02:SCLBITP1.6SDABITP1.7;继电器(摘机电路):JDQKBITP1.4;低电平有效;继电器1(控制高压)JDQ0_DFBBITP0.0;电饭煲JDQ1_DNFBITP0.1;电暖风JDQ2_KTBITP0.2;空调JDQ3_RSHBITP0.3;电热水器;延时指示灯:(低电平有效)LED0BITP2.0LED1BITP2.1LED2BITP2.2LED3BITP2.3;振铃检测ZHENLJCBITP1.5HUIFUBITP0.7;恢复出厂设置按键,默认密码123456,默认开关状态为:关,延时为:无;0=恢复出厂设置1=不恢复;使用时按住此按键按复位键即可;******************************************;变量定义;******************************************;工作状态寄存(00-07)GZZHTEQU20HYSH0_KGBIT00H;延时状态,1=开启0=关闭YSH1_KGBIT01HYSH2_KGBIT02HYSH3_KGBIT03HMIMABIT04H;GZZHT.1密码状态,是否已经输入错误一次1=是0=否STDBIT05H;有新数据输入1=有0=无XINMIMABIT06H;新密码校验位,校验两次输入密码是否一致1=不一致0=一致ZHL6CBIT07H;振铃次数已够,可以摘机1=可以0=不可以;工作状态寄存2(08-0F)GZZHT2EQU21H;位寻址寄存21H;NOINPUTBIT08H;10秒没有新数据输入,自动挂机。
1=可以挂机0=不可以IS15SBIT09H;DEC_ONBIT0AH;是否显示小数点:1=显示0=不显示ISDINTBIT0BH;4002中断置位标志OUT_PLAYBIT0CH;从播放进程中终止标志1=跳过后面的语音提示;JDQ0_YSHBIT0AH;继电器延时状态1=开0=关;JDQ1_YSHBIT0BH;JDQ2_YSHBIT0CH;JDQ3_YSHBIT0DH;YANSHIBIT05H;GZZHT.2延时1=开启0=关闭;YANSHIKGBIT06H;GZZHT.3延时状态1=延时开0=延时关;YSH_OKBIT0BH;延时数据已准备好,可以写入1=可以0=不可以M1EQU22H;密码寄存(1---6)M2EQU23HM3EQU24HM4EQU25HM5EQU26HM6EQU27HDINGSHIEQU28H;定时时间临时存储DATA_INEQU29H;HD7279输入输出缓存DATA_OUTEQU2AHPLAY_ADDEQU2BHBAK_A_T1EQU2CHYSH0_TMEQU30H;延时时间寄存YSH1_TMEQU31HYSH2_TMEQU32HYSH3_TMEQU33HOUT_BWEQU34H;延时数据输出临时存储(用于显示)OUT_SHWEQU35HOUT_GWEQU36HMIMAJSHEQU37H;【密码计数】对输入的密码个数进行计数;ZHENLINGEQU31H;【振铃计数】对振铃次数进行计数;TIMEMOODEQU29H;定时器模式:03=关,80=4096Hz,81=64Hz,82=1Hz,83=1/60Hz MTEMPEQU38H;记录密码输入错误次数TEMPEQU39H;第一次输入新密码临时存储(3AH~3FH)MT1EQU3FHT0_TMPEQU40H;T0临时存储,每隔0.0005秒加1T0_TMP_SEQU41H;T0临时存储,每隔0.1S减1T0_TMP_MEQU42H;T0临时存储,每隔0.5S减1BAK_AEQU43H;中断期间A的备份BAK_R1EQU44H;BAK_RS1EQU45HBAK_RS0EQU46HBAK_A_SOUNDEQU47HBAK_DPHEQU48HBAK_DPLEQU49H;延时数据临时存储YSH_BWEQU4AHYSH_SHWEQU4BHYSH_GWEQU4CHADDRESSLEQU4DH;ISD4002放音地址低位PANDAHEQU4EH;ISD4002放音地址高位TEMP2EQU4FH;密码临时存储TEMP3EQU50H;T1中断检测临时存储TIMEEQU51H;倒计时定时时间临时存储,长度1字节DISP_CHTEQU52H;更换显示继电器倒计时时间计数DISP_CHEQU53H;显示开关指示(1-4)YSH0_KG_1EQU54H;延时状态,1=开启0=关闭YSH1_KG_1EQU55HYSH2_KG_1EQU56HYSH3_KG_1EQU57HSOUND_OUT_BWEQU58H;延时数据输出临时存储(用于剩余时间提示)SOUND_OUT_SHWEQU59HSOUND_OUT_GWEQU5AHZHL_CSHEQU5BH;;******************************************;主程序;******************************************ORG0000HLJMPMAINORG0003HLJMPSTD_INORG00BHLJMPT0STOPORG0013HLJMPINT1_STOPORG001BHLJMPT1STOPORG0030H;全局初始化MAIN:MOVSP,#60H;堆栈MOVIE,#00H;禁止所有中断LCALLLOAD;载入状态MOVMIMAJSH,#00HMOVDINGSHI,#00HMOVGZZHT,#00HMOVGZZHT2,#00HMOVT0_TMP,#200;T0临时存储,每隔0.0005秒加1MOVT0_TMP_S,#5;T0临时存储,每隔0.1S加1MOVT0_TMP_M,#120;T0临时存储,每隔1S加1MOVDISP_CHT,#4;更换显示继电器倒计时时间计数MOVDISP_CH,#1;显示开关指示(1-4)MOVTMOD,#02H;定时器0,方式2(8位自装载)MOVTH0,#06HMOVTL0,#06H;MOVIP,#00000100B;设置外部中断1为高优先级中断SETBIT1;脉冲触发方式SETBET0;允许T0中断SETBEA;允许中断SETBTR0;启动T0定时器SETBIT0;脉冲触发方式;SETBEX0CLROUT_PLAY;使用寄存器组00CLRRS1CLRRS0LCALLDELAY_30msJNBHUIFU,HUIFU1;是否恢复出厂设置MAINLOOP:JBHUIFU,LP1LCALLDELAY_30MSJNBHUIFU,LP2LP1:CLRZHL6C;清振铃6次标志位LCALLZHENLING1;检测振铃JNBZHL6C,MAINLOOP;振铃到6次,可以摘机LP2:LCALLZHAIJI;振铃达到6次,摘机SJMPMAINLOOP;---------------------------------------------------;恢复出厂设置HUIFU1:JNBHUIFU,$MOVM6,#01HMOVM5,#02HMOVM4,#03HMOVM3,#04HMOVM2,#05HMOVM1,#06HLCALLSAVELJMPMAINLOOP;**********************************************;摘机子程序;**********************************************ZHAIJI:;LCALLPOWEROFF;屏蔽ISD4002,以免影响DTMF信号识别CLRJDQK;继电器摘机LCALLDELAY_BSLCALLDELAY_BSCLRMIMACLREX0;不允许语音提示中途退出MOV A,#13LCALLSOUND;语音提示:欢迎您使用智能家居远程控制系统,请输入密码SETBEX0ZHJ_MM:LCALLSTDJC;检测输入数据,结果由A带回JBNOINPUT,EXIT_1ZHJ_MM_JC1:MOVMIMAJSH,#00HINCMIMAJSHCJNEA,M6,ZHJ_MMC;校验密码第一位是否正确;JBJDQK,EXITLCALLSTDJCJBNOINPUT,EXIT_1INCMIMAJSHCJNEA,M5,ZHJ_MMC;校验密码第二位是否正确;JBJDQK,EXITLCALLSTDJCJBNOINPUT,EXIT_1INCMIMAJSHCJNEA,M4,ZHJ_MMC;校验密码第三位是否正确;JBJDQK,EXITT3LCALLSTDJCJBNOINPUT,EXIT_1INCMIMAJSHCJNEA,M3,ZHJ_MMC;校验密码第四位是否正确;JBJDQK,EXITLCALLSTDJCJBNOINPUT,EXIT_1INCMIMAJSHCJNEA,M2,ZHJ_MMC;校验密码第五位是否正确;JBJDQK,EXITLCALLSTDJCJBNOINPUT,EXIT_1INCMIMAJSHCJNEA,M1,ZHJ_MMC;校验密码第六位是否正确;JBJDQK,EXITLJMPZHJ_2;----------------------------------------------------------;密码错ZHJ_MMC:LCALLSTDJC;按键检测JBNOINPUT,EXIT_1INCMIMAJSHMOV A,MIMAJSH;密码输入次数存ACLRCSUBBA,#6;是否已输入6位JCZHJ_MMC;未输入六位,继续检测按键JBMIMA,ZHJ_MMC1LCALLDELAY_BSMOV A,#33;语音提示:输入错误,请重新输入LCALLSOUNDSETBMIMALJMPZHJ_MMZHJ_MMC1:LJMPEXIT;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$EXIT_1:LJMPEXIT;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$;密码正确ZHJ_2:SETBEX0;允许语音提示中途退出LCALLDELAY_BSMOV A,#14;语音提示:开关状态查询与修改请按"1",修改密码请按"2"LCALLSOUNDJBOUT_PLAY,ZHJ_JC1MOV A,#15;语音提示:挂机请按"*"号键LCALLSOUNDJBOUT_PLAY,ZHJ_JC1;语音播放中有按键输入,直接跳转到按键识别部分LCALLSTDJC;检测按键JBNOINPUT,EXIT_1ZHJ_JC1:CJNEA,#01H,ZHJ_GMM_1;若按键为:1 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%状态查询;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ZHJ_ZHT:LCALLDELAY_30MSSETBEX0MOV A,#23;请根据语音提示选择设备LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N;语音播放中有按键输入,直接跳转到按键识别部分MOV A,#1;语音提示:1LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_NMOV A,#16;语音提示:电饭煲LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_NLCALLDELAY_BSMOV A,#2;语音提示:2LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_NMOV A,#17;语音提示:电暖风LCALLDELAY_BSLCALLSOUNDJBOUT_PLAY,ZHJ_DFB_NMOV A,#3;语音提示:3LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_NMOV A,#18;语音提示:空调LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_NLCALLDELAY_BSMOV A,#4;语音提示:4LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_NMOV A,#19;语音提示:电热水器LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_NLCALLSTDJC;检测按键JBNOINPUT,EXIT_1AJMPZHJ_DFB_N;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ZHJ_GMM_1:LJMPZHJ_GMMZHJ_DNF_1:LJMPZHJ_DNFZHJ_DNF_N_1:LJMPZHJ_DNF_N;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;%%%%%%%%%%%%%%%%%%%%%%%电饭煲状态查询%%%%%%%%%%%%%%%%%%%%%%% ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ZHJ_DFB_N:CJNEA,#01H,ZHJ_DNF_N_1;若按键为:1ZHJ_DFB:CLREX0;禁止语音提示中途退出MOV A,#16;语音提示:电饭煲LCALLSOUNDMOV A,#36;语音提示:的状态为LCALLSOUNDJNBYSH0_KG,ZHJ_DFB2;无延时则跳转JNBJDQ0_DFB,ZHJ_DFB1;延时关则跳转MOV A,#26;语音提示:延时开LCALLSOUNDMOV A,#0;继电器0剩余时间提示LCALLSOUND_YSH;延时剩余时间提示子程序AJMPZHJ_DFBXGZHJ_DFB1:MOV A,#27;语音提示:延时关LCALLSOUNDMOV A,#0;继电器0剩余时间提示LCALLSOUND_YSH;延时剩余时间提示子程序AJMPZHJ_DFBXGZHJ_DFB2:JNBJDQ0_DFB,ZHJ_0_KMOV A,#20;语音提示:关LCALLSOUNDAJMPZHJ_DFBXGZHJ_0_K:MOV A,#21;语音提示:开LCALLSOUND ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%电饭煲状态修改%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ZHJ_DFBXG:SETBEX0LCALLDELAY_30MSSETBEX0;允许语音提示中途退出MOV A,#24;语音提示:开启LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_SHBMOV A,#16;语音提示:电饭煲LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_SHBMOV A,#28;语音提示:请按LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_SHBMOV A,#1;语音提示:1LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_SHBMOV A,#25;语音提示:关闭LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_SHBMOV A,#16;语音提示:电饭煲LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_SHBMOV A,#28;语音提示:请按LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_SHBMOV A,#2;语音提示:2LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_SHBMOV A,#26;语音提示:延时开LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_SHBMOV A,#28;语音提示:请按LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_SHBMOV A,#3;语音提示:3LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_SHBMOV A,#27;语音提示:延时关LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_SHBMOV A,#28;语音提示:请按LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_SHBMOV A,#4;语音提示:4LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_SHBMOV A,#15;语音提示:返回上级请按9,挂机请按"*"号键LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_SHBLCALLSTDJC;检测按键JBNOINPUT,EXIT_2;--------------------------------------------------------------------------;开启电饭煲ZHJ_DFB_SHB:CJNEA,#01H,ZHJ_DFBG;若按键为:1CLRJDQ0_DFBSETBLED0CLRYSH0_KGZHJ_DFBK4:MOV A,#16;语音提示:电饭煲LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T2MOV A,#30;语音提示:已开启LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T2LJMPZHJ_ZHT;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXIT_2:LJMPEXITZHJ_DFB_N_T2:LJMPZHJ_DFB_N;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ;--------------------------------------------------------------------------;关闭电饭煲ZHJ_DFBG:CJNEA,#02H,ZHJ_DFBY;若按键为:2SETBJDQ0_DFBSETBLED0CLRYSH0_KGZHJ_DFBG4:MOV A,#16;语音提示:电饭煲LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T2MOV A,#31;语音提示:已关闭LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T2LJMPZHJ_ZHT;--------------------------------------------------------------------------;电饭煲延时开ZHJ_DFBY:CJNEA,#03H,ZHJ_DFBY2ZHJ_DFBY_2:LCALL YSH_IN;调用延时输入子程序JBJDQK,EXIT_2MOVYSH0_TM,TIME;存延时数据SETBJDQ0_DFBCLRLED0;开延时指示灯SETBYSH0_KG;置位延时开标志CLREX0MOV A,#26;延时开LCALLSOUNDMOV A,#32;已设定LCALLSOUNDMOV A,#0;继电器0剩余时间提示LCALLSOUND_YSH;延时剩余时间提示子程序SETBEX0LJMPZHJ_ZHT;延时设定完毕,转状态查询页;--------------------------------------------------------------------------;电饭煲延时关ZHJ_DFBY2:CJNEA,#04H,ZHJ_DFBFZHJ_DFBY2_2:LCALL YSH_IN;调用延时输入子程序JBJDQK,EXIT_3MOVYSH0_TM,TIME;存延时数据CLRJDQ0_DFBCLRLED0;开延时指示灯SETBYSH0_KG;置位延时开标志CLREX0MOV A,#27;延时关LCALLSOUNDMOV A,#32;已设定LCALLSOUNDMOV A,#0;继电器0剩余时间提示LCALLSOUND_YSH;延时剩余时间提示子程序SETBEX0LJMPZHJ_ZHT;延时设定完毕,转状态查询页;-----------------------------------------------------------------------------ZHJ_DFBF:CJNEA,#09H,ZHJ_DFBF1;按键为9LJMPZHJ_ZHTZHJ_DFBF1:CJNEA,#00001011B,ZHJ_DFBF2;按键为"*"LJMPEXIT_3ZHJ_DFBF2:MOVA,#33;语音提示:输入错误,请重新输入LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_SHB_T1LJMPZHJ_DFBXG;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXIT_3:LJMPEXITZHJ_KT_1:LJMPZHJ_KTZHJ_KT_N_1:LJMPZHJ_KT_NZHJ_DFB_SHB_T1:LJMPZHJ_DFB_SHB;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;%%%%%%%%%%%%%%%%%%%%%%%电暖风状态查询%%%%%%%%%%%%%%%%%%%%%%% ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ZHJ_DNF_N:CJNEA,#02H,ZHJ_KT_N_1;若按键为:1ZHJ_DNF:CLREX0;禁止语音提示中途退出MOV A,#17;语音提示:电暖风LCALLSOUNDMOV A,#36;语音提示:的状态为LCALLSOUNDJNBYSH1_KG,ZHJ_DNF2;无延时则跳转JNBJDQ1_DNF,ZHJ_DNF1;延时关则跳转MOV A,#26;语音提示:延时开LCALLSOUNDMOV A,#1;继电器1剩余时间提示LCALLSOUND_YSH;延时剩余时间提示子程序AJMPZHJ_DNFXGZHJ_DNF1:MOVA,#27;语音提示:延时关LCALLSOUNDMOV A,#1;继电器1剩余时间提示LCALLSOUND_YSH;延时剩余时间提示子程序AJMPZHJ_DNFXGZHJ_DNF2:JNBJDQ1_DNF,ZHJ_1_KMOV A,#20;语音提示:关LCALLSOUNDAJMPZHJ_DNFXGZHJ_1_K:MOV A,#21;语音提示:开LCALLSOUND ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%电暖风状态修改%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ZHJ_DNFXG:LCALLDELAY_30MSSETBEX0;允许语音提示中途退出MOV A,#24;语音提示:开启LCALLSOUNDJBOUT_PLAY,ZHJ_DNF_SHBMOV A,#17;语音提示:电暖风LCALLSOUNDJBOUT_PLAY,ZHJ_DNF_SHBMOV A,#28;语音提示:请按LCALLSOUNDJBOUT_PLAY,ZHJ_DNF_SHBMOV A,#1;语音提示:1LCALLSOUNDJBOUT_PLAY,ZHJ_DNF_SHBMOV A,#25;语音提示:关闭LCALLSOUNDJBOUT_PLAY,ZHJ_DNF_SHBMOV A,#17;语音提示:电暖风LCALLSOUNDJBOUT_PLAY,ZHJ_DNF_SHBMOV A,#28;语音提示:请按LCALLSOUNDJBOUT_PLAY,ZHJ_DNF_SHBMOV A,#2;语音提示:2LCALLSOUNDJBOUT_PLAY,ZHJ_DNF_SHBMOV A,#26;语音提示:延时开LCALLSOUNDJBOUT_PLAY,ZHJ_DNF_SHBMOV A,#28;语音提示:请按LCALLSOUNDJBOUT_PLAY,ZHJ_DNF_SHBMOV A,#3;语音提示:3LCALLSOUNDJBOUT_PLAY,ZHJ_DNF_SHBMOV A,#27;语音提示:延时关LCALLSOUNDJBOUT_PLAY,ZHJ_DNF_SHBMOV A,#28;语音提示:请按LCALLSOUNDJBOUT_PLAY,ZHJ_DNF_SHBMOV A,#4;语音提示:4LCALLSOUNDJBOUT_PLAY,ZHJ_DNF_SHBMOV A,#15;语音提示:返回上级请按9,挂机请按"*"号键LCALLSOUNDJBOUT_PLAY,ZHJ_DNF_SHBLCALLSTDJC;检测按键JBNOINPUT,EXIT_4;-------------------------------------------------------------------------- ;开启电暖风ZHJ_DNF_SHB:CJNEA,#01H,ZHJ_DNFG;若按键为:1 CLRJDQ1_DNFSETBLED1CLRYSH1_KGZHJ_DNFK4:MOV A,#17;语音提示:电暖风LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T3MOV A,#30;语音提示:已开启LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T3LJMPZHJ_ZHT;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXIT_4:LJMPEXITZHJ_DFB_N_T3:LJMPZHJ_DFB_N;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ;--------------------------------------------------------------------------;关闭电暖风ZHJ_DNFG:CJNEA,#02H,ZHJ_DNFY;若按键为:2SETBJDQ1_DNFSETBLED1CLRYSH1_KGZHJ_DNFG4:MOV A,#17;语音提示:电暖风LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T3MOV A,#31;语音提示:已关闭LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T3LJMPZHJ_ZHT;--------------------------------------------------------------------------;电暖风延时开ZHJ_DNFY:CJNEA,#03H,ZHJ_DNFY2ZHJ_DNFY_2:LCALL YSH_IN;调用延时输入子程序JBJDQK,EXIT_4MOVYSH1_TM,TIME;存延时数据SETBJDQ1_DNFCLRLED1;开延时指示灯SETBYSH1_KG;置位延时开标志CLREX0MOV A,#26;延时开LCALLSOUNDMOV A,#32;已设定LCALLSOUNDMOV A,#1;继电器1剩余时间提示LCALLSOUND_YSH;延时剩余时间提示子程序SETBEX0LJMPZHJ_ZHT;延时设定完毕,转状态查询页;--------------------------------------------------------------------------;电暖风延时关ZHJ_DNFY2:CJNEA,#04H,ZHJ_DNFFZHJ_DNFY2_2:LCALL YSH_IN;调用延时输入子程序JBJDQK,EXIT_5MOVYSH1_TM,TIME;存延时数据CLRJDQ1_DNFCLRLED1;开延时指示灯SETBYSH1_KG;置位延时开标志CLREX0MOV A,#27;延时关LCALLSOUNDMOV A,#32;已设定LCALLSOUNDMOV A,#1;继电器1剩余时间提示LCALLSOUND_YSH;延时剩余时间提示子程序SETBEX0LJMPZHJ_ZHT;延时设定完毕,转状态查询页;-----------------------------------------------------------------------------ZHJ_DNFF:CJNEA,#09H,ZHJ_DNFF1;按键为9LJMPZHJ_ZHTZHJ_DNFF1:CJNEA,#00001011B,ZHJ_DNFF2;按键为"*"LJMPEXIT_3ZHJ_DNFF2:MOV A,#33;语音提示:输入错误,请重新输入LCALLSOUNDJBOUT_PLAY,ZHJ_DNF_SHB_T1LJMPZHJ_DNFXG;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ZHJ_DNF_SHB_T1:LJMPZHJ_DNF_SHBEXIT_5:LJMPEXITZHJ_RSH_1:LJMPZHJ_RSHZHJ_RSH_N_1:LJMPZHJ_RSH_N;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;%%%%%%%%%%%%%%%%%%%%%%%空调状态查询%%%%%%%%%%%%%%%%%%%%%%% ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ZHJ_KT_N:CJNEA,#03H,ZHJ_RSH_N_1;若按键为:1ZHJ_KT:CLREX0;禁止语音提示中途退出MOV A,#18;语音提示:空调LCALLSOUNDMOV A,#36;语音提示:的状态为LCALLSOUNDJNBYSH2_KG,ZHJ_KT2;无延时则跳转JNBJDQ2_KT,ZHJ_KT1;延时关则跳转MOV A,#26;语音提示:延时开LCALLSOUNDMOV A,#2;继电器2剩余时间提示LCALLSOUND_YSH;延时剩余时间提示子程序AJMPZHJ_KTXGZHJ_KT1:MOV A,#27;语音提示:延时关LCALLSOUNDMOV A,#2;继电器2剩余时间提示LCALLSOUND_YSH;延时剩余时间提示子程序AJMPZHJ_KTXGZHJ_KT2:JNBJDQ2_KT,ZHJ_2_KMOV A,#20;语音提示:关LCALLSOUNDAJMPZHJ_KTXGZHJ_2_K:MOV A,#21;语音提示:开LCALLSOUND ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%空调状态修改%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ZHJ_KTXG:LCALLDELAY_30MSSETBEX0;允许语音提示中途退出MOV A,#24;语音提示:开启LCALLSOUNDJBOUT_PLAY,ZHJ_KT_SHBMOV A,#18;语音提示:空调LCALLSOUNDJBOUT_PLAY,ZHJ_KT_SHBMOV A,#28;语音提示:请按LCALLSOUNDJBOUT_PLAY,ZHJ_KT_SHBMOV A,#1;语音提示:1LCALLSOUNDJBOUT_PLAY,ZHJ_KT_SHBMOV A,#25;语音提示:关闭LCALLSOUNDJBOUT_PLAY,ZHJ_KT_SHBMOV A,#18;语音提示:空调LCALLSOUNDJBOUT_PLAY,ZHJ_KT_SHBMOV A,#28;语音提示:请按LCALLSOUNDJBOUT_PLAY,ZHJ_KT_SHBMOV A,#2;语音提示:2LCALLSOUNDJBOUT_PLAY,ZHJ_KT_SHBMOV A,#26;语音提示:延时开LCALLSOUNDJBOUT_PLAY,ZHJ_KT_SHBMOV A,#28;语音提示:请按LCALLSOUNDJBOUT_PLAY,ZHJ_KT_SHBMOV A,#3;语音提示:3LCALLSOUNDJBOUT_PLAY,ZHJ_KT_SHBMOV A,#27;语音提示:延时关LCALLSOUNDJBOUT_PLAY,ZHJ_KT_SHBMOV A,#28;语音提示:请按LCALLSOUNDJBOUT_PLAY,ZHJ_KT_SHBMOV A,#4;语音提示:4LCALLSOUNDJBOUT_PLAY,ZHJ_KT_SHBMOV A,#15;语音提示:返回上级请按9,挂机请按"*"号键LCALLSOUNDJBOUT_PLAY,ZHJ_KT_SHBLCALLSTDJC;检测按键JBNOINPUT,EXIT_6;--------------------------------------------------------------------------;开启空调ZHJ_KT_SHB:CJNEA,#01H,ZHJ_KTG;若按键为:1CLRJDQ2_KTSETBLED2CLRYSH2_KGZHJ_KTK4:MOV A,#18;语音提示:空调LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T4MOV A,#30;语音提示:已开启LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T4LJMPZHJ_ZHT;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXIT_6:LJMPEXITZHJ_DFB_N_T4:LJMPZHJ_DFB_N;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ;--------------------------------------------------------------------------;关闭空调ZHJ_KTG:CJNEA,#02H,ZHJ_KTY;若按键为:2 SETBJDQ2_KTSETBLED2CLRYSH2_KGZHJ_KTG4:MOV A,#18;语音提示:空调LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T4MOV A,#31;语音提示:已关闭LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T4LJMPZHJ_ZHT;-------------------------------------------------------------------------- ;空调延时开ZHJ_KTY:CJNEA,#03H,ZHJ_KTY2ZHJ_KTY_2:LCALL YSH_IN;调用延时输入子程序JBJDQK,EXIT_6MOVYSH2_TM,TIME;存延时数据SETBJDQ2_KTCLRLED2;开延时指示灯SETBYSH2_KG;置位延时开标志CLREX0MOV A,#26;延时开LCALLSOUNDMOV A,#32;已设定LCALLSOUNDMOV A,#2;继电器2剩余时间提示LCALLSOUND_YSH;延时剩余时间提示子程序SETBEX0LJMPZHJ_ZHT;延时设定完毕,转状态查询页;-------------------------------------------------------------------------- ;空调延时关ZHJ_KTY2:CJNEA,#04H,ZHJ_KTFZHJ_KTY2_2:LCALL YSH_IN;调用延时输入子程序JBJDQK,EXIT_8MOVYSH2_TM,TIME;存延时数据CLRJDQ2_KTCLRLED2;开延时指示灯SETBYSH2_KG;置位延时开标志CLREX0MOV A,#27;延时关LCALLSOUNDMOV A,#32;已设定LCALLSOUNDMOV A,#2;继电器2剩余时间提示LCALLSOUND_YSH;延时剩余时间提示子程序SETBEX0LJMPZHJ_ZHT;延时设定完毕,转状态查询页;-----------------------------------------------------------------------------ZHJ_KTF:CJNEA,#09H,ZHJ_KTF1;按键为9LJMPZHJ_ZHTZHJ_KTF1:CJNEA,#00001011B,ZHJ_KTF2;按键为"*"LJMPEXIT_3ZHJ_KTF2:MOV A,#33;语音提示:输入错误,请重新输入LCALLSOUNDJBOUT_PLAY,ZHJ_KT_SHB_T1LJMPZHJ_KTXG;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXIT_8:LJMPEXITZHJ_KT_SHB_T1:LJMPZHJ_KT_SHBZHJ_ERR_1:LJMPZHJ_ERR;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;%%%%%%%%%%%%%%%%%%%%%%%电热水器状态查询%%%%%%%%%%%%%%%%%%%%%%% ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ZHJ_RSH_N:CJNEA,#04H,ZHJ_ERR_1;若按键为:1ZHJ_RSH:CLREX0;禁止语音提示中途退出MOV A,#19;语音提示:电热水器LCALLSOUNDMOV A,#36;语音提示:的状态为LCALLSOUNDJNBYSH3_KG,ZHJ_RSH2;无延时则跳转JNBJDQ3_RSH,ZHJ_RSH1;延时关则跳转MOV A,#26;语音提示:延时开LCALLSOUNDMOV A,#3;继电器3剩余时间提示LCALLSOUND_YSH;延时剩余时间提示子程序AJMPZHJ_RSHXGZHJ_RSH1:MOV A,#27;语音提示:延时关LCALLSOUNDMOV A,#3;继电器3剩余时间提示LCALLSOUND_YSH;延时剩余时间提示子程序AJMPZHJ_RSHXGZHJ_RSH2:JNBJDQ3_RSH,ZHJ_3_KMOV A,#20;语音提示:关LCALLSOUNDAJMPZHJ_RSHXGZHJ_3_K:MOV A,#21;语音提示:开LCALLSOUND ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%电热水器状态修改%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ZHJ_RSHXG:LCALLDELAY_30MSSETBEX0;允许语音提示中途退出MOV A,#24;语音提示:开启LCALLSOUNDJBOUT_PLAY,ZHJ_RSH_SHBMOV A,#19;语音提示:电热水器LCALLSOUNDJBOUT_PLAY,ZHJ_RSH_SHBMOV A,#28;语音提示:请按LCALLSOUNDJBOUT_PLAY,ZHJ_RSH_SHBMOV A,#1;语音提示:1LCALLSOUNDJBOUT_PLAY,ZHJ_RSH_SHBMOV A,#25;语音提示:关闭LCALLSOUNDJBOUT_PLAY,ZHJ_RSH_SHBMOV A,#19;语音提示:电热水器LCALLSOUNDJBOUT_PLAY,ZHJ_RSH_SHBMOV A,#28;语音提示:请按LCALLSOUNDJBOUT_PLAY,ZHJ_RSH_SHBMOV A,#2;语音提示:2LCALLSOUNDJBOUT_PLAY,ZHJ_RSH_SHBMOV A,#26;语音提示:延时开LCALLSOUNDJBOUT_PLAY,ZHJ_RSH_SHBMOV A,#28;语音提示:请按LCALLSOUNDJBOUT_PLAY,ZHJ_RSH_SHBMOV A,#3;语音提示:3LCALLSOUNDJBOUT_PLAY,ZHJ_RSH_SHBMOV A,#27;语音提示:延时关LCALLSOUNDJBOUT_PLAY,ZHJ_RSH_SHBMOV A,#28;语音提示:请按LCALLSOUNDJBOUT_PLAY,ZHJ_RSH_SHBMOV A,#4;语音提示:4LCALLSOUNDJBOUT_PLAY,ZHJ_RSH_SHBMOV A,#15;语音提示:返回上级请按9,挂机请按"*"号键LCALLSOUNDJBOUT_PLAY,ZHJ_RSH_SHBLCALLSTDJC;检测按键JBNOINPUT,EXIT_7;--------------------------------------------------------------------------;开启电热水器ZHJ_RSH_SHB:CJNEA,#01H,ZHJ_RSHG;若按键为:1CLRJDQ3_RSHSETBLED3CLRYSH3_KGZHJ_RSHK4:MOV A,#19;语音提示:电热水器LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T5MOV A,#30;语音提示:已开启LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T5LJMPZHJ_ZHT;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXIT_7:LJMPEXITZHJ_DFB_N_T5:LJMPZHJ_DFB_N;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ;--------------------------------------------------------------------------;关闭电热水器ZHJ_RSHG:CJNEA,#02H,ZHJ_RSHY;若按键为:2SETBJDQ3_RSHSETBLED3CLRYSH3_KGZHJ_RSHG4:MOV A,#19;语音提示:电热水器LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T5MOV A,#31;语音提示:已关闭LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T5LJMPZHJ_ZHT;--------------------------------------------------------------------------;电热水器延时开ZHJ_RSHY:CJNEA,#03H,ZHJ_RSHY2ZHJ_RSHY_2:LCALL YSH_IN;调用延时输入子程序JBJDQK,EXIT_7MOVYSH3_TM,TIME;存延时数据SETBJDQ3_RSHCLRLED3;开延时指示灯SETBYSH3_KG;置位延时开标志CLREX0MOV A,#26;延时开LCALLSOUNDMOV A,#32;已设定LCALLSOUNDMOV A,#3;继电器3剩余时间提示LCALLSOUND_YSH;延时剩余时间提示子程序SETBEX0LJMPZHJ_ZHT;延时设定完毕,转状态查询页;-------------------------------------------------------------------------- ;电热水器延时关ZHJ_RSHY2:CJNEA,#04H,ZHJ_RSHFZHJ_RSHY2_2:LCALL YSH_IN;调用延时输入子程序JBJDQK,EXITMOVYSH3_TM,TIME;存延时数据CLRJDQ3_RSHCLRLED3;开延时指示灯SETBYSH3_KG;置位延时开标志CLREX0MOV A,#27;延时关LCALLSOUNDMOV A,#32;已设定LCALLSOUNDMOV A,#3;继电器3剩余时间提示LCALLSOUND_YSH;延时剩余时间提示子程序SETBEX0LJMPZHJ_ZHT;延时设定完毕,转状态查询页;----------------------------------------------------------------------------- ZHJ_RSHF:CJNEA,#09H,ZHJ_RSHF1;按键为9LJMPZHJ_ZHTZHJ_RSHF1:CJNEA,#00001011B,ZHJ_RSHF2;按键为"*" LJMPEXIT_3ZHJ_RSHF2:MOVA,#33;语音提示:输入错误,请重新输入LCALLSOUNDJBOUT_PLAY,ZHJ_RSH_SHB_T1LJMPZHJ_RSHXGZHJ_RSH_SHB_T1:LJMPZHJ_RSH_SHBZHJ_DFB_N_T1:LJMPZHJ_DFB_N;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;%%%%%%%%%%%%%%%%%%%%%%%输入错误%%%%%%%%%%%%%%%%%%%%%%% ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ZHJ_ERR:MOV A,#33;语音提示:输入错误,请重新输入LCALLSOUNDJBOUT_PLAY,ZHJ_DFB_N_T1LJMPZHJ_ZHT;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;%%%%%%%%%%%%%%%%%%%%%%%挂机%%%%%%%%%%%%%%%%%%%%%%% ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ EXIT:SETBJDQKMOVMIMAJSH,#00HLCALLSAVERET;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ZHJ_GJ_T1:LJMPZHJ_GJ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;%%%%%%%%%%%%%%%%%%%%%%%修改密码%%%%%%%%%%%%%%%%%%%%%%% ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ZHJ_GMM:CLREX0CJNEA,#02H,ZHJ_GJ_T1;若按键为:2;修改密码LCALLDELAY_BSZHJ_GMM_RE:MOV A,#35;语音提示:请输入6位新密码,按"#"号键结束LCALLSOUND;JBOUT_PLAY,ZHJ_GMM_SHBMOVR1,#06H;密码位数MOVR0,#MT1;密码位首地址SETBXINMIMA;新密码校验位置1。