听力测试仪论文09861

上传人:仙*** 文档编号:78725244 上传时间:2022-04-22 格式:DOC 页数:56 大小:1.16MB
收藏 版权申诉 举报 下载
听力测试仪论文09861_第1页
第1页 / 共56页
听力测试仪论文09861_第2页
第2页 / 共56页
听力测试仪论文09861_第3页
第3页 / 共56页
资源描述:

《听力测试仪论文09861》由会员分享,可在线阅读,更多相关《听力测试仪论文09861(56页珍藏版)》请在装配图网上搜索。

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

2、以试验数据为依据,同步测算不同人能听到的频率范围,根据数据,为被测试者提供相应的听力保护建议,从而更好有效保护听力。关键词:听力测试仪;频率;信号发生;功放54AbstractAbstractIn 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时,表明Mo

47、dem收到了交换台送来的振铃信号,用它来通知终端。几种其它的串口通信方式:(1)RS-485标准是RS-422标准的改进增强版本,因其技术性能先进,得到了广泛应用。RS485不仅传输距离远,通信可靠,而且使用单一+5V电源或+3V电源,逻辑电平与传统的TTL兼容。此外,它对传输介质没有任何严格的要求,只需将普通双绞线捆绑在一起即可简便地组成网络,除了点对点与广播通信方式外,还具有多点通信方式。RS-485标准的共模电压最大与最小值为+12V、-7v,差分输入电压范围为-7V+12V,接受器输入灵敏度为200mV。其特点是抗干扰能力强,传输速率高,距离远。在采用双绞线,不使用MODEM的情况下,

48、在l00Kb/s的传输速率时,可以传送1200m,若速率为9600b/s,则传送距离可达1500m,它允许的最大速率为10Mb/s,传输距离为15m。RS485采用差分平衡输入模式,对共模信号有极好的抑制能力。信号将被发送出去时先分成正负两条线路,到达接收端之后,再将信号相减还原成原来的信号,保证了与原始信号的一致性。使用RS485网络可以有效的抑制噪声信号干扰。也因为这种特性,此种串行通信方式比较适合工业上的应用。(2)由于时代的进步,串行通信也朝向高速化发展。近年来个人计算机的快速发展,使串行通信技术发展出了通用串行总线(Universal Serial Bus,USB)接口。此种规格的目

49、的在于集成一般计算机所使用的外围设备连接方式,而且其所采用的信号传输方式也是串行通信。到目前为止,USB接口已经有两种规范:1996年1月推出的标准版本USB1.0,最高传输速率为12Mb/s;1998年9月又推出USB1.1版本,全面修改了1.0版本2000年4月推出高速的USB2.0,数据传输速率可达480Mb/s。当前低速是指15Mb/s以下,15Mb/s以上至12Mb/s的设备称为全速设备。USB总线由VBUS(USB电源)、D+(数据)、D-(数据)和GND(USB地)4根线组成,用于传送信号和提供电源,线缆的最大长度不超过5m。按照USB1.0/1.1标准,USB的标准脉冲时钟频率

50、为12MHz,而其总线脉冲时钟为1ms(1kHz),即每隔1ms,USB设备应为USB总线产生1个时钟脉冲序列,这个脉冲序列称为帧开始数据包(SOF)。高速外设长度为每帧12Kbit,而低速外设长度为每帧1.5Kbit,1个USB数据包可包含0-1023字节数据,每个数据包的传送都以1个同步字段开始。USB主控制器时钟产生每帧1ms的时间片,它是通过以1ms的间隔发送帧开始(SOF)的方法来建立帧的。SOF令牌是一个帧周期内第一个被传输的内容,在发送一个SOF令牌之后,帧周期所剩余的时间内,主控制器可以自由地发送其他处理操作。当主控制器处于正常工作状态时,不管有没有其他的总线操作,SOF令牌必

51、须以1ms的周期连续产生。如果主控制器进入了一个它不能在总线上提供电源供应的状态,它就不能产生SOF,而且,如果主控制器不再生成SOF,它可以进入一个低功耗状态。SOF令牌具有访问总线的最高优先权,集线器中的串扰电路在帧结束(EOF)期间,从电气上对任意一个有效的发送器进行隔离,为SOF的传输提供一条空闲的总线。主机在每一个SOF令牌传输中会传送当前帧标号的低11bit,当主控制器发出请求时,当前的帧标号就是在该请求完成时已经存在的帧标号由主机(主控制器或HCD)所返回的当前帧标号至少为32bit,主控制器自身并不需要保留超过11bit的标号。在EOF期间,主控制器可以停止传输。当EOF间隔开

