基于单片机的电流电压测量系统设计_第1页
基于单片机的电流电压测量系统设计_第2页
基于单片机的电流电压测量系统设计_第3页
基于单片机的电流电压测量系统设计_第4页
基于单片机的电流电压测量系统设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

#表3.1真值表输\出\(-0・2~0・2V)(0・2~2V)(2~20V)(20~100V)(100~200V)(200~400V)(400~600V)(600~800V)(800~1000V)>1000VA1111100000B1110011000C1101010100INH1000000001档位状态截止0.2~2V2~20V20~100V100~200V200~400V400~600V600~800V800~1000V截止表3.2译码表输入值输出值ABCINHY0Y1Y2Y3Y4Y5Y6Y7111100000000111000000001110000000010101000000100100000001000011000010000010000100000001001000000000010000000000100000000根据芯片输入、输出的引脚特性,其电路接线图如图3.7所示。输入信号分压等变换后送入CD4051的X0-X7,8个通道。其中1个控制引脚:INH是4051的禁止端,为低电平开启,INH=1模拟开关被禁止工作,INH=0时,由A、B、C上的信号来控制某一路的选通。电路引脚中,若A、B、C无输入或悬空时,Y0输出1,控制档位在最高量程电压档位上,起到保护电路的作用。

X®3X14X15XJ2X4TX®3X14X15XJ2X4TX55X62X74GNBAlFbicF3INTO7图3.7档位判断电路3)量程自动选择总电路根据上述研究,可得量程自动转换电路如图3.8所示。路中所用的基准电压都是2V,可用同一直流电源提供。稳压管均采用2.8V工作电压的稳压管。3.2.3■1111-UIUVD模数转DC08!09转用A脚接至Cpu至CPU3.2.3■1111-UIUVD模数转DC08!09转用A脚接至Cpu至CPU的■rwmrmmr图3.8量程自动选择总电路换芯接至CPU的P3.7;0E引脚接至C,米集信号由-米丿与ALE引三位地址线共同接地,表示对INT0的的P1口;其START脚;A、B、C;数字量输出的P3.6,EOC引脚接号进行模数转换。电INT0的输入端口接一选择开关电路,用以判断对电压测量还是对电流测量。ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。主要特性1)8路8位A/D转换器,即分辨率8位。2)具有转换起停控制端。3)转换时间为100“s。4)单个+5V电源供电。5)模拟输入电压范围0〜+5V,不需零点和满刻度校准。6)工作温度范围为-40〜+85摄氏度。7)低功耗,约15mW。外部特性(引脚功能)ADC0809芯片有28个引脚,采用双列直插式封装,各引脚功能如下:IN0-IN7:8路模拟量输入端。D0-D7:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。ALE:地址锁存允许信号。高电平时,把三位地址信号送入地址锁存器,经译码选择相应的模拟输入通道,使用时,该信号可以和STARE信号连在一起,以便同时锁存通道地址和启动A/D转换。高电平有效。START:A/D转换启动信号,输入,高电平有效。EOC:A/D转换结束信号输出端口,转换期间一直为低电平。当A/D转换结束时,此端输出一个高电平(有效)。OE:数据输出允许信号输入端口,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。REF(+)、REF(-):基准电压。Vcc:电源,单一+5V。GND:地。

