单频信号经过多径时变信道的特性分析_第1页
单频信号经过多径时变信道的特性分析_第2页
单频信号经过多径时变信道的特性分析_第3页
单频信号经过多径时变信道的特性分析_第4页
单频信号经过多径时变信道的特性分析_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、 课程设计 题 目 数字电压表的设计 学生姓名 刘 杰 学号 1210064041 所在院(系) 物理与电信工程学院 专业班级 电信1202班 完成地点 陕西理工学院 数字电压表的设计刘杰(陕西理工学院 物理与电信工程学院 电子信息科学与技术,2012级2班,陕西 汉中 723001)指导教师:卢进军 摘要 本设计是基于AT89C51控制AD芯片来采集模拟电压值,并且将才回来的数值转换成十进制数,通过用4段数码管来显视采集电压值。利用AD芯片ADC0804将电压的模拟量转换成数字量,传送给单片机。在本设计中,利用二极管的单向导电性将单片机的某些I/O口设置成输入端口,利用串联电阻的分压特性,将

2、采集的电压范围进行分段处理,以提高采集的精度。 关键字 单片机; ADC0804;AD采集;仿真 目录1引言12 设计方案12.1方案一12.2方案二12.3方案确定23 设计原理和参数计算23.1设计原理23.1.1 ADC0804工作原理的设计23.1.2 ADC0804采集电压范围的检测原43.1.3 4位数码管动态显示的工作原理.53.2参数计算53.2.1 RC震荡电路的计算53.2.2将BCD码转换成十进制数53.2.3 放大系数的理论计算.54电路调试和参数整定及软件实现.64.1 protues软件环境下电路的调试64.1.2 Keil软件环境下电路的调试.64.2 放大系数的

3、整定. 74.3 软件实现. 85数据结果分析及结论95.1数据结果分析95.2 改进.126 结论12参考文献131. 引言数字电压表简称DVM,它是采用了数字化测量技术,把连续模拟量(直流输入电压)转成不连续,离散的数字形式加以现实的仪表。传统的指针是电压表功能单一,精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高,抗干扰能力强,可扩展性强,集成方便,不可与PC进行实时通信。目前由各种单片机A/D转换器构成的数字电压表,已被广泛的应用为电子及其电工的测量,工业自动化仪表,自动测试系统等智能化测量领域,显示出强大的生命力。数字电压表是诸多数字化仪表的核心与基础,电压表的数字

4、化是将连续的模拟量如直流电压转换成不连续的离散的数字形式,并加以显示,这有别于传统的指针加刻度盘进行读数的方法,避免了读数的视差和视觉的疲劳,目前数字电压表的核心部件是A/D转换器,转换器的精度很大程度上影响着数字电压表的准确度。本设计主要分为两部分:硬件电路及软件程序。而硬件电路又大体可分为单片机小系统电路、A/D转换电路、LED显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用汇编语言编程,利用纬福软件对其编译,详细的设计算法将会在程序设计部分详细介绍。在电量的测量中,电压"电流和频率是最基本的三个被测量,其中电压量的测量最为普遍,要测量高精度的电压,

5、数字电压表是一种理想选择。 数字电压表(Digital Voltmeter,DVM) 是采用数字化测量技术,把连续的模拟量转换成不连续"离散的数字形式并加以显示的仪表,是诸多数字化仪表的核心与基础。以单片机为核心部件的智能化电子仪器仪表具有高测量精度、高灵敏度和分辨率、高可靠性及稳定性、测量速度快、通信联网、电子存储等特点,已在电子及电工测量"工业自动化仪表、自动测试系统领域得到了广泛的应用。本文基于 51系列单片机设计的数字电压表可以测量0200V 的直流电压值,并且通过4位数码管实时显示,最大分辨率约为0.12设计方案2.1 方案一目前数字电压表的内部核心部件是AD转换

6、器,AD转换器的精度很大程度上影响着数字电压表的测量准确度。 本设计采用 ADC0804作为AD转换器,把输入的模拟信号转换成数字信号,选用AT89C51单片机对转换的结果进行运算和处理,最后输出驱动 4位共阳极 LED数码管显示被测数字电压信号。在采用ADC0804进行转换时,利用滑动变阻器来进行分压处理,使ADC0804模拟电压的输入端保证在5V以内。2.2 方案二方案二是方案一的ADC0804模拟量输入端口处进行了改变。将滑动变阻器变为两个电阻串联分压。由于当电压过大时,会使ADC0804模拟电压的输入端的电压超出5V,这样在仿真中会导致芯片不工作。在本设计中,将0200V,划分为不同的

7、采集范围,来进行采样,小范围对应小电阻(相对而言)。这样不但可以确保ADC0804模拟电压的输入端的电压在5V以内,而且可以提高采集的精度。2.3 方案的确定由于本设计的两个方案,有很大的相似度,所以直接对两个进行仿真。结果发现方案一,在10V以内,测量的效果很好,数值误差小,但当随着电压的增大时,误差越来越大,当超过100V时,由于选的滑动变阻器的阻值小,导致芯片不能正常工作。当换用大阻值的滑动变阻器时,测量误差太大,而且还有出现错误的阈值。方案二,采用了分范围处理的思想,很好的避免了以上出现的问题,但是增加了电路的复杂程度,而且,在每个范围内每个待定系数不同;使调试程序的难度增大;由于AT

