简易电阻电容电感测量仪.docx

上传人:b****5 文档编号:4266827 上传时间:2022-11-28 格式:DOCX 页数:22 大小:462.48KB
下载 相关 举报
简易电阻电容电感测量仪.docx_第1页
第1页 / 共22页
简易电阻电容电感测量仪.docx_第2页
第2页 / 共22页
简易电阻电容电感测量仪.docx_第3页
第3页 / 共22页
简易电阻电容电感测量仪.docx_第4页
第4页 / 共22页
简易电阻电容电感测量仪.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

简易电阻电容电感测量仪.docx

《简易电阻电容电感测量仪.docx》由会员分享,可在线阅读,更多相关《简易电阻电容电感测量仪.docx(22页珍藏版)》请在冰豆网上搜索。

简易电阻电容电感测量仪.docx

简易电阻电容电感测量仪

摘要:

本设计是一个电阻电感电容的简易测量装置,主要由模拟测量和1602液晶显示两部分组成,其中电阻和电容电感的测量都是通过构造电路产生一定频率的波形,再通过单片机读取频率,经过程序处理转化,再通过1602液晶显示。

由于系统处理数据时通过单片机对频率信号的读取,使得最后测量的结果更加精确与稳定,误差控制在题目所允许的范围内。

关键词:

电阻电容电感测量仪,1602显示,555定时器,电容三点式

 

1.系统设计……………………………………………………………………………………2

1.1设计要求………………………………………………………………………………………2

1.2方案比较………………………………………………………………………………………2

1.2.1电阻测量方案………………………………………………………………………………2

1.2.2电容测量方案………………………………………………………………………………4

1.2.3电感测量方案………………………………………………………………………………5

1.2.4显示电路方案………………………………………………………………………………6

1.3方案论证………………………………………………………………………………………6

1.3.1总体思路……………………………………………………………………………………6

1.3.2设计方案……………………………………………………………………………………7

2.单元电路设计…………………………………………………………………………………7

2.1电阻测量电路………………………………………………………………………………7

2.2电容测量电路………………………………………………………………………………8

2.3电感测量电路…………………………………………………………………………………9

2.41602显示电路………………………………………………………………………………10

3.软件设计………………………………………………………………………………………11

4.系统测试………………………………………………………………………………………11

4.1测试仪器与设备……………………………………………………………………………11

4.2指标测试……………………………………………………………………………………12

5结论…………………………………………………………………………………………13

参考文献…………………………………………………………………………………………13

附录1、元器件明细表………………………………………………………=…………………13

附录2:

程序清单…………………………………………………………………………………13

1.系统设计

1.1设计要求

设计并制作一台数字显示的电阻、电容和电感参数测试仪

1.测量范围:

电阻100Ω~1MΩ;电容100pF~10000pF;电感100μH~10mH。

2.测量精度:

±5%。

3.带有显示部分。

1.2方案比较

1.2.1电阻测量方案

相位测量方案的关键问题是电阻测量方法的选择。

方案一:

串联分压原理

V

RxR0

图1串联电路原理图

根据串联电路的分压原理可知,串联电路上电压与电阻成正比关系。

通过测量Rx和R0上的电压。

由公式Rx=Ux/(U0/R0)

方案二:

利用直流电桥平衡原理的方案

图2电桥(其中R1,R2,为可变电位器,R3为已知电阻,R4为被测电阻)

根据电路平衡原理,不断调节电位器,使得电表指针指向正中间。

由R1*R4=R3*R4.在通过测量电位器电阻值,可得到R4的值。

方案三:

利用555构成单稳态的方案

图3555定时器构成单稳态

根据555定时器构成单稳态,产生脉冲波形,通过单片机读取高低电平得出频率,通过公式换算得到电阻阻值。

由f=1/[(R1+2R2)*C*In2]

得到公式:

R2=1/2*[1/(f*c*Ln2)-R1]

上述三种方案从对测量精度要求而言,方案一的测量精度极差,方案二需要测量的电阻值多,而且测量调节麻烦,不易操作与数字化,相比较而言,方案三还是比较符合要求的,由于是通过单片机读取转化,精确度会明显的提高。

故本设计选择了方案三。