52、始时,专门为刚刚通过的那一帧所安排的任一处理操作都会被重试。如果在遇到一个EOF时间问隔时。主控制器正在执行一项处理操作,它将中止该项处理。(3)IEEE-1394(也称为FireWire,火线)也是一种高性能的串行总线标准,它与USB一样拥有PnP(即插即用)功能,也是用于解决计算机与外围设备复杂的连接问题,同样具有容易使用与高速等特点,并且也是使用串行通信的传输方式。IEEE-1394特别适用于高速传输的环境,现在已经达到的速度是400Mbps,下一个版本中将达到1000Mbps,最多可以串接63个外围设备,可以提供异步和同步两种传输模式。IEEE-1394和USB有很多相似之处,它一共使

53、用6条线缆,其中两条线是直流供给线,电压范围8-40V,电流最大为1.5A。还有两对双绞线作为信号线:一对是差模时钟线,另一对是差模数据线。其设备连接也是很方便的,支持热插拔和即插即用,在增加或拆除后,IEEE-1394也会自动调整拓扑结构,重设整个外围设备的网络状态。IEEE-1394的标准开始是IEEE-l394-1995,后来发展成为IEEE-1394a-2000,目前实际使用的为1394a,数据传输速率有三档:l00Mb/s,200Mb/s,400Mb/s。IEEE-1394a又有升级版本lEEE-1394b-2002,它的速率为800Mb/s,1.6Gb/s和32Gb/s因为它们的通

54、信协议和管理机制与USB不同,IEEE-1394设备的自动配置不需要主机的干预。下面介绍一下本设计中使用到的串口:串行接口简称串口,也成串行通信接口(通常指COM接口),是采用串行通信方式的扩展接口。由于RS-232串口连接简单,操作方便,编程简单,通信速率也完全可以满足本软件的需求,故本软件设计使用了RS-232串口(其引脚图如图4-3)。其主要属性如下:图4-2 RS-232引脚图RS-232电缆9个引脚定义:1载波检测(DCD) 、2接受数据(RXD) 、3发出数据(TXD)、4数据终端准备好(DTR) 、5信号地线(SG)、6数据准备好(DSR)、7请求发送(RTS) 、8清除发送(C

55、TS)、9振铃指示(RI) 。下面是上位机的简单介绍:听力测试系统的上位机是通过串口通信将电脑与单片机连接起来,把不同人的听力范围记入电脑中,该系统设有数据库功能,可以把测试人的相关信息存储起来,相关信息主要有姓名,年龄,性别,还有记录测试的时间。通过数据库把数据采集起来,可以进行比较,不同时间,对不同情况下测得的数据进行分析,可以提出一些保护听力的有用措施。程序流程图如下。图4-3 上位机系统流程图启动软件VS2010新建一个项目并命名为RLTL,然后软件自动就生成一个Form面板,将其重命名为frmLogin,调整到适当的大小,再分别添加相应的Label控件、TextBox控件、Butto

56、n控件。为了登录界面的美观我在其属性背景图片中添加了一张图片,看起来使得登录界面更加的绚丽与引人注目。在本系统中添加登录界面主要是为了增加软件的安全性,同时也可以方便用户对软件的管理,增加了人际界面的互动。如图4-4为登陆主界面:图4-4 登陆主界面登录界面的主要程序代码如下: string sql = select * from userinfo where username= + txtUsername.Text.Trim().ToLower() + and password= + txtPassword.Text.Trim() + ; if (OperateDB.ExecuteReade

57、r(sql) frmMain frm = new frmMain(); frm.Show(); this.Hide(); else MessageBox.Show(“用户名或密码错误!“, 出错了, MessageBoxButtons.OK, MessageBoxIcon.Error); 通过登陆主界面输入用户名与密码之后就进入了测试系统的系统界面,在该界面中还有被测试者的相关信息以及由下位机发来的数据。其中被测试者的基本信息以及接收到的来自下位机的数据都被保存到数据库中。如图4-5:图4-5 测试的系统界面下面是测试数据存储进入数据库,如图4-6:图4-6 数据库数据存储界面下面介绍的是上位

58、机的具体调试:调试程序时利用串口将RS232的第2针和第3针用杜邦线连接起来,实现自发自收的调试,调试结果如图4-7所示。图4-7 上位机自发自收调试结果对于保存到数据库的数据进行查询操作,查询的结果如图4-8所示。图4-8 信息查询结果图5 系统调试先介绍一下程序调试工具:Keil C51开发系统基本知识Keil C51开发系统基本知识 (1)系统概述 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软

59、件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。 (2)Keil C51单片机软件开发系统的整体结构 C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope

60、51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。Proteus软件简介:Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真

61、,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。其功能特点如下:Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是: (1)原理布图 (2)PCB自动或人工布线 (3)SPICE电路仿真 革命性的特点 (1)互动的电路仿真 用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 (2)仿真处理器及其外围电路 可以仿真51系列、AVR、PIC、ARM

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!