下面主要介绍初始化程序、MT8880设置子程序和DTMF信号发送以及接收子程序。 ;初始化寄存器 F0 EQU 0H RTCC EQU 01H PC EQU 02H STATUS EQU 03H FSR EQU 04H RA EQU 05H RB EQU 06H RC EQU 07H RD EQU 08H RE EQU 09H TRISA EQU 85H TRISB EQU 86H TRISC EQU 87H TRISD EQU 88H TRISE EQU 89H DAIFS EQU 0X50;待发送的数据放在50开始的区域 RECE EQU 0X21 SEND EQU 0X22 DAIJS EQU 0X40 ;数据暂存在从40H开始的区域 ;MT8880设置子程序 ;置MT8880为DTMF接收状态 R8880:MOVLW0X0D MOVWF REVE ;写控制寄存器A(接收模式) MOVLW 0X00 MOVWF REVE ;写控制寄存器B(突发模式) REIURN ;置MT8880为DTMF接收状态 T8880:MOVLW 0X0F MOVWF SEND;写控制寄存器A(发送模式) MOVLW 0X00 MOVWF SEND;写控制寄存器B(突发模式) RETURN ;DTMF发送子程序 TELEPHON:CALL T8880 ;设置为发送模式 LOOP:MOVF DAIFS,0 ;拔号 MOVLW SEND INCF DAIFS,1 ;检查是否发送结束 LL1:BTFSS SEND,1 GOTO LL1 ;已经发送完毕 CALL DELAY200 ;延时200ms DECF DATALENGTH GOTO LOOP ;发送完毕 RETURN ;DTMF接收子程序 RECEIVE:CALL R8880 ;设置为接收模式 RWT:MOVF DJIJS,0 MOVLW REVE BTFSS REVE,2 GOTO RWT ;查询是否收到数据 MOVLW REVE ANDLW 0XOF MOVF REVE INCF DAIJS,1 DECE DATALENGTH RETURN 结语 利用PIC单片机低功耗方式设计电话远程控制器,待机时由电池供电,工作时由电话网供电,系统用4节5号电池可供控制器工作一年,产品可实现对家用电器控制,又具有报警及紧急求助功能,可进行远程控制和本地机的控制,且不影响电话正常使用。在电话远程控制器的原理基础上,设计的有线防盗报警产品更具市场前景,成本更低,已批量投入市场,市场反映良好。 |