高精度16位AD电压表电流表解析.docx
- 文档编号:20138489
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:69
- 大小:1.16MB
高精度16位AD电压表电流表解析.docx
《高精度16位AD电压表电流表解析.docx》由会员分享,可在线阅读,更多相关《高精度16位AD电压表电流表解析.docx(69页珍藏版)》请在冰豆网上搜索。
高精度16位AD电压表电流表解析
本科毕业设计(论文)
题目:
高精度16位AD转换器应用
Highprecision16bitADconverterapplication
学院
专业
班级
学号
姓 名
指导教师职称
完成日期2011年12月05
诚信承诺
我谨在此承诺:
本人所写的毕业论文《高精度16位AD转换器应用》均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承担。
承诺人(签名):
年月日
摘 要
【摘要】本文介绍了一种基于单片机技术的新型高精度数字式电压电流表,该设计采用STC公司生产的STC89C52微处理器作为整个设计的核心单元,通过施加外围电路来实现直流电压和直流电流的精确测量,该系统的设计思想是通过输入端电阻采集被测信号,由于采集到的电压、电流信号较弱需要经运算放大器对信号进行放大,本文采用LM124对采集到的信号进行放大,经放大处理后的信号为模拟信号不能直接被单片机识别,需要将采集到的模拟电压信号送到模数转换芯片ADS1110来进行A/D转化,最后将转换后的数字信号送到MCU进行数据处理并通过液晶屏幕(1602或者12864)来显示被测值。
本文对整个设计流程做了详细的阐述并制作了样机,实际测试表明该数字式电压电流表可以精确的测量直流电压,直流电流,理论设计精度可达到16位,显示精度达到0.0001,测试结果证明测试精度达到了设计要求。
【关键词】单片机;STC89C52;高精度数字电压表;数字电流表;ADS1110
Highprecision16bitADconverterapplication
Abstract
【ABSTRACT】Abstract:
Thisarticleintroducedanewdigitalvoltmeterofhighprecision,whichwasbasingonsingle-chiptechnic,thedesignadoptedSTC89C52microprocessorproducedbyATMEALcompanyasthecoreunitofthewholedesign,toreachtheprecislymeasurementofvoltsd.cbyputtingperipheralcircuit.,andtheideaofthesystemwastogatherthesignaloftheundermeasuredvoltsthroughtheinputingresister.Asthevoltssignalgatheredwasveryweak,itneededtobemagnified,heretheLM24wasusedtodothis.Themagnifiedsignalwastakenasanalogsignal,whichcannotbeidentifiedbysingle-chip,sotheanalogsignalneededtobetransferredtoADS1110togettheA/Dtransferation,thenthetransferredsignalwouldbeconveyedtoMCUfordigtalprocessingandthroughLCD1602togetthevolumofthevolts.Thewholedesignprocesswasdescribedindetailsandsamplewasalsomade,andtheactultestresultshowedthisvoltmeterwasabletomeasurevoltsd.cveryprecisely,thevolumcanreach0.0001,whichcanmeettherequirementwell.
【KEYWORDS】Single-chip;STC89C52;Highprecisiondigitalvoltmeter;ADS1110Digitalammeter
1绪论
数字型电压表(DigitalVoltmeter)简称DVM、数字电流表(Digitalammeter)简称AMP,它是采用数字化测量技术,把连续的模拟量(直流输入电压,直流输入电流)转换成不连续、离散的数字形式并加以显示的仪表,它是通过把采集到的模拟信号经过AD转换成数字量来显示,通过数字显示开起来更加直观,避免指针式容易造成的视觉误差。
传统的指针式电压、电流表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压、电流表,由于其具有较高的精度、较强的抗干扰能力、方便实用的可扩展性、集成方便,与台式电脑进行比较简便的实时通信,仪表精度及测量范围可以根据需要来采用程序设定。
目前,由各种单片A/D转换器构成的数字电压、电流表,已广泛用于自动测试系统、工业自动化仪表、电子及电工测量等智能化测量领域,体现出强大的生命力。
本文主要介绍采用STC89C52单片机和16位高精度AD转换芯片ADS1110来设计的高精度数字电压表,采用此方法设计的数字电压表测量精度高、反应速度快、测量范围可以在线编程设定等诸多优点,该高精度数字电压表适合在测量精度高的场合推广应用。
1.1课题简述
本课题要求设计一台高精度的数字式直流测试电压、电流表。
本设计通过数字电路和模拟电路相结合的方式来实现设计,本设计的核心由51单片机来控制实现;模拟电路部分包括电压采集电路、电流采集电路、信号放大电路、AD转换电路组成。
单片机系统设计用来实现量程的切换控制、AD转换后的数据处理、LCD液晶显示的控制、按键操作控制等功能。
1.2课题设计目标
1、设计实现要求
(1)直流电压测量范围:
0V~10V,相对误差<1%;
(2)直流电流测量范围:
0~10mA,相对误差<1%;
(3)测试结果显示:
LCD12864显示,显示精度0.001或以上。
(4)液晶显示刷新周期≤2s;
(5)使用5V直流电源供电或其它电源设备供电;
(6)制作实物实现以上设计要求。
1.3高精度电参数测试仪的应用前景
随着大规模集成电路技术的发展,电子各领域的集成度越来越高,这就要求对各种电子设备仪器的精度有了更高的要求,传统的指针式电压、电流表或普通的低精度的数字电压、电流表均不能完成高精度场合的测量要求,这就要求新的更高精度的数字电压表来满足这些场合的测量要求,本文正是本着这一要求来设计,本文设计的电压、电流表可以在大多数高精度要求的测量领域应用,测量精度可以根据要求来设定,最高精度可达到16位,该数字电压表稍加改善便能作为一台高精度的电压、电流测量设备来推广应用。
2方案设计与论证
2.1方案论述
该数字式高精度电压表的设计核心是基于单片机STC89C52系统的数据采集与计算控制,主要由单片机最小系统模块、电源电路模块、直流电压采集模块、直流电流采集模块、AD转换模块、数据处理及显示模块组成。
(系统设计的硬件框图如图1.1)
2.2实用意义
本设计制作的5位电压电流表具有精度高,成本低,性能稳定。
根据笔者调查,主控芯片单片机STC89C52单片进价只为5元人民币,AD单元ADS1110为10元人民币,LCD12864为40元人民币,电源变压器为5元,PCB生产大概每片10元人民币左右,其它电阻、电容、排针等成本低廉且用量不大故先不计入成本之中,如上所计,整机的成本仅为70元,且所有数据均是单购价格,并非批发价格。
而现今市场上4位电压电流表光表头都需要35元以上,整机均在百元以上。
故本设计的电压电流表具有成本低廉,精度更高等优势,具有一定的实际意义。
3系统硬件电路设计及芯片介绍
3.1芯片选型及功能介绍
3.1.1STC89C52单片机主要功能及特性
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用STC公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52单片机是宏晶科技生产的单时钟、机器周期为1T的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051单片机,而且速度快8~12倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D,应用于电机控制,抗干扰能力强的场合。
STC89C52的主要特点:
(1)机器周期为1T,指令代码完全兼容传统8051单片机;
(2)STC89C52系列的工作电压:
5V;
(3)工作频率范围:
0~35MHz;
(4)片上集成1280字节RAM,用户应用程序空间60K字节;
(5)无需专用编程器或专用仿真器,可通过串口(P3.0和P3.1)直接下载用户程序,数秒即可完成;
(6)有EEPROM功能用于存储;
(7)看门狗;
(8)四个16位定时器;
(9)7路外部中断,下降沿或低电平触发中断,并新增支持上升沿中断的PCA模块,PowerDown模式可由外部中断唤醒,INT0(P3.2),INT1(P3.3),T0(P3.4),T1(P3.5),;
(10)工作温度范围:
-40~+85℃(工业级),0~75℃(商业级);
(11)8路10位精度的A/D转换,转换速度可达250K/S(每秒钟25万次)。
STC89C52管脚图如图3-2所示。
VCC:
供电电压。
GND:
接地。
P0口:
P0口是一个8位漏极开路的双向I/O口。
当作为输出用时,每位能驱动8个TTL逻辑电平。
向P0口写入命令“1”时,引脚呈现高阻状态输入。
当需要访问数据存储器和外部程序时,P0口也可以复用为低8位的地址/数据线。
当处于该种模式下时,P0口具有内上拉电阻。
P1口:
P1口是一个8位双向I/O口且其具有内上拉电阻,该口能同时驱动4个TTL逻辑电平。
对P1口写入命令“1”时,内上拉电阻将端口拉高,即可作为输入端口来使用。
当其为输入口时,外部被拉低的引脚由于内阻的原因,将会输出一定的电流。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口作为STC89C52的一些特殊功能口,如表3-1所示:
引脚号
备选功能
P3.0RXD
(串行输入口)
P3.1TXD
(串行输出口)
P3.2/INT0
(外部中断0)
P3.3/INT1
(外部中断1)
P3.4T0
(记时器0外部输入)
P3.5T1
(记时器1外部输入)
P3.6/WR
(外部数据存储器写选通)
P3.7/RD
(外部数据存储器读选通)
表3-1P3的特殊功能
3.1.2ADS111016位AD转换芯片主要功能及特性
由于该系统对电压测量的指标精度要求非常高,这就要求高精度的AD转换芯片来支持,普通的8位A/D芯片很难达到这一要求,故我们选择16位A/D转换芯片ADS1110做为系统的AD转换芯片。
ADS1110是16位A/D转换,线性误差仅为0.0015%,内部由一个带有可调增益的Σ-△模/数转换器核、一个时钟振荡器、一个2.048V的电压基准和一个I2C接口组成。
同时具有功耗比较低,较高的精度,抗干扰的能力比较突出等特点,适合要求精度较高的仪器仪表。
ADS1110是一款高性价比具有I2C总线接口的串行A/D转换器。
ADS1110已在单片机系统中应用,并用于现场。
实践证明,ADS1110和单片机组成的数据采集系统,占用I/O端口少、功耗低,适用无电源场合。
ADS1110引脚图如下图所示:
ADS1110读写操作介绍:
1)读操作:
若从ADS1110中读取输出寄存器和配置寄存器的内容,需对ADS1110寻址。
从ADS1110中读取3个字节,前2个字节是输出寄存器的内容,第3个字节是配置寄存器的内容。
读操作时,只读前2个字节而不读第3个字节。
ADS1110的读操作时序如图3-4所示
2)写操作:
为了对配置寄存器写操作,要对ADS1110寻址,并向配置寄存器写入1个字节,但不能向输出寄存器写人字节。
其写操作时序如图3-5所示。
3)输出码计算:
输出码是一个标量值,它与两个模拟输入端的压差成比例输出码限定在一定数目范围内。
该范围取决于代表输出码所需要的位数。
而ADS1110的代表输出码所需要的位数又取决于数据速率(如下表所示)。
表3-2:
最小和最大码
数据速率
数字位数
最小码
最大码
15SPS
16
-32768
32767
30SPS
15
-16384
16383
60SPS
14
-8192
8191
240SPS
12
-2048
2047
对于最小码的最小输出码,可编程增益放大器PGA的增益设置以及VIN+与VIN-的正负输入电压而言,输出码的计算公式为:
输出码=-1*最小码*PGA*((VIN+)-(VIN-))/2.048V
从上式中可以看出,若使用了负的最小输出码则须重点注意。
ADS1110输出码为为二进制2的补码格式,因此最小的绝对值和最大的绝对值是不同得,最大的n位码是2n-1,而最小的n位码是–1×2n-1。
ADS1110输出的所有代码右对齐并且经过符号扩展。
这使在数据速率码较高时仅用一个16位的累加器就可进行平均值的计算。
3.1.3LCD12864液晶介绍
由于LCD1602的只能显示英文,而不能直观的显示中文,且显示的区域也较少,故本设计使用LCD12864来显示最后的输出结果,从而满足各种情况下得需要。
表3-3LCD12864引脚说明表
LCD12864的工作电压为+5V,并自带驱动LCD所需的负电压。
全屏幕点阵,点阵数为128(列)×64(行),可显示8(行)×4(行)个(16×16点阵)汉字,也可完成图形,字符的显示。
与MCU接口采用5条位控制总线和8位并行数据总线输入输出,本设计为了节省与MCU的通讯端口,强制选择了串行通讯方式,故和单片机的通讯连线只有3条,大大降低了绘制电路图的难度。
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
2
VDD
电源电压
3
VLCD
LCD驱动负电压
4
RS
寄存器选择信号
5
R/W
读/写选择信号
6
E
使能信号
7
DB0
八位三态并行数据总线
8
DB1
八位三态并行数据总线
9
DB2
八位三态并行数据总线
10
DB3
八位三态并行数据总线
11
DB4
八位三态并行数据总线
12
DB5
八位三态并行数据总线
13
DB6
八位三态并行数据总线
14
DB7
八位三态并行数据总线
15
CS1
CS1=H,左半屏幕显示
16
CS2
CS2=H,右半屏幕显示
17
/RES
复位信号,低有效
18
VEE
输出-10V的负电压
19
ELEN
ELEN=H时,EL发光
20
AC
EL驱动的输入交流信号
4
系统硬件电路设计
4.1单片机主控电路设计
4.1.1单片机最小系统电路设计
单片机最小系统电路实现对采集数据的处理和输出显示的控制,主控电路由STC89C52单片机、晶振电路、复位电路三部分组成,各部分作用如下所述,由其三部分构成的单片机最小系统电路如图4-1所示。
4.1.2复位电路
单片机需要正常工作,以及系统中的硬件电路可以可靠的工作,复位模块电路是必须的组成部分,复位电路最重要的是上电复位。
主控单元的电路正常工作需要的供电电源为5伏。
由于微机电路的构成均是时序电路且是数字电路,它需要一致的时钟脉冲,因此在电源刚上电时,只有当VCC达到标准电压时以及在晶振稳工作在稳定状态之后,复位信号才被撤除,单片机的各部分电路开始正常工作。
其次,复位电路还需要在单片机出现异常或者需要手动重置单片机程序时,可以通过按键等进行强行复位单片机的电路,并且复位的优先级会是最高的。
目前为止,单片机复位电路主要有四种类型:
(1)微分型复位电路;
(2)积分型复位电路;(3)比较器型复位电路;(4)看门狗型复位电路。
本设计使用的复位电路图如图4-2所示:
4.1.3振荡电路
晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。
一般的晶振振荡电路都是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,请注意一般IC的引脚都有等效输入电容,这个不能忽略。
本设计的晶振电路如图4-3所示:
图4-3晶振电路
4.2电压测量电路设计
4.2.1设计思路
被测电压通过放大器LM124放大,将放大后的电压值送至ADS1110。
由于系统要求的电压测量范围太大,需进行分档处理。
现将系统要求的测量范围分成两档:
100mV~1V档、1V~10V档,实现分档的原理是串联不同阻值的定值电阻R进行分压(这里并联的电阻分别为100KΩ、25KΩ),档位选择用拨键开关实现。
4.2.2原理图设计
电压测量电路由采样电阻将采集的电压信号经LM124集成运放放大后送至高精度AD转换芯片ADS1110进行AD转换,然后由MCU对信号进行数字处理,最后由液晶显示测量结果。
电压采集及信号放大电路如图4-4所示。
4.3电流测量电路设计
4.3.1设计思路
被测电流通过一个定值电阻,从而会产生一个电压。
由于该电压值太小,A/D不能直接读取,故该电压值需经放大器LM124放大,将放大后的电压值送至ADS1110。
由于系统要求的电流测量范围太大,需进行分档处理。
被测电流通过一个定值电阻R,从而会产生一个电压。
现将系统要求的测量范围分成两档:
100uA~1mA档、1mA~10mA档,实现分档的原理是并联不同阻值的定值电阻R(这里并联的电阻分别为200Ω、2KΩ),档位选择用拨键开关实现。
4.3.2原理图设计
电流测量电路由采样电阻将采集到的电压信号送至LM124放大后再送到ADS1110进行模数转换,然后送到MCU进行数字处理,然后由液晶显示测量数据,电流采集电路如图4-5所示。
4-5电流测量模块电路
4.4ADS1110A/D转换模块设计
ADS1110是一种精密、可连续自校准的串行A/D转换器有差分输入和高达16位的分辨率,其串行接口为I2C总线。
STC89C52单片机通过软件模拟I2C总线实现与ADS1110的连接。
本设计采用单端输入,正输入端接外围电压采样电路的输出,负输入端接地,正负端的电压差即为需要测量的电压值。
ADS1110应用电路如图4-6所示。
4.5显示模块设计
4.5.1显示模块电路设计
方案一:
采用八位共阳极LED数码管进行显示,利用单片机I/O口动态循环输出的方法,将相应的段码值输入,并开相应LED的三极管。
方案二:
采用点阵字符型LCD1602液晶显示,液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。
方案三:
为了弥补方案二的只能显示英文字符以及显示区域过少的缺点,可以采用LCD12864液晶来显示,LCD12864可以显示中文字符,使测量时更直观,以满足各种场合的需要。
LCD12864具有汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字,格式为16x16点阵、128个字符,格式为8x16及64x256点阵显示RAM。
故本设计在显示模块电路上采用方案3。
4.5.2
LCD12864与单片机接口电路
LCD16824液晶与单片机链接电路如图4-6所示
4.6
保护电路与滤波电路设计
为了保证电路工作在正常的工作条件下,防止由于外部的扰动或者由于操作失误导致电路硬件被强制破坏,必须加入适当的保护电路、滤波电路以及指示电路。
1)、在开关之后串联一个IN4007二极管来防止因为操作失误导致电源接反导致单片机、运放、AD转换芯片、液晶屏幕以及其他外围元件烧坏;并且在二极管之后对地并联一个瓷片电容一个电解电容来滤除杂波,使AD芯片可以工作在一个电源供电稳定的环境下,提高精度。
(如图4-8所示)
2)、在测量电压、测量电流电路接运放的前端对地并接一个5V的稳压二极管进行限幅处理,如若运放输入电压超过5V,稳压二极管强制将电压钳位在5V,这样可以保护运放,使输入运放的电压在运放的极限参数之内。
(图详询图4-4、图4-5,此处不再重复给出)
3)、在AD的正输入端之前,以及供电VCC端对地并接0.1uF的瓷片电容和10uF的电解电容滤除杂波,使AD的输入电压更稳定。
(图详询图4-6,此处不再重复给出)
4)、接装电源指示灯,如果电源供电正常则LED灯显示亮,电源指示灯对后期的调试以及日后的使用有用。
(如图4-9所示)
5
系统软件设计
5.1软件框图
5.2
软件流程图
5.3程序撰写语言
本程序设计采用C语言设计,C语言有如下特点:
1、简洁紧凑、灵活方便
C语言一共有9种控制语句,32个关键字。
它把低级语言的实用性和高级语言的基本结构和语句完美的结合起来。
2、运算符丰富
C语言的运算符包含的范围很广泛,共有34种运算符。
C语言的赋值、括号、强制类型转换等都是运算符处理。
从而使C语言的运算类型极其丰富,表达式类型多样化。
3、数据结构丰富
C语言的数据类型有:
字符型、整型、数组类型、指针类型、共用体类型和结构体类型等。
可以完成各种复杂数据结构之间的运算。
并引入了指针概念,使程序更加的灵活,可读性更高,也使程序效率变得更高。
5.4程序主要组成
该系统的软件部分,我们用单片机C语言编写。
软件部分主要由一个主程序[main],两个子程序组成。
主程序[main]主要实现对测量量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高精度 16 AD 电压表 电流表 解析