听力测试仪论文09861 (2).doc

上传人:小小飞 文档编号:3917101 上传时间:2019-10-10 格式:DOC 页数:57 大小:1.16MB
返回 下载 相关 举报
听力测试仪论文09861 (2).doc_第1页
第1页 / 共57页
听力测试仪论文09861 (2).doc_第2页
第2页 / 共57页
听力测试仪论文09861 (2).doc_第3页
第3页 / 共57页
听力测试仪论文09861 (2).doc_第4页
第4页 / 共57页
听力测试仪论文09861 (2).doc_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《听力测试仪论文09861 (2).doc》由会员分享,可在线阅读,更多相关《听力测试仪论文09861 (2).doc(57页珍藏版)》请在三一文库上搜索。

1、摘 要摘 要近年来,因环境噪声污染、意外事故导致耳聋的人数逐渐增多。这一人数众多、特殊困难的残疾人群体,已引起全社会,特别是卫生部门的高度重视。本文设计的听力测试仪由信号发生器和频率计并联复合而成,融合了这两分支电路,并通过串口将数据上传至上位机,存储进数据库,为听力保护提供可参考的数据。本论文主要针对整个听力测试仪系统进行了研究设计。具体如下:先设计一个信号发生器,再设计功率放大器,将信号发生器产生的信号送给功率放大器,同时将信号发生器输出另一路送进到单片机里,用单片机读取出信号的频率,进而显示在液晶显示器上,与此同时,把信号的频率向上位机进行传送,将采集到的数据送入电脑,并且存入数据库中,

2、以试验数据为依据,同步测算不同人能听到的频率范围,根据数据,为被测试者提供相应的听力保护建议,从而更好有效保护听力。关键词:听力测试仪;频率;信号发生;功放55AbstractAbstractIn recent years, due to the environmental noise pollution, an accident that the number of deafness increase gradually. This number, special difficulties of the disabled group, has caused the whole society

3、, especially the attention of the health department.In this paper the design by hearing tester signal generator and the frequency meter parallel compound and into, shirt-sleeve the two branch circuit, and through a serial port will upload data first place machine, stored in the database, for hearing

4、 protection can provide reference to data. This thesis mainly for the whole listening test instrument system design.Providing them with the corresponding hearing protection advice to better protect effective listening.Keywords: the hearing test instrument; Frequency; Signal occurred; Power amplifier

5、目 录目 录摘要IAbstractII1 绪论1 1.1听力测试仪研究背景和研究现况11.1.1听力测试仪研究背景11.1.2听力测试仪国内外研究现况11.2听力测试仪技术的研究目的及意义1 1.3听力测试仪设计方法21.4课题任务要求和目标实现22系统总体方案设计3 2.1 总体方案描述32.1.1总计方案的控制综述32.1.2总计方案系统结构3 2.2 工程标准32.2.1课题的设计标准32.2.2课题的设计原则42.3 总体方案的确定42.3.1多种方案的理论定性描述42.3.2方案论证与选择42.3.3可选方案优化设计53系统硬件电路设计63.1 硬件电路的构成与电路设计63.1.1功

6、放电路设计63.1.2信号发生器电路设计123.1.3显示电路设计143.2 电路调试153.2.1功放电路调试153.2.2信号发生电路调试154系统软件设计16 4.1 下位机程序设计16 4.2 上位机程序设计195 系统调试28结论32致谢33参考文献34附录35河北工程大学毕业论文1 绪论1.1听力测试仪研究背景和研究现况1.1.1听力测试仪研究背景纯音听阈测定是受检耳对不同频率的纯音恰能听到的最轻声音,是判断听敏度的标准行为测听法,按gb7583-87规定某人的听阈是在规定条件下,以一规定的声信号,在多次重复试验中,有一半以上的次数能正确引起听觉的最小声压级。同时纯音测听法是现代较

7、为普及的一种听力测试方法,是一种既能定性又能定量的听力测验法,可判断分析听力损失的程度和性质。1.1.2听力测试仪国内外研究状况听力计的品种有三种:手控听力计 (manual audiometer) ,自动记录听力计 (automatic audiometer) ,和电脑控制测听听力计 (micro-processing audiometer) 。而一个完整的、功能齐全的听力计,至少有三十多种测试功能,包括气导纯音测听、骨导纯音测听、言语测试,掩蔽声、多频道控制、病人反馈,特殊测试等。纯音听力计是听功能测试的声学电子仪器,可为听力损失的定性、定量和定位诊断提供参数依据,是近代耳病诊治和听力学研

