数理与信息工程学院
课 程 设 计
题 目: 基于单片机实现远距离DTMF通讯 专 业: 计算机科学与技术(专升本) 班 级: 056班 姓 名: 陈 苗 苗 学号: 05191103 指导老师: 余水宝 陈希 成 绩:
( 2006.6 )
- 1 -
浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
目 录
第1节 引 言………………………………………………………………………1
1.1 概述…………………………………………………………………………1 1.2 设计任务……………………………………………………………………2 1.3 系统主要功能………………………………………………………………2
第2节 远程通讯硬件设计…………………………………………………………3 2.1 系统的硬件构成及功能……………………………………………………3 2.2 AT89C2051单片机及其引脚说明…………………………………………4 2.3 实现DTMF信号原理………………………………………………………5
第3节 系统软件设计………………………………………………………………6 3.1 系统主程序设计……………………………………………………………6 3.2 数据通信程序设计…………………………………………………………6 3.3 发送电路程序设计…………………………………………………………7 3.4 接收电路程序设计…………………………………………………………8
第4节 系统调试与测试结果分析……………………………………………9 4.1 使用的仪器仪表……………………………………………………………9 4.2 系统调试……………………………………………………………………9 4.3 测试结果分析………………………………………………………………9 4.4 系统误差处理………………………………………………………………9
第5节 结束语……………………………………………………………………10
参考文献 ………………………………………………………………………10
附录 ………………………………………………………………………………11
- 2 -
浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
基于单片机实现远距离DTMF通讯
数理与信息工程学院 05计算机专升本 陈苗苗
指导教师:余水宝 陈希
第1节 引 言
随着计算机技术和电信业的发展,通过电话线进行的远程通信越来越常见。人们通常采用MODEM进行通信,但是在通信数据量不大,对通信速率要求不高的应用场合,我们可以考虑一种DTMF通信方式,它具有接口简单,成本低廉且可靠性高的特点。与相关软件配合还可实现双向呼叫通信,正确识别通话与通信等功能,可适用多种远程通信场合,具有较好的推广应用价值。DTMF( Dual Tone Multi-Frequency ),即双音多频信号,是邮电业务的通信信令,它有很强的抗干扰能力,因此被广泛用于远距离通讯,如电话拨号通信中。基于单片机实现远距离DTMF信号的方法可以有多种,如用D/A转换器实现(基于PWM),也可用集DTMF信号的收发功能于一体的MT8880芯片等等。
1.1 概述
DTMF( Dual Tone Multi-Frequency )是用两个特定的单音频组合信号来代表数字信号以实现其功能的一种编码技术。两个单音频的频率不同,代表的数字或实现的功能也不同。这种电话机中通常有16个按键,其中有10个数字键0~9和6个功能键*、#、A、B、C、D。由于按照组合原理,一般应有8种不同的单音频信号。因此可采用的频率也有8种,故称之为多频,又因它采用从8种频率中任意抽出2种进行组合来进行编码,所以又称之为“8中取2”的编码技术。根据CCITT的建议,国际上采用的多种频率为687Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz和1633Hz等8种。用这8种频率可形成16种不同的组合,从而代表16种不同的数字或功能
键,具体组合见表1。
1
浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
1.2 本设计任务
表1
虽然基于单片机实现DTMF远程通讯的技术已相当成熟,但依然有尚可完善的地方,本设计的主要任务是基于更低成本实现DTMF远程通讯。在实际应用中常用1 b的DM编码来实现A/D和D/A过程,其中A/D过程可以在PC机上完成,用程序生成对应每一个 DTMF信号的DM编码表,D/A过程在单片机上完成。
1.3 系统主要功能
DTMF ( Dual Tone Multi-Frequency ),在全世界范围内,逐渐使用在按键式电话机上,因其提供更高的拨号速率,迅速取代了传统转盘式电话机使用的拨号脉冲信令。近年来 DTMF 也应用在交互式控制中,诸如语言菜单、语言邮件、电话银行等。这也是 DTMF 为手机使用添辉的所在。手机在 DTMF 的功能下,就能自动根据对方系统提示恢复数字或者符号,从而实现自动拨叫功能,这在如今的电话银行、语音菜单、分机呼叫系统中使用尤其明显,可见 DTMF 逐步在手机上的使用使得手机给我们带来更多的便利和精彩。
2
浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
第2节 远程通信硬件设计
2.1 系统的硬件构成及功能
通信接口电路如图1所示。话机与接口电路并联,通过光耦输出电平检测用户是否摘机。用户摘机后通过LINE1,LINE2直接收码,降低了接口电路对拨号的影响。数据通信时MPU通过I/01控制继电器断开话机,同时I/04置高,电路模拟摘机,三极管组成恒流源维持摘机状态。通信中断开话机可减少干扰,恒流源设计可保证电路具有较小的直流阻抗(<300Ω)和较大的交流阻抗(>600Ω),使电路具有较好的收发码特性。
LINE1,LINE2间接接入压敏电阻或瞬态抑制二极管可达到抗雷击保护作用。I/02,I/03输出电平与相关软件配合可实现脉冲拨号接收和反术信号检测。
LM567 10uF 1 TF1 OUT 2 20K 8 7 6 5 0.1uF VCC IN-2 0.1uF PF1 GND IN TIMC VCC TIMR 3 4 4.7K VCC 20K
图1
3
浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
电源部分:电源部分有二部分组成。一部分是由220V的市电通过变压、整流稳压来得到+5V电压,维持系统的正常工作;另一部分是由3V的电池供电,以保证停电时正常走时。正常情况下电池是不提供电能的,以保证电池的寿命。
2.2 AT89C2051单片机及其引脚说明
AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-51系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。
AT89C2051是一个有20个引脚的芯片,引脚配置如图2所示。与8051相比,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚下,因而芯片尺寸有所减小。
图2 AT89C2051引脚配置
AT89C2051芯片的20个引脚功能为: VCC 电源电压。 GND 接地。
RST 复位输入。当RST变为高电平并保持2个机器周期时,
4
浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
所有I/O引脚复位至“1”。
XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2 来自反向振荡放大器的输出。
P1口 8位双向I/O口。引脚P1.2~P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1” 后,可用作输入。在闪速编程与编程校验期间,P1口也可接收编码数据。 P3口 引脚P3.0~P3.5与P3.7为7个带内部上拉的双向I/0引脚。P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。P3口的输出缓冲器能接收20mA的灌电流;P3口写入“1”后,内部上拉,可用输入。P3口也可用作特殊功能口,其功能见表1。P3口同时也可为闪速存储器编程和编程校验接收控制信号。 2.3 实现DTMF信号原理
因为了系统主要目的是为了降低成本,所以系统中没有采用现成的D/A芯片,而是自行设计了一新颖的型电阻网络D/A转换器和滤波网络。如图2所示。该D/A转换器的新颖之处在于其电阻网络。由于其基本单元(1位二进制)的电阻网络很像一个的形状,帮称型。众所周知,通常的位权电阻D/A网络,虽然电路简洁,只用了9个电阻,但最高位与最低位电阻阻值相差128倍,很难从系列电阻中选取,帮精度较差。典型的R-2R T 型D/A电阻网络,虽然电阻选取方便,精度较高,但需要18只电阻。现作者参考多方面资料给出的D/A电阻网络,集权电阻D/A网络电路简洁和T型D/A电阻网络电阻选取方便,精度高之优点于一身,理论推算和实验均验证了该电路的合理性。当图2中的电阻R=10KΩ时,不难求得其输出电压的交流分量表达式:
式中的Vout为D0位至D7位输出高电平时的电压值。
图3中的R1,R2,C1,C2和运放组成你通平滑滤波网络,参数的选取应使该网络具有最佳的阻率和最平坦响应的Butterworth滤波特性。由图可求是其传递函数为:
5
浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
第3节图 3 系统的软件设计
本系统的软件系统主要可分为主程序、定时计数中断程序、基
于PWM实现DTMF信号程序等。在程序设计过程中,加强了部分软件抗干扰措施,下面对部分模块作介绍。 3.1 系统主程序设计 程序功能如下: 通信中断开话要可减少干扰,提高通信可靠性。 摘机后不能即拨号,要延时或检测到拨号音后再拨号。 通信中不允许无限等待,可限时接收,超时应退出通信。 判断是用户呼出摘机还是外线呼入用户接听摘机。 判断是主机呼入还是他人呼入。 判断是用户正常拨号还是用户完成功能设置。 具有振铃检测和自动摘机功能。振铃4次无人接听电路即自动摘机。 退出通信 电路挂机,接上话机 进入通信程序 等待时间到否? 是否收到应答? 通信开始 断开话机 电路摘机 延时待拨号音 拨叫主机号码 6
浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
图4 系统流程图
3.2 数据通信程序设计
程序功能如下:
采用固定格式报文方式,方便接收。
采用固定字节接收方式和简单异或校验方式即可实现可靠通信。 出错重发一次可提高通信成功率。
从机发送通信 发送报文数据 发送校验码 置重发标志 接收应答? 时间到? 已重发 重发请求? 退出通信 退出通信 通信完成
图5 数据通信程序框图 3.3
发送电路程序设计
发送数据时,数据总线上D0~D3四位二进制码被锁存在发送数据寄存器中,发送的DTMF信号频率由3.58 MHz的晶振分频产生。分频器首先从基准频率分离出8个不同频率的正弦波,行列计数器根据发送数据寄存器中的数据,以八取二方式分离出一个高频信号和一个低频信号,经开关电容做D/A转换,在加法器中合成DTMF信号,并从TONE端输出。程序框图如图6所示。
开始发送 7
浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
相应数据初始化 串口初始化 N R1=1? Y 接收数据 R1清“0”
50ms延时 3.4 接收电路程序设计 接收数据时,DTMF信号经由IN+和IN经过运算放大滤除信号中的拨号图-输入,6 发送程序流程图
音频率,然后发送到双音频滤波器,分离出低频组和高频组信号,通过数字计数的方式检出DTMF信号的频率,并且通过译码器译成4位二进制码。4位二进制编码被锁存在接收数据寄存器中,此时状态寄存器中的延时控制识别位复位,状态寄存器中的接收数据寄存器满标识位置位,对外而言,当寄存器中的延时控制识别位复位时,IRQ/CP由高电平变为低电平。如果用IRQ/CP作为单片机的中断信号,IRQL由高电平变为低电平,向CPU发出中断请求,当CPU响应中断,读出寄存器中的数据后,IRQ返回高电 平。程序流程图如图7所示。
发送数据
8 开始接收 相应数据初始化 串口初始化 N P1.2=1Y 接收数据 N T1=1? Y 浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
图7 接收程序流程图
T1清“0”
第4节 系统调试与测试结果分析
软硬件结合后,本系统也大致完成了,但还有一个重要的环节那就是调试和测试。 4.1 使用的仪器仪表
数字万用表 DT9203 单片机仿真器 WAVE6000 烧写器 GF2100 双踪稳压稳流电源 DH1718E-5 数字示波器 TDS1002 4.2 系统调试
根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试等,最后将各模块组合后进行整体测试。 4.3 测试结果分析
采用简单校验手段,发现DTMF通信中容易出现漏码,而重码、误码较少出现,所以采用固定字节接收方式和简单异或校验方式即可实现可靠通信。 4.4 系统误差处理
在DTMF双音多频通讯中,解芯片对DTMF信号的误差并不敏感,因此D/A转换的量化误差可以忽略。另外,DTMF信号的数据都是专家经过一系列复杂的,严密的计算而得,所以,这方面即使存在误
9
浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
差也不好消除。我们可以做的是增加采样数据。
结 束 语
本系统软硬件实现技术具有接口电路简单、可靠性高、成本低、灵活性强等优点。适用于数据通信量不大,速率要求不高的远程通信场合。可应用于远程分布式数据采集系统、家用自动防盗报警装置、远程室内监控系统以及公话集中管理系统等。
通过本次课程设计的制作,我对DTMF技术有了更深刻的体会,进而对单片机也产生了更浓厚的兴趣。以前做实验时,有些东西不是特明白,通过这次的学习,我收获很多,我了解了DTMF技术的先进性,实用性,从而也明白学好单片机的重要性。由此也终于体会到老师的苦心了。
我相信很多人还不知道DTMF是 Dual Tone Multi-Frequency 的缩小,至少我知道了。现在DTMF技术很流行,也很实用,正如在前面提到过的,除了取代传统转盘式电话机使用的拨号脉冲信令,也应用在交互式控制中,诸如语言菜单、语言邮件、电话银行等。
我明白自己现在对DTMF的了解还只是皮毛,不过,我会沿着这个兴趣,在以后继续关注它的发展,并不断学习和掌握它。同时通过此次课程设计的制作,让我知道自学的重要性,以及它带来的乐趣。也正是这次的制作,让我对单片机更加“另眼相看”,原来单片机真的用途很广,作用好大,我要学的东西很多,从而也增加我对单片机学习的兴趣。
参考文献
[1] 张鑫 华臻 陈书谦,单片机原理及应用[M],北京:电子工业出版社,2005.8
[2] 李朝青,PC机与单片机﹠DSP数据通信技术选编2[M],北京:北航出版社,2003
[3] 龚冬梅.基于DTMF信号方式的数据传输接口软件设计[J].电脑开发与应用,2003,16(6):17.
10
浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
附录
部分源程序代码
ORG 0000H
MAIN: MOV R0,#00H
MOV R5,#0FFH
LOOP: MOV A,R0
MOV DPTR,#TABH MOV A,@A+DPTR MOV DPTR,#7FFFH MOVX @DPTR,A
INC R0 DJNZ R5,LOOP AJMP
MAIN TAB: DB 80H,83H,86H,89HDB 8DH,90H,93H,96H DB 99H,9CH,9FH,A2H DB A5H,A8H,ABH,AEH DB B1H,B4H,B7H,BAH DB BCH,BFH,C2H,C5H DB C7H,CAH,CCH,CFH DB D1H,D4H,D6H,D8H DB DAH,DDH,DFH,E1H DB E3H,E5H,E7H,E9H DB EAH,ECH,EEH,EFH DB F1H,F2H,F4H,F5H DB F6H,F7H,F8H,F9H DB FAH,FBH,FCH,FDH DB FDH,FEH,FFH,FFH DB FFH,FFH,FFH,FFH DB FFH,FFH,FFH,FFH DB FFH,FFH,FEH,FEH DB FDH,FCH,FBH,FAH DB F9H,F8H,F7H,F6H DB F5H,F4H,F2H,F1H
产生正弦波程序 11
浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
DB EFH,EEH,ECH,EAH DB E9H,E7H,E5H,E3H DB E1H,DEH,DDH,DAH DB D8H,D6H,D4H,D1H DB CFH,CCH,CAH,C7H DB C5H,C2H,BFH,BCH DB BAH,B7H,B4H,B1H DB AEH,ABH,A8H,A5H DB A2H,9FH,9CH,99H DB 96H,93H,90H,8DH DB 89H,86H,83H,80H DB 80H,7CH,79H,76H DB 72H,6FH,6CH,69H DB 66H,63H,60H,5DH DB 5AH,57H,55H,51H DB 4EH,4CH,48H,45H DB 43H,40H,3DH,3AH DB 38H,35H,33H,30H DB 2EH,2BH,29H,27H DB 25H,22H,20H,1EH DB 1CH.1AH,18H,16H DB 15H,13H,11H,10H DB 0EH,0DH,0BH,0AH DB 09H,08H,07H,06H DB 05H,04H,03H,02H DB 02H,01H,00H,00H DB 00H,00H,00H,00H DB 00H,00H,00H,00H DB 00H,00H,01H,02H DB 02H,03H,04H,05H DB 06H,07H,08H,09H DB 0AH,0BH,0DH,0EH DB 10H,11H,13H,15H DB 16H.18H,1AH,1CH DB 1EH,20H,22H,25H
12
浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
DB 27H,29H,2BH,2EH DB 30H,33H,35H,38H DB 3AH,3DH,40H,43H DB 45H,48H,4CH,4EH DB 51H,55H,57H,5AH DB 5DH,60H,63H,66H DB 69H,6CH,6FH,72H DB 76H,79H,7CH,80H END
;产生DTMF信号
ORG 0000H LJMP START START:MOV R0,#30H
MOV R1,#3BH MOV R2,#00H
LOOP1:CJNE R0,#3BH,LOOP2MOV R0,#30H
LOOP2:MOV A,@R0
ADD A,@R1 MOV DPTR,#7FFFH MOVX @DPTR,A LCALL DELAY INC R0 INC R1
CJNE R1,#42H,LOOP1INC R2 MOV R1,#3BH
CJNE R2,#122,LOOP1LJMP START
DELAY:MOV R7,#58 LOOP:DJNZ R7,LOOP
RET
13
浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
DB 47H,6DH,88H,8DH DB 7DH,5BH,33H,11H DB 07H,06H,20H,38H DB 63H,6FH,50H,20H DB 01H,0CH,00H END
;发送程序段 ORG 1000H
SEND:MOV 30H,#08H MOV 31H,#04H MOV 32H,#07H MOV 33H,#09H MOV 34H,#04H MOV 35H,#06H MOV 36H,#02H CLR P1.6 CLR P1.4 CLR P1.7 SETB P1.5 MOV P1,#0DH SETB P1.4 NOP NOP CLR P1.4 MOV P1,#00H SETB P1.4 NOP NOP CLR P1.4 SETB P1.6 CLR P1.6 CLR P1.4 CLR P1.5 CLR P1.7
;赋初值给30H~36H范围的地址单元 14
浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
LOOP: MOV R0,30H MOV R1,7H MOV A,@R0 MOV P1,A SETB P1.4 ACALL DELAY CLR P1.4 INC R0 DJNZ R1,LOOP SETB P1.6 ;接收程序段 ORG 1200H
RECEIVE: MOV 30H,#00H ;赋初值给30H~36H范围的地址单元
MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H MOV 36H,#00H
MOV TMOD,#20 ;初始化定时器/计数器1作为波特率发生器 MOV TL1,#0FDH ;装入初值 MOV TH1,#OFDH CLR ET1 SETB TR1 MOV SCON,#40H MOV PCON,#00H CLR P1.4 CLR P1.7 CLR P1.6 SETB P1.5 MOV P1,#2DH SETB P1.4 NOP NOP CLR P1.4
15
浙江师范大学数理与信息工程学院课程设计——基于单片机实现远距离DTMF通讯
MOV P1,#20H SETB P1.4 NOP NOP CLR P1.4 SETB P1.6 NOP NOP
MOV R0,30H MOV R1,#7H
其它源程序可参照本文提到的参考文献。
16
因篇幅问题不能全部显示,请点此查看更多更全内容