微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 基于DTMF技术与射频技术的远程控制的实现

基于DTMF技术与射频技术的远程控制的实现

时间:11-23 来源:互联网 点击:

MF_Q2=1; //Q2=1产生Q2的上升沿

non_();//Q2的高电平持续

_nop_();

uc_data=DTMF_REG;//读MT8880状态寄存器

uc_data=uc_data0x0f;//屏蔽高四位,只取低4位

DTMF_Q2=0;//Q2=0完成一个Q2时钟

return(uc_data);

“MT8880发送前的初始化”函数:

//功能说明:发送前的初始化(对MT8880控制寄存器的

//操作)void DTMF-send-init(void)

DTMF_REG=0x49;

//写1001到MT8880控制寄存器CRA(允许发送)

DTMF_CPW(); //写人控制器寄存器

DTMF_REG=0x40;//写0000到MT8880控制寄存器CRB

DTMF_CPW(); //写人控制器寄存器}

“MT8880接收前的初始化”函数:

//功能说明:接收前的初始化(对MT8880控制寄存器

//的操作)void DIME rec init(void)

DTMF_REG=0x4C;

//写1100到MT8880控制寄存器CRA(使能中断模式,接着写CRB)

DTMF_CPW();

DTMF_REG=0x40; //写 0000到MT8880控制寄存器

//CRB

DTMF_CPW();

“MT8880接收1位DTMF”函数:

//功能说明:接收1位DTMF信号

//返回参数:接收到数据存于A//DTMF REG为与MCU的接口寄存器,在"DTMF.H"有定义

//READSR为读状态寄存器SR时临时存储器,在"DTMF.H"

//有定义

uchar DTMF_rec_1 byte(void)

uchar uc_data;

DTMF_REG=Ox⒍;//CS=0 RS0=1 RW=1 Q2=0

READSR=DTMF_CPR(); //读状态寄存器SR

while(SRBZ! =1);

//判断SR的b2=1吗?=1说明收到有效数据

DTMF_REG=0x2f;

uc_data=DTMF_CPR();//读取数据

return(uc_data);

“MT8880发送1位DTMF”函数:

//功能说明:发送1位DTMF信号

//输人参数:待发送数据给A//DTMF-REG为与MCU的接口寄存器,在"DTMf. H"有定义//READSR为读状态寄存器SR时临时存储器,在"DTMF.H"

//有定义

void DTMF send_lbyte(uchar uc_data)

DIME_ON();

DTMF_Q2=0;

DTMF RS0=0:

DTMF RW=0:

DTMF RFC=uc data:

DTMF CPM():

delay_ms(130);

//突发模式,送出后延时的100 ms再读状态寄存器

DTMF ̄REG=0x6f;//CS=0 RS0=1 RW=1 Q2=0

READSR=DTMF CPR():

4.3对编码芯片地址线和数据线的控制

已正确识别用户通过DTMF技术输人的控制指令后,单片机只要控制8位地址线和4位数据线这12个lO口的高低电平就可以启动无线传输。而在无线接收端是由硬件电路自动完成的,不需要软件控制。

本文介绍的技术已在实际项目中运用,系统运行稳定。如果增加语音提示功能,则整个系统能做得更加完善和更加人性化。要实现语音提示功能,只要增加一块语音录放芯片就可以了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top