3.2.4显示模块(1)数码管的选取LED(发光二极管),它是一种由某些特殊的半导体材料制作成的PN结。其发光强度与其正向压降VF和电流IF的乘积有关,其乘积越大,则发光强度越大。工作电流一般在5MA~20MA。从系统整体考虑,选用的是LDS-5101BH型七段LED数码管。(2)驱动芯片选用74LS164芯片°74LS164是串行输入/8位并行输出的移位寄存器。每片74LS164有两个串行数据输入端和一个同步移位脉冲输入端,以及8个并行输出口。时钟CLK端上每一个上升沿都会使该芯片的8位数据输出右移一位。显示模块总体原理图如图3.9所示:Ginzut+v-tc札EQHQhQ-QB匹FQEQDCLL卅LSI弭1++Jv1131212ktip3Ginzut+v-tc札EQHQhQ-QB匹FQEQDCLL卅LSI弭1++Jv1131212ktip311Bl+10B2J9+JvE3ISIXDGin=in+札EQHQhQ-QB匹FQEQDCLLGHIKLKET+LSIH1++5v113E:71212Bi:ip311EJCl+10B+C2Jy+5vC3iSI2TDGin=in+札EQHQhQ-QB匹FQEQDCLLGHIKLKJ+LSIH1++Jv113C71212Ctip311C5DI+10C+D2J9+JvD3iSIXDGin=in+kVggEUHQhQGQBnFQCQEnnCLE:.&10ZCLE1++5v_13D7—12nt-11D5-10E4T+LSIHGinzuttkecnDPY^7-SEG_ripDPY_7-SEG_ripnpY^7-SEG_npDPY^7-SEG_rip图3.9显示模块原理图3.2.5通信模块(1)单片机与pc机通信的概述在实际应用中,因为单片机功能有限,因而在较大的测控系统中,常常把单片机应用系统作为前端机(也称为下位机或从机)直接用于控制对象的数据采集与控制,而把PC机作为中央处理机(也称为上位机或主机)用于数据处理和对下位机的监控管理。它们之间的信息交换主要是采用串行通信,此时单片机可直接采用串行接口,耐C机可利用其配置的8250或8251、16450等可编程串行接口芯片。实现单片机与PC机串行通信的关键是在通信协议的约定上要一致,例如,应设定相同的波特率及帧格式等。在正式工作之前,双方应先互发联络信号,以确保通信收发数据的准确性。(2)本设计的通信

串行通信采用MAX232电平转换电路,可将单片机的TTL电平转换为PC机的串口电平。使单片机的TTL电平与RS232的电平实现匹配。RS232使用-3~-25V,表示数字1;3~25V表示数字0。RS232在空闲时处于逻辑“1”状态,在开始传送时,首先产生一个起始位,起始位为一个宽度的逻辑“0”,紧随其后的为所需要传送的数据,所要传送的数据由最低位开始依次送出,并以一个结束位标志该字节传送结束,结束位为一个宽度的逻辑“1”状态。单片机与PC机的通信连接图如图3.10所示,下位机(单片机)将接收的数据从串行口P3.0、P3.1输出,上位机接收到数据后在屏幕上进行显示。上位机RXDTXD〔上位机RXDTXD〔PC)GNDTXDRXDGND下位机MAX232A(8051)图3.10单片机与PC机通信连接图3.2.6电源部分单片机电源采用自制+5V电源供电。其原理图如图3.11所示4系统的软件设计4.1软件的总体设计原理系统上电后,初始化程序包括对各种参数进行初始化、清零以及一些端口属性的设定,开始进行量程判断,再调用A/D转换子程序,对输入信号进行A/D模数转换,转换结束,为提高测量精度,系统对输入电压连续采集10次进行滑动平均值滤波处理,其结果作为对应的电压值。再调用LED显示子程序,显示所测量的电压或电流值,最后调用通信子程序实现串口通信。系统总流程图如图4.1所示:2程序初始化量程选择子程序调用A/D转换程序数字滤波数值转换调用显示子程序图4.1系统总流程图结束