8、究的重要设备。系统采用微处理器MEG128控制信号发生电路、音量控制系统、通讯接口和电源等功能模块的协同工作,通过串行通讯实现上、下位机的数据传输。上位PC机完成人机交互的功能,医生通过应用程序设置测试参数、观察检测状态并记录病人信息,并可随时调出已存储的听力数据,便于及时诊断和提供治疗方案。由于白噪声的实现方法复杂多样,且要求质量高、可控性强,因此产生稳定高质的噪声信号是系统开发的重点和难点。设计中通过采用优化的随机算法、精密的后期处理、高效的D/A转换电路等手段输出符合国标要求的声音信号,在实际应用中取得了良好的效果。手控听力计:常用的有国产TLJ-1型,进口MadsenTBH-85型以及

9、西德、丹麦产品等。1.2听力测试仪技术的研究目的及意义听力计是测定个体对各种频率感受性大小的仪器,通过与正常听觉相比,就可确定被试的听力损失情况。心理学上的听力计通常都是指纯音听力计。使用时,仪器主件自动提供由弱到强的各种频率刺激,自动变换频率,测听时被试戴上封闭隔音的耳机,当听到声音时,即按键,仪器可根据被试反应直接绘出可听度曲线。在医学上经常使用听力计来检查听力和测量听力的损失,听力损失的程度是用低于正常阈限的分贝数来衡量的。听力测定能评定一个人的听觉。因此,它在听力保护工作中是必不可少的仪器。1.3听力测试仪设计方法听力测试仪设计方法简单,通过简单的信号发生电路产生在听力范围内的可调方波

10、信号,然后把方波信号通过功率放大器把声音放出来,通过测试者的反馈,确定被测试者的听力能力范围,然后再通过串口把数据传到电脑上位机中,存储进数据库,可以对被测试者的听力能力进行进一步的分析,并提出相应的听力保护建议,以更好的保护听力。1.4课题任务要求和目标实现首先设计用+5V低电源电压进行工作,输出功率为0.3W(8负载),电压增益20dB,频率特性20Hz到20kHz,失真率1%以下的微小型功率放大器。信号发生器使用CD4046芯片产生0到20kHz的方波信号。最后,单片机在整个系统中的主要作用为将从信号发生器取到的方波信号进行计数,并通过12864液晶显示屏显示出频率来。即可完成课题任务要

11、求,焊接电路,经过调试达到要求后,即可实现目标。2 系统总体方案设计2.1总体方案描述2.1.1总体方案的控制综述方波信号发生器产生方波信号一路送进功率放大器,一路送进单片机最小系统,送入功放的一路信号经过功放进行功率放大,送入单片机的一路信号通过单片机的频率计数,把频率的大小数值通过12864液晶显示器显示出来,与些同时把频率的数值送至上位机,存储到数据库中。系统流程图见下图。2.1.2总体方案系统结构图2-1系统控制结构流程图2.2工程标准2.2.1课题的设计标准功放:电源+5V, 输出功率为0.3W(8负载),电压增益20dB,频率特性20Hz到20kHz,失真率1%以下。信号发生器:频

12、率特性20Hz到20kHz范围内。2.2.2课题的设计原则功放部分要求用分立原件搭建,同IC比,分立的可以细细的调声,调整每一个环节,力求出好声。最重要的是分立件的声音可以做到比IC的柔和,没有IC那般的晶体管声。分立件每个元件可以通过大的电流,不必须象在芯片上那么几微米的地方通过不算小的电流,而造成令人烦躁的晶体管声。信号发生部分使用CD4046压频振荡器芯片产生。单片机部分使用80C52即可满足要求。显示部分使用带字库的液晶12864进行显示。2.3总体方案的确定2.3.1多种方案的理论定性描述方案一、信号发生器部分采用555定时器的多谐振荡电路也能产生方波信号;功放部分可以采用LM358

