采用单片机技术的高精度电压表
- 格式:doc
- 大小:71.50 KB
- 文档页数:5
基于单片机的数字电压表设计一、引言在电子测量领域中,电压表是一种常用的测量仪器,用于测量电路中的电压值。
传统的模拟电压表由于精度低、读数不便等缺点,逐渐被数字电压表所取代。
数字电压表具有精度高、读数直观、抗干扰能力强等优点,广泛应用于工业自动化、电子设备检测、实验室测量等领域。
本文将介绍一种基于单片机的数字电压表设计方案,详细阐述其硬件电路设计、软件编程实现以及系统性能测试。
二、系统总体设计方案(一)设计要求设计一款基于单片机的数字电压表,能够测量 0 5V 的直流电压,测量精度为 001V,具有实时显示测量结果的功能。
(二)系统组成本数字电压表系统主要由以下几个部分组成:1、传感器模块:用于将输入的电压信号转换为适合单片机处理的电信号。
2、单片机模块:作为系统的核心,负责对传感器采集到的数据进行处理和计算,并控制显示模块显示测量结果。
3、显示模块:用于实时显示测量的电压值。
三、硬件电路设计(一)传感器模块选用 ADC0809 作为模数转换芯片,它具有 8 个模拟输入通道,可以将 0 5V 的模拟电压转换为 8 位数字量输出。
(二)单片机模块选择 AT89C51 单片机作为控制核心,它具有 4K 字节的 Flash 程序存储器和 128 字节的随机存取数据存储器。
(三)显示模块采用液晶显示屏(LCD1602)作为显示器件,它能够清晰地显示数字和字符信息。
四、软件编程实现(一)编程语言选择使用 C 语言进行编程,C 语言具有语法简洁、可移植性强等优点。
(二)主程序流程主程序首先进行系统初始化,包括单片机端口初始化、LCD1602 初始化、ADC0809 初始化等。
然后启动 ADC0809 进行模数转换,读取转换结果并进行数据处理,计算出实际的电压值。
最后将电压值发送到 LCD1602 进行显示。
(三)模数转换子程序ADC0809 的转换过程通过控制其启动转换引脚(START)和读取转换结束引脚(EOC)来实现。
基于单片机的数字电压表设计一、背景介绍随着科技的发展,越来越多的人开始关注电压表。
电压表是一种测量电压的仪器,它可以根据检测到的电压值显示出相应的数字。
传统的电压表使用指针或指示灯来显示电压值,但这种方式会有很多限制,例如不能显示小于1V的电压值,对于高精度的测量也不能满足要求。
为了解决上述问题,本文提出了一种基于单片机的数字电压表设计方案。
二、基于单片机的数字电压表设计原理基于单片机的数字电压表设计采用单片机ADC(模数转换)模块来检测电压值,将检测到的电压值转换成数字值,然后通过LCD(液晶显示器)来显示。
该设计中需要使用一个模拟信号处理电路,它包括一个放大器、一个滤波器和一个参考电压电路。
放大器可以增加信号的幅值,以便更好地检测信号的电压值;滤波器可以削弱外部电磁干扰,以便更好地检测电压值;参考电压电路可以把外部电压转换为0-5V之间的电压,以便更好地检测电压值。
三、设计方案1.单片机:AT89S522.ADC模块:AD79053.放大器:LM3584.滤波器:LPF(低通滤波器)5.参考电压电路:LM3176.LCD显示器:12864四、设计步骤1. 利用LM358放大器和LPF滤波器对测量的电压值进行放大和滤波处理,以获得更精准的数据。
2. 利用LM317参考电压电路将放大后的电压值转换为0-5V的电压,以便更好地检测电压值。
3. 将转换后的电压值送入AD7905 ADC模块,将检测到的电压值转换成数字值。
4. 将转换后的数字值送入AT89S52单片机,并通过12864 LCD显示器将检测到的电压值显示出来。
五、总结本文提出了一种基于单片机的数字电压表设计方案,主要采用单片机ADC模块来检测电压值,并将检测到的电压值转换为数字值,然后通过LCD显示器显示出来。
该设计方案可以满足各种电压测量要求,具有良好的精度和可靠性。
第39卷第2期Vol.39 No.2长春师范大学学报Journal of Changchun Normal University2020年2月Feb.2020基于AT89C51单片机的精密数字电压表设计朱志珍,王㊀哲(武汉工程大学光电信息与能源工程学院,湖北武汉430200)[摘㊀要]为了使电压测量精度进一步提高,设计以单片机为主体测量三路电压的简易电压表㊂该设计采用AT89C51为主电路,以ADC0809进行模拟量到数字量的转换,运用LCD1602液晶屏对所测电压实现实时的准确显示㊂主要介绍了系统硬件电路及软件部分的设计,该电压表测量速度快,误差范围小,它可以分析5V的电压,再通过电位器分压,检测直流12V或24V电压㊂结果显示,在5V档位时误差范围可精确到0.01V甚至0,具有很大的实用性㊂[关键词]电压表;单片机;A/D转换;液晶显示[中图分类号]TM932㊀㊀[文献标志码]A㊀㊀[文章编号]2095-7602(2020)02-0064-04随着自动化技术的高速发展,数字电压表在电测量方面的应用越来越普遍[1]㊂目前,最常使用的电压测量仪是通过数模转换来实现,而不同的A/D转换器引起的转换误差也不尽相同㊂A/D转换器最常见的有积分型和比较型,前者抗干扰能力强,测量精度高,但测量速率低;后者测量速度快,但抗干扰能力差㊂总体而言,积分型数模转换器的性能较为优良,应用也较为广泛㊂1㊀系统总体设计本系统以AT89C51为主要控制芯片设计一个可以测量三路电压的数字电压表㊂本设计通过控制核心与外围电路的硬件部分以及编写延时与显示程序的软件部分共同作用来实现该功能,主要包括信号转换㊁数据处理及电压显示这三大部分㊂总体设计框图如图1所示,将ADC0809作为转换器来将输入的模拟信号转换为数字信号,然后经过单片机对数字信号进行运算处理,处理后的信号经过LCD1602来显示对应的输出电压㊂图1㊀总体设计框图2㊀硬件部分硬件设计主要介绍控制电路㊁转换电路㊁显示电路㊁按键电路四个部分㊂[收稿日期]2019-04-30[作者简介]朱志珍,女,硕士研究生,从事超快光学研究㊂[通讯作者]王㊀哲,男,讲师,从事嵌入式系统研究㊂㊃46㊃2.1㊀控制电路主控电路以AT89C51单片机作为主要核心,其最高工作频率为33MHz,工作电压为5V,具有40个引脚[2]㊂该芯片可以配合各种外部电路实现多种控制功能,因此应用较为广泛,单片机及外围电路设计如图2所示㊂P0口为开路的8位双向I/O口,在程序校验时,要求外部接入上拉电阻㊂P1㊁P2㊁P3口均是一个内部含有上拉电阻的双向I/O口[3]㊂图2㊀单片机主控电路图图2中引脚XTAL1和XTAL2分别为反向振荡放大器的输入输出端,需外接石英晶体(或陶瓷谐振器)及电容C2㊁C3并联来形成时钟振荡电路[4-6]㊂本系统使用晶振频率为12MHz,电容均取值为30pF来保证振荡率及稳定性㊂在时钟电路工作后,引脚RST作为复位电路的输入端口,通过采用按键方式来保持两个周期以上的高电平,从而产生复位操作㊂2.2㊀转换电路A/D转换器采用的是具有8路模拟输入㊁数字输出的ADC0809芯片,由+5V电源供电,它完成一次转换需128μs㊂如图3所示,该芯片共有28个引脚,In0~In7和D0~D7分别为8路模拟量输入端和数字量输出端㊂A㊁B㊁C为3位地址输入线,OE㊁START㊁CLOCK均为控制信号端,其中START上升沿启动,下降沿时启动A/D转换,转换结束时OE输出数字量,CLOCK输入时钟信号,要求脉冲频率低于640kHz[7]㊂本设计要实现对12V或24V电压的测量,主要是通过分压电路,将高电压分至5V以下,然后通过程序设置将数字量的电压信号进行放大显示,从而达到测量高电压直流信号的目的㊂图3㊀A/D转换电路图2.3㊀显示电路此处采用LCD1602对数字符号进行实时显示,它可同时显示32个字符,通过电压对显示区域进行控制㊂液晶显示器输出的画质稳定,功耗在其内部的电极和驱动上,接电源时该芯片的液晶显示器对比度最弱,接地时最高,即通过10K的电位器来调整[8]㊂㊃56㊃2.4㊀键盘电路本设计按键选用独立式接法,通过读取MCS -51中I /O 口电平来判断按键是否作用㊂单片机初始为高电平,键按下时I /O 口与地短路迫使I /O 口为低电平,此时单片机对信号进行处理,按键释放后,单片机内部的上拉电阻使I /O 口保持高电平[2]㊂图4㊀主程序流程图3㊀软件部分AT89C51具有在系统可编程功能,可以很方便地改写单片机存储器内的程序并将程序下载端口接入电路,使电路实现其功能[3]㊂系统开机后,各个模块处于初始化状态,而后主控模块对其他部分的信息进行及时处理和传输,将需要得到的电压信息准确地显示在液晶屏上㊂整体的程序流程如图4所示㊂A /D 转换启动后设计延时子程序并进行调用,延迟时间一到即表示转换完成,接着ADC0809将转换的数字量传至单片机,其中ADC0809转换时间为128μs㊂在键盘闭合及断开瞬间由于电平的不稳定则需要对键盘去抖动㊂抖动时间一般为10~200ms,查寻按键,低电平出现时开始启动延时,延时结束后再次读取I /O 口的值,当读取的值为0时即将按键按下,此时就可以调用相应的处理程序了㊂LCD1602液晶模块的读写㊁屏幕显示和光标操作都可通过指令来实现㊂该模块需要先输入显示字符地址,每次输入指令前需要判断当前模块是否处于忙的状态(低电平)㊂4㊀测试及分析本文使用主控㊁转换㊁显示等模块及各种辅助器件制作一款电压表㊂AT89C51作为主控芯片配合其他器件的工作,模拟电压信号经过变阻器RV1进行分压,再通过In0端口进入ADC0809开始进行模/数转换来生成对应的数字量,并通过输出通道D0-D7送入单片机的P1口,AT89C51将数字量进行处理,生成液晶屏的显示段码㊂4.1㊀仿真结果将Keil 软件中生成的C 程序导入Proteus 仿真图中,仿真效果如图5所示,该电压表可以测量小数点后两位的电压值[8-9]㊂可以通过按键切换至不同的量程测量通道,调节该量程下的外部输入量来观察各种输出电压值㊂图5㊀量程在0~5V 、外部输入控制37%时的电压显示仿真图将仿真得到的标准电压表和液晶显示的几组测量数据进行对比,具体结果如表1所示㊂㊃66㊃表1㊀标准电压表和显示数据对比表量程/V外部输入/%标准电压值/V电压表测量值/V绝对误差/V0~537 1.85 1.840.0165 3.25 3.250.000~1242 5.04 5.060.02637.397.410.020~2415 3.55 3.550.006515.3015.310.014.2㊀封装效果在此基础上,利用Alitum Designer软件对该设计原理图进行绘制并进行PCB封装编译,得到其3D模型效果图,具体如图6所示,整体封装效果良好,模型图设计较为合理㊂图6㊀PCB封装图及3D模型展示5㊀结语针对数字电压表精确度不够㊁稳定性差等问题,本文设计了基于AT89C51的智能化数字电压表㊂其中,主控电路采用MCS-51芯片,并以此为控制模块与数模转换器以及液晶显示相结合,通过嵌入控制程序来实现数字电压测量仪㊂但是,由于ADC0809易受环境影响,测量的电压数值精度不高,总体误差控制在0.02V 内,此精确度有待提升㊂[参考文献][1]沙占友.数字化测量技术与应用[M].北京:机械工业出版社,2004.[2]李晓林.单片机原理与接口技术[M].北京:电子工业出版社,2015.[3]冯建华,赵亮.单片机应用系统设计与产品开发[M].北京:人民邮电出版社,2004.[4]胡健.单片机原理及接口技术[M].北京:机械工业出版社,2004.[5]金韦利,姜礼华.基于单片机的数字电压表设计[J].自动化与仪器仪表,2015(11):246-247.[6]宋凤娟,孙军.基于89C51单片机的数字电压表设计[J].工业控制计算机,2007(2):89-90.[7]李燕杰,张京京.基于Proteus的简易直流数字电压表的设计[J].无线互联科技,2015(16):69-70.[8]朱晓玲.直流数字电压表设计与Proteus应用[J].通信电源技术,2012(2):59-60.[9]陈飞,顾启民.基于Proteus和Keil的项目教学法在单片机教学中的应用[J].实验科学与技术,2013(10):27-29.Design of Precise Digital Voltmeter Based on AT89C51MicrocontrollerZHU Zhi-zhen,WANG Zhe(School of Optoelectronic Information and Energy Engineering,Wuhan Institute of Technology,Wuhan430200,China) Abstract:In order to further improve the voltage measurement accuracy,a simple voltmeter that uses a single-chip microcomputer as a main body to measure three-way voltage is designed.The design uses AT89C51as the main circuit,ADC0809for analog to digital con-version,LCD1602screen to achieve real-time accurate display of the measured voltage.This paper introduces the design of the hard-ware circuit and software part of the system.The voltmeter has fast measurement speed and small error range.It can analyze the voltage of5V,and then divide the voltage by the potentiometer to detect the DC12V or24V voltage.The result show that the error range can be accurate to0.01V or even0in the5V gear position,which has great practicability.Key words:voltmeter;microcomputer;A/D conversion;liquid-crystal display㊃76㊃。
用单片机制作电压表摘要:本文介绍了如何用单片机制作一种简单的电压表。
首先讲述了设计思路和所需材料,然后详细介绍了电压表的电路和程序设计。
最后,进行了实验验证和误差分析,结果表明该电压表具有较高的精度和稳定性,可用于实际应用中。
关键词:单片机,电压表,电路设计,程序设计,实验验证正文:一、设计思路电压表是一种用来测量电源电压、信号源电压等的电子测试仪器。
在实际工作中,电压表的精度和稳定性对测量结果具有重要影响。
因此,本文采用单片机的方法设计一种简单的电压表,以提高其精度和稳定性。
二、所需材料本电压表所需材料如下:1.AT89C51单片机2.LCD1602液晶显示器3.AD转换芯片4.电阻等电子元器件三、电路设计1. AD转换电路该电压表采用的是单片机内部的AD转换芯片,可将输入的模拟电压转换成数字信号。
因此,需要设计一个合适的AD转换电路。
该电路的原理图如下图所示:其中,R1和R2为分压电阻,可通过调整它们的阻值来调整输入电压的范围。
C1为滤波电容,将输入电压进行滤波,使AD转换器输入的电压更加稳定。
2. 单片机电路单片机电路的原理图如下图所示:其中,U1为单片机,U2为LCD液晶显示器,U3为电源芯片,P1为电压输入接口,R3和R4为接在U1的引脚上的上拉电阻,可以保证单片机工作的稳定。
R5和R6为控制LCD1602液晶显示器的调整电位器。
四、程序设计该电压表的程序设计如下:1. 设置单片机的输入/输出口2. 初始化LCD1602液晶显示器3. 初始化AD转换器4. 通过AD转换器读取输入电压的模拟信号5. 将模拟信号转换成数字信号6. 将数字信号转换成电压值7. 将电压值显示在LCD液晶显示器上五、实验验证经过实验验证,该电压表的精度约为0.1V,稳定性较高,可以满足实际应用需求。
但是,由于电阻和电容的选型和电路设计的误差,误差值有时会有所不同。
因此,在实际应用中需要进行误差分析和校准。
六、误差分析误差分析的主要目的是分析电路的精度,以确定设计的合理性。
PCF8591芯片电压表一、功能1、用PCF8591芯片采集电压。
2、使用IIC通信协议进行通信。
3、四位数码管显示采集电压。
4、电压表有五个档位200MV、2V、20V、200V、500V。
5、四个按键进行档位切换。
6、五个LED指示灯1~5指示相应档位。
7、电压过大,继电器自动断开,保护电路。
8、滑动变阻器可以对电压表精确度进行调节,使测量更精确。
9、采用STC89RC52单片机。
10、电源供电采用USB电源头(发货中会赠送一根)供电,插到手机直充头上就可以正常使用。
二、硬件按键功能及说明档位1/2:200MV档位和2V档位切换,LED1/2亮。
档位3:切换到20V档位,LED3亮。
档位4:切换到200V档位,LED4亮。
档位5:切换到500V档位,LED5亮。
复位:对整个电路进行复位,回到初始化状态2V档位。
三、注意事项1、程序下载程序利用串口下载,首先将下载器正确连接(说明一下,板子上下载口从左到右依次接下载器的+5V、地、TX、RX,下载器上标的有),打开STC下载器如图。
选择STC89C52RC,点击“打开程序文件”选择程序文件夹中(Output-> 电压表.HEX)的温度控制.hex文件。
点击下载,当提示上电时拔下电源再插上就可以了。
2、按键使用如上图所示,档位1/2、档位3、档位4、档位5,以及复位五个按键。
具体按键功能在上边已经介绍。
3、使用说明刚开始使用是,不要测量高电压,应该先用低电压试试电压表好坏。
测量较高的电压时,要用最高档测量一下大致电压是多少,再换用合适档位进行精确测量。
因为不同型号的电源,导致单片机的工作电压和PCF8591芯片的基准电压,都不是标准的5V,所以在测量时会有误差,这时候就需要通过对电位器进行微调来调节误差,使测量更精确。
4、注意事项需要特别注意的是测量电压千万不要高于测量档位的电压,不然会因为瞬间电流过大,直接烧坏芯片,使电压表产生损坏。
因为操作不当造成的后果,我们一概不负责,一定要特别注意。
基于ICL7135和89S52单片机的数字电压表•本设计介绍一种基于89S52单片机的一种电压测量电路,该电路采用ICL7135高精度、双积分A/D转换电路,测量范围直流0-±2000伏,使用LCD液晶模块显示,可以与PC机进行串行通信。
正文着重给出了软硬件系统的各部分电路,介绍了双积分电路的原理,89S52的特点,ICL7135的功能和应用,LCD1601的功能和应用。
该电路设计新颖、功能强大、可扩展性强。
如图2.1所示,模拟电压经过档位切换到不同的分压电路衰减后,经隔离干扰送到A/D转换器进行A/D转换,然后送到单片机中进行数据处理。
处理后的数据送到LCD中显示,同时通过串行通讯与上位机通信。
ICL7135是采用CMOS工艺制作的单片4位半A/D转换器,其所转换的数字值以多工扫描的方式输出,只要附加译码器,数码显示器,驱动器及电阻电容等元件,就可组成一个满量程为2V的数字电压表。
7135主要特点如下:①双积型A/D转换器,转换速度慢。
②在每次A/D转换前,内部电路都自动进行调零操作,可保证零点在常温下的长期稳定。
在20000字(2V满量程)范围内,保证转换精度1字相当于 14bitA/D转换器。
满量程)范围内,保证转换精度1字相当于14bitA/D转换器。
③具有自动极性转换功能。
能在但极性参考电压下对双极性模拟输入电压进行A/D转换,模拟电压的范围为0~±1.9999V。
④模拟出入可以是差动信号,输入电阻极高,输入电流典型值1PA。
⑤所有输出端和TTL电路相容。
⑥有过量程(OR)和欠量程(UR)标志信号输出,可用作自动量程转换的控制信号。
⑦输出为动态扫描BCD码。
⑧对外提供六个输入,输出控制信号(R/H,BUSH,ST,POL,OR,UR),因此除用于数字电压表外,还能与异步接收/发送器,微处理器或其它控制电路连接使用。
⑨采用28外引线双列直插式封装。
电路相关文件请购买后下载电路图文件数字电压表原理图.pdf描述:原理图源代码程序清单汇编语言.txt描述:汇编源代码教程单片机的数字电压论文.doc描述:完整论文如对本电路存在疑问需与卖家交流,请点击这里讨论,卖家会第一时间给予答复;如需对本电路进行投诉建议,请点击这里反馈给电路城,我们将在下一个工作日为您解决。
基于at89c51单片机的数字电压表的设计数字电压表是一种常见的电子测量仪器,它可以用来测量电路中的电压大小。
在本文中,我们将介绍一种基于at89c51单片机的数字电压表的设计。
一、设计原理数字电压表的设计原理是基于模数转换器(ADC)的工作原理。
ADC是一种将模拟信号转换为数字信号的电路。
在数字电压表中,ADC将输入的模拟电压信号转换为数字信号,然后通过单片机进行处理和显示。
二、硬件设计数字电压表的硬件设计包括电路图和PCB布局。
电路图包括电源电路、ADC电路、单片机电路和显示电路。
PCB布局是将电路图转换为实际的电路板。
1. 电源电路数字电压表的电源电路需要提供稳定的直流电源。
在本设计中,我们使用了7805稳压器来提供5V的直流电源。
2. ADC电路ADC电路是将输入的模拟电压信号转换为数字信号的关键。
在本设计中,我们使用了AD0804芯片作为ADC电路。
AD0804是一种8位的串行输出ADC,它可以将输入的模拟电压信号转换为8位的数字信号。
3. 单片机电路单片机电路是数字电压表的核心部分。
在本设计中,我们使用了at89c51单片机作为控制器。
单片机通过串行通信接收ADC输出的数字信号,并进行处理和显示。
4. 显示电路显示电路是将单片机处理后的数字信号转换为实际的电压值并显示出来的部分。
在本设计中,我们使用了4位7段LED数码管作为显示器。
三、软件设计数字电压表的软件设计包括单片机程序和PC端程序。
单片机程序是控制器的核心部分,它通过串行通信接收ADC输出的数字信号,并进行处理和显示。
PC端程序是用来控制数字电压表的参数和显示的。
1. 单片机程序单片机程序主要包括串行通信、ADC转换和数码管显示三个部分。
串行通信是单片机和ADC之间的通信方式,它通过SPI协议进行通信。
ADC转换是将输入的模拟电压信号转换为数字信号的部分。
数码管显示是将单片机处理后的数字信号转换为实际的电压值并显示出来的部分。
采用单片机技术的高精度电压表用高精度、高稳定性的元器件和放大电路设计成的高精度区间式电压表,其优点、详细工作原理和应用实例详见本刊2003年第12期《高精度区间式电压表》一文。
这里介绍一种高精度电压表。
运用区间式电压表的基本原理,用单片机制作成高精度电压表,它可自动变换测量范围、计算测量值和显示测量结果。
实现对被测电压大范围、全量程的高精度测量。
图1是分挡区间式电压表的原理图。
分挡式区间电压表是把全量程根据需要分成数个区间段,例如,把2~10V的量程分成2~3V、3~4V……9~10V八个区间,波段开关的八个挡对应各区间,通过分别调定每一个区间的调零电位器W1、增益调整电位器W2实现各区间段的覆盖。
分挡式区间式电压表实现了全量程测量,应用更加方便,可以实现一表多用,例如在计量时对多个电压点的测量、对已知电压的高精度测量等。
缺点是需要手动换挡,对未知电压的测量不太方便。
高精度电压表原理1.工作原理在图1分挡式区间电压表的基础上,采用单片机自动控制,通过自动换挡、自动测量、自动修正误差、计算和输出测量结果,成为一种实用的全量程、高精度电压表,见图2所示。
图中,增加了带有A/D模数转换电路的单片机IC4,将测量的模拟量用单片机进行处理;调零电位器W1和增益调整电位器W2换成可程控的线性数字电位器,其阻值的大小由单片机进行调整,实现自动换挡,测量结果用LCD数字显示。
2.制作过程中区间的标定和划分标定是用标准电压对起始值和终止值进行调整,区间划分是把全量程划分成若干个部分。
假如全量程为0~100V,进入标定子程序完成标定,得到一对W1 、W2 阻值的控制数据;电压表的全量程假设每10V一个区间,划分为0~10V、10~20V、……90~100V十个区间,假如测量是线性的,程序就可以计算出十对W1 、W2 阻值的控制数据,连同标定时的一对控制数据,全部存储在数据存储器E2PROM中以备调用。
3.测量过程测量过程是自动进行的。
基于单片机的数字电压表设计数字电压表在电子技术中使用非常广泛,可以用来测量电路中的直流电压、交流电压以及各种信号的幅度等等。
基于单片机的数字电压表实现了数字电压的读取和显示,具有精确、稳定、易操作等特点,下面将介绍基于单片机的数字电压表的设计原理及实现方法。
一、系统结构基于单片机的数字电压表主要是由程序控制模块、模数转换模块和数字显示模块组成。
程序控制模块主要用来完成开机、校准、测试、功能选择等功能;模数转换模块主要将电压信号转换成数字量,供数字显示模块使用;数字显示模块主要将转换后的数字量显示在LCD液晶屏上。
二、硬件设计1.电源电路电源电路主要用来为电路提供稳定的电压和电流,本电路采用稳压电源芯片LM7805实现,稳压芯片输入端连接外部DC12V/1A电源,输出端连接电路板上的整个电路。
2.输入电路输入电路主要用来将被测电源的电压传递给单片机,常规情况下采用分压电路实现。
在本电路中,电阻R1和电容C1为RC滤波电路,起到滤波作用,防止干扰信号的影响;电阻R2是分压电路中的电阻,它根据电压值的不同设置不同的值,以保证被测电压在单片机内部转换过程中不会对单片机产生影响。
3.单片机模块单片机模块是系统的核心部分,本电路中选用STM32F103C8T6单片机实现模数转换和数码管控制,使用C 语言编写程序,通过模拟输入端口读取电压并进行模数转换,将得到的数字使用查表法将其转换为数码管控制脉冲,控制数码管的亮灭实现数字显示。
4.数字显示模块数字显示模块主要由七段数码管、LCD液晶屏幕、导线和电容等器组成,七段数码管用于展示测量到的电压大小,LCD 液晶屏用于展示功能选项、单位等信息。
导线是电路板内部连接线路,电容等器用来平滑电压波动。
三、软件设计1.引脚定义在程序中首先定义STM32F103C8T6单片机内存地址、输入输出引脚和电平状态,其中A0口用来读取被测电压;B0-B7口用来控制七段数码管的亮灭;C0口用来输出PWM,控制风扇的旋转速度;D0口用来控制蜂鸣器的开启和关闭。
基于单片机KL25的数字电压表[摘要]数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。
目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子与电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。
与此同时,由DVM扩展而成的各种通用与专用数字仪器仪表,也把电量与非电量测量技术提高到崭新水平。
本章重点介绍单片A/D 转换器以与由它们构成的基于单片机的数字电压表的工作原理。
关键词:数字电压表 A/D 转换器 PC 电压测量The Design of Digital VoltmeterAbstract Digital voltage meter (Digital Voltmeter) referred to as DVM, it is the use of digital measuring technology, the continuous analog (DC input voltage) into a non-continuous, discrete digital form and to display the instrument.Analog voltage meter features a traditional single, low accuracy, can not meet the digital age, using the single chip digital voltage meter, from the high precision, anti-interference ability, scalability, Ji Cheng convenience, and PC can communicate in real time.At present, by a variety of single A / D converter consisting of digitalvoltage meter, has been widely used in electronic and electrical measurement, industrial automation, instrumentation, automated test systems, intelligent measurement, showing strong vitality.At the same time, the DVM extension to the various general and specific digital instruments, but also the power and non-power measurement up to a new level.This chapter focuses on single-chip A / D converter, and they form by the microcontroller-based digital voltmeter works.Keywords Digitalvoltmeter A/DconverterPCVoltage measurement目录第一章系统概要41.1 课题研究背景41.2数字电压表的分类51.3系统功能5第二章设计总方案62.1 设计题目62.2 设计容与要求62.3 设计原理与方案6第三章硬件设计73.1 A/D转换电路73.2LED显示电路7第四章系统软件设计84.1主程序(main.c)84.2 中断子程序(Isr.c)94.3 LED子程序(LED.c)10第五章系统测试125.1 运行界面调试125.2 运行结果图14第六章总结156.1结论156.2展望156.3致156.4参考文献16第一章系统概要1.1 课题研究背景数字电压表(Digital Voltmeter)简称DVM,它采用的是数字化测量技术,把连续的模拟量,也就是连续的电压值转变为不连续的数字量,加以数字处理然后再通过显示器件显示,由于数字式仪器具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点而倍受青睐,数字式电压表就是基于这种需求而发展起来的.。
采用单片机技术的高精度电压表用高精度、高稳定性的元器件和放大电路设计成的高精度区间式电压表,其优点、详细工作原理和应用实例详见本刊2003年第12期《高精度区间式电压表》一文。
这里介绍一种高精度电压表。
运用区间式电压表的基本原理,用单片机制作成高精度电压表,它可自动变换测量范围、计算测量值和显示测量结果。
实现对被测电压大范围、全量程的高精度测量。
图1是分挡区间式电压表的原理图。
分挡式区间电压表是把全量程根据需要分成数个区间段,例如,把2~10V的量程分成2~3V、3~4V……9~10V八个区间,波段开关的八个挡对应各区间,通过分别调定每一个区间的调零电位器W1、增益调整电位器W2实现各区间段的覆盖。
分挡式区间式电压表实现了全量程测量,应用更加方便,可以实现一表多用,例如在计量时对多个电压点的测量、对已知电压的高精度测量等。
缺点是需要手动换挡,对未知电压的测量不太方便。
高精度电压表原理1.工作原理在图1分挡式区间电压表的基础上,采用单片机自动控制,通过自动换挡、自动测量、自动修正误差、计算和输出测量结果,成为一种实用的全量程、高精度电压表,见图2所示。
图中,增加了带有A/D模数转换电路的单片机IC4,将测量的模拟量用单片机进行处理;调零电位器W1和增益调整电位器W2换成可程控的线性数字电位器,其阻值的大小由单片机进行调整,实现自动换挡,测量结果用LCD数字显示。
2.制作过程中区间的标定和划分标定是用标准电压对起始值和终止值进行调整,区间划分是把全量程划分成若干个部分。
假如全量程为0~100V,进入标定子程序完成标定,得到一对W1 、W2 阻值的控制数据;电压表的全量程假设每10V一个区间,划分为0~10V、10~20V、……90~100V十个区间,假如测量是线性的,程序就可以计算出十对W1 、W2 阻值的控制数据,连同标定时的一对控制数据,全部存储在数据存储器E2PROM中以备调用。
3.测量过程测量过程是自动进行的。
测量时,对一个未知的被测电压首先进行粗测。
区间电压表的测量区间取0~100V,单片机取出E2PROM中对应0~100V区间一组数据,设定程控数字电位器W1 、W2 阻值,被测电压经放大器、A/D转换,进行一次粗测量。
粗测的目的是为了确定被测电压所在的区间,假如被测电压为19.96V,在10~20V这个区间,单片机取出对应10~20V区间的一组控制数据再次设定W1、W2的阻值,进行这一10V范围区间的精测。
这里,如果用10位A/D模数转换电路,分辨率为10V/210=0.01V,测量结果是9.96V,再加上起始值10V,就得到19.96V的最后测量结果,输出到显示电路进行显示。
对于本例,采用区间表原理测量,用同样的A/D电路,比普通全量程0~100V 电压表分辨率提高了十倍,区间分的越小分辨率也越高。
应用电路高精度区间表可以用多种电路实现,在《高精度区间式电压表》一文中,已经介绍了区间表几种基本应用电路以及元器件的选用,在这里不再重复,有兴趣的读者可以查阅原文。
这里主要对后续电路和设计时应注意的问题进行介绍。
电压基准源IC1用LM385B-1.2,温度系数±20 ppm/℃,静态电流为20μA。
IC2采用集成仪表放大器AD623,可以通过一只电阻调整放大器增益,增益范围为1~1000;电源经LM7805L稳压给各器件供电。
单片机IC4采用PIC16FB872,2K的FLASH,6个12位A/D转换器,简化了外围电路,低功耗,睡眠时电流仅几微安。
数据寄存器IC5为24C02,调零电位器W1用1/2MAX5453,W3用1/2MAX5453,另一个调零电位器W1′和增益调整电位器W2各用1/2MAX5451。
主要参数:每一个器件中有两个相互独立的电位器,256个抽头,工作电压为+2.7~5.5V,耗电0.1μA,温度系数35ppm/℃,总电阻MAX5453为50kΩ,MAX5451为10kΩ。
所有电阻精度优于1%,R1、R2、R3温度系数小于50ppm/℃。
区间表设计测量范围为0~50V,测量区间共分为51个,0~50V一个粗测区间,12位A/D转换,分辨率为50V/212=0.012V;0~50V范围每1V±0.1V分一个区间,共50个区间,全量程分辨率为1V/212 =0.00024V。
设计中应注意的问题1.最小测量电压区间式电压表测量的最小电压不能从零伏开始。
由于运放的负输入端基准电压不为零,分压后的正输入端电压不能低于负输入端,最小也要从基准值开始。
解决的办法是在负输入端增加一个数字电位器W3,测量从零起始的电压时,W3置为零,使负输入端基准电压为零,测量值大于基准值的电压时W3 置为最大值。
2.区间的划分和标定①、对于具体应用电路,不能像前边举例那样区间与区间之间没有交叉。
实际应用电路图2中,各区间取±0.1V的交叉范围为0~1.1V,0.9V~2.1V……49.9V~50V。
其原因是由于粗测时,电路有比较大的误差,对于处在区间临界的被测电压,粗测时有可能错误判断其所在区间。
上边在介绍测量过程的举例中,被测电压为19.96V,应该在10~20V的区间,对于10位A/D的分辨率,粗测时的分辨率为100V/210=0.1V,有0.1V的误差,19.96V有可能被判断在20~30V的区间,精测时就会出现测量错误。
所以,区间与区间要有一定的交叉,交叉范围的大小由粗测的误差决定,适当留有一定余量。
②、标定区间可能不止一个。
上面原理中提到,测量是按线性处理的,如果实际上非线性误差较大又没有用软件修正,用平均的方法计算各区间W1 、W2 阻值是不行的。
用逐段逼近法标定多个区间是解决非线性问题的一种方法。
另外,在W3转换点的两个区间,由于斜率不同,也要分别标定。
3.数字电位器对分辨率的影响对于调零电位器W1 ,如果分区比较小、全量程范围又比较大,就要求W1阻值既要大范围变化,又要每一次变化的步长小,分辨率为256的数字电位器有可能达不到要求。
采用再串联一个数字电位器W1′的办法,用W1粗调,选用阻值大一些,例如100kΩ,解决阻值大范围变化的问题;W1′阻值小一些,例如选用10kΩ,W1′的变化占总阻值中比值很小,整个调零电阻变化率减小,解决分辨率的问题。
对于增益调整电位器W2 ,分辨率不够出现增益误差时,一般不用上述办法,而用软件的办法来解决。
当W2有误差时,在测量过程中,把测量结果乘上一个修正系数。
仍以举例为例,假如标定时标准电压是20.50V,由于误差,标定时测量结果为20.20V,为负误差,满刻度修正系数=1+(标准电压-测量值)/标准电压=1+(20.50-20.20)/20.50=1.0146341。
实际值=测量值×修正系数=20.20×1.0146341=20.495608(V)。
采用软件通过计算修正测量结果的误差,满刻度有0.0043V的误差。
4.测量精度由实例可以看出,电路元器件的分辨率没有变,但区间分得越小,测量结果的分辨率越高,精度也越高。
要达到需要的精度,首先通过计算确定区间的大小;其次,测量精度同时与整个系统有关,包括A/D的分辨率、线性数字电位器的分辨率、基准电压源和其它元器件的线性、精度、温漂、噪声等;另外,如果用做专用仪表,对特定信号源的非线性误差的影响也要考虑,进行综合选择和分析计算,达到要求的精度。
对于非线性误差、温度漂移以及失调电压使放大器输入时输出不为零,用软件补偿和修正也是提高精度一种较好的方法。
5.采样速度由测量过程可知,对数字电位器的设定、粗测和精测、A/D 转换、数据处理、显示,都需要耗费一定时间,一般在需要显示测量结果的应用中,采样速度每秒几次是能够满足的。
实时处理系统的运用就要考虑采样速度的影响。
通过提高CPU工作频率、用高速A/D转换器、用可编程数字电位器等以及改进软件来提高采样速度。
6.标定方法要编一段标定子程序以便标定时调用,程序框图见图3。
标定时有两个控制键K1、K2。
K1为进入设置和确认键,K2为置数键。
K1按下时间大于3秒,进入标定子程序进行标定。
标定过程需要手动输入一些参数以及输入高一个精度的标准电压,按照约定的提示显示,依次进行起始值、终止值的输入,从低位到高位逐位进行,用K2进行加计数置数,每完成一位按K1键确认,进入下一位到置数全部完成。
按照提示,给定起始和终止标准电压,完成一个区间标定。
如果标定不止一个区间,按照提示,输入一个不等于零的数,继续下一区间标定或退出,直至标定全部完成。
程序框图中,计算W1 、W1′、W2 、W3 ,是为了给数字电位器一个接近真实值的初始值,按照输入的起始值和终止值、基准电压值,计算出放大器正输入端分压值和放大器的增益,确定各数字电位器的初始值,虽然有一定的误差,但不影响标定,在标定中自动进行最后修正。
7.数字电位器数字电位器的主要参数有分辨率、功耗、速度、精度、阻值等。
用可编程非易失性或串行口编程置位方式,要快于用脉冲置位方式。
数字电位器的生产厂家、型号种类很多,具体请查阅有关资料和网站。
8.A/D模、数转换电路转换电路的精度和功耗根据设计要求确定,如果对速度有要求,要选择高速类型。
选用带有A/D电路的单片机可以简化电路。
9.供电电源整个电路的电源应采用稳压电源,以保证电路稳定工作,电路的功耗较小,尤其是选用低功耗元器件时,整个表的耗电比较低,完全能用电池经稳压供电,或用电池经DC-DC电路稳压供电。
运用以上原理,在嵌入系统对各种电量测量中变通应用,同样能够极大地提高测量精度。