4.1.1A/D转换程序设计系统上电后,初始化各参量。开启A/D转换,调用延时程序,接着判断A/D转换是否结束,结束则清标志位、取数据,否则再延时,继续判断A/D是否结束。总程序结束。流程图如图4.2所示:数字滤波,即在数据采集系统里,由于数据采集环境的电磁干扰,传感器和放大器自身的影响,往往会含有多种频率成分的噪声信号,严重时,这种噪声信号会淹没待提取的输入信号,使测试系统无法获取被测信号。在这种情况下,为了滤除干扰需要采取滤波措施,抑制不需要的杂散信号,使系统的信噪比增加。如果对模拟信号进行离散采样,通过软件算法对采样信号进行平滑加工,增强有效信号,消除或减少噪声,从而达到滤波的目的,这种滤波方法称为数字滤波方法。数字滤波完成的功能是将一组输入数字序列按照一定的算法转化为一组输出数字序列,经过数字滤波后的输出序列比输入序列更平滑和易于处理。与此对应的就是模拟滤波,模拟滤波主要有无源滤波(直接用电阻、电容、电感等不外接电源的元件组成的)与有源滤波(如运算放大器等需要外接电源组成的),其目的是将信号中的噪音和干扰滤去或者将希望得到的频率信号滤出为系统所用。数字滤波的出现克服了模拟滤波的很多不足,具有以下优点:是用程序实现的,不需要增加硬设备,所以可靠性高,稳定性好。可以对频率很低的信号实现滤波,克服了模拟滤波的缺陷。可以根据信号的不同,采用不同的滤波方法或参数,具有灵活、方便、功能强的特点。(2)数字滤波的方法数字滤波的方法有很多种,常用的数字滤波方法有:算术平均值滤波、加权平均值滤波、滑动平均值滤波、中值滤波等,可以根据不同的测量参数进行选择。1)算术平均值滤波算术平均法是对一点多次采样,然后取其平均值,并用平均值作为该点的采样结果。该方法适用于对具有随机干扰的信号进行滤波。这种滤波的效果与采样数目有较大的关系,当样本增多时,信号会变得更平滑,但可能会掩盖某些变化;若样本较少,信号的平滑度降低,但对数据的变化较为敏感。实际中采样数目就具体情况而定,对于非常平稳的信号,可以将样本数增大,但对于变化频繁的信号,则应将样本数减至3~4。这种滤波方法对周期性的干扰有良好的抑制作用。N的取值取决于平滑度和灵敏度的要求,N增大则平滑度提高,灵敏度减小。2)加权平均值滤波算术平均滤波法存在平滑性和灵敏度的矛盾。采样次数太少,平滑效果差;次数太多,灵敏度下降,对参数的变化趋势不敏感。为协调两者关系,可采用加权平均滤波。对连续N次采样值,分别乘上不同的加权系数之后再求累加和,加权系数一般先小后大,以突出后面若干采样的效果,加强系统对参数变化趋势的辨别。各个加权系数均为小于1的小数,且满足总和等于1的约束条件。这样,加权运算之后的累加和即为有效采样值。3)滑动平均值滤波滑动平均值滤波是把连续取N个采样值看成一个队列,队列的长度固定为N,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据•(先进先出原则),把队列中的N个数据进行算术平均运算,就可获得新的滤波结果。算术平均值法和加权平均值滤波,都需要连续采样N个数据,然后求平均值或加权平均值。需要时间较长,故检测速度较慢。因此可以采用滑动平均值滤波,其主要用于实时性比较强的系统。在这些系统中,需要对A/D采样值进行平均值滤波,而没有足够的时间允许A/D进行连续的多次采样,这时采用滑动平均值滤波,可以达到滤波效果。滑动平均滤波算法只采样一次,将这一次采样值和过去的若干次采样值一起求平均值,得到的有效采样值即可投入使用。如果取N个采样值求平均,RAM中必须开辟N个数据的暂存区。每次新采集一个数据便存入暂存区,同时去掉一个最老的数据,保持这N个数据始终是最近的数据,而后求包括新数据在内的N个数据的算术平均值或加权平均值。这样,每进行一次采样,就可以算出一个新的平均值,从而大大加快了数据处理的速度。这种滤波方法兼容了另两种滤波算法的优点,既能有效的抑制脉冲干扰和周期性干扰,又能提高滤波算法的灵敏度。本设计采用滑动平均值滤波,先初始化,再读入电压值Vi,设滑动平均滤波队列长度为N,当判断i是否大于N,是则删除队首的数据;求新队列的平均值;否则使i=i+l,继续读入电压值,直至i>N。其流程图如图4.3所示:图4.3滑动平均滤波流程4.1.3量程自动转换的程序设计程序开始后先初始化,首先设置量程最大档,接着存储采样值i,并将其与最大量程进行比较,若超出量程范围,则有溢出显示,系统结束,否则进行下一轮的比较,直到选择出合适的档位。软件实现流程图如图4.4所示图4.4量程自动转换流程图5系统调试及性能分析5.1调试与测试采用Keil软件进行源程序编译,用Proteus软件对其进行仿真。同时进行硬件电路板的设计制作。烧好程序后进行软硬件联调,最后进行端口电压、电流的对比测试.5.2性能分析由于单片机为8位处理器,当输入电压为5V时,输出数据值为255(FFH)。因此单片机最大的数值分辨率为0.0196V(5/255)。这就决定了该电压表、电流表的最大分辨率(精度)只能达到0.0196V。测试时电压/电流数值的变化一般以0.02的幅度变化。如果要想获得更高的精度,应采用12位、13位的A/D转换器。6结束语6.1设计总结本次设计的课题是《基于单片机的电压电流测量系统》,首先从课题中我们可以看出,这次设计主要涉及到的是关于单片机的知识。而之所以使用单片机作为本次设计的核心,就个人理解而言,单片机现在是社会上应用比较广泛的器件,并且能在设计的同时锻炼大家的语言编程能力,养成良好的语言编程风格。6.2设计的心得课程设计是一个综合性的实践课程,是将理论联系到实际中的实验过程,是考察学生就最近知识以及综合知识掌握能力,同时也能让同学更好的理解甚至于学习相关内容。从拿到本次设计任务后,开始查阅资料,对课设计课题进行论证,到设计电路,软件上的程序编写到仿真、调试,硬件上元器件确定、选型及电路搭建,软硬件联调,直到论文文本的撰写。最终完成所设计项目数字电压、电流表的设计,这一过程锻炼了我们对单片机应用系统的设计及动手能力。近两周的课程设计实践,使我深深的体会到理论结合实际的重要性,在设计过程中要特别细心,在软件中可能是一个标点或一个字母的问题,而导致运行错误;在硬件搭建中更是如此,焊接、连线的牢固性,还要防止短路和断路。所以每一个环节都是不可大意的。另外,大家在一起讨论,互相学习,让我更深地体会到同学间互相帮助的作用。在软、硬件调试过程中,真的培养了我的耐心。软件的调试一一修改一一再调试,如此反复,最终完成了设计的部分任务,但设计还存在很多问题,没有完全达到设计要求。而且精度也存在问题,有待改进。在不断的学习与讨论中,我对单片机知识有了更为深刻的认识与体会。在收获的同时,我也受益非浅深感自身理论知识的欠缺与动手能力的不足,在以后的学习及设计中,还要不断的努力。由于时间的紧缺和许多课业的繁忙,此次设计没有很好的完成。但是,从基础而言,我们还没有放弃。相信以后我们会以更加积极地太对对待我们的毕业设计,甚至于今后的人生。7致谢词本次课程设计结束了,首先要感谢此次给与指导的王胜老师。由于设计时间的匆忙性,本次设计并没有要求大家以实物为设计结点。所以有很多问题存在,甚至于是很大的课题谬论,但王胜老师给与的指导都能很好的解决此类问题。他总是耐心地和我们一起探讨、分析,再让我们自己解决。这样,我们不但解决了问题,还从中学到了更多知识。王老师渊博的知识、严谨的作风、以及友善的态度是我以后学习和生活上的榜样。同时,我要感谢我们班的几位同学,当我遇到一些措手不及又难以解决的问题时,是在他们的热心帮助下,才一一得以解决。最后,要感谢我们系里给我们这次理论结合实践的机会,一次作为电子系学生的最有意义的作业。本次设计结束的同时也意味着一次良好的知识学习机会也随之而逝,并且在接下来的大学课程中,都不会有此类的机会留于我们。附录附录1参考文献[1]《单片机原理及接口技术》余锡存曹国华西安电子科技大学2000.7[2]《单片机典型模块设计实例导航》求是科技人民邮电出版社2005.6[3]《MCS-51单片机应用开发实用子程序》边春远人民邮电出版社2005.9[4]《单片机在电子电路设计中的应用》赫建国等清华大学出版社2006.5[5]《电子技术基础数字部分》康华光高等教育出版社2004.4[6][5]《电子技术基础数字部分》康华光高等教育出版社2004.4[6]《单片机C语言编程与示例》赵亮等人民邮电出版社2003.9清华大学出版社1999.12高等教育出版社2004.7[7]清华大学出版社1999.12高等教育出版社2004.7[8]《电子技术基础模拟部分》康华光[9]《单片机原理及应用技术》胡辉、王晓等中国水利水电出版社2005.7[10]《电子测量技术基础》杨永瑞、刘振起等西安电子科技大学出版社2006.1[11]《智能电压表中量程自动转换电路研究》张国恒等西北师范大学学报2006.4[12]《电路•模拟.A/D转换及D/A转换》童永承、顾家林等科学出版社2004.7[13]《单片机原理与应用技术》魏立峰、王宝兴北京大学出版社2006.8[14]《8051单片机基础教程》陈明荧北京:科学出版社2003[15]《单片机应用系统设计与产品开发》冯建华、赵亮人民邮电出版社2004.11[16]《新编MCS-51单片机应用技术》张毅刚等哈尔滨工业大学出版社2003.7[17]《单片机应用开发实例》刘文涛清华大学出版社2005.9[18]《单片机语言C51程序设计》赵文博等人民邮电出版社2005.010[19]《51单片机应用程序开发典型实例》戴佳、苗龙等中国电力出版社2005.9[20]《精通8051程序设计》[美]MykePredko人民邮电出版社2006.3