13、功放IC;液晶采用1602液晶进行显示。方案二、信号发生器部分采用LM331压频转换IC产生方波信号;功放部分可以采用LM358功放IC;液晶采用1602液晶进行显示。方案三、信号发生器部分采用CD4046压频转换IC产生方波信号;功放部分采用分立原件搭建电路;液晶采用12864液晶进行显示。2.3.2方案论证与选择方案一中用555定时器产生方波对于本设计的要求达不到,也就是说不能产生达到20Hz到20KHz的频率范围变化的方波,而方案二中使用LM331的话可以产生满足要求的方波信号,但是由于LM331电路搭建比较麻烦,相比CD4046来说,CD4046电路比较简单,很容易产生20Hz到20K

14、Hz的方波,所以信号发生器部分选用CD4046作为方波发生器。方案二与方案一中显示部分都选用了1602液晶,1602液晶价钱便宜,但是它只能显示数字与字母,对于一个智能系统来说,如果不能显示汉字,则不能体现出智能系统的界面友好性,因此,在此选用了带字库的液晶12864,这款液晶不仅可以显示字母与数字,而且可以显示汉字,系统完成后,界面好看。方案三与前两个方案还有一处不同在于功放部分采用的是分立原件搭建,同IC比,分立的可以细细的调声,调整每一个环节,力求出好声。最重要的是分立件的声音可以做到比IC的柔和,没有IC那般的晶体管声。分立件每个元件可以通过大的电流,不必须象在芯片上那么几微米的地方通

15、过不算小的电流,而造成令人烦躁的晶体管声。由以上分析可知,方案三是最佳方案,因此,在本设计中选用方案三进行设计。2.3.3可选方案优化设计对于方案三,显示部分可以用更高级的液晶,比如说可以使用手机液晶显示器,这种液晶分辨率一般比较高,而且可以在编程进对液晶显示进行菜单设置,真正实现智能系统的智能化。功放部分可以加上音量调节部分,以防止在对人耳进行测试的时候声音过大,频率过高对测试者与被测试者听力产生不利影响。3 系统硬件设计3.1硬件电路的构成与电路设计3.1.1功放电路设计设计用+5V低电源电压进行工作,输出功率为0.3W(8负载)的微小型功率放大器。即使是如此小的功率输出,也能够得到足够大

16、的音量。由于必须驱动扬声器阻抗很低的负载,所以,无论多小的输出,都存在射极跟随器热击穿的可能性。为此,在射极跟随器的偏置电路里必须加上温度补偿。这就是说,即使输出小,在电路上也不能潦草从事。下面先介绍一下电压放大与电流放大,如图3-1表示功率放大电路的框图。将输入信号的电压放大之后进行电流放大以驱动扬声器等负载。图3-1 功率放大电路框图(首先,进行电压放大得到必要的输出;之后放置能驱动低阻抗负载的电流缓冲放大器。这是功率放大器的一般规律)制作电压放大级,通常可用共发射极或者共基极以及源接地或栅极接地的有电压增益的电路。这些电路仅进行电压放大,因电路的电流小,故没有发热问题。在制作电流放大极时

17、,要对电压放大级放大后的电平信号进行处理。因此,电源电压与电压放大级一样,且由于进行电流放大需要大电流,所以晶体管变得很热。通常,在电流放大级使用射极跟随器和源极输出电路,但在器件发热很严重的情况下,电路空载电流的温度稳定度就成为问题。首先解决这个问题是最为重要的。接下来介绍推挽电路,在图3中表示射极跟随器的偏置方法。其中图(a)为无信号时,与截止、空载电流没有流动的情况,此种情况完全不必考虑温度稳定性问题。但是,该电路开关失真大,因此在本论文设计的声频功率放大电路中没有被使用。在声频以外的用途中(例如驱动电机和各种传动装置),不考虑温度稳定度也行,所以它是很有“作为”的电路。下面对开关失真进

