最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

简易LCR测量仪

来源:动视网 责编:小OO 时间:2025-09-30 21:09:08
文档

简易LCR测量仪

2015大连理工大学电子设计竞赛暨全国电子设计竞赛选拔赛简易LCR测量仪(D题)2015年6月5日摘要本设计中把R、L、C转换成频率信号f,转换的原理分别是RC振荡电路和LC电容三点式振荡电路,单片机根据所选通道,取得振荡频率,作为单片机的时钟源,通过测频法则可以计算出被测频率,再通过该频率计算出各个参数。然后根据所测频率判断是否切换单位,或者是把数据处理后,把R、L、C的值送液晶屏,并显示相应的参数值。简易LCR测量仪(D题)【三只牛犊组】1系统方案本系统主要由电子元件集中参数R、L、C转频
推荐度:
导读2015大连理工大学电子设计竞赛暨全国电子设计竞赛选拔赛简易LCR测量仪(D题)2015年6月5日摘要本设计中把R、L、C转换成频率信号f,转换的原理分别是RC振荡电路和LC电容三点式振荡电路,单片机根据所选通道,取得振荡频率,作为单片机的时钟源,通过测频法则可以计算出被测频率,再通过该频率计算出各个参数。然后根据所测频率判断是否切换单位,或者是把数据处理后,把R、L、C的值送液晶屏,并显示相应的参数值。简易LCR测量仪(D题)【三只牛犊组】1系统方案本系统主要由电子元件集中参数R、L、C转频
2015大连理工大学电子设计竞赛

暨全国电子设计竞赛选拔赛

简易LCR测量仪(D题)

2015年6月5日

摘    要 

本设计中把R、L、C转换成频率信号f,转换的原理分别是RC振荡电路和LC电容三点式振荡电路,单片机根据所选通道,取得振荡频率,作为单片机的时钟源,通过测频法则可以计算出被测频率,再通过该频率计算出各个参数。然后根据所测频率判断是否切换单位,或者是把数据处理后,把R、L、C的值送液晶屏,并显示相应的参数值。 

简易LCR测量仪(D题)

【三只牛犊组】

1系统方案

本系统主要由电子元件集中参数R、L、C转频率模块、主控模块、R,L,C切换模块、电源模块组成,下面分别论证这几个模块的选择。

1.1 测量方案的论证与选择

方案一:电桥法

电阻R可用直流电桥测量,电感L、电容C可用交流电桥测量。电桥的平衡条件为

通过调节阻抗、使电桥平衡,这时电表读数为零。根据平衡条件以及一些已知的电路参数就可以求出被测参数。用这种测量方法,参数的值还可以通过联立方程求解,调节电阻值一般只能手动,电桥的平衡判别亦难用简单电路实现。这样,电桥法不易实现自动测量。

方案二:伏安法

伏安法有固定轴法和自由轴法两种,区别在于相敏检波器的相位参考基准选取的不同。实际上,相敏检波的相位参考基准代表坐标轴的方向,相敏检波器的输出就是待测电压在坐标轴方向上的投影。但此方案需要信号源,由于信号源的制作较为繁琐,不够简洁。

方案三:谐振法

利用555的多谐震荡电路及电容三点式震荡电路将电子元件的集中参数R、L、C转换成频率信号f, 然后用单片机计数后在运算求出R、L、C的值,并送显示,转换的原理分别是RC振荡和LC三点式振荡。其实,这种转换就是把模拟量进拟地转化为数字量,频率f是单片机很容易处理的数字量,这种数字化处理一方面便于使仪表实现智能化,另一方面也避免了由指针读数引起的误差。

综合以上三种方案,我们组最后决定使用方案三。

1.2 R,L,C切换模块的论证与选择

方案一:4路模拟开关CD4066

CD4066芯片(全称:四路模拟开关集成电路)内部含有A、B、C、D四路模拟开关,A路模拟开关由引脚13控制、B路模拟开关由引脚5控制、C路模拟开关由引脚6控制、D路模拟开关由引脚12控制。所有的控制引脚由软件编程控制,当控制线由软件置“1”时,该模拟开关闭合,当控制线由软件置“0”时,该模拟开关断开,且四路模拟开关可使用。但由于其断开时不能完全断开而只是阻抗很大,因此在进行RLC切换时会出现信号干扰问题。