附录2系统总电路图3.f-J--亍+“.J■.T卜nra3.f-J--亍+“.J■.T卜nra厂7a附录3源程序#ineludevreg52.h>#inelude<intrins.hdefineByteunsignedchardefineWordunsignedintsbitDisClk=P2A7;sbitDisDat=P2A6;sbitA1=P0A0;sbitB1=P0A1;sbitC1=P0A2;sbitD1=P0A3;/*功能:ADC0809接口程序目标芯片:AT89S52单片机占用资源:采集到的数字量接P1口、MCUADC0809变量名称P3.7START/ALEADC_STP3.5EOCADC_EOCP3.6OEADC_OEALECLK(经二分频)无用户接口函数:ByteADC0809(void)*/#defineAdcDataP1//ADC输出的数字量接单片机P1口#defineN10〃滑动平均滤波队列长度ByteValueBuf[N];〃滑动平均滤波队列ByteFilterCnt=0;//队列指针sbitADC_ST=P3A7;//START&ALEsbitADC_EOC=P3A5;//EOCsbitADC_OE=P3A6;//OUTPUTENABLE--OEByteADC0809(void){Bytei;

ADC_ST=1;for(i=10;i>0;i--);〃启动ADC0809,锁存转换通道地址,开始转换〃微秒级延时,保持高电平一段时间ADC_ST=O;while(!ADC_EOC)ADC_0E=1;i=AdcData;ADC_OE=0;return(i);〃等待ADC0809转换结束//使能ADC0809输出//MCU采集ADC0809的数字量//关ADC0809ADC_ST=O;while(!ADC_EOC)ADC_0E=1;i=AdcData;ADC_OE=0;return(i);}BytePingFilter(void)〃滑动平均值滤波//}BytePingFilter(void)〃滑动平均值滤波//======================================================================{intCount;intSum;ValueBuf[FilterCnt++]=ADC0809();if(FilterCnt==N){FilterCnt=0;}for(Count=0;CountvN;Count++){Sum+=ValueBuf[Count];}return(Byte)(Sum/N);//===========================================================================}/*数码管串行显示程序*/voidDisSerial(Byten){Bytei;for(i=0;i<8;i++){DisDat=(bit)(n&0x80);n<v=1;DisClk=1;_nop_();DisClk=0;_nop_();}}共阳数码管串行LED显示不带小数点的avoidShow(Bytea){unsignedcharcodeled_anti[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0

温馨提示

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

评论

0/150

提交评论