1.2.2电容测量方案

方案一:

直接通过串联路原理。

通过电容换算的容抗跟已知电阻分压,通过测量电压值,再经过公式换算得到电容的值。

原理同电阻测量的方案一。

方案二:

交流电桥平衡原理(原理图同图2)

通过调节Z1,Z2使电桥平衡。

这时电表的毒水为零。

通过读取Z1,Z2,Zn的值,即可得到被测电容的值。

方案三:

555构成单稳态原理

根据555定时器构成单稳态,产生脉冲波形,通过单片机读取高低电平得出频率,通过公式换算得到电容值。

由f=1/[(R1+2R2)*C*In2]

得到公式:

Cx=1/[c*Ln2(R1+2*R2)]

本设计采用方案三。

1.2.3电感测量方案

方案一交流电桥测量(原理同电容测量)

方案二电容三点式构成正弦波原理

图3电容三点式

根据电容三点式公式

从而可得电感的计算公式

方案三谐振法测量

图4谐振法测量

1.2.4显示方案

方案一:

采用点阵式液晶显示器(LCD)显示。

方案二:

采用发光二极管(LED)显示。

由于led只能显示简单的数字与简单的特殊字符,基于本设计题目要求,需要显示的测量量多,而且测量的量程范围大,明显led无法方便明了的显示,所以本设计采用的是lcd1602液晶显示,1602具有低功耗节能的作用,而且能够更好的显示出我们所需要的测量显示。

 

1.3方案论证

1.3.1总体思路

本设计是基于单片机AT89S52智能处理,根据单片机的外接按键控制测量电路的选择,通过ne555定时器构成的多谐振荡器和电容反馈式三点式构成的振荡电路长生的一定频率的波。

再通过单片机的I/O口对高低电平的捕获读出频率,再通过程序算法处理换算成电阻电容电感的值,然后再通过单片机送给1602液晶显示。

RLC简易测量仪设计的关键问题是:

如何完成RLC的测量。

RLC简易测量仪设计的核心问题是:

如何产生转化电路输出频率。

1.3.2设计方案

系统方框图如图5所示。

图5系统方框总图

2.单元电路设计

简易电阻电容电感测量仪功能:

测量并显示被测电阻电容电感的值。

简易电阻电容电感测量仪所需器件:

ne555定时器,8015三极管,1602液晶显示,单片机AT89S52。

被测量RLC电路频率f单片机显示RLC

图6测量原理框图

2.1电阻测量电路

电阻的测量采用“脉冲计数法”,如下图所示由555电路构成的多谐振荡电路,通过计算振荡输出的频率来计算被测电阻的大小。

555接成多谐振荡器的形式,其振荡周期为:

T=t1+t2=(ln2)(R1+Rx)*C1+(ln2)Rx*C1

得出:

即:

电路分为2档:

1.100≤Rx<1000欧姆:

IOA5设置为高电平输出,IOA7设为低电平输出;

R2=200欧姆;C2=0.22uF;

Rx=(6.56*(1e+6))/(2*fx)-330/2

对应的频率范围为:

2.8K≤fx<16K

2.1000≤Rx<1M欧姆:

IOA6设置为高电平输出,IOA8设为低电平输出。

R1=20k欧姆;C1=103PF;

Rx=(1.443*(1e+8))/(2*fx)-(1e+4)

图7电阻测量电路

2.2 电容测量电路

电容的测量同样采用“脉冲计数法”,如下图所示由555电路构成的多谐振荡电路,通过计算振荡输出的频率来计算被测电容的大小。

555接成多谐振荡器的形式,其振荡周期为:

T=t1+t2=(ln2)(R1+R2)*Cx+(ln2)R2*Cx我们设置R1=R2;

得出:

即:

电路分为2档:

R1=510K欧姆:

IOA10设置为高电平输出;

R4=R6;

Cx=(0.94*(1e+6))/fx;

对应的频率范围为:

9.4K≤fx<0.94KR1=100K欧姆:

IOA9设置为高电平输出;R5=R6;

Cx=(4.81*(1e+6))/fx;

对应的频率范围为:

480Hz≤fx<4.8K

图8电容测量电路

