论文部分内容阅读
【摘 要】在现今的生活中DTMF信号的使用是必不可少,而在通信的领域中它的使用更是普遍,因此对它需有一定的了解并且应熟知它的发送与接收。
此次设计就是基于双音频编码信号的通信系统中接收端设计,主要使用了单片机STC89C52及MT8880、HD7279等芯片。设计中利用单片机控制MT8880芯片实现DTMF信号的接收和解码,再控制HD7279芯片接收解码后的DTMF信号并将之传送到数码管使其显示出来,即可知接收的信号所代表的数字。以上为设计中双音频编码信号接收的整体过程。
【关键词】DTMF;单片机STC89C52;MT8880芯片;HD7279芯片
1、硬件电路设计
1.1 系统电路设计
设计的基于双音频编码信号的通信系统中接收端的电路可分为三大部分,系统框图如2.1所示。
图1.1 DTMF信号的接收端的电路系统设计
1.2 单元电路设计
1.2.1 MT8880接收电路设计
当MT8880作为DTMF接收器的时候,DTMF信号经由IN+和IN-输入,经过运算放大滤除信号中的拨号音频率,然后发送到双音频滤波器,分离出低频组和高频组信号,通过数字计数的方式检出DTMF信号的频率,并且通过译码器译成4位二进制码。4 位二进制编码被锁存在接收数据寄存器中,此时状态寄存器中的延时控制识别位复位,状态寄存器中的接收数据寄存器满标识位置位,对外而言,当寄存器中的延时控制识别位复位时,IRQ/CP由高电平变为低电平。在中断模式下,若芯片同时被设置为接收 DTMF信号模式,那么当收到有效 DTMF信号并译码后,IRQ 端变为低电平。所以可用IRQ/CP作为单片机的中断信号,当IRQ由高电平变为低电平时向CPU发出中断请求,当 单片机响应中断,读出寄存器中的数据后,IRQ返回高电平。所以在电路中IRQ端与单片机的P3.2连接,并与一高电平并连,可以实现中断请求功能。MT8880的D0~D3与单片机的P0.0~P0.3相连,CP端与P3.4相连,RSO与P1.0相连,R/W与P1.5相连。
1.2.2 HD7279控制显示电路
HD7279是一片具有串行接口的,可驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多大64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。而在DTMF信号接收端设计中不需要使用键盘矩阵,只需使用它驱动数码管显示。将它与单片机相连,在单片机中编写程序控制HD7279的工作使其显示接收并译码后的信号。
2、程序设计
2.1 结构功能设计
在系统程序设计中包括了单片机对MT8880芯片的控制和对HD7279芯片的控制。通过程序单片机控制MT8880对接收的DTMF信号进行解码而后将解码后信号写入HD7279中再通过它使8位共阴式数码管显示出来。
单片机控制了MT8880的D0~D3、CP、RSI、RW等管腳。 RSI端和RW端的状态共同确定MT8880的一些工作状态。 在MT8880中,当需要接收DTMF信号时,首先往控制寄存器CRA和CRB写入相应的控制字,把芯片设置为DTMF模式,通过读取状态寄存器中的D2位,可以判断是否收到一个有效的 DTMF信号并已译码。若已收到则读取内部“接收数据寄存器”的内容(从芯片的 D0一D3脚读出)。控制寄存器和状态寄存器各个位的功能意义简述如下:
(1)控制寄存器CRA。 D0;把该位设置为“1”,则芯片被设置成DTMF模式,允许收、发双音频信号。D1:把该位设置为“1",则芯片被设置为信号音检测模式 (呼叫处理模式),当D2也设为“1”时,引脚IRQ端能输出与各种信号音对应的方波。D2:把该位设置为“1",则芯片被设置成中断模式,其具体功能见前述的3种模式介绍。D3:把该位设置为“1",表明允许选择控制寄存器CRB,因此应在写入控制寄存器CRA后,接着写控制寄存器 CRB。
(2)控制寄存器CRB。 D0:把该位设置为“0”时芯片工作于普通双音频模式;设置为“1"时芯片工作于突发模式,突发和暂停长度各为(51 土2)ms。D2:把该位设置为“0”时允许产生双音频,否则只产生单音频。D3:行/列音选择,当 D2=1(单音模式)时,D3 用于选择行音或列音(即音频频率的选择)。
根据以上功能意义就可以编写控制寄存器CRA和CRB写入相应的控制字。而根据MT8880的工作模式特点,单片机使用中断方式控制其工作。MT8880是有关DTMF解码与译码于一体的信号。
单片机控制了HD7279的key、dat、clk、cs四个管脚,其中cs为片选输入端,key为根按键有效输出端,dat为串行数据输入/输出端,clk为时钟输入端。根据芯片的工作方式就可编写相应的程序控制HD7279芯片的工作。程序中HD7279按照方式0进行译码. 在编写程序是要注意MT8880对DTMF信号的译码规则和HD7279芯片的译码规则。他们在1~9的译码规则是相同的,但其他数字与字符却不相同。还需注意这两个芯片的工作时序,在程序中需要加入适当的延时程序,这样芯片才能正常的工作。
2.2 程序流程图
对MT8880进行发送前必须进行初始化后,才能进行收发数据。开始工作时需要对HD7279进行复位,数码管会显示最初设置的值。然后要一个等待时间在对MT8880进行接收初始化,MT8880以中断模式工作。主程序大致流程如图3.1.所示。
图3.1 主程序流程图
开始时设置为一共可接收8个DTMF信号,当大于8个时再重新接收。接收的数据会存在锁存器,然后读MT8880的状态需设置状态使其进行译码工作。判断接收的数据,由于0根据MT8880译码规则是对应1010,而对应HD7279的规则1010对应为负号,所以当接收到10时要将其判断为0。将译码后的数字送到HD7279中译码显示,显示的方式为逐个显示。
3、结论
在程序设计中,单片机以中断方式控制MT8880工作。那么当收到有效 DTMF信号并译码后,MT8880会向CPU发出中断请求,当单片机响应中断就会读出寄存器中的数据。这样可以减少单片机的工作量和提高效率。并且在主程序中有对发光二极管的控制,这样能够更有效的判断电路是否接收到信号。但在功能设计上程序还是有些不足。它只能接收7个连串的数字若超过后数码管将会显示乱码。并且只能使用单片机的复位健使其复位。。
参考文献:
[1] 黄葆华,杨晓静,牟华坤.通信原理【2007年2月第一版】.西安:西安电子科技大学出版社,2007,P191—193
[2] 高如云,陆曼如,张企民,孙万蓉.通信电子线路【第二版】西安:西安电子科技大学出版社,2007,P281--282
[3] 谢自美.电子线路设计实验测试【第二版】.武汉:华中科技大学出版社,2003,P98—P99
[4] 张迎新等.单片机初级教程—单片机基础【第二版】.北京:北京航空航天大学出版社,2008,P31—59,P176—P198,P244--265
[5] 张万奎.模拟电子技术基础【第一版】.长沙:湖南大学出版社,2004,P31—39,P51—73
[6] 刘洪志.用AVR单片机实现DTMF信号.世界电子元器件.2004年第七期
此次设计就是基于双音频编码信号的通信系统中接收端设计,主要使用了单片机STC89C52及MT8880、HD7279等芯片。设计中利用单片机控制MT8880芯片实现DTMF信号的接收和解码,再控制HD7279芯片接收解码后的DTMF信号并将之传送到数码管使其显示出来,即可知接收的信号所代表的数字。以上为设计中双音频编码信号接收的整体过程。
【关键词】DTMF;单片机STC89C52;MT8880芯片;HD7279芯片
1、硬件电路设计
1.1 系统电路设计
设计的基于双音频编码信号的通信系统中接收端的电路可分为三大部分,系统框图如2.1所示。
图1.1 DTMF信号的接收端的电路系统设计
1.2 单元电路设计
1.2.1 MT8880接收电路设计
当MT8880作为DTMF接收器的时候,DTMF信号经由IN+和IN-输入,经过运算放大滤除信号中的拨号音频率,然后发送到双音频滤波器,分离出低频组和高频组信号,通过数字计数的方式检出DTMF信号的频率,并且通过译码器译成4位二进制码。4 位二进制编码被锁存在接收数据寄存器中,此时状态寄存器中的延时控制识别位复位,状态寄存器中的接收数据寄存器满标识位置位,对外而言,当寄存器中的延时控制识别位复位时,IRQ/CP由高电平变为低电平。在中断模式下,若芯片同时被设置为接收 DTMF信号模式,那么当收到有效 DTMF信号并译码后,IRQ 端变为低电平。所以可用IRQ/CP作为单片机的中断信号,当IRQ由高电平变为低电平时向CPU发出中断请求,当 单片机响应中断,读出寄存器中的数据后,IRQ返回高电平。所以在电路中IRQ端与单片机的P3.2连接,并与一高电平并连,可以实现中断请求功能。MT8880的D0~D3与单片机的P0.0~P0.3相连,CP端与P3.4相连,RSO与P1.0相连,R/W与P1.5相连。
1.2.2 HD7279控制显示电路
HD7279是一片具有串行接口的,可驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多大64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。而在DTMF信号接收端设计中不需要使用键盘矩阵,只需使用它驱动数码管显示。将它与单片机相连,在单片机中编写程序控制HD7279的工作使其显示接收并译码后的信号。
2、程序设计
2.1 结构功能设计
在系统程序设计中包括了单片机对MT8880芯片的控制和对HD7279芯片的控制。通过程序单片机控制MT8880对接收的DTMF信号进行解码而后将解码后信号写入HD7279中再通过它使8位共阴式数码管显示出来。
单片机控制了MT8880的D0~D3、CP、RSI、RW等管腳。 RSI端和RW端的状态共同确定MT8880的一些工作状态。 在MT8880中,当需要接收DTMF信号时,首先往控制寄存器CRA和CRB写入相应的控制字,把芯片设置为DTMF模式,通过读取状态寄存器中的D2位,可以判断是否收到一个有效的 DTMF信号并已译码。若已收到则读取内部“接收数据寄存器”的内容(从芯片的 D0一D3脚读出)。控制寄存器和状态寄存器各个位的功能意义简述如下:
(1)控制寄存器CRA。 D0;把该位设置为“1”,则芯片被设置成DTMF模式,允许收、发双音频信号。D1:把该位设置为“1",则芯片被设置为信号音检测模式 (呼叫处理模式),当D2也设为“1”时,引脚IRQ端能输出与各种信号音对应的方波。D2:把该位设置为“1",则芯片被设置成中断模式,其具体功能见前述的3种模式介绍。D3:把该位设置为“1",表明允许选择控制寄存器CRB,因此应在写入控制寄存器CRA后,接着写控制寄存器 CRB。
(2)控制寄存器CRB。 D0:把该位设置为“0”时芯片工作于普通双音频模式;设置为“1"时芯片工作于突发模式,突发和暂停长度各为(51 土2)ms。D2:把该位设置为“0”时允许产生双音频,否则只产生单音频。D3:行/列音选择,当 D2=1(单音模式)时,D3 用于选择行音或列音(即音频频率的选择)。
根据以上功能意义就可以编写控制寄存器CRA和CRB写入相应的控制字。而根据MT8880的工作模式特点,单片机使用中断方式控制其工作。MT8880是有关DTMF解码与译码于一体的信号。
单片机控制了HD7279的key、dat、clk、cs四个管脚,其中cs为片选输入端,key为根按键有效输出端,dat为串行数据输入/输出端,clk为时钟输入端。根据芯片的工作方式就可编写相应的程序控制HD7279芯片的工作。程序中HD7279按照方式0进行译码. 在编写程序是要注意MT8880对DTMF信号的译码规则和HD7279芯片的译码规则。他们在1~9的译码规则是相同的,但其他数字与字符却不相同。还需注意这两个芯片的工作时序,在程序中需要加入适当的延时程序,这样芯片才能正常的工作。
2.2 程序流程图
对MT8880进行发送前必须进行初始化后,才能进行收发数据。开始工作时需要对HD7279进行复位,数码管会显示最初设置的值。然后要一个等待时间在对MT8880进行接收初始化,MT8880以中断模式工作。主程序大致流程如图3.1.所示。
图3.1 主程序流程图
开始时设置为一共可接收8个DTMF信号,当大于8个时再重新接收。接收的数据会存在锁存器,然后读MT8880的状态需设置状态使其进行译码工作。判断接收的数据,由于0根据MT8880译码规则是对应1010,而对应HD7279的规则1010对应为负号,所以当接收到10时要将其判断为0。将译码后的数字送到HD7279中译码显示,显示的方式为逐个显示。
3、结论
在程序设计中,单片机以中断方式控制MT8880工作。那么当收到有效 DTMF信号并译码后,MT8880会向CPU发出中断请求,当单片机响应中断就会读出寄存器中的数据。这样可以减少单片机的工作量和提高效率。并且在主程序中有对发光二极管的控制,这样能够更有效的判断电路是否接收到信号。但在功能设计上程序还是有些不足。它只能接收7个连串的数字若超过后数码管将会显示乱码。并且只能使用单片机的复位健使其复位。。
参考文献:
[1] 黄葆华,杨晓静,牟华坤.通信原理【2007年2月第一版】.西安:西安电子科技大学出版社,2007,P191—193
[2] 高如云,陆曼如,张企民,孙万蓉.通信电子线路【第二版】西安:西安电子科技大学出版社,2007,P281--282
[3] 谢自美.电子线路设计实验测试【第二版】.武汉:华中科技大学出版社,2003,P98—P99
[4] 张迎新等.单片机初级教程—单片机基础【第二版】.北京:北京航空航天大学出版社,2008,P31—59,P176—P198,P244--265
[5] 张万奎.模拟电子技术基础【第一版】.长沙:湖南大学出版社,2004,P31—39,P51—73
[6] 刘洪志.用AVR单片机实现DTMF信号.世界电子元器件.2004年第七期