18、行修正介绍图3(b)是对晶体管的基极-发射极间电压用二极管的正向压降进行抵消、进而来消除开关失真的电路。晶体管的值具有温度越高就越小的负温度系数(-2.5)。因此,由这样的电路取出大量负载电流时,与的温度就升高(由集电极损耗引起的发热),的值就变小。图3-2 射极跟随器的偏置方法(称无信号时的集电极电流为空载电流。空载电流小,波形没有失真,也没有热击穿,是理想电路)然而,即使和的温度变高,二极管和上流动的电流变化也不大,所以,其正向压降也几乎是一定值。就是说,的关系被破坏,而成为。这样一来,在和中,与和之差相对应的基极电流不是在负载上流动,而是通过与在电源电源(GND)之间流动。这样,进一步增

19、加了集电极电流,因此,晶体管的温度变得更高,和的电压差变大,集电极电流变得更大。这种情况反复地进行着,最后,流过非常大的集电极电流,导致和发生热损坏,这就是晶体管的热击穿原理。如图3-2(b)所示电路,当电流流过时,有热击穿的担心,但在负载电流小的情况下,这又是很常用的电路。设计时要注意防止热击穿,图3-2(c)是在图3(b)电路中接入发射极电阻来吸收与的电压差,从而限制发射极电流的电路。空载时的集电极电流被限制在。该电路比图3-2(b)电路更安全。但想减少空载时的集电极电流,则必须增大R的值。例如,与的电压差为100时(,与,的温度差为40,约产生100的电压差),为了将空载时的集电极电流控

20、制在10,则必须设定R=10。这样一来,即使射极跟随器输出阻抗为0,该电路的输出阻抗也为=10。因该发射极电阻引发的损失,在大电流输出的电路中就不能驱动如扬声器那样的低阻抗负载(扬声器的阻抗为68)。还有一点,该电路因温度产生的电压差仅由电阻吸收,所以没有根本地解决空载电流随温度变动的问题。对于抑制空载电流随温度的变动作一下介绍,图4是在射极跟随器的晶体管与偏置电路中使用晶体管进行热耦合的电路。随着温度的变化,偏置电压发生变化,以达到根本解决空载电流随温度变动的问题。在该电路中,如设的基极发射极间电压为VBE,则TR1的基极偏置电路、上流动的电流为:=另一方面,的集电极发射极间电压(=与的偏置

21、电压)为=,将=代入上式中,得总之,改变与之比,可以将设定为的任意倍。在图3-3 电路中,必须对与的基极基极间电压设定在晶体管的两个上(=+)。因此,如设=,则=2(2个)从而得到电压的平衡(这里,认为=)。进而,由于是热耦合的(例如,预先将管壳靠近,使它们成为相同的温度),即使与随温度而变化,也同样发生变化,一直维持=2=+的关系。 这样图3-4的电路就没有热击穿的问题了。图3-3 温度稳定度好的偏置电路最后对实际电路的设计进行介绍,在实际电路中,的晶体管品种是不同的,基极电流值也不同,所以前述的=的关系不成立。但是,把与中任何一个做成可变电阻,对它进行调整,就能够将其电压设定在=+的点上。

22、其次,即使每个晶体管的VBE值不同,因VBE的温度系数却几乎是相同的(NPN与PNP管也几乎相同)。由于热耦合作用,即使温度发生变化,也能维持所设定的电压关系。还有一点值得注意,在声频功率放大器中,若设=+,则在TR2与TR3会发生微小的开关失真(集电极电流为0时,晶体管处于ON与OFF的临界处),所以设定+,使得集电极电流仅仅有稍许流动(由发射极电阻R的电压降可以测出电极电流值)。下面谈一下具体的相关参数计算:先谈一下电路规格,输出功率0.3W,电压+5V,电压增益20dB,频率特性20Hz到20kHz,失真率1%以下。图3-4中,表示已设计出的功率放大器的电路图,该电路是单声道的,要想播放

23、立体声,还需要另一声道电路,当然在这里已经用不着了。作为整体的电路结构,用共发射极放大电路对输入信号进行电压放大。在共发射极电路集电极插入的偏置电路,产生射极跟随器的偏置电压,用推挽发射极跟随器进行电流放大。图3-4 制作完成的声频放大电路电源电压由输出功率来决定。最大输出功率,对于8的负载(扬声器的阻抗)为0.3W。所以此时的输出电压为:Z=负载阻抗该值为有效值,如输入信号为正弦波,则输出波形的峰峰值为4.3V()。对于输出电压4.3V,将电源电压的值设定在电路产生的数伏损失以上,其中包括共发射极电路发射极上产生的压降、射极跟随器发射极电阻产生的压降以及晶体管集电极发射极间的饱和电压等。在这