2.3电感测量电路

  电感的测量是采用电容三点式振荡电路来实现的。

三点式电路是指:

LC回路中与发射极相连的两个电抗元件必须是同性质的,另外一个电抗元件必须为异性质的,而与发射极相连的两个电抗元件同为电容时的三点式电路,成为电容三点式电路。

得出:

即:

Lx=(38*(1e+6))/f02

图9电感测量电路

2.4液晶显示电路

 

3.软件设计

3.1程序流程

 

4.系统测试

4.1测试仪器与设备

测试用仪器与设备如下:

双通道示波器,数字示波器,万用表,单片机最小系统,函数信号发生器

proteus仿真软件,keil单片机编程软件,multisim仿真软件。

4.2指标测试

首先按照电路图连接好电路,首先选择好测量电阻电路:

1、调节滑动变阻器,测量不同阻值的电阻产生的多谐振荡脉冲波的频率。

将结果记录下表1中。

表1

2、替换不同电容,测量不同电容产生的多谐振荡脉冲波的频率。

将结果记录表2中。

3、替换不同电感,测量不同电感产生的震荡波的频率。

将结果记录表3中。

4、利用函数信号发生器产生一定频率有效值为4V的正弦波输入单片机,按键测试液晶显示的数值,并记录表中。

5、各分立电路级联测试,测量电阻电容电感时直接在液晶上分别显示设计装置得到的电阻电容电感的值。

5结论

经过团队的几天的不懈努力,终于将电阻电容电感简易测量仪制作完成,本设计完成了设计要求基本部分的全部要求,发挥部分大部分要求。

整个装置电路简单,测量可靠,稳定性好,使用继电器控制开关实现一定智能化,使用液晶显示,使显示更加明朗清晰。

参考文献:

[4]童诗白,华成英,模拟电子技术基础.高等教育出版社。

2006.5第四版

[5]阎石,数字电子技术基础.高等教育出版社2006.5第五版

附录:

附录1.主要元器件清单

附录2:

程序清单

#include

#include"1602.h"

#defineDataPortP0

#defineADCPortP2

#defineucharunsignedchar

sbitbutton_r=P1^0;

sbitbutton_c=P1^1;

sbitbutton_l=P1^2;

sbitbutton_q=P1^3;

sbitUP=P2^0;

sbitLED_R=P1^4;

sbitLED_C=P1^5;

sbitLED_L=P1^6;

sbitLED_Q=P1^7;

sbitRS=P3^0;

sbitRW=P3^1;

sbitEN=P3^2;

sbitSTART=P3^7;

unsignedcharfunc;

unsignedlongintR,C,L,f,y;

uchari=0;

ucharaa,bb,cc;

//ucharcodeaa[5]="free";

