mt8880正常接收和发送_有一个问题要问一问.

[复制链接]
2710|0
 楼主| ihafd 发表于 2007-6-6 08:50 | 显示全部楼层 |阅读模式
说明:以下问题我已经在本论坛找了相关MT8880的贴子,没有找到答案。自己又尝试了N次了还是没有解决问题,所以贴上来请教一下大家。谢谢!<br /><br />以下是MT8880的接收发送程序,可以正常接收和发送(程序参考21IC网友的,不记得那位网友了)<br />为什么一定要把MT8880初始化[MT8880_Init()]和MT8880接收初始化[MT8880_Rec_Init()]这两个函数放在无限循环里才能正常接收DTMF?&nbsp;我在无限循环[while(1)]之前运行这两个函数后如果在无限循环里不运行这两个函数就没法接收DTMF.<br />真奇怪!MT8880不可能要不停地初始化的吧?我看过一些网友写的程序,也只是初始化一次就可以接收的了.是我的那个地方错了?<br /><br />发送就很正常,只要按下KEY2初始化一次就可以发送一个手机号码了.<br /><br />#include&nbsp;&ltat89x51.h&gt<br /><br />typedef&nbsp;unsigned&nbsp;char&nbsp;uchar;<br />typedef&nbsp;unsigned&nbsp;int&nbsp;uint;<br /><br />uchar&nbsp;DATA1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//全局变量<br />sbit&nbsp;D0&nbsp;=&nbsp;P1^0;&nbsp;&nbsp;//MT8880接线脚定义.<br />sbit&nbsp;D1&nbsp;=&nbsp;P1^1;<br />sbit&nbsp;D2&nbsp;=&nbsp;P1^2;<br />sbit&nbsp;D3&nbsp;=&nbsp;P1^3;<br />sbit&nbsp;RW&nbsp;=&nbsp;P1^4;<br />sbit&nbsp;RS&nbsp;=&nbsp;P1^5;<br />sbit&nbsp;CS&nbsp;=&nbsp;P1^6;<br />sbit&nbsp;O2&nbsp;=&nbsp;P1^7;<br /><br />void&nbsp;MT8880_Init();&nbsp;&nbsp;//MT8880初始化<br />void&nbsp;MT8880_Rec_Init();//MT8880接收初始化<br />void&nbsp;transmit(uchar&nbsp;data&nbsp;*p,uchar&nbsp;count);//发送数据<br />void&nbsp;&nbsp;tran_init();//MT8880发送初始化.<br />void&nbsp;delay(uint&nbsp;l);&nbsp;//发送迟时.<br /><br />void&nbsp;main(void)<br />{<br />&nbsp;uchar&nbsp;kk;<br />&nbsp;uchar&nbsp;data&nbsp;w_buf[13]&nbsp;=&nbsp;{1,3,5,3,8,7,8,7,9,6,1};&nbsp;//发送的数据码.<br />&nbsp;DATA1&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;TL&nbsp;=&nbsp;0;<br />&nbsp;MT8880_Init();&nbsp;//MT8880初始化<br />&nbsp;tran_init();&nbsp;//MT8880发送初始化.<br /><br />&nbsp;delay(60000);<br /><br />&nbsp;transmit(w_buf,11);//发送数据<br /><br />&nbsp;MT8880_Init();//MT8880初始化<br />&nbsp;MT8880_Rec_Init();//MT8880接收初始化<br />&nbsp;<br />&nbsp;while(1)&nbsp;&nbsp;//无限循环.<br />&nbsp;{<br /><br />&nbsp;&nbsp;MT8880_Init();//MT8880初始化&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(问题就在这里)<br />&nbsp;&nbsp;MT8880_Rec_Init();//MT8880接收初始化(问题就在这里)<br />&nbsp;&nbsp;DisplayOneChar(0,&nbsp;1,&nbsp;figure[DATA1]);&nbsp;&nbsp;&nbsp;//液晶显示,<br />//&nbsp;&nbsp;if(KEY2&nbsp;==&nbsp;0)<br />&nbsp;//&nbsp;&nbsp;&nbsp;{&nbsp;TL&nbsp;=&nbsp;0;&nbsp;led2&nbsp;=&nbsp;0;&nbsp;&nbsp;MT8880_Init();&nbsp;&nbsp;tran_init();&nbsp;&nbsp;transmit(w_buf,11);}<br />&nbsp;}<br /><br />}<br />void&nbsp;transmit(uchar&nbsp;data&nbsp;*p,uchar&nbsp;count)&nbsp;&nbsp;//发送数据码.<br />{&nbsp;uchar&nbsp;i;<br />&nbsp;&nbsp;for&nbsp;(i=0;i&ltcount;i++,p++)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;P1=&nbsp;*p&nbsp;|&nbsp;0x80;&nbsp;&nbsp;&nbsp;/*&nbsp;发送数码&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;delay(60000);&nbsp;/*&nbsp;延时&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;P1=0xBf;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;led2&nbsp;=&nbsp;!led2;<br />&nbsp;&nbsp;&nbsp;&nbsp;}/*&nbsp;读SR&nbsp;*/<br /><br />void&nbsp;tran_init(void)//发送初始化<br />{&nbsp;<br />&nbsp;&nbsp;P1=0x29;&nbsp;&nbsp;/*&nbsp;CRA=1001&nbsp;*/<br />&nbsp;&nbsp;P1=0xA1;<br />&nbsp;}&nbsp;/*&nbsp;CRB=0001&nbsp;*/<br /><br />void&nbsp;MT8880_Init()&nbsp;//MT8880初始化.<br />{<br />&nbsp;P1&nbsp;=&nbsp;0x3F;<br />&nbsp;P1&nbsp;=&nbsp;0x20;<br />&nbsp;P1&nbsp;=&nbsp;0x20;<br />&nbsp;P1&nbsp;=&nbsp;0x28;<br />&nbsp;P1&nbsp;=&nbsp;0xA0;<br />}<br /><br />void&nbsp;MT8880_Rec_Init()&nbsp;//接收初始化<br />{<br />&nbsp;P1&nbsp;=&nbsp;0xA5;<br />&nbsp;EA&nbsp;=&nbsp;1;<br />&nbsp;EX0&nbsp;=&nbsp;1;<br />&nbsp;EX1&nbsp;=&nbsp;1;<br />&nbsp;IT1&nbsp;=&nbsp;1;<br />&nbsp;IT0&nbsp;=&nbsp;1;<br />}<br /><br />void&nbsp;Init0()&nbsp;interrupt&nbsp;0&nbsp;using&nbsp;1&nbsp;&nbsp;//外问中断0&nbsp;用于接收DTMF。<br />{<br />&nbsp;EX0&nbsp;=&nbsp;0;<br />&nbsp;P1&nbsp;=&nbsp;0x3F;<br />&nbsp;P1&nbsp;=&nbsp;0x9F;<br />&nbsp;delay(100);<br />&nbsp;DATA1&nbsp;=&nbsp;P1;<br />&nbsp;DATA1&nbsp;=&nbsp;P1&nbsp;&&nbsp;0x0f;<br />&nbsp;EX0&nbsp;=&nbsp;1;<br />}<br /><br />void&nbsp;ext()&nbsp;interrupt&nbsp;2<br />{<br />&nbsp;kk++;<br />}<br /><br /><br />void&nbsp;delay(uint&nbsp;l)<br />{&nbsp;uint&nbsp;i;<br />&nbsp;&nbsp;for&nbsp;(i=0;i&ltl;i++);<br />}<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

294

主题

858

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部