24、里,设=5V(单电源)。下面确定共发射极放大电路的工作点,将共发射极电路的集电极电流设定在很大值上,比供给下级的射极跟随器基极电流还要大得多。当负载为8、输出功率为0.3W时,输出电压为1.5(设波形为正弦波)。其峰值为2.1V()。此时的负载电流(=或者的集电极电流)为265mA(=2.1V/8)(也是峰值)。在这里,设射极跟随器使用的晶体管为100,由共发射极电路提供的基极电流为2.65mA(=265mA/100)。在图3-5中,模拟表示电流流动的样子。图3-5 提供给射极跟随器的电流(在功率放大电路中,为了设定各部分的工作电流,通常是由输出侧的电流倒推。其结果可知,共发射极放大电路必须提

25、供2.65mA的电流)设共发射极电路的集电极电流比基极电流2.65mA大得多的值,为20mA,对于,要选择20mA以上、集电极基极间电压与集电极发射极间电压为5V(电源电压)以上的器件。(选定型号为9013的晶体管)若的发射极电位太高,则不能得到大的集电极振幅;而过低时,集电极电流随温度的变化又增大。综合考虑,在这里取为0.8V。为了将集电极电流(=发射极电流)设定为20mA,的发射极与GND间的电阻取作40(=0.8V/20mA)。计算放大倍数,如图3-6所示,若将的集电极电位设定为0.2V,则能得到最大振幅(这里略去产生的射极跟随器的偏置电位)。为了使集电极电位为2.8V,在上的压降取为4

26、.8V(=5V-0.2V)即可,所以还有,将=100分成两部分,用接地后,该电路的交流电压放大倍数为由于实际放大倍数要比上式求得的值小以及射极跟随器发射极电阻上的损失等原因,的设定值要设定在比设计规格稍大的值。此外,是对进行旁路,用以提高放大度的电容。,与形成高通滤波器。为了满足设计规格的频率特性,取为。与起着稳定决定基极电位的作用。为了使发射极电位为0.6V,基极电位取1.2V。在这里,设与上流动的电流为0.1mA,=39K,=10K。因此,该电路的输入阻抗为7.9K(=)。输入侧的耦合电容与共发射电路的输入阻抗形成的高通滤波器的截止频率为20Hz以下,以此来决定的值。在这里。是调整输入电平

27、(音量)的可变电阻,取作10K。如图3-4所示,为射极跟随器的偏置电路,为了省略耦合电容,射极跟随器的偏置电路插在共发射极电路的晶体管的集电极与负载电阻之间。在图3-6中,表示偏置电路各部分电压与电流的关系。图3-6射极跟随器偏置电路的各部分的电压与电流这里选用的晶体管(),只要满足最大集电极电流在20mA以上,集电极基极间与集电极发射极间最大额定值与为1.2V以上(两个)的条件,不管什么型号的器件都可以。在该电路基极侧流动的电流由决定,这里取。对偏置电路进行旁路,是为了使由与的基极“见到”的阻抗相等。由于的插入,高频失真率得到改善。的值越大,与的基极基极间的阻抗越低,但是太大也无意义,这里取

28、。3.1.2信号发生器电路设计本信号发生器使用CD4046芯片产生0到20kHz的方波信号。先对CD4046芯片介绍,CD4046是通用的CMOS锁相环集成电路,其特点是电源电压范围宽(为3V18V),输入阻抗高(约100M),动态功耗小,在中心频率f0为10kHz下功耗仅为600W,属微功耗器件。CD4046锁相的意义是相位同步的自动控制,功能是完成两个电信号相位同步的自动控制闭环系统叫做锁相环,简称PLL。它广泛应用于广播通信、频率合成、自动控制及时钟同步等技术领域。锁相环主要由相位比较器(PC)、压控振荡器(VCO)。低通滤波器三部分组成,如图3-7所示。图3-7 CD4046结构原理图