下图为CD4066的内部结构图:

方案二:电磁继电器

电磁继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流、较低的电压去控制较大电流、较高的电压的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。其开关的闭合与打开符合条件,不会出现信号干扰问题。

综合以上两种方案,我们组最后决定使用方案二。

1.3 控制系统的论证与选择

方案一:STM32

STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核但其编程较为复杂,价格也不占优势。    

方案二:STCC52

        

·8位CPU·4kbytes程序存储器(ROM) (52为8K)

·128bytes的数据存储器(RAM) (52有256bytes的RAM)

·32条I/O口线·111条指令,大部分为单字节指令

·21个专用寄存器

·2个可编程定时/计数器·5个中断源,2个优先级(52有6个)

·一个全双工串行通信口

·外部数据存储器寻址空间为kB

·外部程序存储器寻址空间为kB

·逻辑操作位寻址功能·双列直插40PinDIP封装

·单一+5V电源供电

CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;

RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;

ROM:用以存放程序、一些原始数据和表格;

I/O口:四个8位并行I/O口,既可用作输入,也可用作输出

T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;

五个中断源的中断控制系统;

一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;

片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最佳振荡频率为6M—12M。

 由于此方案需要单片机完成的工作只有驱动液晶,测量频率及简单计算,51完全可以胜任,且51性价比不错.因此选用51作主控芯片。

综合以上两种方案,我们组最后决定使用方案二。

2系统理论分析与计算

2.1  LCR值转频率电路的分析    

2.1.1 RC值转频率电路(NE555芯片构成的多谐振荡器)

电阻R1、R2和电容C1构成定时电路。定时电容C1上的电压UC作为高触发端TH(6脚)和低触发端TL(2脚)的外触发电压。放电端D(7脚)接在R1和R2之间。电压控制端K(5脚)不外接控制电压而接入高频干扰旁路电容C2(0.01uF)。直接复位端R(4脚)接高电平,使NE555处于非复位状态。

多谐振荡器的放电时间常数分别为

tPH≈0.693×(R1+R2)×C1

tPL≈0.693×R2×C1

振荡周期T和振荡频率f分别为

T=tPH+tPL≈0.693×(R1+2R2)×C1

f=1/T≈1/[0.693×(R1+2R2)×C1]

2.1.2L值转频率电路

 电感的测量是采用电容三点式振荡电路来实现的,如图2.5.1所示。三点式电路是指:LC回路中与发射极相连的两个电抗元件必须是同性质的,另外一个电抗元件必须为异性质的,而与发射极相连的两个电抗元件同为电容时的三点式电路,成为电容三点式电路。 在这个电容三点式振荡电路中,C4 C5分别采用1000pF、2200pF的独石电容,其电容值远大于晶体管极间电容,可以把极间电容忽略。

振荡公式:

,其中 为C1C2串联容值

则电感的感抗为

2.2 LCR值转频率的计算  

2.2.1 

电阻计算公式:R= 138720677*(1/f)-325.5

单位:电阻:欧,频率:Hz

2.2.2

电容计算公式:C= 0.00050037*(1/f)

单位:电容:pf,频率:Hz

2.2.3 

电感计算公式:L= 661102.8/(f*f)

单位:电感:H频率:Hz

  

3电路与程序设计

3.1电路的设计

3.1.1系统总体框图

系统总体框图如下图所示:

3.1.2 LCR值转频率电路原理图

1、R值转频率电路原理图:

2、C值转频率电路原理图:

3、L值转频率电路原理图:

4、过零比较电路:

3.1.3 档位切换电路原理图

1、继电器部分切换电路:

3.1.4电源

电源由变压部分、滤波部分、稳压部分组成。为整个系统提供5V或者12V电压,确保电路的正常稳定工作。这部分电路比较简单,都采用三端稳压管实现,故不作详述。

3.2程序的设计

3.2.1程序功能描述与设计思路

1、程序功能描述

根据题目要求软件部分主要实现键盘的设置,测频和显示。

1)键盘实现功能:选择测量对象(R、C、L),按键切换单位,复位。

2)显示部分:显示测量频率和所测元件值。

2、程序设计思路

对系统初始化之后,判断是否有按键按下。以测电阻为例,若按下R开关,单片机输出高信号驱动继电器闭合。测量的电阻经RC振荡电路转换为频率f,根据测电阻的换算公式,利用单片机软件编程,测量出其阻值并送显示。使用外部中断实现按键切换单位和按键复位功能。

