毕业论文-基于双音多频DTMF的远程有线数据通信的设计.doc_第1页
毕业论文-基于双音多频DTMF的远程有线数据通信的设计.doc_第2页
毕业论文-基于双音多频DTMF的远程有线数据通信的设计.doc_第3页
毕业论文-基于双音多频DTMF的远程有线数据通信的设计.doc_第4页
毕业论文-基于双音多频DTMF的远程有线数据通信的设计.doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

五邑大学本科毕业设计摘 要RS232、RS485作为通信系统中最常用的串口接口,其传输距离短;而双音多频信号的传输距离可以达到十公里,具有很大的优势。本设计是基于双音多频DTMF的有线远程通信系统。其核心是单片机STC89C52和双音多频芯片MT8880。通过单片机STC89C52对芯片MT8880进行读写控制,并将数据以双音多频信号的方式进行远距离有线传输。这设计实现了DS18B20温度数据采集的功能,另外还实现键盘检测、温度数据传输、数据的接收及显示等等功能。基于双音多频信号的有线远程数据通信,具有成本低廉、协议简单、通信可靠等优点,在工业控制领域具有良好的应用前景。关键词:双音多频;STC89C52;MT8880;键盘;LCD1602;DS18B20;数据远程有线传输.AbstractThe transmission distance of RS232 and RS485, as a communication system and the most common serial interface, is short; while the dual-tone multi-frequency signal transmission distance up to ten kilometers, which would be had a great advantage.This design is based on the dual-tone multi-frequency DTMF and the wires would be employed in the system design to communicate with some remote other places. The cores are the microcontroller STC89C5 and the dual-tone multi-frequency chip MT8880. The control of reading and writing would be used between microcontroller STC89C52 and the chip MT8880 to completes the data transmission. The function of DS18B20 temperature data acquisition has been achieved in this design, and these functions have been realized of the keyboard temperature detection, data transmission, data reception and display and so on.The wired remote data communications based on dual-tone multi-frequency signal , with low cost, simple protocol, communication and reliable,would be had a good application prospect in the field of industrial control .Keywords: DTMF; STC89C52; MT8880; keyboard; LCD1602; DS18B20; wired remote data transmission.目 录摘 要Abstract第1章 绪论11.1 课题背景11.2 双音多频信号与RS232、RS485通信的比较11.3 双音多频的应用领域11.4双音多频的研究内容和意义21.4.1研究的内容21.4.2研究的意义21.5本章小结2第2章 双音多频信号的产生、发送与接收32.1 双音多频DTMF技术简介32.2 MT8880的引脚及功能32.3 MT8880工作模式选择52.4双音多频信号的产生与发送72.5双音多频信号的接收及解调72.6本章小结8第3章 双音多频远程通信系统的概述93.1 双音多频通信系统总框架图93.2单片机各模块电路的介绍93.2.1单片机的复位电路93.2.2单片机的晶振电路103.2.3单片机的键盘电路103.2.4单片机的显示电路113.2.5单片机的蜂鸣器113.2.6温度传感器DS18b20电路123.3双音多频DTMF模块电路的介绍123.3.1 MT8880芯片的接口时钟信号123.3.2 MT8880芯片的硬件接口设计123.2.2.1单片机与MT8880的接口123.2.2.2 MT8880的时钟电路143.2.2.3 MT8880的控制电路153.2.2.4 MT8880的输入电路153.4本章小结16第4章 程序设计174.1 MT8880的初始化程序流程图174.2 双音多频系统发送模块程序174.3 双音多频系统接收模块程序184.4 MCS-51单片机对DS18b20操作程序194.5 键盘检测程序204.6 液晶LCD1602显示程序204.7 本章小结21第5章 电路的制作与系统的调试225.1 电路板的制作225.2 系统的调试225.2 本章小结22结 论23致 谢24参考文献25附录1 电路原理图26附录2 电路PCB图28附录3 单片机程序30IV第1章 绪论1.1 课题背景随着微型计算机和电子技术的飞速发展,信息远距离的交换传输已是一种必然的发展趋势。在信息高速交换过程中,对通信系统的各种性能也提出了更高要求。例如:抗干扰能力强、传输距离远、准确率高、传输稳定等等,双音多频信号正好符合以上各种性能指标而进一步发展完善。在信息高速交换的世界里,特别IT产业不断地向各个传统领域的拓展,越来越多的技术重新受到了重视。双音多频DTMF(Dual Tone Multi Frequency)技术就是传统领域技术之一。双音多频信号起初多作为一种信令用于电信通话领域,并起到了主导的作用。现在,有线电信网络已经完成了比较合理的规划与建设。在这合理规划的有线电信网络基础上,如果能充分利用这些网络资源,进行纵向的拓展,实现数据的有线远距离传输,从而达到降低成本等等各方面要求。双音多频技术能将信息以双音多频信号的方式,在现有的电话线网络中进行远距离的传输,具有良好的应用前景。1.2 双音多频信号与RS232、RS485通信的比较RS232是针对点对点通信而设计的,是PC机与通信工业中应用最广泛的一种串口接口,其传输距离最大约为15米;RS-485通信是在RS-422的基础上发展而来的,其传输距离约为1200米;双音多频技术是用一个高频信号和一个低频信号叠加而成,代表一个数字或字母,其独特的技术,使其通信传输距离大大地增加,达到了十公里;很显然,双音多频信号传输距离远远大于RS232与RS485的传输距离,符合现代通信系统有线数据远距离传输的特征,因而双音多频信号受到了青睐。双音多频技术除了具有远距离传输的特点之外,其具有传输速度更快、抗干扰能力强、准确率高、传输稳定等等优点。这些优点刚好符合现代工业通信系统的各方面要求,故其在工业控制领域具有良好的应用前景。1.3 双音多频的应用领域双音多频技术应用很广泛,起初只用于电信通话领域。随着电子技术和电脑技术的不断发展,双音多频技术的优点慢慢得到了充分体现。双音多频的应用领域比较宽,在多媒体集中控制器中,由计算机多媒体、投影仪、DVD等组成的多媒体教室迅速发展,然而多媒体各种设备综合操作起来极其不便4。对于这个问题,可以采用双音多频码技术通过计算机输出控制信号,实现对各种仪器设备功能的集中控制,从而实现多媒体教学各种功能。在电视监控系统中,主控台可以将所有控制命令进行DTMF编码发送出去,在监控点处,DTMF解码器将接收信号进行解码,根据解码的得到各种指令,作出相对应的操作;在微机自动抄表系统中,自动抄表系统由两大部分组成,分别为用户机和抄录主机,用户机完成数据的存储后,经过双音多频芯片编码、锁相环路后耦合到电路线上,双音多频信号连接到抄录主机,抄录主机接收到双音多频信号后,对信号的进行放大、解码等一系列相关信号处理后,将数据录入抄录主机,这样就完成了微机自动抄表;在远程通信预警系统中,利用公共电话网对家用电器等设备进行远程预警,在该系统采用电话机的按键进行控制指令发送与接收操作;由于双音多频具有抗干扰能力强,接收数据或发送数据时产生畸形极小的优点,在各种在键盘、信用卡系统中等到了广泛的应用。除了上面介绍的在各种领域应用之外,双音多频技术还在多点共线通信、智能仪器、遥控系统、电动脱轨器控制系统、电力载波通讯技术等等领域等到了应用。1.4双音多频的研究内容和意义1.4.1研究的内容 双音多频技术由于其本身具有特殊的性能而受到社会的青睐,而双音多频信号可以在现有的电话电信网中能够进行高质量的远距离数据通信。现在很多应用系统都是利用已经比较成熟的单片机作为核心控制器,通过有线(电话线、同轴电缆、光纤等等)介质进行指令传输,主机(单片机)接到相关的指令后完成对各种相关仪器设备的操作。双音多频有线远程数据通信系统的设计就是以单片机为主要的基础,对双音多频芯片进行读写操作,并在现有的有线网络的基础上,将信息以双音多频信号的方式进行传输,最终完成数据的有线远距离通信,这就是本系统设计的主要内容。1.4.2研究的意义双音多频远程有线数据通信系统基本目的,就是充分利用现有的比较完善的电话线或电力网网络进行数据的远程传输,从而为人们提供一种更快捷更低成本的有效通信方式,而且双音多频技术还可以拓展到更宽的领域,从而使双音多频就是得到更加充分的使用与普及。15本章小结本章介绍了双音多频技术的背景,还将双音多频信号通信与RS232、RS485通信进行比较,知道双音多频信号比RS232、RS485拥有更远距离传输的优点。除此之外,还介绍了双音多频技术在各个领域的应用、研究内容和意义。第2章 双音多频信号的产生、发送与接收 本设计的系统,先要将二进制信号转换成双音多频信号,然后由发送模块传输到接收模块。因此,在本章先介绍双音多频信号发送与接收的原理。2.1 双音多频DTMF技术简介双音多频(DTMF,Dual Tone Muti Frequency)作为电信电话系统中交换机与电话机之间的一种主要信令。该信令具有灵活性强、传输速度快、传输稳定等特点而在通信网中得到广泛应用。由高频组和低频组组成DTMF,每组具有4种不同的频率信号。其中,一个高频信号和一个低频信号构成一个DTMF信号,共构成16种不同的信号,分别表示为6个字符和10个数字。根据CCITT的意见,在国际上采用的频率697Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1447Hz、1633 Hz ,这些频率的选择都是经过对人体声学研究后而得到的,是人类声带中使用最少的频率组合,故双音多频信号可以避免人类话音的干扰5。其16种双音多频对编码定义如表2-1所示。表2-1 编解码逻辑表数字D3D2D1D06971209100016971336200106971477300117701209401007701336501017701477601108521209701118521336810008521477910019411336010109411209*10119411477#11006971633A11017701633B11108521633C11119411633D00002.2 MT8880的引脚及功能MT8880是Mitel公司生产的,其能产生双音多频信号并集编解码一体的芯片。该芯片具有高集成、低功耗、可编程控制等等特点,能够与多种类型MCU直接连接而实现DTMF信号的发送、接收和状态检测等等功能,硬件实施起来比较简单。其引脚图如图2-1所示。图2-1 MT8880引脚图1、数据类IN+:DTMF信号的同相放大输入端。IN-:DTMF信号的反相放大输入端。D0D3:4位数据线,TTL兼容。在时钟输入端CP为低电平或片选CS无效时,数据总线呈现高阻状态。TONE: 双音多频信号输出端。2、电源类:VDD:电源电压端,典型电压值为5V。VREF:基准电源输出端。由VDD和VSS产生,一般为VDD/2,可作为芯片内部运放的偏置电压。VSS:电源地,典型值为0V。3、控制类CS:片选信号端,低电平有效RW:读/写控制信号输入端,TTL兼容RS0:寄存器选择端。RS0为高电平时,选择控制寄存器或状态寄存器,RS0为低电平时,选择数据寄存器。GS:增益端。该端通过外接运算放大器输入的电阻与反馈的电阻形成前置放大的双音多频信号。IRQ/CP:呼叫进程模式的信号输出端或中断请求信号端。EST:初始控制端。没有检测到有效的输出端信号,该引脚输出为低电平,检测到有效的输出端信号,该引脚输出高电平。ST/GT:控制输入端或监测时间端。当检测到ST端的电压高于芯片内部的控制电压阀值时,芯片相关的寄存器检测到有效的DTMF信号时,同时更新输出的内容;当检测到ST端的电压低于芯片内部的控制电压阀值时,表示芯片检测到的信号不是有效的DTMF信号。OSC1:双音多频时钟输入引脚OSC2:双音多频时钟输出引脚。在使用内部时钟是,OSC1与OSC2之间连接一个3.579545MHz的晶振;而在使用外部时钟时,OSC2悬空,时钟信号从OSC1输入。2.3 MT8880工作模式选择MT8880是一个内含呼叫进程滤波器的单片DTMF收发器。它采用ISO2-CMOS技术,具有功耗低和可靠性高的特点3。双音多频接收器是基于工业标准MT8870单片DTMF接收器;发射部分采用一个开关电容器的D/A转换器,产生一种低失真,高精度的双音多频信号。MT8880片内具有标准的微处理器总线接口,因而其能够与微处理器兼容。双音多频芯片MT8880共有6种工作模式,它们分别为:双音多频模式、单音频模式、呼叫进程模式、突发模式、中断模式和单/双音产生模式。双音多频模式:发送、接受双音多频信号。输入的数据经TDR,D/A转换器,合成双音多频信号,或者DTMF信号经过拨号音抑制、分离带通滤波器鉴频与确认,译成4位码,经RDR送到数据总线端。在模式下,芯片MT8880接收或发送双音多频信号。单音频模式:其能够产生相应单一的低音频或高音频;该模式用于测试设备的应用程序,以及音频的产生及失真测量。呼叫进程模式:在模式下,中断有效时,芯片能检测到电话电信网上的各种信号(如忙音、振铃音、回铃音等);当频率落在320510Hz频率范围内时,处理器可以滤出经过限幅的方波,经IRQ/ CP引脚会输出;当频率不在此带宽内,IRQ/ CP引脚会维持在低电平。突发模式:在该模式下,信号的突发和暂停时间各为51ms。在此模式下,此电路只能发送DTMF信号,但该模式比DTMF模式的工作时序更精确。中断模式:当设置为接收或发送双音多频信号而且中断使能时,每接收到有效的双音多频信号,IRQ/CP端为低电平;在开始接收双音多频信号时,IRQ/CP端也会变为低电平,这样就能给MCU发送中断信号触发,MCU能根据中断作出相应响应。单/双音产生模式:电路可以产生单音或双音多频信号,主要用于测试和监控。由MT8880的6中工作模式可知,本系统设计只采用双音多频信号,因而本设计的芯片MT8880不能选用呼叫进程模式、单音频模式、突发模式中断模式和单/双音产生模式,只能选择DTMF模式。通过对MT8880内部寄存器操作来实现对于双音多频模式的选择。MT8880具有微处理接口的特点,故能够将MT8880的端口与MCS-51单片机的I/O直接连接。MT8880内部寄存器共有5个寄存器,可以分为三种类型:1、数据转移;2、收发控制;3、收发状态寄存器。接收数据寄存器用于存贮有效的双音多频信号,前一个已被译成功码的双音多频信号,它是一个只读寄存器。发送寄存器,它用于待发送的数据,它是一个只写寄存器。收发控制是由两个具有相同地址空间的控制寄存器(CRA和CRB)来实现。特别需要注意,先写入控制的是写CRA(控制寄存器A),紧接着写入的就是CRB(控制寄存器B),但是否写入CRB由CRA最高位b3来控制。 表2-2是关于内部寄存器数据的写入及读出控制的描述。表2-3是关于控制寄存器比特位名称的描述。表2-4、表2-5和表2-6是关于内部寄存器各比特位具体功能的描述。表2-2 内部寄存器功能表RS0功能00写发送寄存器01读接收寄存器10写控制寄存器11读状态寄存器表2-3 控制寄存器A(CRA)及控制寄存器B(CRB)比特位寄存器b3b2b1b0CRARSELIRQTOUTCRBTESTBURST表2-4 控制寄存器A(CRA)的描述比特位名称功能说明b0TOUT音频使能b0=0,不允许TONE输出信号;b0=1,允许信号输出。其中,这个功能只适用于DTMF模式和突发模式b1控制方式b1=1;选择呼叫进程模式,b1=0;选择双音多频模式b2IRQ中断使能b2=1,MT8880可以产生中断(即工作在中断方式),当芯片接收有效的DTMF信号或在突发模式下发送数据寄存器准备发送下一组数据时,该bit被清“0”b3RSEL寄存器选择逻辑“1”选择控制寄存器B,在下一个写循环中将对控制寄存器B进行写操作。随后的写循环将反过来写控制寄存器A表2-5 控制寄存器B(CRB)的描述比特位名称功能说明b0BURST突发模式b0 = 0,选择突发模式,b0 = 1,不选择突发模式b1TEST测试模式选择DTMF模式且b1 = 1,选择测试模式b2单/双音多频产生b2 = 0,产生双音多频信号;b2 = 0,不选择双音多频信号,产生单音信号b3列/行单音在b2 = 1条件时,b3 = 1,产生列单音信号;b3 = 0,产生行单音信号表2-6 状态寄存器说明比特位名称状态标志设置状态标志清除b0中断请求产生中断。b1或b2置位中断无效或状态寄存器已被读后(清“0”)b1发送数据寄存器空发送器准备发送数据状态寄存器已被读后或当前为非突发模式b2接收数据寄存器满接收数据寄存器中的有效数据并存储状态寄存器已被读后清除b3延时控制检测到有效的双音多频信号未检测到有效双音多频信号由以上各种表格可知,本系统设计中应该采用双音多频模式,在复位后进行初始化程序中,必须将控制寄存器A中的b1置位。2.4双音多频信号的产生与发送双音多频产生器是芯片MT8880发送部分的主体,它能产生全部16个标准的、失真小、精度高的双音多频对。所有双音多频对都是由外部3.579545MHz晶体振荡器经过分频而得到的。通过可编程分配器和开关电容式D/A转换器进行数字化后就能产生不同音频的正弦波。所有失真低、精度高的双音多频信号都是由行和列音频经混合及滤波后产生的。DTMF编码格式的信息首先被写入MT8880的发送寄存器中。需要发送时,DTMF产生器就产生单独的低音频和高音频,而且高音频与低音频的输出幅度之比为2dB,其目的在于可以经过予加重处理,补偿信号在线路的衰减,这样便于接收端的处理。32个等时长的时间段组成每个音频周期,音频周期会随着时间段的长短而产生不同的变化,就是说可以改变时间段来控制音频周期。在向MT8880写操作工程中,总线的4位数据被锁存,然后其被转换为两个八进制码供给可编程分配器使用,可编程分配器就可以根据八进制码确定时间段的长短来确定音频的频率。当分配器计数达到由编码所确定的数值时,产生复位脉冲,然后计数器开始重新计数,直到时间的段数达到32。当时间段长度的变化时,输出的音频信号频率也随着变化。分配器将时钟提供给计数器,该计数器会输出正弦波的地址。编码电路是由开关电容式D/A转换器构成,得到量化电平。在输出级有带通滤波器,用来衰减大于8000Hz的谐波。晶体振荡器在工作期间不需要启动时间,故芯片MT8880能够保证了音频组的精度。双音多频根据二进制数据的不同而产生不同的双音多频对,在MT8880的第8个引脚输出。2.5双音多频信号的接收及解调分离低次群和高次群音频是芯片MT8880的接收部分最主要的功。DTMF信号经过运算放大器输入到两组六阶D/A带通滤波器,根据频率的高低分离出低音频组和高音频组。低音频组中两个陷波滤波器将350Hz和440Hz的音频滤除,主要的目的抑制各种异常的拔号音。每个滤波器都会连接一阶开关电容式的滤波器,以此提高分离双音多频信号的信噪比;而高增益的比较器完成限幅的作用,以此滤出低于门限的弱信号、噪音等等不符合要求的信号。在滤波器完成之后,译码器运用数字计数技术判别信号的各种频率,通过检测就可以知道它是不是标准的双音多频信号。解码器利用了复杂的平均值算法在向小的频率偏移提供容差的同时可防止干扰信号产生的音频。这种平均值计算方法既可以抗中断干扰,又可为干扰频率和噪声提供相应的容差,并使这两者结合在一起。当检测装置识别有效的双音多频信号时, Est端输出高电平,并产生与双音多频信号对应的4位二进制码,二进制码则被存于接收寄存器中,等待外部设备的读操作。2.6本章小结本章介绍了双音多频信号技术的由来;还介绍MT8880的6种工作模式、5个寄存器各种功能;除此之外,还介绍了双音多频信号的产生、编码发送及接收解码的原理。第3章 双音多频远程通信系统的概述31 双音多频通信系统总框架图键盘电路晶振电路MCU单片机 (发送)温度传感器电路复位电路双音多频发送电路有线信道双音多频接收电路晶振电路MCU单片机 (接收)显示电路复位电路蜂鸣器图3-1 双音多频总系统框图图3-1为系统总框架图。其中,复位电路、晶振电路和MCU单片机构成最小单片机系统2;键盘电路作为人机交换的部分,是数据输入工程中不可或缺的内容;显示电路将接收到数据进行的必需部分;双音多频发送、接收电路负责数据的传送与接收。32单片机各模块电路的设计3.2.1单片机的复位电路常用的复位电路原理图如图3-2所示。图3-2 MCS-51单片机上电开关电路当单片机的RST引脚输入端连续出现2个机器周期以上高电平, MCS51单片机就执行复位命令。如果RST持续为高电平,单片机就处于不断循环复位状态。根据应用的需要,复位操作通常有两种方式:上电复位和上电开关复位。为了调试比较方便,采用上电开关复位电路。上电开关复位要求电源接上后,MCS-51单片机自动复位,并且在单片机运行时,用开关操作也能使单片机复位指令。MCS51单片机复位电路原理比较简单,在此就不作详细介绍。3.2.2单片机的晶振电路本系统设计,STC89C52单片机采用内部时钟方式,采用频率为12MHz的晶振,电容采用其值为30pF的瓷片电容,其原理图如图3-3所示。 图3-3 MCS-51单片机晶振电路 内部时钟方式采用芯片自身的振荡电路,在STC89C52单片机的18、19引脚接定时元器件,使振荡电路本身产生自激振荡。如图3-3所示,电容C2、C3与晶振并联组成谐振回路。3.2.3单片机的键盘电路键盘电路是发送模块的重要组成部分,是人机交流的一种途径。键盘电路可以采用独立按键或矩阵按键1;独立按键一个按键就接一个单片机I/O端口,而双音多频信号共有16种,当采用独立按键时需要16个I/O端口,这会造成端口的不必要浪费,因此,本设计采用4*4矩阵式键盘,这样会大大节省端口。采用4*4矩阵式键盘很容易在硬件部分实施,程序实现也比较简单,矩阵键盘的键值可以通过查询方式或线反转法检测而获得。在本系统设计中,利用线反转法作为程序的实现方法,而STC89C52单片机的P1端口作为4*4矩阵式键盘的输入口。4*4矩阵式键盘的原理图如图3-4所示。图3-4 4*4矩阵式键盘3.2.4单片机的显示电路MCS-51单片机显示电路可以采用数码管显示,也可以采用液晶显示。在本设计中,采用液晶LCD1602显示电路。LCD1602其显示原理图比较简单,硬件方面实施起来也比较容易,其原理图如图3-5所示。图3-5 液晶LCD1602显示电路 液晶LCD1602显示电路如图3-5所示。其中,RS、RW、EN分别是LCD1602的片选端、读写端、使能端,这三个端口完成对液晶的控制;P00P07是液晶的数据端口,其负责 MCS51单片机与液晶LCD1602之间数据的交换。除此之外,3脚是对比度调整脚,R10滑动电阻的作用主要通过电阻分压加到3脚,使模块的液晶显示有合适的对比度2。15、16脚分别是液晶背光电源线Vcc和地线GND。液晶LCD1602内含有80字节显示数据存储器DDRAM,即在LCD1602内第一、二行可以分别写入40个字符,但液晶LCD1602只能显示16位字符;对液晶LCD1602的操作,主要对其提供各种控制命令进行写或读,如:清屏、字符闪烁、光标闪烁、显示移位等各种功能。因此,选用液晶LCD1602作为接收模块的显示电路。3.2.5单片机的蜂鸣器在本设计中,蜂鸣器作为声音提示。当接收模块接收到有效数据时,蜂鸣器会响一声。蜂鸣器的原理图如图3-6所示。 图3-6 蜂鸣器电路图在图3-6蜂鸣器电路中,蜂鸣器是个有源蜂鸣器,只要给其5V的电压就能正常驱动蜂鸣器,操作起来比较简单。三极管Q1有三种工作状态,分别为截止、放大、饱和,图中的三极管Q1处于饱和状态,其既能增强驱动能力又起到开关的作用。当给P20低电平时,三极管Q1饱和导通,蜂鸣器能发出声音;当需要关闭蜂鸣器时,就给P20高电平就完成对蜂鸣器的操作。3.2.6温度传感器DS18b20电路DS18b20 测温范围-50125摄氏度,精度可以达到0.5摄氏度,其电压范围为3V至5V。其中,DS18b20最显著的特征就是具有一线总线特征(即通过一条数据线就可以数据的读写与对DS18b20的控制),故DS18b20的电路实现比较简单,其电路原理图如图3-7所示。图3-7 DS18b20原理图DS18b20只需一个数据线跟单片机I/O连接就可以实现温度数据的读写。33双音多频DTMF模块电路的设计MT8880芯片具有带有微处理器接口,因而能与6800系列微处理器或单片机直接连接,本设计采用MCU单片机 STC89C52RC的I/O端口直接与MT8880连接方法。3.3.1 MT8880芯片的接口时钟信号经专家试验研究发现,在使用MT8880芯片过程中,对MT8880接口控制信号时序的要求是非常的严格。其中,关于对MT8880时钟信号CP(第12脚)的控制最为关键。由芯片的原始资料参数指标可知,CP时钟周期典型值为0.25uS,在实际的应用中,时钟信号CP可在0.16710uS之间取值都能使MT8880芯片正常运行,可以说CP时钟周期取值范围比较宽,因此芯片时钟信号CP的输入实现起来有很大的自由度6。为了能够充分了解芯片的工作方式,本系统设计采用了用单片机I/O端口直接模拟CP端,利用CP=0和CP=1语句就能产生读写循环时序。3.3.2 MT8880芯片的硬件接口设计3.2.2.1单片机与MT8880的接口单片机STC89C52与MT8880双音多频芯片有很多种接法。由于本设计采用单片机I/O端口模拟时钟信号CP,以便更好了解单片机如何对MT8880进行读写操作,故其与单片机的电路原理图比较简单。MT8880芯片与单片机STC89C52连接原理图如图3-8所示。图3-8 双音多频电路MT8880与STC89C52连接的原理图 MT8880芯片的D0、D1、D2、D3分别于单片机的I/O口P10P13连接,芯片MT8880的系统时钟信号端CP、接寄存器选择输入端RS0、芯片选择端、读/写端RW分别接单片机的P28P24(注意:图3-8没有具体地标示,详细原理图请看附件2-1)。在本设计中,单片机STC89C52初始化之后,所有的单片机I/O都被置为高电平,单片机P24(连接MT8880的第12引脚CP端)也被置为“1”。由MT8880的读写操作时序图(图3-9、图3-10)可知,CP引脚是不断地变化的,不能一直被置位(即不能一直是高电平)。注意,这里的时钟输入端是要向MT8880提供控制操作的脉冲。执行控制或读写操作,时钟信号就要完成完成一次从高电平到低电平的转换,否则MT8880无法进行相应的控制或读写操作。在读或写循环中,时钟信号端CP为逻辑“1”(即高电平)时,MCS-51单片机可以往芯片MT8880送取数据,时钟信号CP变为逻辑“0”(即低电平)时就往芯片MT8880写数据或读数据后,才会使数据生效,即数据才能被MT8880锁存或被单片机读取,其具体的操作如下。写操作的时序图如图3-9所示。图3-9 MT8880的写时序图写操作(将MCS-51单片机产生的4位二进制数据写入MT8880):第一步,片选有效(为低电平);第二步,选择输入端RS0置“1”,读/写端RW置“0”;第三步,时钟信号端置“1”(即为高电平);第四步,将数据送到P10P13,最后一步,时钟信号端置“0”(即为低电平)。这样就能将4位二进制数据就能写入MT8880中,详细请看void Wr_8880(uchar a,bit tdr_cr)子函数。读操作的时序图如图3-10所示。图3-10 MT8880的读时序图读操作(将MT8880接收寄存器的数据读到单片机):第一步,片选有效(为低电平);第二步,选择输入端RS0置“1”,读/写端RW置“1”;第三步,时钟信号端置“1”(即为高电平);第四步,从单片机I/O端口读取P10P13的状态(即读取P10P13端口的高低电平),最后一步,时钟信号端置“0”(即为低电平),这样就能将4位二进制就单片机能从芯片MT8880中读出数据,详细请看uchar Rd_8880(bit rdr_sr)子函数。3.2.2.2 MT8880的时钟电路芯片MT8880采用内部时钟方式,其中MT8880的OSC1和OSC2引脚采用频率为3.579545MHz的晶振,其时钟电路原理图如图3-11所示7。 图3-11 MT8880的时钟电路MT8880芯片的时钟电路如图3-11所示。其原理比较简单,在这里就不做详细的讲解。3.2.2.3 MT8880的控制电路MT8880的接收器对解码的音频寄存前还要检测有效信号的持续时间,但其持续时间长于相对应的时间时,MT8880就将相应的4位二进制数据所存在接收寄存器中,否则反之。而持续时间由Est所驱动的外围控制电路(RC时间常数)控制。MT8880的控制电路如图3-12所示。图3-12 MT8880的控制电路 控制电路的原理:C4放电,在有效时间内EST维持高电平,那么Vc达到控制逻辑的阀值电压Vtst,并将二进制数据锁存到接收数据寄存器中。这时ST/GT输出的信号就驱动Vc至电源电源+5V。经延迟之后,控制逻辑将片内状态寄存器的延迟输出标志位置1。如果选择中断模式,在延迟输出标志位置1时,引脚就IRQ/CP由高电平变为低电平,为MCU提供中断请求信号。3.2.2.4 MT8880的输入电路MT8880的输入电路有两种方式,分别为单端输入和差分输入。在设计中,采用的输入方式是单端输入方式,其原理图如图3-13所示。图3-13 MT8880的输入电路在单端输入方式中,因为在输入端有一个运算放大器,其增益为Av=R6/R5由上面的公式可知,其增益可调,故输入电路不在需要前级放大电路,这样就大大地简化电路,给设计带来很大的方便。3.4本章小结 本章介绍了双音多频通信系统设计的系统框架图,单片机各模块的电路图及原理;还着重介绍了MT8880的硬件接口以及其时钟电路、控制电路和输入电路。通过这章的了解,可清楚地认识双音多频通信系统硬件部分的具体内容与结构,为进一步了解系统软件打好必要的基础。第4章 程序设计41 MT8880的初始化程序流程图单片机上电复位之后,就要对MT8880进行初始化,也就是在进行数据交换之前就要完成对MT8880控制寄存器的相关操作。MT8880的初始化主要包括写控制寄存器,选定MT8880工作模式之中的一种。在本系统设计中,MT8880采用的工作模式是双音多频模式,那么控制寄存器A(CRA)的第二位b1位一定设置为“0”。芯片MT8880的初始化程序的主要流程图如图4-1所示。写控制寄存器A(第一次)写控制寄存器A(第二次) 写控制寄存器A(第三次) 写控制寄存器B图4-1 MT8880初始化流程图 以上是MT8880初始化的流程图,对芯片初始化包括对控制寄存器A(CRA)和控制寄存器B(CRB)的写操作。具体初始化程序可以看void MT8880_Init(void)子函数。42 双音多频系统发送模块程序本系统包括发送模块和接收显示模块,这里先介绍发送模块的发送程序。它包括两个功能:1、对矩阵键盘的检测;2、对DS18b20传感器的温度采集及发送温度采集数据。其中,对这两个功能模块之间的切换是通过两个键盘的检测,当检测到键盘1被按下时就进入温度采集发送;当检测到键盘2被被按下时就进入键盘检测,它们功能实现具体操作如下。温度采集:在键盘1被按下的条件下,单片机检测到P31引脚为低电平时,产生外部中断0(INT0)的中断,将功能切换的标志位Dataflag赋值为2,然后主函数判断Dataflag的值,当其值为2时,就进入温度采集发送函数。完成温度采集发送函数后,将Dataflag赋值为0,这样操作的目的是让程序通过对Dataflag值判断后来完成其他功能操作的切换。键盘检测:在进入主函数时,单片机就一直检测引脚P32引脚,当P32引脚低电平时,就将数据标志函数ShuJu_Dataflag()返回值1赋给功能切换标志Dataflag,然后通过对Dataflag值得判断。当检测到其值为1,就一直对矩阵键盘进行检测,检测到keyscan()函数的返回值符合条件就将数据发送给接收显示模块,最后一直对keyscan()函数的返回值进行判断,符合条件就发送相应的信息;否则就不执行任何的操作。在对温度采集和键盘检测的数据发送之前,单片机STC89C52都对MT8880进行初始化操作,这样增加软件系统的稳定性。对于以上两个功能实现的软件流程图如图4-2所示。开始 系统初始化初始化MT8880功能标识Dataflag值判断 Dataflag=1?Dataflag=2? Y NDataflag=0 YDataflag=1 N键盘检测温度采集及发送数值是否符合条件? N Y发送数据 图4-2 双音多频系统发送模块软件流程图43 双音多频系统接收模块程序 在这个设计中,接收显示模块就将接收到的数据进行显示,其功能程序实现起来比较简单。接收模块程序实现功能是这样的:先将MT8880初始化,然后将MT8880的工作模式设置为双音多频工作模式,并设置芯片MT8880的控制寄存器A(CRA)的b1位为0,b2位为1,这样就使能MT8880的IRQ位(即b2=1)。当MT8880接收到有效的DTMF信号时,芯片第13引脚IRQ/CP就产生一个低电平,而低电平使单片机的外部中断0(INT0)产生中断,进入中断函数之后对状态寄存器检测,当检测到状态寄存器的b2位被置位时(b2=1),那表示接收数据寄存器已经将数据成功锁存在接收数据寄存器;那么单片机MCU可以读取MT8880芯片的数据,然后将读取的数据进行显示就完成接收模块的任务。接收模块的程序流程图如图4-3所示。开始系统初始化初始化MT8880等待单片机中断读状态寄存器,判读b2=1? Y NLCD1602将数据显示 Y图4-3 双音多频系统接收模块软件流程图44 MCS-51单片机对DS18b20操作程序DS18b20具有一线总线特征,其电路实现比较简单,但其程序的实现就要按照严格的时序来执行。在本设计中,发送模块只对一个DS18b20进行温度数据的采集,因此不需要对ROM指令进行操作,直接跳过ROM操作,然后完成温度温度的读写。MCS-51单片机对DS18b20的操作流程如如图4-4所示。DS18b20初始化 跳过ROM启动温度测量DS18b20初始化跳过ROM读取温度图4-4 单片机对DS18b20操作流程图 单片机对DS18b20的具体操作可以看附录3中的uchar readtemperature(void)子函数。45键盘检测程序键盘检测是本系统设计的主要的功能之一,当功能按键被按下时,键盘检测的功能就被激活,开始对4*4矩阵键盘进行检测。矩阵键盘检测的流程图如图4-5所示。返回主函数Dataflag=1? N 调用keyscan函数 YJianPan=20? Y发送相对应的键盘数值 N Dataflag=1图4-5 键盘检测流程图46 液晶LCD1602显示程序 液晶LCD1602作为接收模块的重要组成部分,其负责将成功接收的数据进行显示,接收数据数目的标志位i作为显示控制关键部分,标志位i控制数据显示的流程。液晶LCD1602的显示流程图如图4-6所示。成功接收数据i+ i15? Ni= =39?显示接收的数据 Y NLCD1602左移一位LCD1602清屏 Y蜂鸣器警惕一声重新输入原始信息i=0显示数据并响一声图4-6 液晶LCD1602显示流程图47本章小结本章主要介绍双音多频系统设计的程序实现部分,介绍了MT8880的初始化程序、发送及接收模块的程序部分。另外还简要接收了MCS-51单片机对DS18b20操作程序、键盘检测程序和液晶LCD1602显示程序流程图。通过以上各个程序流程图的了解后,能够比较清楚知道这个系统设计的程序是如何运行的。第5章 电路的制作与系统的调试51电路板的制作在双音多频通信系统的实物印制电路制作上,涉及到两个部分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论