29、CD4046工作原理:输入信号Ui从14脚输入后,经放大器A1进行放大、整形后加到相位比较器、的输入端,图3开关K拨至2脚,则比较器将从3脚输入的比较信号Uo与输入信号Ui作相位比较,从相位比较器输出的误差电压U则反映出两者的相位差。U经R3、R4及C2滤波后得到一控制电压Ud加至压控振荡器VCO的输入端9脚,调整VCO的振荡频率f2,使f2迅速逼近信号频率f1。VCO的输出又经除法器再进入相位比较器,继续与Ui进行相位比较,最后使得f2f1,两者的相位差为一定值,实现了相位锁定。若开关K拨至13脚,则相位比较器工作,过程与上述相同,不再赘述。CD4046采用16脚双列直插式,各管脚功能:1脚

30、相位输出端,环路人锁时为高电平,环路失锁时为低电平。2脚相位比较器的输出端。3脚比较信号输入端。4脚压控振荡器输出端。5脚禁止端,高电平时禁止,低电平时允许压控振荡器工作。6、7脚外接振荡电容。8、16脚电源的负端和正端。9脚压控振荡器的控制端。10脚解调输出端,用于FM解调。11、12脚外接振荡电阻。13脚相位比较器的输出端。14脚信号输入端。15脚内部独立的齐纳稳压管负极。如图3-8为可以产生最大20kHz的电路,用+5V供电,从3端口输出方波信号,6、7脚接振荡电容,11、12脚接振荡电阻,通过调节9脚的电位器可以调节输出频率从0到20kHz变化。图3-8 CD4046信号发生电路图3.

31、1.3显示电路设计单片机在整个系统中的主要作用为将从信号发生器取到的方波信号进行计数,并通过12864液晶显示屏显示出频率来。下面谈一下单片机最小系统本系统频率计由于所计频率不会超过25kHz,所以选用80C51单片机即可,晶振采用12MHz无源晶振,电路图如图3-9。图3-9 单片机最小系统主电路本系统显示电路12864显示屏采用带字库的,这样可以节省单片机所需要的内存。详细规格如下(原理简图如图3-10):ST7920 的字型产生 ROM 通过 8192 个 1616 点阵的中文字型,以及 126 个168 点阵的西文字符,它用 2 个字节来提供编码选择,将要显示的字符的编码 写到 DDR

32、AM 上,硬件将依照编码自动从 CGROM 中选择将要显示的字型显示再屏幕 上。ST7920 的字型产生 RAM 提供用户自定义字符生成(造字)功能。显示 RAM 提供 642 字节的空间,最多可以控制4行 16 字的中文字型显示。当写入显示资料 RAM 时,可以分别显示 CGROM,HCGROM 及 CGRAM 的字型。 三种字型的选择: (1) 显示半宽字型将一个字节的编码写入 DDRAM 中,范围是 027FH。(2) 显示 CGRAM 字型将 2 个字节的编码写入 DDRAM 中,共有 0000H,0002H,0004H 及 0006H 四种编码。(3) 显示中文字型将 2 字节的编码

33、写入 DDRAM 中,先写高 8 位,后写低 8 位范围是 A140HD75FH(BIG5),A1A0HF7FFH(GB)。下面是12864液晶与单片机的连接电路图,如图3-10。 图3-10 液晶12864与单片机的引脚连接图3.2电路调试3.2.1功放电路调试功放调试电路时最关键的是要确定好工作点,调整工作点偏置电路上的电位器,通过信号源的信号输入,并通过示波器对波形进行观察,防止出现削顶与削底失真,只要通过调节电位器就可以了,对于峰值的调节,可以通过调整输入端的电位器进行调节。3.2.2信号发生电路调试信号发生电路在调试的时候要注意振荡电容与振荡电阻的选择,我在调试之前,先进行过软件仿真

34、,但是当真正电路焊接出来的时候,却发现实际情况与仿真相差很大,于是我经过查资料并且与老师讨论后得出结论,可能是因为振荡电容的问题,可能是太小,因为刚开始时的频率上限达不到要求,经过并联电容后发现情况有所改善,接下来就是一个接一个电容的试,因为CD4046关于频率值并没有一个定量的计算公式,在调试中还要注意11脚也要接上电位器进行相应的微调整,以达到上限与下限的要求。4 系统软件设计4.1下位机程序设计本系统在进行程序设计时,考虑到80C51中断源不多,将定时器与外部中断通过分时处理,完成了要求。通过使用外部中断对送入P32口的方波信号进行捕捉,定时好1S计下读入的方波脉冲(捕捉上升沿)个数,由