3.2.2程序流程图

1、主程序流程图

4测试方案与测试结果

4.1测试方案

1、硬件测试

LCR测试方法:通过使用LCR测试仪,测量出较精确的LCR值,然后通过示波器读出所显示方波的频率,由此通过公式反推出LCR的理论值,再与实际测量的LCR值比对,调整参数。

2、软件仿真测试

通过信号发生器连接单片机,通过液晶屏读取频率值。

3、硬件软件联调

通过硬件组装,通过按键切换,用液晶屏显示理论值,与硬件测试时的理论值与实际值进行比对,记录数值,调整参数。

4.2 测试条件与仪器

测试条件:仿真电路和硬件电路与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。

测试仪器:示波器,数字万用表,LCR测试仪。

4.3 测试结果及分析

4.3.1测试结果(数据)

通过LCR测量的R值数据及通过液晶屏显示的频率数据:

通过公式算出的理论值及理论值与实际值的误差

通过excel图象拟合数据:

4.3.2测试分析与结论

根据上述测试数据,由此可以得出以下结论:

1、电阻的测量值与实际值的误差能控制在1%以内

2、

3、

综上所述,本设计达到设计要求。

附录1:电路原理图

一.测的RC振荡电路:

二.测Cx的RC的振荡电路:

三.测量Lx的电容三点式振荡电路:

过零比较电路:

四.部分仿真电路:

多谐振荡电路:

    电容三点式振荡电路及方波变换电路:

        

五.继电器部分切换电路:

附录2:源程序

#include"LCD1602.h"

#include

#include

#include

#define k 830016036

sbit keyR=P2^5;

sbit keyC=P2^4;

sbit keyL=P2^3;

sbit testR=P1^0;

sbit testC=P1^1;

sbit testL=P1^2;

sbit R_large=P1^3;

sbit R_small=P1^4;

sbit C_large=P1^5;

sbit C_small=P1^6;

sbit counter=P3^4;

sbit timer=P3^5;

sbit flag=P3^2;

sbit reset=P3^3;

uchar idata f_display[20];

uchar idata display_lcd[20];

uint flag_rcl;

uint flag_danwei;

uint flag_reset;

uint timer_yichu=0,counter_yichu=0;

uint fenpin_rate,m,n,f_L;

void init(void);

void keypress(void);

void cepin(void);

void display(float f);

void panduan(void);

void main()

{

    lcd_init();

    init();

write_string(1,0,"designed by ");

    write_string(1,1,"three calves");

    delay_ms(1000);

    clear_screen();

    while(1)

    {    clear_screen();

        flag_reset=0;

        write_string(1,1,"waiting...");

    while(1)

    {  

           keypress();

           panduan(); 

        if (flag_reset==1)

        break;    

    }  

    }

}

void init(void)//初始化

{

    TMOD=0x15; //T1定时器,T0计数器

    TH1=0x3c;         //定时50ms 

    TL1=0xb0;

    TH0=0;

    TL0=0;

    IT0=1;//外部中断下跳沿触发

    IT1=1;//外部中断下跳沿触发

    ET1=1;

    ET0=1;

    EX0=1;

    EX1=1;

    EA=1;

    TR1=1; 

    TR0=1;

    PT0=1;//计数器中断优先

    flag_rcl=0;

    flag_danwei=0;

    flag_reset=0;

}

void keypress(void)

{

    while(1)

{    

    if(keyR==0)

    {

         testR=1;

         testC=0;

         testL=0;

         flag_rcl=1;

    }

    else if(keyC==0)

    {

        delay_ms(5);

        if(keyC==0)

        {

         testR=0;

         testC=1;

         testL=0;

         flag_rcl=2;

        }

        while(keyC==0);

    }

    else if(keyL==0)

    {

        delay_ms(5);

        if(keyL==0)

        {

         testR=0;

         testC=0;

         testL=1;

         flag_rcl=3;

        }

        while(keyR==0);

    }

    if (flag_rcl!=0)

        break;

    }

}

void panduan(void)

{

    if (flag_rcl==0);

  if(flag_rcl==1)

  {

       cepin();

  }

  else if(flag_rcl==2)

  {

       cepin();

  }

  else if(flag_rcl==3)

  {

       cepin();

  }

}

