简易数字万用表的设计11.docx
《简易数字万用表的设计11.docx》由会员分享,可在线阅读,更多相关《简易数字万用表的设计11.docx(16页珍藏版)》请在冰豆网上搜索。
简易数字万用表的设计11
目录
摘要1
一.设计任务2
二.系统方案3
三.理论分析与计算4
3.1器件的选择与比较4
3.2测量电路的设计和分析4
3.2.1模数(A/D)转换与数字显示电路4
3.2.2多量程数字电压表原理4
3.2.3多量程数字电流表原理5
3.2.4电阻的测量原理6
3.2.5电容测量原理7
四.电路设计与程序设计8
4.1直流电压测量电路8
4.2直流电流测量电路8
4.3电阻测量电路9
4.4测电容电路9
4.5测试切换指示电路10
4.6最小系统电路10
五.测试方案及结果11
5.1硬件调试11
1.测试仪器11
2.测试方法11
5.2软件调试11
5.3硬件软件联合调试11
模块程序设计法的主要优点是:
11
5.4测试流程12
5.4.1整体测试流程12
5.4.2电压测试流程12
5.4.3电阻测量流程13
5.4.4电流测试流程13
5.5测试结果13
5.5.1电流测试结果13
5.5.2电阻测试结果14
5.5.3电压测试结果14
参考文献15
附录一:
16
摘要
本次设计用单片机芯片STC12C5A60S2设计一个数字万用表,能够测量直流电压值、直流电流、直流电阻以及电容和电感,四位数码显示。
此系统由分流电阻、分压电阻、基准电阻、555振荡电路、51单片机最小系统、显示部分、AD转换和控制部分组成。
为使系统更加稳定,使系统整体硬件更简单,本电路使用了STC12C5A60S2自带的AD,它单片机系统设计采用STC12C5A60S2单片机作为主控芯片,配以RC上电复位电路和11.0592MHZ震荡电路,显示用四位数码管。
程序每执行周期耗时缩到最短,这样保证了系统的实时性。
关键字:
数字万用表;单片机;AD转换
一.设计任务
1.设计并制作一台支持直流电压、直流电流、电阻测量的数字万用表。
2.测量范围:
直流电压0.1V-100V;直流电流10mA-500mA;电阻100Ω-1MΩ。
3.使用按键或者拨码开关进行测量类型选择,并用数码管显示器显示测量数值,发光二极管指示测量类型与单位。
4.测量精度:
±5%。
二.系统方案
选用STC12C5A60S2单片机来制作数字万用表。
STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。
1.增强型8051CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051
2.工作电压:
STC12C5A60S2系列工作电压:
5.5V-3.3V(5V单片机)STC12LE5A60S2系列工作电压:
3.6V-2.2V(3V单片机)
3.通用I/O口(36/40/44个),复位后为:
准双向口/弱上拉(普通8051传统I/O口)可设置成四种模式:
准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55mA。
4.共4个16位定时器两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串行通讯的波特率发生器再加上2路PCA模块可再实现2个16位定时器。
5.2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟。
6.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,PowerDown模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2),CCP1/P1.4(也可通过寄存器设置到P4.3)。
7.A/D转换,10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口。
三.理论分析与计算
3.1器件的选择与比较
方案1.选用AT89S52和ADC0809芯片,通过ADC0809转换芯片来对电压的采集。
方案2.选用STC12C5A60S2单片机,它有自带的AD,操作起来硬件电路更方便。
通过分析选择方案2.
3.2测量电路的设计和分析
3.2.1模数(A/D)转换与数字显示电路
常见的物理量都是幅值(大小)连续变化的所谓模拟量(模拟信号)。
指针式仪表可以直接对模拟电压、电流进行显示。
而对数字式仪表,需要把模拟电信号(通常是电压信号)转换成数字信号,再进行显示和处理(如存储、传输、打印、运算等)。
数字信号与模拟信号不同,其幅值(大小)是不连续的。
这种情况被称为是“量化的”。
若最小量化单位(量化台阶)为,则数字信号的大小一定是的整数倍,该整数可以用二进制数码表示。
但为了能直观地读出信号大小的数值,需经过数码变换(译码)后由数码管显示出来。
例如,设=0.1mV,我们把被测电压U与比较,看U是的多少倍,并把结果四舍五入取为整数N(二进制)。
一般情况下,N≥1000即可满足测量精度要求(量化误差≤1/1000=0.1%)。
最常见的数字表头的最大示数为1999,被称为三位半(132)数字表。
对上述情况,我们把小数点定在最末位之前,显示出来的就是以mV为单位的被测电压U的大小。
如:
U是(0.1mV)的1234倍,即N=1234,显示结果为123.4(mV)。
这样的数字表头,再加上电压极性判别显示电路,就可以测量显示-199.9~199.9mV的电压,显示精度为0.1mV。
由上可见,数字测量仪表的核心是模数(A/D)转换、译码显示电路。
A/D转换一般又可分为量化、编码两个步骤。
3.2.2多量程数字电压表原理
在基准数字电压表头前面加一级分压电路(分压器),可以扩展直流电压测量的量程。
如图3.1所示,0U为电压表头的量程(如200mV),r为其内阻(如10MW),1r、2r为分压电阻,10U为扩展后的量程。
图3.1电压测量原理图
由于r>>r2,所以分压比为:
扩展后的量程为:
3.2.3多量程数字电流表原理
测量电流的原理是:
根据欧姆定律,用合适的取样电阻把待测电流转换为相应的电压,再进行测量。
如图3.2,由于r》R,取样电阻R上的电压降为:
即被测的电流为:
图3.2电流测量原理图
若数字表头的电压量程为Uo,欲使电流档量程为Io,则该档的取样电阻(也称分流电阻)为:
如Uo=200mV,则Io=200mA档的分流电阻为1R。
3.2.4电阻的测量原理
方案一:
R/U转换测量法
数字万用表中的电阻档采用的是比例测量法,给电路提供一个基准电压,流过标准电阻Ro和被测电阻Rx的电流基本相等(数字表头的输入阻抗很高,其取用的电流可忽略不计)。
所以A/D转换器的参考电压Uref和输入电压Uin有如下关系:
即:
因此,我们只要选取不同的标准电阻并适当地对小数点进行定位,就能得到不同的电阻测量档。
方案二:
R/f转换测量法
把电阻R转换成频率信号f,转换的原理分别是RC振荡电路和555电路,单片机根据所选通道,向模拟开关送两路地址信号,取得振荡频率,作为单片机的时钟源,通过计数则可以计算出被测频率,再通过该频率,通过公式计算出各个电阻参数。
然后根据所测频率来判断是否转换量程,或者是把数据处理后,把电阻的值送到显示部分显示出相应的参数值,利用编程实现量程自动转换
公式为:
T=0.693*R*C。
方案三:
基于恒流源法的转换测量法
该方法是给待测电阻提供一个恒定电流,利用单片机的A/D采集其两端的电压来确定其电阻值,方式为R=U/I。
3.2.5电容测量原理
把电容C转换成频率信号f,转换的原理分别是RC振荡电路和555电路,单片机根据所选通道,向模拟开关送两路地址信号,取得振荡频率,作为单片机的时钟源,通过计数则可以计算出被测频率,再通过该频率,通过公式计算出各个电阻参数。
然后根据所测频率来判断是否转换量程,或者是把数据处理后,把电阻的值送到显示部分显示出相应的参数值,利用编程实现量程自动转换
公式为:
T=0.693*R*C
四.电路设计与程序设计
4.1直流电压测量电路
图4.1直流电压测量电路
该电路功能为电压转换电路,主要功能是将较大的电压按一定比例转换成小电压(0-5v)再通过Vout将电压值转换成数字信号送到MCU处理并且显示出来(即达到测量电压的效果)。
图中Vin:
为被测电压正输入端;COM:
为被测电压地;A、B、C为MCU的I/O控制端,通通过A、B、C三端电平组合状态可以切换被测电压范围(分别是0-5v、0-30v、0-125v、0-255v)。
4.2直流电流测量电路
图4.2直流电流测量电路
本电路功能是将被测直流电流或微直流电流放大并且转换成电压输出。
通过选择不同的电阻网络可以改变放大倍数。
4.3电阻测量电路
图4.3电阻测量电路图
此电路通过测被测电阻两端的电压,然后将此电压与相应档位的电阻两端的电压的比值,MCU控制四个档位。
4.4测电容电路
图4.4电容测量电路图
通过T=0.693*R*C,得C=T/(0.693*R),在被测端接入被测电容,根据3脚输出的脉冲周期求出电容的大小。
4.5测试切换指示电路
图4.5测试切换指示电路
该电路模块主要用于指示万用表的测量模式。
图中A端为电压检测控制端,当A点为低电平时,三极管驱动继电器使得U-与R/U/I接通,即为测电压,同时电压测试指示灯亮,对应在PCB板湿印层标有(V)的字样。
同理,B点、C点分别为电流和电阻的测试允许控制端。
4.6最小系统电路
图4.6最小系统图
五.测试方案及结果
5.1硬件调试
测试仪器与方法
1.测试仪器
测试仪器包括数字万用表、直流稳压电源等。
2.测试方法
数字万用表主要用来测试分立元件的电阻、压降等参数,以检测模块是否可行。
软件KEIL4用于调试软件。
5.2软件调试
本程序较大且复杂,因此采用C语言编写,通过keil软件的不断调试修改,采自下而上的调试方法,先调试功能模块电路,再调试整个系统。
在调试的过程中与硬件的调试相结合,提高了调试的效率。
程序参考附录一。
5.3硬件软件联合调试
当软件和硬件的基本功能分别调试后,进行软硬件联合调试及优化。
在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个产生对象的实际需要设计应用程序。
因此,软件设计在微机控制系统设计中占重要地位。
对于本系统,软件更为重要。
在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。
数据处理包括:
数据的采集、数字滤波、标度变换等。
过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。
为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。
所谓“模块”,实质上就是所完成一定功能,相对独立的程序段,这种程序设计方法叫模块程序设计法。
模块程序设计法的主要优点是:
单个模块比起一个完整的程序易编写及调试;
模块可以共存,一个模块可以被多个任务在不同条件下调用;
模块程序允许设计者分割任务和利用已有程序,为设计者提供方便;
模块程序简单性为观察者带来方便。
5.4测试流程
5.4.1整体测试流程
图5.1整体测试流程图
5.4.2电压测试流程
图5.2电压测量流程图
5.4.3电阻测量流程
图5.3电阻测量流程图
5.4.4电流测试流程
图5.4电流测试流程图
5.5测试结果
5.5.1电流测试结果
表一
待测电流
测量电流
误差
10mA
10mA
0
50mA
52mA
4%
100mA
101mA
1%
5.5.2电阻测试结果
表二
待测电阻(Ω)
R1
R2
R3
R4
R5
R5
实际值
5
220
1k
5.1k
100k
9M
测量值
4.8
220
999
4.9k
99k
9.1M
误差
4%
0%
0.1%
3.9%
1%
0.1%
5.5.3电压测试结果
表三
待测电压(V)
V1
V2
V3
V4
V5
V6
实际值
0.01
2
10
20
30
50
测量值
0.01
2.01
9.8
19.9
29.8
50
误差
0%
0.5%
2%
0.5%
0.7%
0%
参考文献
1.李昌喜智能仪表原理与设计化学工业出版社2005年2月
2.林家儒电子电路基础(第二版)北京邮电大学出版社2006年5月
3.郭天祥51单片机C语言教程电子工业出版社
4.阎石数字电子技术基础高等教育出版社1998年12月
5.丁元杰单片微机原理及应用机械工业出版社2005年7月
6.李昌喜智能仪表原理与设计化学工业出版社2005年2月
附录一:
AD转换程序:
voidinitADC()//ADC运用初始化;
{
P1ASF=0X07;
AUXR1=0Xfb&AUXR1;//选择8路ADC;
ADC_RES=0;
ADC_RESL=0;//清空数值寄存器
}
/*************ADC转换函数***********
************************************/
uintGetADC(ucharch)//写入相应IO口并且返回一个转换值;
{
uintdat;
ADC_CONTR=0X88|ch;//设置ADC_CONTR寄存器相应的开关,ch为选择哪路;
delay_ms
(2);
while(!
(ADC_CONTR&0X10));//读取标志位,判断是否转换完毕;
ADC_CONTR&=0x7f;//清除标志位;
dat=ADC_RES;
dat=(dat<<2)|ADC_RESL;//取出10位转换值;
returndat;//返回值;
}