智能家居远程控制系统源程序1.docx

上传人:b****5 文档编号:5857500 上传时间:2023-01-01 格式:DOCX 页数:66 大小:31.82KB
下载 相关 举报
智能家居远程控制系统源程序1.docx_第1页
第1页 / 共66页
智能家居远程控制系统源程序1.docx_第2页
第2页 / 共66页
智能家居远程控制系统源程序1.docx_第3页
第3页 / 共66页
智能家居远程控制系统源程序1.docx_第4页
第4页 / 共66页
智能家居远程控制系统源程序1.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

智能家居远程控制系统源程序1.docx

《智能家居远程控制系统源程序1.docx》由会员分享,可在线阅读,更多相关《智能家居远程控制系统源程序1.docx(66页珍藏版)》请在冰豆网上搜索。

智能家居远程控制系统源程序1.docx

智能家居远程控制系统源程序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

 

;$$$$$$$$$$

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1