《智能家居远程控制系统源程序1》由会员分享,可在线阅读,更多相关《智能家居远程控制系统源程序1(38页珍藏版)》请在金锄头文库上搜索。
1、智能家居远程控制系统刘庆宇1 ;* ; Filename: BSHB_1_0_2.ASM ; MCU: AT89S52 OSC:6.0000MHz ; IC: MT8870 ISD4002 LM386 74LS04 ULN2803 24C02 ; Display: LED*4 ; Build by: Liu Qing Yu ; Vision : V1.0.2 ; Date:2008-06-13 ;* ; 功能:利用电话线路,远程控制4 组继电器的通断,控制电饭煲、电 ; 暖风等家用电器。可以设定延时通断。恢复出厂设置时按住设 ; 置按键按复位键即可恢复默认密码123456 ; 默认开关状态为:
2、 关,延时为:无 ; ; 如需改变等待振铃次数,请搜索“振铃检测程序”并进行修改。 ; ; ; 寄存器组使用: ; 00: 主程序 ; 01: 显示子程序;* ; 输入输出引脚定义 ;* ;MT8870: 数据 P0.0P0.3 MT_IN EQU P1 ;STD_INT0 ;ISD4002: ;ISDINT_INT1 MOSI BIT P0.4 SS BIT P0.5 SCLK BIT P0.6 ;HD7279: DAT BIT P2.4 CS BIT P3.5 CLK BIT P3.6 ;24C02: SCL BIT P1.6 SDA BIT P1.7 ; 继电器(摘机电路): JDQK
3、BIT P1.4 ;低电平有效; 继电器 1(控制高压 ) JDQ0_DFB BIT P0.0 ;电饭煲 JDQ1_DNF BIT P0.1 ;电暖风 JDQ2_KT BIT P0.2 ;空调 JDQ3_RSH BIT P0.3 ;电热水器; 延时指示灯:(低电平有效 ) LED0 BIT P2.0 LED1 BIT P2.1 LED2 BIT P2.2 LED3 BIT P2.3 2 ; 振铃检测 ZHENLJC BIT P1.5 HUIFU BIT P0.7 ; 恢复出厂设置按键,默认密码123456,默认开关状态为: 关,延 时为:无 ;0= 恢复出厂设置 1= 不恢复 ; 使用时按住此
4、按键按复位键即可;* ; 变量定义 ;* ; 工作状态寄存(00-07) GZZHT EQU 20H YSH0_KG BIT 00H ;延时状态, 1= 开启 0=关闭 YSH1_KG BIT 01H YSH2_KG BIT 02H YSH3_KG BIT 03H MIMA BIT 04H ;GZZHT.1 密码状态,是否已经输入错误一次 1= 是 0= 否 STD BIT 05H ;有新数据输入 1=有0=无 XINMIMA BIT 06H ;新密码校验位,校验两次输入密码是否一致 1= 不一致 0= 一致 ZHL6C BIT 07H ;振铃次数已够,可以摘机 1=可以 0= 不可以; 工作
5、状态寄存2(08-0F) GZZHT2 EQU 21H ; 位寻址寄存 21H; NOINPUT BIT 08H ;10秒没有新数据输入,自动挂机。 1=可以挂机 0= 不可以IS15S BIT 09H ; DEC_ON BIT 0AH ; 是否显示小数点:1=显示 0=不显示ISDINT BIT 0BH ;4002中断置位标志OUT_PLAY BIT 0CH ; 从播放进程中终止标志1=跳过后面的语音提示;JDQ0_YSH BIT 0AH ; 继电器延时状态 1=开 0=关 ;JDQ1_YSH BIT 0BH ;JDQ2_YSH BIT 0CH ;JDQ3_YSH BIT 0DH ;YANS
6、HI BIT 05H ;GZZHT.2 延时 1=开启 0= 关闭 ;YANSHIKG BIT 06H ;GZZHT.3 延时状态 1= 延时开 0= 延时关 ;YSH_OK BIT 0BH ; 延时数据已准备好,可以写入 1= 可以 0=不可以M1 EQU 22H ; 密码寄存( 1-6 ) M2 EQU 23H M3 EQU 24H 3 M4 EQU 25H M5 EQU 26H M6 EQU 27H DINGSHI EQU 28H ; 定时时间临时存储DATA_IN EQU 29H ;HD7279 输入输出缓存 DATA_OUT EQU 2AH PLAY_ADD EQU 2BH BAK_
7、A_T1 EQU 2CH YSH0_TM EQU 30H ; 延时时间寄存 YSH1_TM EQU 31H YSH2_TM EQU 32H YSH3_TM EQU 33H OUT_BW EQU 34H ; 延时数据输出临时存储(用于显示) OUT_SHW EQU 35H OUT_GW EQU 36H MIMAJSH EQU 37H ; 【密码计数】对输入的密码个数进行计数 ;ZHENLING EQU 31H ; 【振铃计数】对振铃次数进行计数;TIMEMOOD EQU 29H;定时器模式: 03=关, 80=4096Hz,81=64Hz,82=1Hz,83=1/60Hz MTEMP EQU 3
8、8H ; 记录密码输入错误次数TEMP EQU 39H ; 第一次输入新密码临时存储(3AH3FH ) MT1 EQU 3FH T0_TMP EQU 40H ;T0 临时存储,每隔0.0005 秒加 1 T0_TMP_S EQU 41H ;T0 临时存储,每隔0.1S 减 1 T0_TMP_M EQU 42H ;T0 临时存储,每隔0.5S 减 1 BAK_A EQU 43H ; 中断期间A的备份 BAK_R1 EQU 44H; BAK_RS1 EQU 45H BAK_RS0 EQU 46H BAK_A_SOUND EQU 47H BAK_DPH EQU 48H BAK_DPL EQU 49H
9、 ; 延时数据临时存储 YSH_BW EQU 4AH YSH_SHW EQU 4BH YSH_GW EQU 4CH ADDRESSL EQU 4DH ;ISD4002 放音地址低位 PANDAH EQU 4EH ;ISD4002 放音地址高位4 TEMP2 EQU 4FH ;密码临时存储 TEMP3 EQU 50H ;T1 中断检测临时存储 TIME EQU 51H ; 倒计时定时时间临时存储,长度1 字节DISP_CHT EQU 52H ; 更换显示继电器倒计时时间计数 DISP_CH EQU 53H ; 显示开关指示(1-4 )YSH0_KG_1 EQU 54H ; 延时状态, 1= 开启
10、 0=关闭 YSH1_KG_1 EQU 55H YSH2_KG_1 EQU 56H YSH3_KG_1 EQU 57H SOUND_OUT_BW EQU 58H ; 延时数据输出临时存储(用于剩余时间提示) SOUND_OUT_SHW EQU 59H SOUND_OUT_GW EQU 5AH ZHL_CSH EQU 5BH ; ;* ; 主程序 ;* ORG 0000H LJMP MAIN ORG 0003H LJMP STD_IN ORG 00BH LJMP T0STOP ORG 0013H LJMP INT1_STOP ORG 001BH LJMP T1STOP ORG 0030H ; 全
11、局初始化 MAIN: MOV SP,#60H ; 堆栈 MOV IE,#00H ; 禁止所有中断 LCALL LOAD ; 载入状态 MOV MIMAJSH,#00H MOV DINGSHI,#00H MOV GZZHT,#00H MOV GZZHT2,#00H MOV T0_TMP,#200 ;T0 临时存储,每隔0.0005 秒加 1 MOV T0_TMP_S,#5 ;T0 临时存储,每隔0.1S 加 1 MOV T0_TMP_M,#120;T0 临时存储,每隔1S加 1 MOV DISP_CHT,#4 ;更换显示继电器倒计时时间计数 MOV DISP_CH,#1 ; 显示开关指示(1-4
12、 )MOV TMOD,#02H ; 定时器 0,方式 2(8 位自装载)5 MOV TH0,#06H MOV TL0,#06H ; MOV IP,#00000100B; 设置外部中断1 为高优先级中断SETB IT1 ; 脉冲触发方式 SETB ET0 ; 允许 T0 中断 SETB EA ; 允许中断 SETB TR0 ; 启动 T0 定时器 SETB IT0 ; 脉冲触发方式 ; SETB EX0 CLR OUT_PLAY ; 使用寄存器组00 CLR RS1 CLR RS0 LCALL DELAY_30ms JNB HUIFU,HUIFU1 ; 是否恢复出厂设置MAINLOOP: JB
13、HUIFU,LP1 LCALL DELAY_30MS JNB HUIFU,LP2 LP1: CLR ZHL6C ; 清振铃 6 次标志位 LCALL ZHENLING1 ;检测振铃 JNB ZHL6C,MAINLOOP ; 振铃到 6 次,可以摘机 LP2: LCALL ZHAIJI ; 振铃达到6 次,摘机SJMP MAINLOOP ;- ; 恢复出厂设置 HUIFU1: JNB HUIFU,$ MOV M6,#01H MOV M5,#02H MOV M4,#03H MOV M3,#04H MOV M2,#05H MOV M1,#06H LCALL SAVE LJMP MAINLOOP ;* ; 摘机子程序 ;* ZHAIJI: ; LCALL POWEROFF ; 屏蔽 ISD4002,以免影响DTMF 信号识别CLR JDQK ; 继电器摘机 LCALL DELAY_BS LCALL DELAY_BS CLR MIMA CLR EX0 ; 不允许语音提示中途退出 MOV A,#13 LCALL SOUND ; 语音提示:欢迎您使用智能家居远程控制系统,请输入密码 SETB EX0 ZHJ_MM: 6 LCALL STDJC ; 检测输入数据,结果由A带回 JB NOINPUT,EXIT_1 Z