基于单片机实现的的dtmf信号合成内容摘要:
76。 范围内的波形。 ( 3)相位为 180176。 ~ 270176。 时,于 0176。 ~ 90176。 的图形上下对称,对应数据绝对值相等,符号相反。 读数据表的方向与 0176。 ~ 90176。 相同,每次读出的数据符号取反再加 C,经 DA转换后可产生该函数在 180176。 到 270176。 范围内的波形。 ( 4)相位为 270176。 ~ 360176。 时,于 180176。 ~ 270176。 的图形左右对称,通过相反的方向,即由后向前读 0176。 到 90176。 的数据表,每次读出的数据符号取反再加 C,经 DA转换后可产生该函数在270176。 到 360176。 范围内的波形。 函数 Y=C*sin(ω t)+ C的频率计算 Y=C*sin(ω t)+ C的相位由 0176。 起,每增加一个单位(即角度增量)计算出一个数据,如δ =1176。 ,共可得到 360个数据,由此制作一个大小为包含 360个数据的数据表。 角度增量δ决定了数据表的大小,一个周期数据表的大小为 360/δ。 实际只需制作 0176。 到 90176。 的数据表,大小为 S=90/δ,由于起点也是一个数据,表格实际大小比 S多 1个单元。 CPU每隔恒定的时间间隔(即采样周期 Tc),由数据表的第一个数据起,按特定的步长 N,读下一个数据,送 DA转换器。 N=1时每读一个数据,表格指针前进一 步,即读出相邻的下一个数据,表格大小 /步长 =S/N=90步后,即可产生函数 1/4周期的波形, 4S/N=360步后,即可产生一个周期的波形。 如采样周期 Tc=10μ s,得:周期 =360Tc,频率 =1/360Tc=278Hz。 CPU由第一个数据起, N=2时每读一个数据,表格指针前进两步,即间隔一个数据读一个数据, 4S/N=360/2=180步后即可产生一个周期的波形周期 =180Tc,频率 =1/180Tc=556Hz。 同理,由第一个数据起,按不同的步长 N读下一个数据, 4S/N步后即可产生函数一个周期的波形,周期 = 4TcS / N,频率 =N/4TcS。 表格大小 S=90/δ、步长 N和采样周期 Tc决定了频率,即频率 f= N/4TcS =Nδ / 360 Tc。 由指定 15 的频率反过来推得步长 N= 360fTc/δ。 根据香侬定理,正弦波一个周期内的采样次数必须大于 2,才可反应原函数的频率特性,一般要求采样次数要大于 5。 对一个特定频率的正弦函数,合理选择步长 N和采样周期 Tc,很易满足这一条件。 DTMF波形振幅的计算 函数 Y=C*sin(ω t),振幅为 C,对应交流电信号的峰峰值为 2C。 为满足 CPU的输出特性,电平提升 为直流电后的函数为 Y=C*sin(ω t)+ C,最大值为 2C,最小值为 0。 DTMF信号是由两个频率不同、幅度相同的正弦波叠加而成, YDTMF=C*sin(ω 1t)+C*sin(ω 2t)+ 2C,它的最大值是 4C,最小值为 0。 而 8位 DA转换电路所能表达的最大值为 281=255, n位转换电路所能表达的最大值为 2n1, DTMF信号的最大值 4C不能超过 2n1。 所以振幅 C ≤( 2n1) /4,取整为 C=2n21, 8位 DA转换时的振幅 C=261=63。 DTMF波形的计算 在高频群和低频群中分别 产生一种频率的正弦波,两个正弦波矢量相加后得到 DTMF信号。 由于电路的角度增量δ、表格的大小 S和采样周期 Tc为同一固定参数,只能通过改变步长 N的方法来实现频率的变化。 程序中设置独立的高频群表格指针和低频群表格指针,独立的高频群步长寄存器和低频群步长寄存器,以及产生采样周期 Tc的延时子程序或定时中断程序。 没有内嵌定时器的 CPU可用延时子程序,具有内嵌定时器的 CPU可用简单的定时中断程序。 每隔一个采样周期 Tc,指针计数器分别按各自不同的步长计数。 当表格指针超过数据表的任何一个端点时,需改变读表方向,表格指针增量 计数改为减量计数,减量计数改为增量计数。 读出由两个指针指定的数据后再分别加 C,电平提升为直流电后,两个数据相加得到DTMF信号的数据。 CPU连续地读出数据,经 DA转换后产生对应频率的 DTMF信号的波形。 改变步长寄存器,可产生 16种不同频率组合的 DTMF信号的波形。 产生 DTMF 信号的流程图 在本系统中我取表格的长度 S=144,采样周期 Tc=65us, δ =, 有 N= 360fTc/δ可得八个频率对应的步长见表 3: 图 13是产生一个特定频率的正弦信 号的流程图。 16 图 13 产生一个特定频率正弦波的流程图 DTMF 信号是有两个特定频率的正弦波叠加而成的,图 14 是产生 DTMF 信号的流程图。 17 图 14 产生 DTMF 信号的流程图 单片机与 D/A 接口程序设计 通过 CLR 指令使 口发低电平给 1WR 、 2WR 、 XFER ,使 DAC0832 处于直通状态,然后单片机每隔 65us发数据给 DAC芯片。 图 15是单片机与 DA接口程序设计流程图。 18 4. 系统有效性验证 DTMF 信号频率误差分析 用数学的方法求得的数据,包括角度增量δ、数据表中的每一数据和步长 N=360fTc/δ,可能包含小数部分。 CPU无法表达小数,必须四舍五入,从而产生误差。 通过程序产生的Y=C*sin(ω t)+ C的实际频率计算如下: CPU一个采样周期 Tc读一次数据,指针前进一个步长的相位增加α =N*δ =90N/S,角速度ω =α /Tc=90N/ Tc. S ,周期 T=360/ω =4Tc S/N,实际频率 f=1/ T=N/4Tc S ,从而可计算取整产生的频率误差。 取 Tc=65us, S=144, N有表 3可知,由此我们可得实际频率如表 4: 分析表中的数据我们可以知道通过读正弦表产生的 DTMF 波形的实际频率误差都要小于国际标准最大频差 %。 图 16 是本系统发 3 码这个 DTMF 信号的波形。 图 17 是标准的发 3 码这个 DTMF 信号的波形。 图 18 产生信号的误差值。 我们可以知道系统 发的信号的时域图与标准的几乎一致,最大误差也没超过 12,因此用这种方法产生的 DTMF 信号具有很大的实用性。 19 图 16 Y=63*sin(2*pi*694*t)+63*sin(2*pi*1469*t)+128 的波形 图 17 Y=63*sin(2*pi*697*t)+63*sin(2*pi*1477*t)+128 的波形 20 图 18 产生信号的误差值 DTMF 信号接收系统的结构 虽然通过示波器我们可以观测信号的波形与频率,但为了能够更好的验证 DTMF 信号的有效性,可以设计一个常用的 DTMF 波形的接受电路,然后单片机读取 MT8870 解出的码,最后由单片机把读到的信号在数码管上显示。 这样就可以很清楚知道发码是否准确。 在本节下面几个小节中将详细介绍 DTMF 信号接受系统的 硬件和软件设计。 MT8870的介绍 DTMF信号接收器又称为 DTMF解码器,它的功能是把 DTMF信号变换为二进制数字信号。 利用这些数字信号借助逻辑电路进行控制,在程控电话系统中它往往接在交换机中。 目前双音多频产品多属于 CMOS 集成产品,国际上一些主要器件产品厂商或公司均有代表性的 DTMF接收器。 如 MITEL公司 MT8870、 M8870、 MH88305与 MK5091等。 这些 DTMF产品集成度高、体积小、抗干扰能力强,并且中间传输的是两个音频信号,最后输出的是二进制编码信号,便于与微型计算机接口。 本系统选取的 MT8870是 MITEL公司生产的 DTMF信号接收器。 MT8870的内部集频带分离滤波器与数字解码功能为一体 ,滤波部分用开关电容技术,分成高频群及低频群滤波器,解码器使用数字计数器技术检测把全部 16个 DTMF音调解码成四位二进制码(见表 5,表示电话机键盘上各按键对应的二进制码)。 由于它内部有差动放大器、时钟振荡器和锁存三态总线接口,所以减少了该集成电路外部器件的数目。 (其内部结构见附录 4) 21 MT8870的引脚见图 19。 图 19 MT8870的引脚 MT8870各引脚功能如下:脚 1 ( IN+)为运算放大器同相输入端;脚 2 ( IN )为运算放大器反相输入端;脚 3 ( GS)为增益选择,它为内部运算放大器的输出端与前端连接反馈电阻提供通道;脚 4( VREF)为基准电压输出端,标准值 VDD/2用来给内部运放输入端加偏置;脚 5和脚 6( IC)为内部连接端,大多接到 VSS。 脚 7( OSC1)和脚( OSC2)分别为时钟输入端及时钟输出端,这两脚之间接一个。 脚 9( VSS)为负电源输入端,大多数情况该端接公共地。 脚 10( TOE)为三态输出使能输入端,该端为逻辑高时使能 Q0Q3有输出。 脚 1114( Q0Q3)为三态 数据输出端,当 TOE为使能时,提供与最接近接收到的有效音调对相对应的四位二进制码。 脚 15( STD)为延时导引输出端,当一个被收到的音调对已被寄存并且锁存器的输出已被校正时,该端为逻辑高,当 STD/GT端电压降到低于 VRS时,该端转换为逻辑低。 脚 1( EST)为早期导引输出端,表示有效音调频率的检测。 一旦数字算法检测到一个有效的音调对(信号状态),该端就出现高电平,信号状态的任何减小将导致 EST转换为逻辑低。 脚 17( STD/GT)为导引输入 /保护时间输出。 它是一个双向端, STD检测出一个大于 VTts的电压,器件 寄存所检测到的音调对并校正锁存器输出; STD端检测出一个小于 VTts 的电压,器件自由地接收一个新的音调对。 GT输出的作用是重复外部导引时间常数。 脚 18( VDD)为正电源输入端,规定 VDD 为 5V。 MT8870电路的基本特性是提供 DTMF信号分离滤波和译码功能,输出相应的 16种DTMF频率组合的 4位并行二进制码(如表 5)。 电路输出的二进制码 D1— D4由数据输出允许端 TOE控制。 TOE为高电平时, D0D3输出与当前输入的 DTMF信号相对应的二进制码;当TOE为低电平时, D0— D3端呈高阻状态。 运放和 R R C1组成一反相放大器,对输入的DTMF信号进行隔离放大,其增益 K=— R2/R1,改变 R2的值可变增益的大小,但增益不宜过大,一般 K值取为 1— 5,输入的 DTMF信号的幅度应在 — 883mV之间。 4端为 VREF为基准电压输出端,取值 VDD/2=; 5端和 6端( IC端)为内部电路连接点,必须与 VSS相连,三脚相连后接公共地; 7端与 8端外连接 ; STD( 15)为控制输入延迟端, EST( 16)为初始控制输出端, S/GT( 17)为控制输入 /时间监表 5 MT8870 输出代码与电话键盘上的按键的关系 22 测输出端。 DTMF 信号接收系统的硬件结构 图 20是 DTMF信号接受系统的硬件结构图。 输入的 DTMF信号经 MT8870解调后,在 STD端产生一个控制输出信号,该信号输出端与单片机 AT89C51的外部中断输入端 1INT 相连 ,当该信号发生由 1到 0的跳变时,中断标志 IE1(中断安排为下降沿触发方式),设置中断标志为 1,当 AT89C51响应中断后,产生一个 RD信号,信号经相反之后使 MT8870的 TOE端产生一个高电平脉冲信号, 该信号使 MT8870的数据输出端 Q0— Q3由原来的高阻状态变为与当前输入的双音频信号相对应的二进制编码信号, AT89C51通过 P0口将该二进制数读入。 单片机根据读入的二进制数,通过。基于单片机实现的的dtmf信号合成
相关推荐
GND419TEST_A23FILT_Q20FILT_Q21GND422CE24S L E25S D A T A26S RE A D27S CL K28GND229A D CI N30CR E G 231VDD232S W D33T X RX _ D A T A34T X RX _ CL K35CL K O U
得出的 Ah 是不同的。 实践中,电池容量被定义为:用设定的电流把电池放电至设定的电压所给出的电量。 也可以说电池容量是:用设定的电流把电池放电至设定的电压所经历的时间和这个电流的乘积。 上述所谓设定的电压是指终止电压(单位 V)。 终止电压可以简单的理解为:放电时电池电压下降到不至于造成损坏的最低限度值。 终止电压值不是固定不变的,它随着放电电流的增大而降低。 电池的充电方法常用的有三种: (
制系统。 LED16*16 模块作为动态扫描并行显示。 洛阳师范学院 毕业设计 /论文 10 第 3 章 系统硬件电路的设计 硬件电路大致上可以分为单片机系统及外围电路、列驱动电路和行驱动电路组成。 单片机系统及外围电路 AT89S51 性能介绍及其主要特性 AT89S51 是一个低功耗,高性能 CMOS 8 位单片机,片内含 4k Bytes ISP(Insystem
度可达 250KHZ/S。 使用单片机自带 AD 的 好处,就是可以节约成本,使电路简单化,抗干扰能力争闽西职业技术学院 12 强。 A/D 转换器使用的使的时钟是外部时钟,这样的好处是可以提高 A/D转换速度。 自带 A/D 的按键 绘制 PCB 图 15 总电路的 PCB 闽西职业技术学院 13 总电路 软件实现 流程图 图 16 总流程图 程序见后面附录。 开始 初始化 AD
内容。 在 flash编程和校验时,P2口也接收高 8位地址字节和一些控制信号。 6. P3 口( ~ ): P3 口是一个具有内部上拉电阻的 8 位双向 I/O口, P2 输出缓冲器能驱动 4 个 TTL 逻辑电平。 对 P3 端口写“ 1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流( IIL)。 P3 口亦作为
晶显示器件大多应用在便携、袖珍设备上。 由于达些设备体积小,所以尽可能不将显示部分设计成单独的部件,即使一些应用领域需要单独的显示组件,那么也应该使其除具有显示功能外,还应具有一些信息接收、处理、存储传递等功能,由于它们具有某种通用的、特定的功能而受市场的欢迎。 常见的的数显液晶显示模块有以下几种。 1.计数模块 这是一种由不同位数的七段型液晶显示器件与译码驱动器