您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 双音频编译码器设计l论文
双音频编译码器设计论文(摘要)本电路分为三个模块,第一是通过以7805mos稳压管为主的稳压电路将十二伏电压稳压在五伏,给单片机和MT8870提供工作电压,第二是采用MT8870译码,第三是通过单片机用液晶显示屏1602显示译码值,第四再通过pwm技术,把译码得到1到9数值控制12V直流灯泡实现1-9级亮度变化。一、设计任务与要求基本部分:1、利用市场销售的双音频译码芯片设计完成一双音频译码器电路。2、利用电话机产生双音频信号送至设计的译码电路,并用数码管或液晶显示译码值。3、设计电路利用译码得到1到9数值控制12V直流灯泡实现1-9级亮度变化。4、实现用“*”号键关闭灯泡,“#”号键打开灯泡。发挥部分:1、设计电路产生产0-9和“*”“#”,12个双音频信号(不得采用现成的双音频信号产生集成电路)。具有存储拨号功能,至少存储15位电话号码。液晶显示所拨电话号码,并用扬声器播放所产生的双音频。4、与基本部分计联机可实现对灯炮的控制。5、其它。二、方案论证双音多频DTMF(DualToneMultiFrequency),双音多频,由高频群和低频群组成,高低频群各包含4个频率。一个高频信号和一个低频信号叠加组成一个组合信号,代表一个数字。DTMF信号有16个编码。双音多频的拨号键盘是4×4的矩阵,每一行代表一个低频,每一列代表一个高频。每按一个键就发送一个高频和低频的正弦信号组合,如图所示MT8870音调译码器ToneDecoder)是MITEL公司所开发生产为一颗常用复频译码IC,这个电路可以接收DTMF信号,是一个完整的DTMF接收器。它接收了DTMF信号后,内部将信号分成高频带和低频带,并将此信号送至数字译码器,然后将讯号送至数字译码器以解出按键值,接着将解出的按键值以二进制的方式以四条线(Q1、Q2、Q3、Q4)输出到外部共享Bus上,其MT8870接脚说明如表1及内部结构如图2。值得一提的是,当MT8870解出一个按键值且输出到外部时,其STD接脚会由低态升为高态,经一段时间后再降为低态,我们便可利用此特点侦测到此脚有讯号时便马上将Q1-Q4接脚所产生的值读入CPU,然后解出电话的按键值。引脚图如图所示由于MT8870符合我们双音频译码的要求,所以我们选择这个芯片来译码。液晶显示屏1602,电路简单,成本也比较低,因此我们采用它来显示译码值。电路要求利用译码得到1到9数值控制12V直流灯泡实现1-9级亮度变化,可以把恒定的直流电源电压调制成频率一定,宽度可变的脉冲电压序列,从而可以通过程序,用单片机控制引脚的高低电平,从而控制灯泡的亮度,因此我们用pwm调制。再通过程序控制当输入’#’时灯泡亮,当输入‘*’时,灯泡灭。由于MT8870跟单片机都需要五伏工作电压,而灯泡需要12伏工作电压,因此我们用7805mos稳压管对十二伏电压稳压到五伏给芯片提供工作电压。二、原理图跟pcb设计设计电路如下pcb设计如下四、程序设计#includereg52.h#defineucharunsignedchar#defineuintunsignedintsbitRS=P2^5;//定义端口,1602控制端口sbitRW=P2^6;sbitEN=P2^7;sbitLED0=P2^0;//12v灯泡sbitLED1=P2^2;//指示灯sbitSTD=P3^0;//STD为MT8870一个输出信号,表明有信号产生uchartable1[]=0123456789*#;ucharM;voiddelay1(unsignedintt){while(--t);}voiddelay2(unsignedintx)//延时{unsignedinti,j;for(i=x;i1;i--)for(j=10;j1;j--);}ucharjudge()//此为输入信号译码值函数,返回值M为译码结果{uchartemp;temp=P3;temp=temp&0x1e;switch(temp){case0x0a:M=10;break;case0x10:M=1;break;case0x08:M=2;break;case0x18:M=3;break;case0x04:M=4;break;case0x14:M=5;break;case0x0c:M=6;break;case0x1c:M=7;break;case0x02:M=8;break;case0x12:M=9;break;case0x1a:M=11;break;case0x06:M=12;break;}returnM;}voidwrite_com(ucharcom)//写命令函数{P0=com;RS=0;EN=0;delay2(10);EN=1;delay2(10);EN=0;}voidwrite_date(uchardate)//写数据函数{P0=date;RS=1;EN=0;delay2(10);EN=1;delay2(10);EN=0;}voidinit()//1602初始化{RW=0;write_com(0x38);//显示模式设置:16×2显示,5×7点阵,8位数据接口delay2(20);write_com(0x0f);//显示模式设置delay2(20);write_com(0x06);//显示模式设置:光标右移,字符不移delay2(20);write_com(0x01);//清屏幕指令,将以前的显示内容清除delay2(20);}voidpwm(ucharM)//控制灯亮度函数pwm{uchart,i=20,h;t=i*(M%10);h=260-t;while(STD)delay2(10);while(!STD){LED0=0;delay1(t);LED0=1;delay1(h);}}voidshow(ucharM)//1602显示数字{switch(M){case1:write_date(table1[1]);delay2(2000);break;case2:write_date(table1[2]);delay2(2000);break;case3:write_date(table1[3]);delay2(2000);break;case4:write_date(table1[4]);delay2(2000);break;case5:write_date(table1[5]);delay2(2000);break;case6:write_date(table1[6]);delay2(2000);break;case7:write_date(table1[7]);delay2(2000);break;case8:write_date(table1[8]);delay2(2000);break;case9:write_date(table1[9]);delay2(2000);break;case11:write_date(table1[10]);delay2(2000);break;case12:write_date(table1[11]);delay2(2000);break;case10:write_date(table1[0]);delay2(2000);break;}}main(){init();write_com(0x80);//显示首地址为第一行第一个while(1){while(STD){M=judge();if(M==12){show(M);pwm(M);delay2(1000);while(!STD)delay2(10);while(1){while(STD){M=judge();for(;M!=11;M=judge()){show(M);pwm(M);}LED0=1;show(M);break;}break;}}elseif(M!=12){show(M);}}}}五、电路的调试(1)稳压模块。给7805稳压管提供十二伏电压,测量输出是否有五伏电压。(2)双音频译码电路模块。按照多音频矩阵组合给MT8870输入信号,检测输出口Q1~Q4是否按照MT8870功能表对应输出。(3)LED1602液晶显示模块。给单片机烧录程序,测试LED1602显示屏能否正确显示译码值。(4)用示波器测出电路的频率,看是否符合条件,如果小于100Hz则修改参数。选择合适的步进,调整pwm占空比,修改程序让亮度更明显。亮度高电平(灯灭时间)低电平(灯亮时间)占空比12402092.3%22204084.6%32006076.9%41808069.2%516010061.5%614012053.8%712014046.1%810016038.4%98018030.8%六、总结这个电路难点主要在电路的调试及程序的编写,需要一些算法,必须理清思路,弄清楚逻辑问题。本电路的亮点是通过MT8870译码可以稳定输出高低电平,通过单片机可以整个电路的实现。参考文献华成英童诗白.模拟电子电路.高等教育出版社,王卫东.模拟电子技术2006郭天祥.51单片机教程.电子工业出版社,2009阎石.数字电子技术基础.高等教育出版社
本文标题:双音频编译码器设计l论文
链接地址:https://www.777doc.com/doc-2565407 .html