35、于计时周期为1S,所以计下的脉冲个数即为频率,然后通过液晶12864显示出频率的读数,程序任务就完成了。需要注意的是,采集与显示一定要分开进行,也就是说,计完数后,把所有中断关闭之后再进行显示,否则,会导致显示被不定时中断,造成不能正确显示频率,当然,显示完成之后,不要忘记打开中断,进行下一轮的计数采集。(全部程序见附录)。程序流程图如下。图4-1 下位机程序流程图下面截取的是主函数的程序段,先进行初始化程序,包括外部中断与定时器中断的初始化,还有液晶12864的相关端口与延时初始化,为下面的程序做好相应的准备,具体程序如下:void main() init(); TR0=0; f_culi(

36、); display(); while(1) if(flag=1)flag=0;f_culi();display();EA=1; 上面程序中需要说明一下f_culi()函数,请看下面程序段:void f_culi()str1=(int)f/10000;/万位str2=(int)(f/1000)%10;/千位str3=(int)(f/100)%10;/百位str4=(int)(f/10)%10;/十位str5=(int)f%10;/个位table0=0x30+str1;table1=0x30+str2;table2=0x30+str3;table3=0x30+str4;table4=0x30+s

37、tr5;上半部分是对数据进行处理,把要显示的频率值进行分位提取,以方便显示,下半部分的程序是把处理好的数据存储进一个table数组中,这样是为了方便在显示程序中直接调用显示函数直接把频率值显示在液晶上面。下面是外部中断0的函数段:void ISR_Key(void) interrupt 0 using 1i+;TR0=1; 下面是定时器中断0的函数段:void Timer0_isr(void) interrupt 1 using 1 TH0=0x3C;TL0=0xB0;t+;if(t=20)f=i;f1=f;i=0;t=0;EA=0;flag=1;elsef=f1;从上面函数可以知道flag是

38、一个标记,它的作用是为了确定是否进入了定时器中断,当然最后在主函数中不要忘记把标记清零,相关函数可以参考主函数的程序段。下面是液晶12864的初始化程序:void lcd_init() LCD_PSB = 1; /并口方式 LCD_RST = 0; /液晶复位 delayms(5); LCD_RST = 1; delayms(5); lcd_wcmd(0x34); /扩充指令操作 delayms(5); lcd_wcmd(0x30); /基本指令操作 delayms(5); lcd_wcmd(0x0C); /显示开,关光标 delayms(5); lcd_wcmd(0x06); /光标的移动方

39、向 delayms(5); lcd_wcmd(0x01); /清除LCD的显示内容 delayms(5);下面的程序段是液晶的核心代码:这段程序中最主要的是函数lcd_wdat(strnum+),后面会对这个函数进行具体的介绍,这段程序可以通过把要显示的字符串数组的开头地址指针传送给这个函数,就可以正确的显示出字符串数组中的内容,频率也就是这样显示出来的。void wr_string(unsigned char str) unsigned char num = 0; while (strnum) lcd_wdat(strnum+); /写数据 delayms(10); /延时形成逐字显示效果

