电阻电容电感rlc测量仪.docx
- 文档编号:10211432
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:24
- 大小:752.42KB
电阻电容电感rlc测量仪.docx
《电阻电容电感rlc测量仪.docx》由会员分享,可在线阅读,更多相关《电阻电容电感rlc测量仪.docx(24页珍藏版)》请在冰豆网上搜索。
电阻电容电感rlc测量仪
第六届电子设计大赛决赛设计与总结报告
目录
摘要3
关键词3
1引言3
2方案设计3
2.1设计思路3
2.2方案的论证与比较4
2.2.1电阻测量电路的选择4
2.2.3电感测量电路的选择5
2.2.4多路选择开关电路6
2.2.5控制部分6
3系统设计6
3.1总体设计6
3.2 系统硬件电路设计7
3.2.1测Rx的振荡电路7
3.2.2测Cx的振荡电路8
3.2.3Lx的电容三点式振荡电路8
3.2.4通道选择和控制模块9
4系统测试9
4.1硬件测试9
4.2.3电感的测量10
5.总结11
参考文献12
电阻、电容、电感测量仪的设计
摘要
本设计以89S52单片机控制为核心,利用LM555定时器组成RC多谐振荡电路测量电阻、电感和电容的三点式振荡电路测量电感以及利用单片机CPU的高速强大的计算及可编程功能,采用软件查询的方法在程序开始时分别对各个信号通道进行查询通过检测到的不同情况来区分实现具有电阻、电容、电容自动辨识、自动切换以及相应器件量程的自动切换等特色,高精度智能化的测量,并对测量结果进行显示。
关键词
单片机LM555多谐振荡电路电容的三点式振荡电路CD405274LS197
1引言
测量电阻、电容、电感的方法各有不同,在过去电容的测量系统中,几乎都是根据普的电路原理,用一些常规的方法来测量的,它们各有其优缺点,比如把它作为阻抗的虚部来测量的,还有充电法,比例法等等,一般都存在计算复杂、精度不高、不易实现自动测量而且很难实现智能化。
而本文要介绍的电阻、电容测量和前面的测量电路不同,采用“脉冲计数法”,电感测量采用电容的三点式振荡电路,它们克服了以上的一些缺点,充分利用了单片机CPU的高速强大的计算及可编程功能,实现了电阻、电容、电容测量的精度和部分智能化等特点,而且操作方便。
2方案设计
2.1设计思路
本设计中把R、L、C转换成频率信号f,转换的原理分别是RC振荡电路和LC电容三点式振荡电路,单片机根据所选通道,向模拟开关送两路地址信号,取得振荡频率,作为单片机的时钟源,通过计数则可以计算出被测频率,再通过该频率计算出各个参数。
然后根据所测频率判断是否转换量程,或者是把数据处理后,把R、L、C的值送数码管显示相应的参数值,利用编程实现量程自动转换。
因此,本系统包括控制器部分、测量部分(RC震荡电路、电容的三点式振荡电路、分频电路)、通道选择部分。
如下图1所示:
图1系统框图
不管电阻、电容、电感中哪一个器件接入两引脚端,都会产生一定的频率f,即元件集中参数R、L、C转换成频率信号f,然后用单片机计数后在运算求出R、L、C的值,并送显示,转换的原理分别是RC振荡和LC三点式振荡。
其实,这种转换就是把模拟量进拟地转化为数字量,频率f是单片机很容易处理的数字量,这种数字化处理一方面便于使仪表实现智能化,另一方面也避免了由指针读数引起的误差。
2.2方案的论证与比较
2.2.1电阻测量电路的选择
方案一:
电阻R的测试方法最多。
最基本的就是根据R的定义式来测量。
分别用电流表和电压表测出通过电阻的电流和通过电阻的电压,根据公式
求得电阻。
这种方法要测出两个模拟量,不易实现自动化。
而指针式万用表欧姆档是把被测电阻与电流一一对应,由此就可以读出被测电阻的阻值,这种测量方法的精度变化大,若需要较高的精度,必须要较多的量程,电路复杂。
方案二:
RC振荡电路法。
LM555和电阻、电容构成充放电电路,并由两个比较器来检测电容器上的电压,以确定高低电平和放电开关管的通断。
图中,LM555和Ra、Rb、C构成多谐振荡器,引脚2和6直接相连。
电路没有稳态,仅存在两个暂稳态,电路也不需要外加触发信号,利用电源通过Ra、Rb向C充电,以及C通过Rb放电,使电路产生振荡。
电容C在(1/3)VCC与(2/3)VCC之间充放电。
本次竞赛的目的是让我们自己做个能进行相关器件的测量仪器,是探求仪表内部黑匣子的电路原理,故第一种组成多谐振荡电路输出的频率很稳定,因此方案二是可行的,我们选择方案二方案肯定是不行的,而用LM555定时器。
2.2.2电容测量电路的选择
方案一:
电桥法。
测量电器元件L、C的最典型的方法是电桥法(如图1)。
电阻用直流电桥,现在测量电容要用交流电桥。
图2交流电桥
通过调节阻抗
、
使电桥平衡,这时电表读数为零。
根据平衡条件以及一些已知的电路参数就可以求出被测参数。
用这种测量方法,参数的值还可以通
过联立方程求解,调节电阻值一般只能手动,电桥的平衡判别亦难用简单电路实现。
这样,电桥法不易实现自动测量。
方案二:
应用RC振荡电路法。
此方法和测量电阻的电路是一样的,在测量中可以分两个量程:
第一量程的电阻取值是R1=10K时;
则f=1/ln2(R1+2R2)Cx
故
x=1/ln2(R1+2R2)f
第二量程电阻取值是R1=510K,公式是一样。
2.2.3电感测量电路的选择
方案一:
电容的三点式振荡电路。
电感的测量是采用电容三点式振荡电路来实现的,如图所示。
三点式电路是指:
LC回路中与发射极相连的两个电抗元件必须是同性质的,另外一个电抗元件必须为异性质的,而与发射极相连的两个电抗元件同为电容时的三点式电路,成为电容三点式电路。
在这个电容三点式振荡电路中,C1、C2分别采用1000pF、2200pF的独石电容,其电容值远大于晶体管极间电容,可以把极间电容忽略。
振荡公式:
,其中C=C1*C2/(C1+C2)
则电感的感抗为
在测量电感的时候,发现电感起振频率非常的高,大致到达3MHz左右,而单片机的最大计数频率大约为500KHz,在频率方面达不到测量电感频率,于是我们把测电感的电容三点式电路得出的频率经过74LS197对该频率进行二分频满足单片机计数要求。
2.2.4多路选择开关电路
方案一:
选用CD4052四选一模拟开关芯片随着社会的发展,单片机的应用更加深入,而且89S52单片机有32个引脚可作为I/O端口使用,操作更加灵活,对许多芯片控制很方便。
由于对三种元件测量中各电路只有一个输出端,共有三路输出,而每次只有一路经通道选择读入单片机进行处理。
将芯片的第9和10引脚接单片机的P1.3和P1.4口,第13引脚输入频率X或Y通道和P3.5相接。
因此,我们可以选择CD4052四选一模拟开关芯片,只是这种电路非常简单、实用。
方案二:
选用CD4051。
CD4051是八选一模拟开关,它与CD4052是同一类型的芯片,可以选择是因为在作为频道选择的同时,还能对起始阶段为了便于测量而预置的端口整合到一起呈重要作用。
可以将芯片的A、B、C接单片机的P1.3、P1.4、P1.5口,其他的原理一样。
2.2.5控制部分
方案一:
采用AT89S52作为中央处理器,该MCU最大的特点就是性价比非常高,而且很适合做控制。
内部具有2个外部中断、3个定时/计数中断和1个串口中断。
而且I/O口多,能很好的满足该系统的要求。
AT89S52还有8K的ROM,256个字节的RAM,而且具有很高的可扩展性。
最高工作频率为12MHZ,最高计数频率为500HZ,这个数字已经可以测量一定范围的器件值域。
方案二:
单片机式凌阳的16位SPCE061A。
由于该CPU具有丰富的I/O口和丰富的时基信号,为我们提供了极大的方便,其中可以利用I/O口置高低电平来实现量程的转换,由于单片机SPCE061A的定时器可以通过外部时钟源来计数,我们便可以将555电路或电容三点式振荡电路产生的频率作为SPCE061A的定时器的时钟源,这样就很容易得到被测R/C/L对应产生的频率。
而且SPCE061A具有语音处理功能,能在显示的基础上还可以加入语音播报,使得整个测量过程更加智能化。
从性能和智能化以及测量范围较广等方面,选用方案二较好,特别是它的语音处理功能。
但是基于实际生活接触的多是8051系列,但是此控制器已经可以完成相应的功能,以及从性价比考虑,我们选择了方案一。
3系统设计
3.1总体设计
测量电容、电阻采用LM555定时器组成的RC多谐振荡电路,以及电容的三点式振荡电路测量电感。
经三路电路输出经过CD4052多通道选择开关,由单片机定时扫描,当有器件接入时,会有一个通道被读入单片机内处理,判断是否要进行量程切换,并将结果用数码管显示出来。
特别在测量电感时,一般单片机只能计几百KHZ的频率,,因此,在测量电感时,需要分频器分频后送入单片机计数,提高了单片机的时钟频率,可提高测
量的精度。
3.2 系统硬件电路设计
3.2.1测Rx的振荡电路
其原理图如下所示:
图3RC振荡电路
图中,LM555和Ra、Rb、C构成多谐振荡器,引脚2和6直接相连。
电路没有稳态,仅存在两个暂稳态,电路也不需要外加触发信号,利用电源通过Ra、Rb向C充电,以及C通过Rb放电,使电路产生振荡。
由该电路的振荡周期为:
其中
为输出高电平的时间,
为输出低电平的时间。
则:
为了使振荡频率保持在10~100KHz这一段单片机计数的高精度范围内,需选择合适的C和R的值。
取
,得到
3.2.2测Cx的振荡电路
图4RC振荡电路
测量电阻的原理和电容的测量是一样的,在此就不在赘述。
在计算时把两个电阻的值相等,主要是减少因电阻本身误差而造成的误差。
通过频率和电容的关系测出电容值。
主要公式:
x=1/3(ln2)Rf
不过在测量时要注意,建立RC稳定振荡的时间较长,故应在显示稳定后再读出参数值。
3.2.3Lx的电容三点式振荡电路
图5电容三点式振荡电路及分频电路
在这个电路中,C1、C2分别采用1000PF和2200PF的独石电容,其电容值远大于晶体管的极间电容,可以把极间电容忽略。
振荡公式:
,其中C=C1*C2/(C1+C2)
则电感的感抗为
3.2.4通道选择和控制模块
其原理图如图所示:
图6通道选择电路及控制模块
CD4052是一个双4选一的多路模拟选择开关,其使用真值表如表1所示
表1
应用时可以通过单片机对A/B的控制来选择输入哪一路,例如:
需要从4路输入中选择第一路输入,假设使用的是Y组,那么单片机只需要分别给A和B送0和0即可选中该路,然后进行相应的处理。
注意第6脚为使能脚,只有为0时,才会有通道被选中输出。
4系统测试
4.1硬件测试
电阻标值
万用表读数
本仪表读数
相对误差﹪
470Ω
478Ω
0
810Ω
810Ω
872Ω
7.6%
2KΩ
1.97KΩ
2.08KΩ
0.6%
1.8KΩ
1,782KΩ
1.785KΩ
0.2%
20KΩ
20.02KΩ
19.88KΩ
0.67%
100KΩ
99KΩ
97.35KΩ
1.6%
510KΩ
520
535.41
2.96%
相对误差计算公式
从上面的一组数据上来看,在测量低于1KΩ阻值和接近1MΩ阻值的电阻时,相对误差会大一些。
造成这个现象的主要原因是在设计中采用的CD4052(四路模拟开关)的内阻较大,经测量其内阻达到了180Ω左右,这样在测量电阻值小的电阻时,它的内阻就不能忽略,造成测量误差的增大。
因为RA+2Rx=1/Cfln2
所以2Rx=⊿f/Cf*fln2-⊿C/C*Cln2
于是⊿Rx/(RA/2+Rx)=⊿f/f+⊿C/C
因此,频率的变化误差和电容的变化率同样也影响电阻的测量值。
电容标值
万用表读数
本仪表读数
相对误差%
683
684
0.1%
误差分析:
相对误差计算公式
而且⊿Cx/Cx=⊿f/f+⊿R1/R1+⊿R2/R2
从上面的数据可以看出,电容的标称值与用万用表测出的容值有较大误差,其可能性原因:
一是万用表本身存在着一定误差,二是元件本身也存在一定误差。
受所用仪器,元期间的限制,测量精度并没有做的很高。
注意:
由于建立RC稳定振荡的时间较长,在测量电阻和电容时,应在显示稳定后再读出数值。
4.2.3电感的测量
电感的一组测量数据如下表4.2.3所示:
表4.2.3
电感标值
本仪表读数
470uh
460uh
因为⊿L/L=2⊿f/f+⊿C/C
除了测量中仪器的误差,电路中相应的元器件本身的差值误差也会对电感的测量产生影响。
5.总结
四天三夜马上就要结束了,我们的作品也基本完成的差不多了,虽然离达标的要求有一定的距离,但是我们组成员经历了几次心理的变化,我们坚持了下来。
在我们开始做作品的过程中,遇到了许多的问题,例如,各个元器件的布局不协调,经常有引脚漏焊等情况发生,在做好每一个模块进行测试时,电源的正负极有时插颠倒,甚至将芯片工作在超出它耐压范围通路中,造成芯片烧坏。
一个特别的问题就是焊接好RC振荡电路后进行了测量,发现误差非常大,于是我们查了资料,得出的结论是LM555定时器组成的振荡器是稳定的,而且做此作品的其他对同样有很大的误差,最终我们做了进行了大量的调试,用软件补偿的方法来减小误差。
其中最难的部分还是如何进行自动辨识元器件,以及量程不够时可以自动切换量程。
在这方面我们的思想是对多选一通道进行时刻扫描,看哪个通道输入有相当的频率,就确定了是测量什么器件。
切换量程我们用继电器的工作特性,来判别。
开始时继电器工作在常闭状态,当继电器接单片机I/O端口为高电平时换令一路开关导通。
可以换另一量程。
在调试时我们发现,测量电阻的范围是500欧姆,最大可达600K欧姆,
当测量低值电阻时误差比较大,在达到10K欧姆,误差变得很小了。
最后要感谢系里给我们提供这样学习的机会,让我们在学习理论的同时,提高自己的动手能力。
同时感谢系里的几位指导老师对我们的指导和生活上的关心,让我们能放心和专心的学习与参赛。
参考文献
康华光《电子技术基础》高等教育出版社
张义和王敏男《例说51单片机(C语言版)》人民邮电出版社
全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品选编(1999).北京:
北京理工大学出版社,2000年
附录
附录1:
系统电路图
附录2:
程序流程图
附录3:
源程序
#include
#include
#defineSEGP2
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeseg[10]={
0x3F,
0x06,
0x5B,
0x4F,
0x66,
0x6D,
0x7D,
0x07,
0x7F,
0x6F,
};//0~~9段码
uchardis[6]={
0xFC,//0
0xFC,//0
0xFC,//0
0xFC,//0
0xFC,//0
0xFC,//0
};
//t0定时器相关变量
#definecount_m149609//0.05s
#defineh_0(65536-count_m1)/256//高8位
#definel_0(65536-count_m1)%256//低8位
uchartime1;//t0中断次数
#defineh_2(65536-3000)/256//高8位
#definel_2(65536-3000)%256//低8位
uchartime2;//t0中断次数
//相关变量定义区
bitc_flag=1;
uintfreq=0;
uintfreq1=0;
sfr16DPTR=0x82;
uchari;//数码管
uintzhi;
ucharx_flag;
ucharxuanze;
bitdangwei;
uchardian;
bitcishu;
sbitxuan1=P1^0;
sbitxuan2=P1^1;
sbitkey1=P1^2;
sbitkey2=P1^3;
sbitkey3=P1^4;
sbitdianzhu=P1^5;
sbitdianrong=P1^6;
voidmeasure(void)
{
if(cishu==1)
time1=20;
else
time1=10;
ET1=1;
ET0=1;
TMOD=0x51;
TH0=h_0;
TL0=l_0;
//IP=0x04;
TH1=0;
TL1=0;
TR0=1;
TR1=1;
}
voidT0_1s(void)interrupt1
{
TH0=h_0;
TL0=l_0;
time1--;
if(time1==0)
{
c_flag=1;
TR0=0;
TR1=0;
DPH=TH1;
DPL=TL1;
if(cishu==0)
{cishu=1;freq1=DPTR;if(freq1>32768){cishu=0;x_flag=1;}}
elseif(cishu==1)
{cishu=0;freq=DPTR;}
//if(xuanze=1&&freq>1175){dangwei=1;dianzhu=1;}
//else{dangwei=0;dianzhu=0;}
switch(xuanze)
{
case1:
if(dangwei==0)
{
if(freq1<27)
{
zhi=(32788500/freq-101)/10;
if(zhi<10000)dian=2;
elseif(zhi>9999){zhi=zhi/10;dian=3;}
}
elseif(freq1>26)
{
zhi=(32788500/freq-101);
if(zhi>9999){zhi=zhi/10;dian=2;}
elseif(zhi<10000)dian=0;
}
}
if(dangwei==1)
{
if(freq1<470)
{
zhi=((72134750/freq-503)*899)/10000;//zhi=10000;
if(zhi<10000)dian=2;
elseif(zhi>9999){zhi=zhi/10;dian=3;}
}
elseif(freq1>470)
{
zhi=((72134750/freq-503)*899)/1000;
if(zhi>9999){zhi=zhi/10;dian=2;}
elseif(zhi<10000)dian=0;
}
}
break;
case2:
if(dangwei==0)
{
if(freq1<155)
{
zhi=(19790055/freq/100);
if(zhi<10000)dian=2;
elseif(zhi>9999){zhi=zhi/10;dian=3;}
}
elseif(freq1>154)
{
zhi=(19790055/freq/10);
if(zhi>9999){zhi=zhi/10;dian=2;}
elseif(zhi<10000)dian=0;
}
}//310pf
if(dangwei==1)
{
if(freq1<27)
{
zhi=((45901845/freq)/10);
if(zhi<10000)dian=2;
elseif(zhi>9999){zhi=zhi/10;dian=3;}
}
elseif(freq1>26)
{
zhi=(45901845/freq);
if(zhi>9999){zhi=zhi/10;dian=2;}
elseif(zhi<10000)dian=0;
}
}
break;
case3:
if(dangwei==0)
if(freq1<9)
{
zhi=((143922140625/freq)/freq)/10;
if(zhi<10000)dian=2;
elseif(zhi>9999){zhi=zhi/10;dian=3;}
}
elseif(freq1>8)
{
zhi=((143922140625/freq)/freq);
if(zhi>9999){zhi=zhi/10;dian=2;}
elseif(zhi<10000)dian=0;
}
break;
default:
zhi=0;break;
}
if(freq<5||x_flag==1){zhi=0;}
}
}
voidtimer2(void)interrupt5using2//TIMER2中断
{
TF2=0;//T2定时器发生溢出中断时,需要用户自己清除溢出标记,而51的其他定时器是自动清除的
i++;
//dis[6]=seg[zhi/100000];
dis[5]=seg[zhi%10000/1000];
dis[4]=seg[zhi%1000/100];
if(dian==2)dis[4]=(seg[zhi%1000/100]|0x80);
dis[3]=seg[zhi%100/10];
if(dian==3)dis[3]=(seg[zhi%100/10]|0x80);
dis[2]=seg[zhi%10];
dis[1]=seg[xuanze];
dis[0]=seg[dangwei];
if(key1==0){xuanze=1;xuan1=0;xuan2=0;x_flag=0;}
elseif(key2==0){xuanze=2;xuan1=0;xuan2=1;x_flag=0;}
elseif(key3==0){xuanze=3;xuan1=1;xuan2=0;x_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电阻 电容 电感 rlc 测量仪