ucharcodemeun[2][16]={"is:

","00000000"};

ucharcodem[10]="0123456789";

unsignedcharT0count;

unsignedchartimecount;

bitflag;

voidpinlv();

voidIntar_T0T1(void)

{

flag=0;

timecount=0;

T0count=0;

TH0=0;

TL0=0;

TR0=1;

TR1=1;

}

voiddelay1(void)

{

inti;

for(i=80;i>0;i--);

}

voiddelay_ms(uchart)

{

unsignedchari;

while(t--)for(i=0;i<120;i++);

}

voidWriteData(uchardat)

{

EN=0;

RS=0;//********RS寄存器选择输入端,当RS=0;当进行写模块操作,指向指令寄存器。

RW=0;//********当RS=1,无论是读操作还是写操作,都是指向数据寄存器。

RS=1;

RW=0;

EN=1;

DataPort=dat;

EN=0;

RS=0;

RW=0;

for(i=0;i<20;i++);

}

voidWriteCmd(ucharcmd)

{

EN=0;

RS=0;//********RS寄存器选择输入端,当RS=0;当进行写模块操作,指向指令寄存器。

RW=0;//********当RS=1,无论是读操作还是写操作,都是指向数据寄存器。

EN=1;

DataPort=cmd;

RS=0;

RW=0;

EN=0;

for(i=0;i<20;i++);

}

voidDisChar(ucharps,uchardat)

{

WriteCmd((0x80+ps));

WriteData(dat);

}

voidLcdInit(void)

{

charpp=0;

WriteCmd(0x38);

delay_ms(5);

WriteCmd(0x38);

delay_ms(5);

WriteCmd(0x38);

delay_ms(5);

WriteCmd(0x01);delay_ms(5);

WriteCmd(0x06);delay_ms(5);

WriteCmd(0x38);

WriteCmd(0x0c);

WriteCmd(0x40);

for(pp=0;pp<16;pp++)DisChar(pp,*(meun[0]+pp));

for(pp=0;pp<16;pp++)DisChar(pp+0x40,*(meun[1]+pp));

}

voidDisplay(unsignedlongintx)

{DisChar(0,aa);

DisChar(9+0x40,bb);

DisChar(10+0x40,cc);

DisChar(7+0x40,m[x%10]);x/=10;

DisChar(6+0x40,m[x%10]);x/=10;

DisChar(5+0x40,m[x%10]);x/=10;

DisChar(4+0x40,m[x%10]);x/=10;

DisChar(3+0x40,m[x%10]);x/=10;

DisChar(2+0x40,m[x%10]);x/=10;

DisChar(1+0x40,m[x%10]);x/=10;

DisChar(0+0x40,m[x%10]);x/=10;

delay_ms(200);

}

button()

{

if(button_r==0)

{

func=1;//功能1:

测电阻

LED_R=0;

LED_C=1;

LED_L=1;

LED_Q=1;

}

if(button_c==0)

{

func=2;//功能2:

测电容

LED_R=1;

LED_C=0;

LED_L=1;

LED_Q=1;

}

//button_l=1;

if(button_l==0)

{

func=3;//功能3:

测电感

LED_R=1;

LED_C=1;

LED_L=0;

LED_Q=1;

}

if(button_q==0)

{

func=4;//功能3:

测电感

LED_R=1;

LED_C=1;

LED_L=1;

LED_Q=0;

}

returnfunc;

}

voidR_measure(void)//电阻测量,以Ω为单位

{

while(flag==0);

f=(T0count*65536+TH0*256+TL0);//Hz

//电阻计算公式

f=(T0count*65536+TH0*256+TL0+f);//Hz

f=f/2;

if(UP==0)

R=(1.43/(1.0E-9*f)-30000)/2;

else

R=(1.42/(0.220E-6*f)-200)/2;

y=R;

}

voidC_measure(void)//电容测量,以pF为单位

{

while(flag==0);

f=(T0count*65536+TH0*256+TL0);//Hz

//电容计算公式

C=4800000/f*0.1;//pf

y=C;

}

voidL_measure(void)//电感测量,以uH为单位

{

while(flag==0);

f=(T0count*65536+TH0*256+TL0);//Hz

//电感计算公式

f/=100000;

L=922/(f*f);//L=922*10^10/(f*f)uH

y=L;

}

unsignedintADCTransform()

{

unsignedlongintuiResult;

START=1;

START=0;

delay_ms(10);

uiResult=ADCPort;//出入转换结果。

uiResult=(10000000*uiResult)/51;//处理运算结果。

y=uiResult;

}

voidmain(void)

{TMOD=0x15;//00010101

TH0=0;

TL0=0;

TH1=(65536-49989)/256;

TL1=(65536-49989)%256;

ET0=1;

ET1=1;

EA=1;

TR1=1;

TR0=1;

y=0x00;

LcdInit();

while

(1)

{

button();

if(func==1)

{

aa='R';

bb='\n';

cc='\n';

R_measure();

}

if(func==2)

{

aa='C';

bb='p';

cc='F';

C_measure();

}

if(func==3)

{

aa='L';

bb='u';

cc='H';

L_measure();

}

if(func==4)

{

aa='Q';

bb='\n';

cc='\n';

ADCTransform();

}

Display(y);

Intar_T0T1();

}

}

voidt0(void)interrupt1using0//计脉冲个数

{

T0count++;

}

voidt1(void)interrupt3using0//定时1s

{

TH1=(65536-50045)/256;

TL1=(65536-50045)%256;

timecount++;

if(timecount==20)

{

TR0=0;

TR1=0;

timecount=0;

flag=1;

}

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1