流速压力数据采集系统 应用电子技术与计算机等专业毕业设计 毕业论.doc_第1页
流速压力数据采集系统 应用电子技术与计算机等专业毕业设计 毕业论.doc_第2页
流速压力数据采集系统 应用电子技术与计算机等专业毕业设计 毕业论.doc_第3页
流速压力数据采集系统 应用电子技术与计算机等专业毕业设计 毕业论.doc_第4页
流速压力数据采集系统 应用电子技术与计算机等专业毕业设计 毕业论.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

流速压力数据采集系统摘 要本设计是利用流速传感器、压力传感器、ISD1760语音芯片、LCD12864液晶显示屏和AT89S52单片机组成的流速压力数据采集系统。流速传感器和压力传感器将采集到的流速数据和压力数据传送给AT89S52单片机,单片机再对接收到的数据进行处理,将数据传送到LCD12864液晶显示屏上进行显示,同时通过用语音芯片ISD1760将当前的流速数据和压力数据播放出来。关键词:数据采集系统;流速;压力;ISD1760;AT89S52Data Acquisition System of Flow Velocity and PressureAbstractThis design witch data acquisition system of flow velocity and pressure is using the velocity sensor, pressure sensor, ISD1760 pronunciation chip, LCD display and the velocity of AT89S52. Velocity sensor and pressure sensors to collect the pressure and velocity data and send to the AT89S52, AT89S52 to receive data processing, and send data to LCD12864 displayed on the LCD panel.Then the ISD1760 pronunciation chip will the current velocity data and pressure data broadcast out.Key Words: Data Acquisition System; Fluid Velocity; Pressure; ISD1760; AT89S52目 录1引言11.1课题的目的和意义11.2课题背景12设计方案与选取32.1 方案比较32.1.1 以AT89S52单片机和超声波测速仪的设计32.1.2 以AT89S52单片机和霍尔传感器再加上数码管显示的设计32.1.3 以AT89S52单片机和霍尔传感器再加上LCD12864液晶显示的设计32.2 方案总结43流速压力数据采集系统的硬件设计531系统的硬件设计框图532 各单元模块的分析53.2.1主控制模块AT89S5253.2.2晶振电路73.2.3电源电路73.2.4复位电路83.2.5流速模块83.2.6压力传感器103.2.7 AD转换113.2.8 显示模块123.2.9 语音模块143.2.10 无线遥控模块164流速压力数据采集系统的软件设计194.1软件框图194.2各软件模块功能194.2.1初始化204.2.2流速数据采集204.2.3压力数据采集204.2.4 AD转换204.2.5数据处理214.2.6 LCD显示214.2.7语音播放215作品调试265.1硬件调试265.2软件调试26总结27参考文献28致谢28附录A30附录B41附录C42流速压力数据采集系统1引言本章将介绍本次课题的目的和意义。以及现代科学技术中数据采集系统的发展历程。1.1课题的目的和意义近年来,数据采集及其应用技术受到人们越来越广泛的关注,数据采集系统也迅速地得到应用。在生产过程中,应用这一系统可对生产现场的工艺参数进行采集、监视和记录,为提高产品质量、降低成本提供信息和手段。在科学研究中,应用数据采集系统可获得大量的动态信息,是研究瞬间物理过程的有力工具,也是获取科学奥秘的重要手段之一。总之犷不论在哪个应用领域中,数据采集与处理越及时,工作效率就越高,取得的经济效益就越大。现如今,科技发展速度日新月异,随着计算机被广泛运用,数据采集在许多领域有着十分重要的应用。它是连接计算机与外部物理世界的桥梁。利用各种通信方式,实现对现场环境的实时监控及数据参数分析,通过制订上位机(主机)与数据采集器(从机)的通信协议,实现两者之间阻塞式通信交互过程。在矿业、工业、农业等各种行业,尤其是在对信息实时性能要求较高或者恶劣的数据采集环境中更突出其应用的必要性。例如:在矿井井下环境检测、工业生产、现代农业生产和科学技术研究的各行业中,常常利用计算机对各种数据进行采集分析。这其中有很多地方需要对各种数据进行采集,如压力、流速、液位、温度、频率等。通过对采集到的数据进行分析,将有极大的实际价值。例如:通过对油井内部的原油压力和流速数据进行采集和分析,这对于提高油井的产量有十分重要的意义;通过矿井井壁压力、矿井周围水流流速等数据进行监测,将有利于建立矿难预警机制,减少矿难造成的损失。1.2课题背景以往工业现场的各种数据都是采用人工读数和记录,一直停留在手工和数字仪表的水平,无法做到对大量的实验数据的实时采集和分析。随着计算机技术的发展,结合高精度、高性能的数据采集仪的应用,使得多路数据采集实现了自动化,大量的数据采集和分析由计算机自动完成,提高了测量精度。而计算机已经与仪器结合得非常紧密,已成为整个系统的核心,许多传统仪器正在逐渐被计算机部分、甚至全部取代。把各种传感器与计算机连接起来。由于一些监测环境的特殊性,无法做到对环境进行人工的实时监控。因此具有高效、高性能的测试方法和测试设备是井下环境数据分析所必备的,计算机虽然功能强大, 可以帮助我们解决这一难题, 但由于计算机太过笨重, 携带不方便, 对现场工况条件要求较高, 抗干扰能力较差, 通常无法胜任于条件恶劣的环境。而单片机以其集成度高、运算速度快、体积小、运行可靠、价格低廉等优点, 在过程控制、数据采集、机电一体化方面得到了广泛应用。因此, 该设计采用单片机作为控制器,通过传感器对压力和流速数据进行采集,再利用液晶显示屏显示数据。从而在实现数据采集精度,运算速度的基础上减小了整个产品的体积和成本。也提高了整个数据采集系统的可靠性和整体功耗。2设计方案与选取对于本课题的设计,主要有三种方案,第一种方案是采用AT89S52单片机和超声波测速仪。第二种方案是采用AT89S52单片机和霍尔传感器再加上数码管显示。第三种方案是采用AT89S52单片机和霍尔传感器再加上LCD12864液晶显示1。2.1 方案比较2.1.1 以AT89S52单片机和超声波测速仪的设计优点:采用超声波测速测量流速数据方便,它的原理是发射一束超声波,在遇到流体时,超声波会发生多普勒频移现象,并有部分超声波会放射回接收端,通过计算发射出的超声波和接收到的超声波之间的频率差就可以计算出流速,因此不会影响水流的流动。 缺点:超声波遇到水流所发生的多普勒频移非常小,因此单片机的处理精度和速度要足够快。所以在测量小流量的流体流速或流速较慢的流体流速时,AT89S52单片机就会出现很大的误差。2.1.2 以AT89S52单片机和霍尔传感器再加上数码管显示的设计优点:相对于三个方案来讲,此方案的成本最低。缺点:测量流速时必需在流体中加上一个带小磁片的转轮,流体的流动会推动转轮转动,而每当小磁片通过霍尔元件时就会产生一个脉冲信号,通过计算脉冲信号的频率就可以测出水流的流速。因此会影响到流体的流动。而且数码管的功耗较大,不适合长久性的数据采集。而且对多路数据的显示的直观性很差,会给操作人员造成不必要的麻烦,有时甚至还会促使操作人员发生误操作。2.1.3 以AT89S52单片机和霍尔传感器再加上LCD12864液晶显示的设计优点:51单片机具有高效能,资源占用率低等特点。使用C语言编程可以实现丰富的功能,在Proteus仿真环境上也可以很好地体现出本设计欲达到的效果2。采用LCD12864可以实现中文字符的显示,对于观察数据有很好的帮助,而且相对功耗比较小。缺点:会对流体的流动产生影响,成本相比于数码管也会有一定的增加。2.2 方案总结 由于设计是属于测量管道的流体流速,因此采用方案一用超声波测流速会有较大的误差,而在管道中加上一个转轮,在本设计中不会对流体流速产生大的影响。而且为了方便观察数据,采用LCD12684液晶显示可以达到此目的。综合各个方面,采用方案三是最理想的选择。3流速压力数据采集系统的硬件设计此流速压力数据采集系统用霍尔元件作为流速传感器采集流体流速数据,用压力传感器加上AD0809模数转换芯片采集压力数据,将采集到的流速数据和压力数据发送到主控制的AT89S52单片机,AT89S52单片机再将数据进行处理,再送往LCD12864液晶显示屏显示,同时再与ISD1760语音芯片进行通信,将当前的数据用语音播放出来。3.1系统的硬件设计框图本系统的硬件设计框图如图3.1所示。主控制模块AT89S52复位电路晶振电路电源电路流速模块压力传感器显示模块语音模块AD转换无线控制模块图3.1系统硬件设计框图3.2 各单元模块的分析3.2.1主控制模块AT89S52本设计的主控制模块是采用AT89S52单片机,由于AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,所以非常适用于长期的数据监控系统。同时AT89S52单片机具有8K在系统可编程的Flash 存储器。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU 和在系统可编程Flash,使得AT89S52为本数据采集系统提供了高灵活、超有效的解决方案3。在本设计中AT89S52 具有以下功能:采集压力信号:通过控制AD0809模数转换芯片,将采集到的模拟压力信号转换成数字信号。再通过算法将压力信号转换成实际的压力数值。其与AD0809之间的接线如图3.2所示,其中P1脚为AD0809的数据输出引脚D0D7相接,其中AD0为AD0809数据输出引脚的高位。AD0809的第10脚(CLK)与单片机的30脚(ALE)相接,6脚(START)和22脚(ALE)与单片机的P3.6脚相接,7脚(EOC)接到单片机的P3.6脚,9脚(OE)接到单片机的P3.5脚。采集流速信号:将流速模块采集到的频率信号通过单片机内部计数器1和定时器0进行计算,转换成实际的流速数值。其与流速模块之间的接线如图3.2所示,流速模块的数据输出引脚接到AT89S52的P3.4引脚。控制显示:通过并行数据传输的方式控制LCD12864显示流速数据和压力数据等。其与LCD12864之间的引脚接线如图3.2所示,其中LCD12864的数据引脚D0D7(7引脚到14引脚)与单片机的P2口相接,D0为低位。LCD12864的第4引脚(RS)接到单片机的P3.7引脚,第5引脚(RW)接到单片机的P3.6引脚,第6脚(E)接到单片机的P3.5引脚。第15引脚(PSB)接到单片机的P3.1引脚。语音播放:通过SPI通信协议与ISD1760语音芯片通信,控制语音芯片播放出指定的语音。其与语音模块之间的引脚连接如图3.2所示。值得注意的是,由于AT89S52单片机的P0口是开漏输出,因此需要在P0口的各引脚接上一个510K的电阻。在本设计中采用了一个10K的排阻。ISD1760的第4引脚(MISO)接到单片机的P0.0引脚,第5引脚(MOSI)接到单片机的P0.1引脚,第6引脚(SCLK)接到单片机的P0.2引脚,第7引脚(SS)接到单片机P0.3引脚。图3.2 主控制AT89S52芯片和引脚接法图3.2.2晶振电路晶振电路以外部方式为单片机提供时钟信号。在单片机的XTAL1和XTAL2端接一个12M的石英晶体作为定时元件,小电容取30pF。采用12M晶振,则单片机的机器周期 T=为1us,频率为12MHz,既单片机每执行一条指令的时间为1us。这样能使软件程序能够更准确地延时和执行程序指令。其电路如图3.3所示。图3.3 起振模块电路3.2.3电源电路电源模块考虑到单片机以及其他模块的正常工作,故采用稳定的5V直流电源,同时为了使整个作品更具人性化,加上了一个电源开关和电源指示灯,使该作品使用起来十分方便。打开电源开关如果电源正常工作则LED电源指示灯亮,如果电源电路不正常工作,则LED电源指示灯不会亮。为了使通过LED电源指示灯的电流不会过大烧坏LED电源指示灯,采用一个10K的电阻与LED电源指示灯串联。直流稳压电源是将交流电变换成功率较小的直流电,一般由变压、整流、滤波和稳压等几部分组成。整流电路用来将交流电压变换为单向脉动的直流电压;滤波电路用来滤除整流后单向脉动电压中的交流成分,使之成为平滑的直流电压;稳压电路的作用是输入交流电源电压波动、负载和温度变化时,维持输出直流电压的稳定。其电路如图3.4所示。 图3.4 电源模块电路3.2.4复位电路采用一个电容值为10uF的有极性电容与一个阻值为10K欧姆的电阻串联接在电源两端,中间为RST。同时采用一个点触型按键与电容相并,这种复位电路的工作原理是:通电时,电容两端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程序,即为低电平,单片机开始正常工作4。其电路图如图3.5所示。图3.5复位电路当RST保持两个机器周期以上的高电平时单片机自动复位,其复位的方式有两种:1、上电复位:上电瞬间,电容充电电流最大,电容相当于短路,RST端为高电平,自动复位;电容两端的电压达到电源电压时,电容充电电流为零,电容相当于开路,RST端为低电平,程序正常运行。2、手动复位:首先经过上电复位,当按下按键时,RST直接与VCC相连,为高电平形成复位,同时电解电容被短路放电;按键松开时,VCC对电容充电,充电电流在电阻上,RST依然为高电平,仍然是复位,充电完成后,电容相当于开路,RST为低电平,正常工作。3.2.5流速模块本设计的流速传感器是采用霍尔元件,如果把霍尔元件集成的开关按预定位置有规律地布置在物体上,当装在运动物体上的永磁体经过它时,可以从测量电路上测得脉冲信号。根据脉冲信号列可以传感出该运动物体的位移。若测出单位时间内发出的脉冲数,则可以确定其运动速度。因此本设计中的流速传感器是在一截管道内加上一个贴有小磁片的转轮,流体流动时会推动转轮转动。转轮上的小磁片每次垂直经过霍尔元件,霍尔元件就会产生一个脉冲信号,通过固定的小容积来反复计量通过流量计的流体体积,再将流体体积除以进水管的表面积就可以得到流体的流速。所以,此流速模块内部必须具有构成一个标准体积的空间,通常称其为 “计量空间”或“计量室”。这个空间由仪表壳的内壁和流量计转动部件一起构成。结构如图3.6所示。流速模块的工作原理为:流体通过流速模块,就会在流量计进出口之间产生一定的压力差。流量计的转动部件(简称转子)在这个压力差作用下特产生旋转,并将流体由入口排向出口。在这个过程中,流体一次次地充满流量计的“计量空间”,然后又不断地被送往出口。在给定流量计条件下,该计量空间的体积是确定的,进水口的横截面积也是固定的,只要测得转子的转动次数。就可以得到通过流速模块的流体流速。设流量计计量空间体积为V,一定时间内转子转动次数为N,进水口的横截面积为S,则在该时间内流过的流体流速为:vNV/S在电路上由于霍尔元件输出脚为漏极输出,所以为了使输出信号可以被单片机识别,必须在输出引脚与电源之间加上一个阻值为10K的上拉电阻5。其电路原理图如图3.7所示。图3.6流速计结构图图3.7流速模块电路图3.2.6压力传感器压力传感器是能够感受规定的被测量并按照一定的转换规律转换成可用的输出信号的器件或装置压力传感器是以压力为被测量,进而转换为电信号的装置,它具有广泛的用途。在本次设计中,压力传感器是采用电阻应变式传感器,电阻应变式传感器是基于这样一个工作原理:弹性体(弹性元件,敏感梁)在外力作用下产生弹性变形,使粘贴在他表面的电阻应变片(转换元件)也随同产生变形,电阻应变片变形后,它的阻值将发生变化(增大或减小),为了使压力测量在任何温度下都能保持准确,在传感器中加上一个温度补偿电路,保持压力测量的准确性。再经相应的测量电路把这一电阻变化转换为电信号(电压或电流),再将微弱的电信号通过差动放大电路进行放大,从而完成了将外力变换为电信号的过程6。 由此可见,电阻应变片、弹性体和检测电路是电阻应变式压力传感器中不可缺少的几个主要部分。其传感器的内部结构如图3.8所示。本次设计所采用的压力传感器的测量范围是01000mm水柱,压力传感器的输出的信号是模拟信号,电压输出范围为0V5V;线性度为0.2%。在1米水柱在标准条件下(即4,g=9.80665米/秒2),水压与压力的对应关系为:1mH2O=0.1kgf/cm2(公斤力/厘米2)=9.8kPa(千帕斯卡)由于AT89S52单片机无法直接对模拟信号进行处理,因此需要将输出的模拟信号转换成数字信号。该压力传感器的第2引脚为信号输出脚,它与AD转换模块AD0809芯片的第26引脚(IN0)相接。同时由于进行AD转换时需要采集输出电压,因此需要在压力传感器的第2引脚(信号输出)与第3引脚(地)之间加上一个410K的下拉电阻。在本设计中采用的是一个阻值为4.3K的电阻。该压力传感器与AD0809的引脚接线如图3.9所示。图3.8 压力传感器内部结构图图3.9 压力传感器引脚接法图3.2.7 AD转换由于压力传感器输出的电压是05v的模拟电压信号,单片机无法对模拟信号直接进行处理,因此需要一个将模拟信号转变成数字信号的器件,在本次设计中,采用的是ADC0809模数转换芯片。ADC0809 是8 位逐次逼近型A/D转换器。它由一个8路模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。三态输出锁器用于锁存A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。ADC0809 的工作原理:IN0IN7为8 条模拟量输入通道。在本设计中,压力传感器输出的模拟信号所选择的输入通道为IN0。ADC0809对输入模拟量要求,信号必需是单极性,电压范围是05V,若信号太小,必须进行放大。输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。有4条地址输入和控制线,ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C 三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B 和C为地址输入线,用于选通IN0IN7 上的一路模拟量输入。本设计所选择的是IN0通道,因此A、B、C地址选择为0、0、0。因此这三只引脚直接接地。通道选择表如表3.1所示。ADC0809的数字量输出及控制线为11 条。ST 为转换启动信号。当ST 上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D 转换;在转换期间,ST 应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D 转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE为0,输出数据线呈高阻状态。D7D0 为数字量输出线。CLK为时钟输入信号线。因ADC0809的内部没有时电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,而在本设计中,CLK引脚接在单片机AT89S52的ALE引脚上,其频率为1MHz,VREF(),VREF()为参考电压输入,分别接电源和地7。AT89S52单片机与ADC0809的之间的引脚接法如图3.10所示。其中AD0AD7与单片机的P1口相接,AD0为高位。START和ALE引脚与单片机的P3.7引脚相接,EOC引脚与单片机的P3.6引脚相接,OE引脚与单片机的P3.5引脚相接。CLK引脚与单片机的ALE引脚相接。表3.1 ADC0809通道选择表CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7图3.10 ADC0809与AT89S52之间引脚接线图3.2.8 显示模块本设计所采用的显示模块是LCD12684液晶屏,采用此液晶屏可以显示中文字符,对于观察者来说会更加容易。带中文字库的LCD12864是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。LCD12864的各引脚功能如表3.2所示。LCD12864与单片机AT89S52之间的引脚如图3.11所示,其中第3引脚为显示字的对比度调整,通过调整可调电阻R18的阻值改变对比度,R18的阻值越高,对比度就越高,所显示的字就越清楚。第4引脚(RS)与单片机的P3.7引脚相接,第5引脚(RW)与单片机的P3.6引脚相接,第6引脚(OE)与单片机的P3.5引脚相接。第7引脚到第14引脚(D0D8)与单片机的P2口相接。第15引脚(PSB)与单片机的P3.1引脚相接。图3.11 LCD12864引脚图LCD12864的每一个引脚都具有特定的功能,其中部分引脚具有第二功能,通过单片机控制各引脚,选择LCD12864所需要的工作方式。LCD12864液晶模块各引脚的具体功能如表3.2所示。表3.2 LCD12864引脚功能管脚号管脚名称电平管脚功能描述1VSS0V电源地2VCC3.0+5V电源正3V0-对比度(亮度)调整4RS(CS)H/LRS=“H”,表示DB7DB0为显示数据RS=“L”,表示DB7DB0为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H”,数据被读到DB7DB0R/W=“L”,E=“HL”, DB7DB0的数据被写到IR或DR6E(SCLK)H/L使能信号7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15PSBH/LH:8位或4位并口方式,L:串口方式(见注释1)16NC-空脚17/RESETH/L复位端,低电平有效18VOUT-LCD驱动电压输出端19AVDD背光源正端(+5V)20KVSS背光源负端3.2.9 语音模块本设计语音模块所采用的是ISD1760芯片,ISD1760语音芯片是Winboad(华邦公司)推出的单片优质语音录放电路,芯片内部包含有自动增益控制、麦克风前置扩大器、扬声器驱动线路、振荡器与内存等的全方位整合系统功能。有两种工作模式,分别为按键触发模式与SPI控制模式。鉴于两种模式实现的功能一致,本设计中采用单片机输出模拟按键信号实现对语音芯片的控制。该模式不仅有录音和播放,还有快进、擦除、复位、音量等功能。这些功能仅仅通过按键就可完成。而且按键信号相当于一个负脉冲信号,可用软件模拟出来。ISD1760语音芯片的特点: 可录、放音十万次,存储内容可以断电保留100年 两种控制方式,两种录音输入方式,两种放音输出方式 可处理多达 255 段以上信息 有丰富多样的工作状态提示 多种采样频率对应多种录放时间 音质好,电压范围宽,应用灵活,价廉物美 可利用振荡电阻来自定芯片的采样频率,从而决定芯片的录放时间和录放音质,而芯片的采样率可以通过外部振荡电阻来调节,ISD1760的采样率调节表如表3.3所示。表3.3 ISD1760采样频率与震荡电阻采样频率12KHz8KHz6.4KHz5.3KHz4KHz振荡电阻60K80K100K120K160KISD1760支持独立按键模式和SPI模式,独立按键模式是通过独立按键控制ISD1760语音芯片进行录音、播放、擦除、快进、复位和调节音量大小等功能。SPI模式是主控单片机与ISD1760芯片进行SPI通信,从而实现单片机对ISD1760芯片的控制,鉴于本设计的语音播报必需有一定的智能功能,所以选择了ISD1760芯片工作在SPI模式。主控单片机AT89S52通过P0.0P0.3与ISD1760的第4第7引脚(SCLK,MOSI,MISO,/SS )相连接,通过SPI协议对ISD1760进行串行通信。ISD1760作为从机,所有的操作都通过这个SPI协议来完成,包括定点播放语音等。为了兼独立按键模式,一些SPI命令:PLAY,REC, ERASE,FWD,RESET和GLOBAL_ERASE的运行类似于相应的独立按键模式的操作。另外,SET_PLAY,SET_REC,SET_ERASE命令允许用户指定录音、放音和擦除的开始和结束地址。此外,还有一些命令可以访问APC寄存器,用来设置芯片模拟输入的方式。ISD1760的SPI模式电路如图3.12所示。图3.12 ISD1760的SPI模式电路3.2.10 无线遥控模块本设计所采用的无线模块采用的是315MHz的超再生无线模块。无线模块主要分为两部分发射模块和接收模块。其调制方式为ASK调制。发射模块是采用PT2262进行编码。编码芯片PT2262发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,解码芯片PT2272接收到信号后,其地址码经过两次比较核对后,VT脚才输出高电平,与此同时相应的数据脚也输出高电平,如果发送端一直按住按键,编码芯片也会连续发射。当发射机没有按键按下时,PT2262不接通电源,其17脚为低电平,所以315MHz的高频发射电路不工作,当有按键按下时,PT2262得电工作,其第17脚输出经调制的串行数据信号,当17脚为高电平期间三极管导通,315MHz的高频发射电路起振并发射等幅高频信号,信号从天线L1发射出去。当17脚为低平期间315MHz的高频发射电路停止振荡,所以高频发射电路完全收控于PT2262的17脚输出的数字信号,从而对高频电路完成幅度键控(ASK调制)相当于调制度为100的调幅8。其电路如图3.13所示。图3.13发射模块电路接收模块超再生检波电路实际上是一个受间歇振荡控制的高频振荡器,这个高频振荡器采用电容三点式振荡器,振荡频率和发射器的发射频率相一致。而间歇振荡(又称淬装饰振荡)双是在高频振荡的振荡过程中产生的,反过来又控制着高频振荡器的振荡和间歇。而间歇振荡的频率是由电路的参数决定的(一般为1百几百千赫)。这个频率选低了,电路的抗干扰性能较好,但接收灵敏度较低:反之,频率选高了,接收灵敏度较好,但抗干扰性能变差。超再生检波电路有很高的增益,在未收到控制信号时,由于受外界杂散信号的干扰和电路自身的热搔动,产生一种特有的噪声,叫超噪声,这个噪声的频率范围为0.35kHz之间,听起来像流水似的“沙沙”声。在无信号时,超噪声电平很高,经滤波放大后输出噪声电压,该电压作为电路一种状态的控制信号。当有控制信号到来时,电路揩振,超噪声被抑制,高频振荡器开始产生振荡。而振荡过程建立的快慢和间歇时间的长短,受接收信号的振幅控制。接收信号振幅大时,起始电平高,振荡过程建立快,每次振荡间歇时间也短,得到的控制电压也高;反之,当接收到的信号的振幅小时,得到的控制电压也低。这样,在电路的负载上便得到了与控制信号一致的低频电压,这个电压便是电路状态的另一种控制电压9。电路原理图如图3.14所示。图3.14接收模块电路当发射模块有按键按下的时候,接收模块接收到信号。经过解调放大之后输入到PT2272的第14引脚,PT2272会根据接收到的信号进行解码。解码后第1013引脚会输出与发射模块按键状态一样的数据。4流速压力数据采集系统的软件设计4.1软件框图 本设计的软件流程图如图4.1所示,主要包括初始化、流速数据采集、压力数据采集、AD转换、数据处理、LCD显示、语音播放开始初始化采集流速数据采集压力数据AD转换数据处理LCD显示判键语音播放是否图4.1软件流程图4.2各软件模块功能4.2.1初始化初始化主要是LCD12864的初始化,主要是向LCD12864的指令寄存器写进0X30,设置LCD12864指令集为基本指令集。向LCD12864的指令寄存器写进0X01,清除LCD12684的所有显示;向LCD12864的指令寄存器写进0X06,设置光标的移动方向以及指定显示的移位。向LCD12864的指令寄存器写进0X0C,设置LCD12684整体显示关、打开游标、不显示游标的位置。软件设置PSB引脚为高电平,此时LCD12864的数据传输方式为8位并行传输。还有就是单片机内部定时器和计数器的初始化,设置向单片机的TMOD寄存器写进0X15,设置单片机的计数器0以及定时器1工作,它们的都是工作在工作方式316位定时计数功能。设置定时器1定时时间为50ms。设置单片机外部中断0工作,触发方式为下降沿10。4.2.2流速数据采集由于流速计是采用霍尔元件,因此所得到的信号为频率信号,通过单片机内部定时和计数器组成多倍周期测频率。之所以采用多倍周期测频率而不采用直接测量频率,是因为直接测量频率会有很大的误差,而采用多倍周期测频率则可以在很大的程度上减小误差。在程序上,用单片机定时100ms,通过计数器算出10ms内脉冲的个数,就可以采集到流速数据11。4.2.3压力数据采集压力传感器是采用了电阻应变式传感器,所以采集到的信号为模拟信号,其范围为05V。再将采集到的模拟信号传输到AD0809的第一通道(IN0)进行模数转换。4.2.4 AD转换AD转换的目的是为了将采集到的压力信号转变成单片机可以识别的数字信号。ADC0809 内部带有输出锁存器,可以与AT89S52 单片机直接相连。初始化时,使ST 和OE信号全为低电平。送要第一通道的地址到A,B,C 端口上,由于选择了第一通道(IN0),所以AD0809的A、B、C端口的都为低电平,地址为0。单片机控制ST 端输出一个至少有100ns 宽的正脉冲信号。根据EOC 信号来判断是否转化完毕。如果没转换完毕则等待,当EOC变为高电平时,表示转换完毕,这时0E为高电平,转换的数据从D0D7输出到单片机了,值得注意的是输出数据时D0为高位,D7为低位12。4.2.5数据处理由于采集到的流速和压力信号还不是真正的数据。必需通过程序计算,才能得到真正的流速压力数据。由于压力传感器输出的信号与实际的压力数据是一个线性的关系,因此通过对输出信号与实际压力数据之间关系的计算,就可以得到实际的压力数据。压力传感器输出的模拟信号范围为05V,测量水压的范围为01000mm水柱,水压与信号之间的关系为:N=U/5*1000*9.8其中U为压力传感器经过AD0809转换后的输出电压值,5为AD0809的参考电压正5V,1000为测量水压的范围1000mm水柱,9.8为1mm水柱与1Pa之间的转换系数。水压的单位为帕(Pa)。根据表达式在编程时利用C语言直接用一条语句就可以将水压表达出来。采集到的流速信号是一个频率信号,需要利用流速传感器输出的信号与流体流速的关系计算出真正的流速。它们之间的关系也是一个线性关系。其关系的表达式为:vNV/S其中N为转轮转动的次数,V为流速传感器内部“空室”的体积,V为常数3cm3。S为出水管道的横截面积,也个常数0.7cm2.因此只要利用单片机的计数功能计算出100ms内脉冲的个数,即流体推动转轮转动的圈数N,就可以得到流速v。4.2.6 LCD显示本设计LCD12864所采用的通信方式是并行通信,之所以采用并行通信是因为相比于串行通信,并行的通信速度会快很多。其中LCD12864的RS,RW和E引脚为指令控制引脚。通过这三个端口之间的配合,可以实现读数据、写数据、读指令和写指令等命令。设置RS为“0”,RW为“0”时为写指令,设置RS为“0”,RW为“1”时为读指令,设置RS为“1”,RW为“0”时为写数据,设置RS为“1”,RW为“1”时为读数据。设置好指令之后单片机就向LCD12864的数据脚D0D7输入所需要的数据等。把压力值和流速值显示出来。4.2.7语音播放语音是先录到ISD1760芯片中,再通过单片机与ISD1760芯片通信将需要的语音播放出来。为了使单片机能与ISD1760通信,单片机必须遵照ISD1760的SPI串行接口操作协议:(1) 一个SPI处理开始于/SS管脚的下降沿。 (2) 在一个完整的SPI指令传输周期,/SS管脚必须保持低电平。 (3) 数据在SCLK的上升沿锁存在芯片的MOSI管脚,在SCLK的下降沿从MISO管脚输出,并且首先移出低位。 (4) SPI指令操作码包括命令字节,数据字节和地址字节,这决定于1760指令类型。 (5) 当命令字及地址数据输入到MOSI管脚时,同时状态寄存器和当前行地址信息从MISO管脚移出。 (6) 一个SPI处理在/SS变高后启动。 (7) 在完成一个SPI命令的操作后,会启动一个中断信息,并且持续保持为低,直到芯片收到CLR_INT命令或者芯片复位。 (8) MOSI数据格式,MOSI是SPI接口的“主机输出从机接收端”。数据在SCLK的上升沿锁存进芯片,并且低位首先移出。ISD1760的SPI指令格式依赖于命令的类型, 根据不同类型的命令,指令可能是两个字节,也可能多达7个字节。MOSI的一般序列由表4.1列出,送到芯片的第一个字节是命令字节,这个字节确定了芯片将要完成的任务。其中命令字节的C4确定LED功能是否被激活。当C4=1,LED指示被开启,功能开启后,每一个SPI指令启动后,LED灯会闪亮一下。在命令字节之后,与之相关联的数据字节有可能包括对用来存储信息进行精确操作的起始和结束地址。多数的指令为两个字节,需要地址信息的指令则为七个字节。例如 LD_APC 指令为三个字节,在其第二和第三字节是指令的数据字节。有两种11位地址的设置,即和,作为二进制地址的存放位置。芯片存储地址从第一个提示音的地址0x0000开始计算,但是 0x000-0x00F地址平均保留给了4个提示音。从0x010地址开始,才是非保留的存储区域,即真正的录音区。表4.1 MOSI 数据时序表(9) MISO数据格式。MISO即1760的“主机接收从机发送”管脚,数据在SCLK的下降沿从 MISO管脚输出,并且低位首先移出。MISO的一般序列由表4.2列出,对应每一个指令,MISO会伴随着指令码的输入,在前两个字节返回芯片当前的状态和行地址信息。而 RD_STATUS,RD_PLAY_PNTR,RD_REC_PNTR和RD_APC这些命令会在前两个字节之后产生额外的信息。表4.2 MISO数据时序表在输出信息中,第一字节的状态位提供了重要的信息,该信息标明了上一个SPI命令发送后的结果。例如,第一字节中的0位(command error bit)用来指示芯片是否接收了上一个SPI命令。而地址位则给出了当前地址。第一和第二个数据字节的内容取决于上一个SPI命令。第五,第六和第七字节则是重复SR0状态寄存器的内容。(10)SPI协议格式图4.2 SPI时序图一个SPI命令总是由第一个命令字节开始。其SPI的时序如图4.2所示。命令字节中的bit4位(LED)是具有特殊用途的。这个bit4位可以控制LED的输出。如果使用者想开启这个操作LED的功能,那么所有的SPI命令字都要将这个bit4位置1。在SPI模式下,存储位置都可以通过行地址很容易地进行访问。主控单片机可以访问任何行地址,包括存储SE音效的行地址(0x0000x00F)。像SET_PLAY,SET_REC和SET_ERASE这些命令需要一个精确地起始地址和结束地址。如果开始地址和结束地址相同,那么ISD1760将只在这一行进行操作。SET_ERASE操作可以精确地擦除在起始地址和结束地址间的所有信息。SET_REC操作从起始地址开始录音,并结束于结束地址,并且在结束地址自动加上EOM标志。同理,SET_PLAY操作从起始地址播放语音信息,在结束地址停止播放。另外,SET_PLAY,SET_REC和SET_ERASE命令有一个先入先出的缓存器,使得从一个存储块到下一个存储块之间实现无缝转移。这个先入先出的缓存器只有在相同类型的SET命令下才有效。也就是说SET_PLAY在SET_ERASE之后将不能利用这个缓存器,并且这是一个错误的命令,SR0中的COM_ERR位将被置1。当芯片准备好接收第二个SPI命令时,在SR1中的RDY位将置1。同样,在操作完成时会输出一个中断。例如,如果两个连续但带有两对不同地址的SET_PLAY命令被正确发送后,此时缓 存器装满。在完成第一个语音信息的播放后,第一个SET_PLAY操作会遇 到一个EOM,这时不会像一般遇到EOM时自动STOP,而是继续执行第二个SET_PLAY命令,芯片将播放第二个语音信息。这个动作将最小化任何两个录音信息之间潜在的停留时间,且使芯片流畅地连接两个独立的信息。如果循环存储体系处于令人满意的状态,那么可以使用PLAY,REC,FWD,RESET,ERASE和G_ERASE这些命令,功能类似于ISD1760的独立模式中相应的功能。这些命令将确保在独立模式下操作时储存机构保持一致,但是,音效提示将不同于独立模式。在SPI模式和独立模式之间转换,必须使用SET_REC和SET_ERASE以遵循循环存储体系。要使单片机播放出随机的数据,首先要将09以及千、百、十、点等语句分段录到ISD1760固定的储存区里,再通过单片机与ISD1760进行ISP通信协议控制ISD1760语音芯片播放所需要的语音13。5作品调试5.1硬件调试根据画好的电路原理图焊接各单元模块的电路。用万用表检测电源线与地线之间是否短路。排除短路现象之后接上5V直流电源,观察电源模块上的电源指示灯是否亮起。接着用示波器检测起振模块是否工作,正常情况下晶振的起振的波形是一个频率为12MHz的正弦波,接着检测单片机是否工作,主要是检测单片机第40脚(VCC)与第20脚(GND)之间的电压是否为5V。再检测复位模块,在没按下复位按键之前用万用表测量RST是否为低电平,按下复位按键之后RST引脚变成高电平,单片机重新启动。打开水泵的控制开关,发现没有采集到流速数据,观察到转轮有转动,但单片机采集不到流速信号。检查了很久,想了也久也没有找到问题的所在,于是再次查阅霍尔元件的技术手册,发现霍尔元件信号输出引脚必须加一个阻值为5K左右的上拉电阻,加上之后发现问题解决了,单片机可以采集到流速数据。在检查压力模块时,发现压力数据不正确!改变水压的压力,发现压力数据不是按线性增加的,而是无规律的变化着。通过查阅相关资料,发现AD0809的输出的数据的高低位与单片机P口的高低位接反了!经过改正之后问题也顺利解决。调节LCD12864第3脚的可调电阻,将LCD12864的字符分辨力调到最好的状态。经过检查语音模块和无线模块也正常工作。整个硬件调试结束。5.2软件调试在Keil软件上根据软件流程图用C语言编写程序,编译程序,更改错误的语句直到无错误为止。接着生产一个HEX文件,用烧录器将生产的HEX文件烧录到AT89S52单片机中。再把单片机接到硬件电路上检测程序。发现显示的流速数据和压力数据不正常,与实际值之间存在差异。经过多次的检查程序与算法,也找不出问题的所在。上网搜索类似问题,发现单片机在处理浮点数据问题上会不稳定,容易出现数据丢失。改用成整型数据之后,问题得到解决,不过采用整型数据,数据的精确度会有所下降。但是不会对整个系统功能产生大的影响。经过检查其它模块正常工作。整个硬件调试结束。总 结本设计本着方便、实用性、易于扩展的指导思想,采用AT89S52为中央处理器加上各种外围电路构成了整个单片机控制系统。在设计中运用霍尔元件测量流速,使用电阻应变式传感器测量压力,采用LCD12684作为数据显示,经过设计、制作和调试,最终实现了当初设定所要达到的技术指标。本次设计的具体步骤如下:1、系统整体设计,根据设计要求,选择合理可行的设计总体方案,实现系统功能。2、元件选择,根据需求分析选择电子元器件,以达到设计的目的。3

温馨提示

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

评论

0/150

提交评论