8、89C51每个I/O既是输出口又是输入口,这样导致判断ADC0804是工作在哪个电压范围内的难度增大。总体设计下来,方案二的成本比方案一的成本高出很多。由于方案二出现的问题人为可以解决,所以在本设计中采用方案二。如图一AT89c51复位电路数码管显示ADC0804被测电压图一 数字电压表系统设计3设计原理和参数计算3.1 设计原理3.1.1 ADC0804工作的设计原理ADC0804是一个8位CMOS型逐次比较式A/D转换器,具有三态锁存输出功能,最短转换时间为100us,其芯片实引脚图如图3.1.1:  图3.1.1 ADC0804引脚CS:片选信号,低电平有效; RD:

9、外部读取转换结果的控制信号,当RD为高电平时,DB0-DB7为高阻态;当RD为低电平时,数据才会通过DB0-DB7输出; WR:A/D转换器启动控制信号,当WR由高电平变为低电平时,转换器被清零,当WR由低电平变为高电平时,A/D转换正式开始; CLK IN和CLK R:时钟输入端,在ADC0804片内有时钟发生器,采用内部时钟时,在CLK IN CLK R 和地线之间连接RC电路即可,ADC0804的工作频率约为100-1460khz,若使RC 电路作为时钟,其振荡频率为1/(1.1RC); INTR:中断请求输

10、出信号,当A/D转换结束时,INTR引脚输出低电平,只有当数据被取走后(单片机发出读数据指令),此引脚才会变为高电平; VIN+和VIN-:差动模拟电压输入端,若输入为单端正电压,VIN-应接地,若差动输入,则输入信号直接加入VIN+和VIN-; AGND.DGND:模拟信号地与数字信号地,若系统对抗干扰要求严格,则这两条地线必须分接 地; VREF/2:参考电压值的一半,若在ADC0804组成的电路中需要的参考电压为5V,则此引脚可以悬空。若电路中需要使用的参考电压小于5V,即参考电压值的一半小于2.5V,这时可将此引脚连接到需要的参考电压值(如4V)

11、的 1/2电压值上(如 2V),在ADC0804芯片内部会自动判断参考电压的选择,当VREF/2引脚的电压值低于2.5V时,芯片会自动选择由VREF/2引脚电压放大2倍以后的电压值作为参考电压。 DB0-DB7:8位数字输出端3.1.2 ADC0804采集电压范围的检测原理由于本次设计中采用的是分范围测量的,在每个范围内都对应不同的串联电阻分压。所以每个范围内都对应的自己的参数,即在整个系统中采用的是动态参数。但是由于AT89C51的I/O既是输出又是输入,所以对于ADC0804采集电压范围的检测难度加大。在本设计中将0200V分为三个不等分的范围,所以用三个不同

12、的电阻并联,然后串联一10K的电阻,这样实现了每个电压范围对应一个串联分压的电阻。而对于AT89C51单片机的I/O口既是输出又是输入,可以采用多级开关串联及利用二极管的单项导电阻性可以避免这个问题。具体做法;被测电压接第一级开关,然后再接第一级电阻,这个电阻是大电阻,在接第二级开关最后通过第二级10K电阻接地;在第一级开关后引一根导线通过二极管接到单片机的I/O口。这样就实现了单片机对ADC0804不同工作范围的检测。有上述可知,第一级开关是用来控制I/O对不同采集电压范围的检测。第一级和第二级实现电路的导通。ADC0804采集电压范围的检测原理如图3.1.2所示:图3.1.2 ADC080

13、4采集电压范围的检测原理图3.1.3 4位数码管动态显示的工作原理4位数码管总共有12引脚,具体如图3.1.1所示A B C D E F G Cp:是数码管的段选,对应每个段位的显示,使用显示对应的数字。1 2 3 4 是位选,对应具体的数码管,是用来控制那个数码管显示。数码管动态显示的工作原理与流水灯的工作方式是相同的,当流水灯每个灯亮灭的时间间隔很短时,我们的人眼很难发现其是否有变化,就认为它一直亮着。而数码管动态显示也是这样,流轮想各位数码管送字形码和相应的位选,利用发光管的余晖和人眼视觉暂留动作,使人的感觉好像各位数码管同时都在显示,而实际上多位数码管是一位一位轮流显示的,只是轮流的速

14、度非常快,人眼已经无法分辨出来了。3.2 参数计算3.2.1 RC震荡电路的计算ADC0804在使用时,外围电压的连接比较简单,只需要对参考电压和时钟输入端进行设计即可。通常情况下,时钟的输入可以选用RC谐振电路,ADC0804可以进行A/D转换的时钟频率为1001460KHZ,典型值为640KHZ,这里选用R=10K欧姆.C=150PF的谐振电路,利用公式1/(1.1RC)计算后,此时的时钟频率约为606KHZ,与典型值十分接近。3.2.2 将BCD码转换成十进制数这里选用的是8位A/D转换器,数值的变化范围是0255(00H-FFH),模拟电压的输入范围是0-5V,所以8591每读取到一个