40、请看下面lcd_wdat(str)的程序段:void lcd_wdat(unsigned char dat) while (lcd_busy() ; LCD_RS = 1; LCD_RW = 0; LCD_EN = 1; P0 = dat; delayNOP(); LCD_EN = 0;4.2上位机程序设计先介绍一下串口通信相关理论:串行总线是一种久远但目前仍常用的通信方式,早期的仪器、单片机、PLC等均使用串口是计算机进行通信,最初多用于数据通信上,但随着工业测控行业的发展,许多测量仪器都带有串口总线接口,因此了解掌握串口通信技术及其编程是非常有必要的。串行通信接口,按电气标准及协议来分包括

41、:RS232、RS422、RS485,USB等。RS232、RS422与RS485标准只对接口的电气特性做出决定,不涉及插件、电缆或协议。USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。串口的技术简单成熟、性能可靠、价格低廉,所以要求的软硬件环境或者条件都很低,广泛应用与计算机及相关领域,遍及调制解调器、串行打印机、各种监控模块、PLC、数控机床、单片机及相关智能设备,甚至路由器也不例外(通过串口设置参数)。通信的主要目的是将数据从一端发送到另一端,以实现数据的交换。计算机与设备问的数据交换,计算机与计算机问的数据传输都属于通信的范畴。 一个完整的通信系统包括发送端、接收端、

42、转换数据的接口及发送数据的实际信道或媒质。一般情况下,发送与接收的节点称为DTE(Data Terminal Equipment,数据终端设备)。数据在到达正确目的地之前,可能需要经过一系列中间节点,它们负责数据的转送工作,以送达目的地,这些中间节点称为DSE(Data Switching Equipment,数据交换设备)。终端设备发送数据时,必须先将数据转换为电气信号,以便在线路上传递,而负责数据与电气信号转换的设备称为DCE(Data Communication Equipment,数据通信设备)。DTE与DCE间的数据传输线路通常使用RS232串行通信,而DCE与DSE间的媒质则包括了

43、双绞线、同轴电缆、光纤或无线电等。在计算机内部的记录中所有的数据都是0与l,任何数据都是这两个数字的组合。所有电子仪器的基础均来自“开”、“关”两个状态的改变,可以将它们表示为0与l或表示为“高电位”、“低电位”,不管表示方法如何,目的在于造成“状态的改变”,将很多的0与l组合成一大串的数字序列后,就可以定义它们所代表的意义了。传输过程就是在传输线上不断地产生高低电位的变化,发送端造成传输线上的电位变化,而接收端则是解读此高低电位变化而还原出原始的信息。串行通信端口在系统控制的范畴中一直占据了极其重要的地位,它不仅没有因为时代的进步而被淘汰,反而在规格上越来越完善,应用也越来越广泛。为了不同厂

44、商的计算机和各种外围设备串行连接的需要,已经制定了一些串行物理接口的标准。其中,最著名和广泛采用的是EIA-RS-232C,现在,串行通信端口RS232是计算机上的标准配置,既可以用于计算机和设备之间近距离连接的直接通信,也可以用于连接调制解调器来进行远距离的串行数据传输。(1) 物理接口特性EIA-RS-232C是由美国电子工业协会EIA制订的一种串行物理接口标准,EIA-RS-232C关于机械特性的要求,规定使用一个25针的标准连接器,对该连接器的尺寸及每个插针的排列位置等都有明确的规定。随着使用的不断发展,演化出9针接口的RS 232端口,计算机上通常配备COM1端口,即以9针脚引出的R

45、S232通信端口。表4-1给出了9针RS232端口引脚说明。(2) 电气特性数字电路和计算机接口中大部分为5v的TTL或3.3v的CMOS电平,而RS-232的电平定义则不相同,它采用的是负逻辑。信号要被发送,一定要定义所谓的0或1的状态。在RS-232的标准中,电压在+3v+15v(一般使用+6V)之间称为0或Space,一般用途是作为011,电压在-3-15v(一般使用-6v)之间称为1或Mark,一般用途是作为Off。有时候以High和Low更能表现出其实际状态。表4-1 RS232端口引脚缩写功能说明引脚(9针)信号类型源类型描述1CDDCE控制接收信号检出,高电平有效。当CD=1,表

46、示已经收到通信线路另一端Modem送来的信号。2RDDCE控制将远程的串行数据接收进来3TDDTE控制将计算机的数据发送出去4DTRDTE控制此引脚有计算机控制,当DTR=1时,表明可以传输数据。5GNDDET控制接地端,信号地和保护地信号6DSRDCE控制数据装置准备准备好,当它为高电平时,Modem将通知计算机准备就绪,可以发送数据。7RTSDTE控制请求发送,用来表示DTE请求DCE发送数据,当它为高电平时,计算机向Modem请求发送数据。8CTSDTE控制清除发送,用来表示DCE准备好接收DTE发来的数据,是对请求发送信号RTS的响应信号。9RIDCE控制响铃指示,RI=1时,表明Modem收到了交换台送来的振铃信号,用它

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1