智能家居远程控制系统源程序1.docx
- 文档编号:5857500
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:66
- 大小:31.82KB
智能家居远程控制系统源程序1.docx
《智能家居远程控制系统源程序1.docx》由会员分享,可在线阅读,更多相关《智能家居远程控制系统源程序1.docx(66页珍藏版)》请在冰豆网上搜索。
智能家居远程控制系统源程序1
智能家居远程控制系统
刘庆宇
;*****************************************************
;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.3
MT_INEQUP1
;STD____INT0
;ISD4002:
;ISDINT____INT1
MOSIBITP0.4
SSBITP0.5
SCLKBITP0.6
;HD7279:
DATBITP2.4
CSBITP3.5
CLKBITP3.6
;24C02:
SCLBITP1.6
SDABITP1.7
;继电器(摘机电路):
JDQKBITP1.4;低电平有效
;继电器1(控制高压)
JDQ0_DFBBITP0.0;电饭煲
JDQ1_DNFBITP0.1;电暖风
JDQ2_KTBITP0.2;空调
JDQ3_RSHBITP0.3;电热水器
;延时指示灯:
(低电平有效)
LED0BITP2.0
LED1BITP2.1
LED2BITP2.2
LED3BITP2.3
;振铃检测
ZHENLJCBITP1.5
HUIFUBITP0.7;恢复出厂设置按键,默认密码123456,默认开关状态为:
关,延时为:
无
;0=恢复出厂设置1=不恢复
;使用时按住此按键按复位键即可
;******************************************
;变量定义
;******************************************
;工作状态寄存(00-07)
GZZHTEQU20H
YSH0_KGBIT00H;延时状态,1=开启0=关闭
YSH1_KGBIT01H
YSH2_KGBIT02H
YSH3_KGBIT03H
MIMABIT04H;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)
M2EQU23H
M3EQU24H
M4EQU25H
M5EQU26H
M6EQU27H
DINGSHIEQU28H;定时时间临时存储
DATA_INEQU29H;HD7279输入输出缓存
DATA_OUTEQU2AH
PLAY_ADDEQU2BH
BAK_A_T1EQU2CH
YSH0_TMEQU30H;延时时间寄存
YSH1_TMEQU31H
YSH2_TMEQU32H
YSH3_TMEQU33H
OUT_BWEQU34H;延时数据输出临时存储(用于显示)
OUT_SHWEQU35H
OUT_GWEQU36H
MIMAJSHEQU37H;【密码计数】对输入的密码个数进行计数
;ZHENLINGEQU31H;【振铃计数】对振铃次数进行计数
;TIMEMOODEQU29H;定时器模式:
03=关,80=4096Hz,81=64Hz,82=1Hz,83=1/60Hz
MTEMPEQU38H;记录密码输入错误次数
TEMPEQU39H
;第一次输入新密码临时存储(3AH~3FH)
MT1EQU3FH
T0_TMPEQU40H;T0临时存储,每隔0.0005秒加1
T0_TMP_SEQU41H;T0临时存储,每隔0.1S减1
T0_TMP_MEQU42H;T0临时存储,每隔0.5S减1
BAK_AEQU43H;中断期间A的备份
BAK_R1EQU44H;
BAK_RS1EQU45H
BAK_RS0EQU46H
BAK_A_SOUNDEQU47H
BAK_DPHEQU48H
BAK_DPLEQU49H
;延时数据临时存储
YSH_BWEQU4AH
YSH_SHWEQU4BH
YSH_GWEQU4CH
ADDRESSLEQU4DH;ISD4002放音地址低位
PANDAHEQU4EH;ISD4002放音地址高位
TEMP2EQU4FH;密码临时存储
TEMP3EQU50H;T1中断检测临时存储
TIMEEQU51H;倒计时定时时间临时存储,长度1字节
DISP_CHTEQU52H;更换显示继电器倒计时时间计数
DISP_CHEQU53H;显示开关指示(1-4)
YSH0_KG_1EQU54H;延时状态,1=开启0=关闭
YSH1_KG_1EQU55H
YSH2_KG_1EQU56H
YSH3_KG_1EQU57H
SOUND_OUT_BWEQU58H;延时数据输出临时存储(用于剩余时间提示)
SOUND_OUT_SHWEQU59H
SOUND_OUT_GWEQU5AH
ZHL_CSHEQU5BH;
;******************************************
;主程序
;******************************************
ORG0000H
LJMPMAIN
ORG0003H
LJMPSTD_IN
ORG00BH
LJMPT0STOP
ORG0013H
LJMPINT1_STOP
ORG001BH
LJMPT1STOP
ORG0030H
;全局初始化
MAIN:
MOVSP,#60H;堆栈
MOVIE,#00H;禁止所有中断
LCALLLOAD;载入状态
MOVMIMAJSH,#00H
MOVDINGSHI,#00H
MOVGZZHT,#00H
MOVGZZHT2,#00H
MOVT0_TMP,#200;T0临时存储,每隔0.0005秒加1
MOVT0_TMP_S,#5;T0临时存储,每隔0.1S加1
MOVT0_TMP_M,#120;T0临时存储,每隔1S加1
MOVDISP_CHT,#4;更换显示继电器倒计时时间计数
MOVDISP_CH,#1;显示开关指示(1-4)
MOVTMOD,#02H;定时器0,方式2(8位自装载)
MOVTH0,#06H
MOVTL0,#06H;
MOVIP,#00000100B;设置外部中断1为高优先级中断
SETBIT1;脉冲触发方式
SETBET0;允许T0中断
SETBEA;允许中断
SETBTR0;启动T0定时器
SETBIT0;脉冲触发方式
;SETBEX0
CLROUT_PLAY
;使用寄存器组00
CLRRS1
CLRRS0
LCALLDELAY_30ms
JNBHUIFU,HUIFU1;是否恢复出厂设置
MAINLOOP:
JBHUIFU,LP1
LCALLDELAY_30MS
JNBHUIFU,LP2
LP1:
CLRZHL6C;清振铃6次标志位
LCALLZHENLING1;检测振铃
JNBZHL6C,MAINLOOP;振铃到6次,可以摘机
LP2:
LCALLZHAIJI;振铃达到6次,摘机
SJMPMAINLOOP
;---------------------------------------------------
;恢复出厂设置
HUIFU1:
JNBHUIFU,$
MOVM6,#01H
MOVM5,#02H
MOVM4,#03H
MOVM3,#04H
MOVM2,#05H
MOVM1,#06H
LCALLSAVE
LJMPMAINLOOP
;**********************************************
;摘机子程序
;**********************************************
ZHAIJI:
;LCALLPOWEROFF;屏蔽ISD4002,以免影响DTMF信号识别
CLRJDQK;继电器摘机
LCALLDELAY_BS
LCALLDELAY_BS
CLRMIMA
CLREX0;不允许语音提示中途退出
MOVA,#13
LCALLSOUND;语音提示:
欢迎您使用智能家居远程控制系统,请输入密码
SETBEX0
ZHJ_MM:
LCALLSTDJC;检测输入数据,结果由A带回
JBNOINPUT,EXIT_1
ZHJ_MM_JC1:
MOVMIMAJSH,#00H
INCMIMAJSH
CJNEA,M6,ZHJ_MMC;校验密码第一位是否正确
;JBJDQK,EXIT
LCALLSTDJC
JBNOINPUT,EXIT_1
INCMIMAJSH
CJNEA,M5,ZHJ_MMC;校验密码第二位是否正确
;JBJDQK,EXIT
LCALLSTDJC
JBNOINPUT,EXIT_1
INCMIMAJSH
CJNEA,M4,ZHJ_MMC;校验密码第三位是否正确
;JBJDQK,EXITT3
LCALLSTDJC
JBNOINPUT,EXIT_1
INCMIMAJSH
CJNEA,M3,ZHJ_MMC;校验密码第四位是否正确
;JBJDQK,EXIT
LCALLSTDJC
JBNOINPUT,EXIT_1
INCMIMAJSH
CJNEA,M2,ZHJ_MMC;校验密码第五位是否正确
;JBJDQK,EXIT
LCALLSTDJC
JBNOINPUT,EXIT_1
INCMIMAJSH
CJNEA,M1,ZHJ_MMC;校验密码第六位是否正确
;JBJDQK,EXIT
LJMPZHJ_2
;----------------------------------------------------------
;密码错
ZHJ_MMC:
LCALLSTDJC;按键检测
JBNOINPUT,EXIT_1
INCMIMAJSH
MOVA,MIMAJSH;密码输入次数存A
CLRC
SUBBA,#6;是否已输入6位
JCZHJ_MMC;未输入六位,继续检测按键
JBMIMA,ZHJ_MMC1
LCALLDELAY_BS
MOVA,#33;语音提示:
输入错误,请重新输入
LCALLSOUND
SETBMIMA
LJMPZHJ_MM
ZHJ_MMC1:
LJMPEXIT
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
EXIT_1:
LJMPEXIT
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;密码正确
ZHJ_2:
SETBEX0;允许语音提示中途退出
LCALLDELAY_BS
MOVA,#14;语音提示:
开关状态查询与修改请按"1",修改密码请按"2"
LCALLSOUND
JBOUT_PLAY,ZHJ_JC1
MOVA,#15;语音提示:
挂机请按"*"号键
LCALLSOUND
JBOUT_PLAY,ZHJ_JC1;语音播放中有按键输入,直接跳转到按键识别部分
LCALLSTDJC;检测按键
JBNOINPUT,EXIT_1
ZHJ_JC1:
CJNEA,#01H,ZHJ_GMM_1;若按键为:
1
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%状态查询;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ZHJ_ZHT:
LCALLDELAY_30MS
SETBEX0
MOVA,#23;请根据语音提示选择设备
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_N;语音播放中有按键输入,直接跳转到按键识别部分
MOVA,#1;语音提示:
1
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_N
MOVA,#16;语音提示:
电饭煲
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_N
LCALLDELAY_BS
MOVA,#2;语音提示:
2
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_N
MOVA,#17;语音提示:
电暖风
LCALLDELAY_BS
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_N
MOVA,#3;语音提示:
3
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_N
MOVA,#18;语音提示:
空调
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_N
LCALLDELAY_BS
MOVA,#4;语音提示:
4
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_N
MOVA,#19;语音提示:
电热水器
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_N
LCALLSTDJC;检测按键
JBNOINPUT,EXIT_1
AJMPZHJ_DFB_N
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
ZHJ_GMM_1:
LJMPZHJ_GMM
ZHJ_DNF_1:
LJMPZHJ_DNF
ZHJ_DNF_N_1:
LJMPZHJ_DNF_N
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%电饭煲状态查询%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
ZHJ_DFB_N:
CJNEA,#01H,ZHJ_DNF_N_1;若按键为:
1
ZHJ_DFB:
CLREX0;禁止语音提示中途退出
MOVA,#16;语音提示:
电饭煲
LCALLSOUND
MOVA,#36;语音提示:
的状态为
LCALLSOUND
JNBYSH0_KG,ZHJ_DFB2;无延时则跳转
JNBJDQ0_DFB,ZHJ_DFB1;延时关则跳转
MOVA,#26;语音提示:
延时开
LCALLSOUND
MOVA,#0;继电器0剩余时间提示
LCALLSOUND_YSH;延时剩余时间提示子程序
AJMPZHJ_DFBXG
ZHJ_DFB1:
MOVA,#27;语音提示:
延时关
LCALLSOUND
MOVA,#0;继电器0剩余时间提示
LCALLSOUND_YSH;延时剩余时间提示子程序
AJMPZHJ_DFBXG
ZHJ_DFB2:
JNBJDQ0_DFB,ZHJ_0_K
MOVA,#20;语音提示:
关
LCALLSOUND
AJMPZHJ_DFBXG
ZHJ_0_K:
MOVA,#21;语音提示:
开
LCALLSOUND
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%电饭煲状态修改%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ZHJ_DFBXG:
SETBEX0
LCALLDELAY_30MS
SETBEX0;允许语音提示中途退出
MOVA,#24;语音提示:
开启
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_SHB
MOVA,#16;语音提示:
电饭煲
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_SHB
MOVA,#28;语音提示:
请按
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_SHB
MOVA,#1;语音提示:
1
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_SHB
MOVA,#25;语音提示:
关闭
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_SHB
MOVA,#16;语音提示:
电饭煲
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_SHB
MOVA,#28;语音提示:
请按
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_SHB
MOVA,#2;语音提示:
2
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_SHB
MOVA,#26;语音提示:
延时开
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_SHB
MOVA,#28;语音提示:
请按
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_SHB
MOVA,#3;语音提示:
3
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_SHB
MOVA,#27;语音提示:
延时关
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_SHB
MOVA,#28;语音提示:
请按
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_SHB
MOVA,#4;语音提示:
4
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_SHB
MOVA,#15;语音提示:
返回上级请按9,挂机请按"*"号键
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_SHB
LCALLSTDJC;检测按键
JBNOINPUT,EXIT_2
;--------------------------------------------------------------------------
;开启电饭煲
ZHJ_DFB_SHB:
CJNEA,#01H,ZHJ_DFBG;若按键为:
1
CLRJDQ0_DFB
SETBLED0
CLRYSH0_KG
ZHJ_DFBK4:
MOVA,#16;语音提示:
电饭煲
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_N_T2
MOVA,#30;语音提示:
已开启
LCALLSOUND
JBOUT_PLAY,ZHJ_DFB_N_T2
LJMPZHJ_ZHT
;$$$$$$$$$$
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能家居 远程 控制系统 源程序