15、1就表示5/256V,所以要知道电压值就乘以0.01953,所以要计算模拟电压值,就可以利用下面的公式进行计算:             V=D*0.019533.2.3 放大系数的理论计算设第一级电阻为R1,第二级电阻为R2,放大系数为b,被测电压为V1,模拟输入电压为V2。则有: 4 电路调试和参数整定及软件实现4.1 电路调试4.1.1 protues软件环境下电路的调试Proteus软件是英国Labcenter electronics公司出版的EDA工具软件

16、。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2

17、010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译.本次设计protues软件环境下电路如图4.1.1所示图4.1.1 protues软件环境下数字电压表电路的设计4.1.2 Keil软件环境下电路的调试keilKeil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(u

18、Vision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。本次设计Keil软件环境下调试电路如图4.1.2所示图4.1.2 Keil软件环境下电路调试电路图4.2 放大系数的整定参数整定的方法有多重多样,在本次设计中采用的是最普遍最常用的方法经验法。这里介绍一种经验法。这种方法实质上是一种试凑法,它是在生产实践中总结出来的行之有效的方法,并在现场中得到了广泛的应用。这种方法的基本程序是先根

19、据运行经验,确定一组调节器参数,并将系统投入闭环运行,然后人为地加入阶跃扰动(如改变调节器的给定值),观察被调量或调节器输出的阶跃响应曲线。若认为控制质量不满意,则根据各整定参数对控制过程的影响改变调节器参数。这样反复试验,直到满意为止。  经验法简单可靠,但需要有一定现场运行经验,整定时易带有主观片面性。当采用PID调节器时,有多个整定参数,反复试凑的次数增多,不易得到最佳整定参数。在本次设计中由于理论参数容易计算出,这样,我们就可以很容易确定出真实参数的大体范围。在调试时,采用逐次逼近的方法,现在就以第三个测量范围的参数整定为例,之所以以第三个采集范围为例是因为,当输入电压越大时

20、,出现的误差越大,参数越不容易整定。具体步奏如下:1. 先选一个比理论值较大的数值,作为放大系数,观察数码管显示的数字,若数字可能大于被测电压值 ,则执行步奏2,如数字小于被测电压值,则在加大放大系数,观察数码管上的数字。2. 再选一个比理论值小的值,作为放大系数,观察数码管显示的数字,如数字小于被测电压值,则 增大放大系数,反之减小放大系数。3. 进过步奏1、2就可以很容确定出,放大系数的上下限,然后不断重复步奏1、2,就可以得到比较合理的放大系数。当找到你认为较好的参数时,在这个电压下多测量几组数据,这些数据必须是不同阶段的,比如,测量111V,123V,154V等。如果在这个参数下,测量

21、误差在允许的范围内则认为这个参数就是真实的放大系数。4.3 软件实现本次设计是基于KEIL开发软件环境实现的。4.3.1 主要程序实现adwr = 1; _nop_(); adwr = 0; _nop_(); adwr = 1; for (a = 10;a>0;a-) display(); P2 = 0xff;/读取转换电压前,将P2口全写1 addr = 1; _nop_(); addr = 0; _nop_(); b = P2; addr = 1; /-我们8591每读取到一个1就表示5/256V,所以要知道电压值就乘以0.01953-/if ( K1 = 1) value = b

22、* 0.01953 *11.3*10; /050else if ( K2 = 1) /50100value = b * 0.01953 *102.4*10;else if ( K3 = 1) /100200 value = b * 0.01953 *150.9*10;else if ( K4 = 1) value = b * 0.01953 *211,2*10; xiaoshu = value %10; ge = value /10 %10; shi = value /100 %10; bai = value /1000; 5数据结果分析及结论5.1 数据结果分析第三测量范围100200V输入

23、电压如图5.11所示,第三测量范围100200V测得电压值如图5.12所示图5.11 100200V输入电压图图5.12测得电压值图第二测量范围50100V输入电压如图5.13所示,第三测量范围50100V测得电压值如图5.14所示图5.13 50100V电压输入图图5.14 测得电压值图第二测量范围050V输入电压如图5.15所示,第三测量范围050V测得电压值如图5.16所示图5.15 050V电压输入图图5.16 测得电压值图经过大量的试验反复调试后,得到了满意的实验结果。5.2 改进虽然在本次中,虽然取得比较满意的成绩,但是还存在许多不足之处,比如,显示的精度不够,测得数值还有较大的误差。改进方案有,我们可以用LCD1602来显示测得的数值,这样可以提高显示的精度。用采用一些12位采集精度的ADC芯片,来提高采集的精度,如芯片ADC0809.我们可以在仔细划分电压采集范围,提高

温馨提示

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

评论

0/150

提交评论