void cepin(void)

{

    unsigned long f_test; 

    timer_yichu=0;

    counter_yichu=0;     

    TMOD=0x15;  

    TH1=0x3c; //初始50ms

    TL1=0xb0; 

    TH0=0; 

    TL0=0;  

    TCON=0x50;      

    while(timer_yichu!=20);

    TCON=0;

    f_test=TH0*256+counter_yichu*65536+TL0;

    display(f_test);        

}

void display(float f)//液晶屏显示函数

{

    float vlaue_r0;

    float value_r;

    float value_c;

    float value_l;

    clear_screen();

if(f>1000000.00)

            sprintf(f_display,"Freq:%2.4fMhz",(f/1000000.00));

else if(f>1000.00)

            sprintf(f_display,"Freq:%4.2fKhz",(f/1000.00));        

    else  sprintf(f_display,"Freq:%3.2fhz",f);  

    write_string(0,0,f_display);

    if (flag_rcl==1)//R

    {

        vlaue_r0=138720677/f-326.4;

     if(vlaue_r0<300)

            value_r=0.8882*vlaue_r0+14.887;

     else if((vlaue_r0>300)&&(vlaue_r0<500))

            value_r=0.9232*vlaue_r0+8.3454;

     else if((vlaue_r0>500)&&(vlaue_r0<1000))

            value_r=1.0497*vlaue_r0-55.115;

     else if((vlaue_r0>1000)&&(vlaue_r0<5000))

            value_r=1.0747*vlaue_r0-69.451;

     else if((vlaue_r0>5000)&&(vlaue_r0<10000))

            value_r=1.0698*vlaue_r0-17.569;

        else

            value_r=1.0471*vlaue_r0+29.594;

        if(flag_danwei==0)

              sprintf(display_lcd,"R:%4.5f o",value_r); //需要修改

        if(flag_danwei==1)

              sprintf(display_lcd,"R:%4.5fKo",value_r/1000);

        if(flag_danwei==2)

              sprintf(display_lcd,"R:%4.5fMo",value_r/1000000);        

    }

    if (flag_rcl==2)//C

    {

        value_c=0.00050037/f;

        if(flag_danwei==0)

              sprintf(display_lcd,"C:%4.2f F",value_c/1000000); //需要修改

        if(flag_danwei==1)

              sprintf(display_lcd,"C:%4.2f pF",value_c);

        if(flag_danwei==2)

              sprintf(display_lcd,"C:%4.2f uf ",value_c*1000000);        

    }

    if (flag_rcl==3)//L

    {

        value_l= 600782/(f*f) ;//电感公式

        sprintf(display_lcd,"L:%4.2f mH ",value_l*1000);//需要修改    

    }

     write_string(0,1,display_lcd);

}

void timer1(void) interrupt 3 //定时器服务函数

{

    timer_yichu++;

    TH1=0x3c;         //重装载50ms 

    TL1=0xb0;

void counter0(void)interrupt 1 //计数器服务函数

{

   counter_yichu++;

   TH0=0;

   TL0=0;

}

void int0(void)interrupt 0 //外部中断切换单位服务函数

{

      delay_ms(5);//软件消抖

    if(flag == 0)

    {

        flag_danwei++;

        while( !flag);//松手检测

    }

    if (flag_danwei==3)

       flag_danwei=0;

}                

void int1(void)interrupt 2//外部中断reset

{

      delay_ms(5);//软件消抖

    if(reset== 0)

    {

        flag_reset=1;

        flag_rcl=0;

        while( !reset);//松手检测

    }

}    

0.0005049155

文档

简易LCR测量仪

2015大连理工大学电子设计竞赛暨全国电子设计竞赛选拔赛简易LCR测量仪(D题)2015年6月5日摘要本设计中把R、L、C转换成频率信号f,转换的原理分别是RC振荡电路和LC电容三点式振荡电路,单片机根据所选通道,取得振荡频率,作为单片机的时钟源,通过测频法则可以计算出被测频率,再通过该频率计算出各个参数。然后根据所测频率判断是否切换单位,或者是把数据处理后,把R、L、C的值送液晶屏,并显示相应的参数值。简易LCR测量仪(D题)【三只牛犊组】1系统方案本系统主要由电子元件集中参数R、L、C转频
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top