最新文章专题视频专题问答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
当前位置: 首页 - 正文

简易电阻、电容和电感测试仪设计.(DOC)

来源:动视网 责编:小OO 时间:2025-10-02 10:50:24
文档

简易电阻、电容和电感测试仪设计.(DOC)

元器件参数测量仪的设计一、课程目的1.加深对电路分析、模拟电路、数字逻辑电路、微处理器等相关课程理论知识的理解;2.掌握电子系统设计的基本方法和一般规则;3.熟练掌握电路仿真方法;4.掌握电子系统的制作和调试方法;二、设计任务1.设计并制作一个元器件参数测量仪。2.(基本要求)电阻阻值测量,范围:100欧~1M欧;3.(基本要求)电容容值测量,范围:100pF~10000pF;4.(基本要求)测量精度:正负5%;5.(基本要求)4位显示对应数值,并有发光二极管分别指示所测器件类型;6.(提高要
推荐度:
导读元器件参数测量仪的设计一、课程目的1.加深对电路分析、模拟电路、数字逻辑电路、微处理器等相关课程理论知识的理解;2.掌握电子系统设计的基本方法和一般规则;3.熟练掌握电路仿真方法;4.掌握电子系统的制作和调试方法;二、设计任务1.设计并制作一个元器件参数测量仪。2.(基本要求)电阻阻值测量,范围:100欧~1M欧;3.(基本要求)电容容值测量,范围:100pF~10000pF;4.(基本要求)测量精度:正负5%;5.(基本要求)4位显示对应数值,并有发光二极管分别指示所测器件类型;6.(提高要
元器件参数测量仪的设计

一、课程目的

1.加深对电路分析、模拟电路、数字逻辑电路、微处理器等相关课程理论知识的理解;

2.掌握电子系统设计的基本方法和一般规则;

3.熟练掌握电路仿真方法;

4.掌握电子系统的制作和调试方法;

二、设计任务

1.设计并制作一个元器件参数测量仪。

2.(基本要求)电阻阻值测量,范围:100欧~1M欧;

3.(基本要求)电容容值测量,范围:100pF~10 000pF;

4.(基本要求)测量精度:正负5% ;

5.(基本要求)4位显示对应数值,并有发光二极管分别指示所测器件类型;

6.(提高要求)增加电感参数的测量;

7.(提高要求)增加三极管直流放大倍数的测量;

8.(提高要求)扩大量程;

9.(提高要求)提高测量精度;

10.(提高要求)测量量程自动切换;

三、任务说明:

    电阻电容电感参数测量常用电桥法,该方法测量精度,但是电路复杂。也可为简化起见,电阻测量也可采用简单的恒流法,电容采用555定时电路;

1、绪论

在现代化生产、学习、实验当中,往往需要对某个元器件的具体参数进行测量,在这之中万用表以其简单易用,功耗低等优点被大多数人所选择使用。然而万用表有一定的局限性,比如:不能够测量电感,而且容量稍大的电容也显得为力。所以制作一个简单易用的电抗元器件测量仪是很有必要的。

现在国内外有很多仪器设备公司都致力于低功耗手持式电抗元器件测量仪的研究与制作,而且精度越来越高,低功耗越来越低,体积小越来越小一直是他们不断努力的方向。

该类仪器的基本工作原理是将电阻器阻值的变化量,电容器容值的变化量,电感器电感量的变化量通过一定的调理电路统统转换为电压的变化量或者频率的变化量等等,再通过高精度AD采集或者频率检测计算等方法来得到确定的数字量的值,进而确定相应元器件的具体参数。

2、电路方案的比较与论证

2.1电阻测量方案

方案一:利用串联分压原理的方案

 

R0

Rx

GND

VCC

      

     

图2-1串联分压电路图

根据串联电路的分压原理可知,串联电路上电压与电阻成正比关系。测量待测电阻Rx和已知电阻R0上的电压,记为Ux和U0.

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

R2

R1

GND

VCC

Rx

R3

图2-2  直流电桥平衡电路图

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

 

 方案三:利用555构成单稳态的方案  

图2-3   555定时器构成单稳态电路图

    

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

 得

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

2.2电容测量方案

方案一:利用串联分压原理的方案(原理图同图2-1)

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

方案二:利用交流电桥平衡原理的方案(原理图同图2-2)

  通过调节Z1、Z2使电桥平衡。这时电表的读数为零。通过读取Z1、Z2、Zn的值,即可得到被测电容的值。

方案三:利用555构成单稳态原理的方案

图2-4   555定时器构成单稳态电路图

    

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

 若R1=R2,得

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

2.3电感测量方案

方案一:利用交流电桥平衡原理的方案(原理图同图2-2)

方案二:利用电容三点式正弦波震荡原理的方案 

   

                         图2-5 电容三点式正弦波震荡电路图

 

上述两种方案从对测量精度要求而言,方案二需要测量的电感值多,而且测量调节麻烦、电感不易测得准确值,不易操作与数字化,相比较而言,方案二还是比较符合要求的,由于是通过单片机读取转化,精确度会明显的提高。故本设计选择了方案二。

3、核心元器件介绍

3.1 LM317的介绍

LM317可输出连续可调的正电压,可调电压范围1.2V—37V,最大输出电流为1.5A,内部含有过流、过热保护电路,具有安全可靠、应用方便、性能优良等特点。

引脚图:

典型电路:

VO

Vi

R1、R2组成电压输出调节电路,输出电压UO表达式为:

V

电容C2与R2并联组成滤波电路,减小输出的纹波电压。二极管D2的作用是防止输出端与地短路时,电容C2上的电压损坏稳压器。

3.2 LM337的介绍

与LM317正好相反,LM337可输出连续可调的负电压,可调电压范围1.2V—37V,最大输出电流为1.5A,内部含有过流、过热保护电路,具有安全可靠、应用方便、性能优良等特点。

引脚图:

典型电路:

R1、R2组成电压输出调节电路,输出电压UO表达式为:

V

3.3 NE555的介绍

555集成电路开始是作定时器应用的,所以叫做555定时器或555时基电路。但后来经过开发,它除了作定时延时控制外,还可用于调光、调温、调压、调速等多种控制及计量检测。此外,还可以组成脉冲震荡、单稳、双稳和脉冲调制电路,用于交流信号源、电源变换、频率变换、脉冲调制等。它由于工作可靠、使用方便、价格低廉,目前被用于各种电子产品中,555集成电路内部有几十个元器件,有分压器、比较器、基本R-S触发器、放电管以及缓冲器等,电路比较复杂,是模拟电路和数字电路的混合体。

555集成电路内部结构图:

引脚图:

管脚介绍:

555集成电路是8脚封装,双列直插型,如图(A)所示,按输入输出的排列可看成如图(B)所示。其中6脚称阈值端(TH),是上比较器的输入;2脚称触发端,是下比较器的输入;3脚是输出端(VO),它有0和1两种状态,由输入端所加电平决定;7脚是放电端(DIS),它是内部放电管的输出,有悬空和接地两种状态,也是由输入端的状态决定;4脚是复位端(MR),加上低电平时可使输出为低电平;5脚是控制电压端(VC),可用它改变上下触发电平值;8脚是电源端,1脚是接地端。

典型应用—555震荡器电路:

由555构成的多谐振荡器如图(a)所示,输出波形如图(b)所示。

3.4 NE5532的介绍

NE5532是一种双运放高性能低噪声运算放大器。 相比较大多数标准运算放大器,如1458,它显示出更好的噪声性能,提高输出驱动能力和相当高的小信号和电源带宽。这使该器件特别适合应用在高品质和专业音响设备,仪器和控制电路和电话通道放大器。如果噪音非常最重要的,因此建议使用5532A版,因为它能保证噪声电压指标。

NE5532特点:

  •小信号带宽:10MHZ

 •输出驱动能力:600Ω,10V(有效值) 

 •输入噪声电压:5nV/√Hz(典型值) 

 •直流 电压增益:50000 

 •交流电压增益:2200-10KHZ

 •功率带宽: 140KHZ

 •转换速率: 9V/μs

 •大的电源电压范围:±3V-±20V 

 •单位增益补偿

NE5532引脚图:

NE5532内部原理图:

3.5 STCC52的介绍

STC单片机的优点:

★加密性强,很难解密或破解

★超强抗干扰:

1 、高抗静电(ESD保护) 

2 、轻松过 2KV/4KV快速脉冲干扰(EFT 测试) 

3 、宽电压,不怕电源抖动 

4 、宽温度范围,-40℃~85℃ 

5 、I/O 口经过特殊处理 

6 、单片机内部的电源供电系统经过特殊处理 

7 、单片机内部的时钟电路经过特殊处理 

8 、单片机内部的复位电路经过特殊处理 

9 、单片机内部的看门狗电路经过特殊处理 

★超低功耗:

1 、掉电模式:典型功耗<0.1 μ A   

2 、空闲模式:典型功耗2mA 

3 、正常工作模式:典型功耗4mA-7mA 

4 、掉电模式可由外部中断唤醒,适用于电池供电系统,如水表、气表、便携设备等. 

★在系统可编程,无需编程器,可远程升级 

★可送 STC-ISP 下载编程器,1 万片/人/天 

★可供应内部集成 MAX810 专用复位电路的单片机

STCC52单片机最小系统原理图:

3.6 TLC549的介绍

  TLC549是美国德州仪器公司生产的8位串行A/D转换器芯片,可与通用微处理器、控制器通过CLK、CS、DATA OUT三条口线进行串行接口。具有4MHz片内系统时钟和软、硬件控制电路,转换时间最长17μs, TLC549为40 000次/s。总失调误差最大为±0.5LSB,典型功耗值为6mW。采用差分参考电压高阻输入,抗干扰,可按比例量程校准转换范围,VREF-接地,VREF+-VREF-≥1V,可用于较小信号的采样。

引脚图:

极限参数:

    ●电源电压:6.5V;

  ●输入电压范围:0.3V~VCC+0.3V;

  ●输出电压范围:0.3V~VCC+0.3V;

  ●峰值输入电流(任一输入端):±10mA;

  ●总峰值输入电流(所有输入端):±30mA;

  ●工作温度: TLC549C:0℃~70℃

TLC549I:-40℃~85℃

TLC549M:-55℃~125℃

工作原理:

  TLC549均有片内系统时钟,该时钟与I/O CLOCK是工作的,无须特殊的速度或相位匹配。其工作时序如图2所示。

  当CS为高时,数据输出(DATA OUT)端处于高阻状态,此时I/O CLOCK不起作用。这种CS控制作用允许在同时使用多片TLC549时,共用I/O CLOCK,以减少多路(片)A/D并用时的I/O控制端口。

通常的控制时序:

    (1)将CS置低。内部电路在测得CS下降沿后,再等待两个内部时钟上升沿和一个下降沿后,然后确认这一变化,最后自动将前一次转换结果的最高位(D7)位输出到DATA OUT端上。

  (2) 前四个I/O CLOCK周期的下降沿依次移出第2、3、4和第5个位(D6、D5、D4、D3),片上采样保持电路在第4个I/O CLOCK下降沿开始采样模拟输入。

   (3)接下来的3个I/O CLOCK周期的下降沿移出第6、7、8(D2、D1、D0)个转换位,

  (4)最后,片上采样保持电路在第8个I/O CLOCK周期的下降沿将移出第6、7、8(D2、D1、D0)个转换位。保持功能将持续4个内部时钟周期,然后开始进行32个内部时钟周期的A/D转换。第8个I/O CLOCK后,CS必须为高,或I/O CLOCK保持低电平,这种状态需要维持36个内部系统时钟周期以等待保持和转换工作的完成。如果CS为低时I/O CLOCK上出现一个有效干扰脉冲,则微处理器/控制器将与器件的I/O时序失去同步;若CS为高时出现一次有效低电平,则将使引脚重新初始化,从而脱离原转换过程。

  在36个内部系统时钟周期结束之前,实施步骤(1)-(4),可重新启动一次新的A/D转换,与此同时,正在进行的转换终止,此时的输出是前一次的转换结果而不是正在进行的转换结果。

  若要在特定的时刻采样模拟信号,应使第8个I/O CLOCK时钟的下降沿与该时刻对应,因为芯片虽在第4个I/O CLOCK时钟下降沿开始采样,却在第8个I/O CLOCK的下降沿开始保存。

3.7 ICL7660的介绍

ICL7660是Maxim公司生产的小功率极性反转电源转换器。该集成电路与TC7662ACPA MAX1044的内部电路及引脚功能完全一致,可以直接替换。 

引脚图:

引脚介绍:

引脚号引脚符号

引脚功能

1N.C空脚
2CAP+储能电容正极
3GND接地
4CAP-储能电容负极
5VOUT负电压输出端
6LV输入低压电压控制端,输入电压低于3.5V时,该脚接地,输入电压高于3.5V时,该脚必须悬空。

7OSC工作时钟输入端
8V+电源输入端
ICL7660作为电源极性转换器的典型应用电路:

3.8 1602液晶的介绍

本设计使用的1602液晶为5V电压驱动,带背光,可显示两行,每行16个字符,不能显示汉字,内置含128个字符的ASCII字符集字库,只有并行接口,无串行接口。

1602与单片机接口:

接口说明:

编号符号引脚说明编号符号引脚说明
1VSS

电源地9D2数据口
2VDD

电源正极10D3数据口
3VQ液晶显示对比度调节11D4数据口
4RS数据/命令选择端(H/L)

12D5数据口
5R/W读写选择端(H/L)

13D6数据口
6E使能信号14D7数据口
7D0数据口15BLA背光灯电源正极
8D1数据口16BLK背光灯电源负极
基本操作时序:

读状态 输入:RS=L,R/W=H,E=H                            输出:D0~D7=状态字

读数据 输入:RS=H,R/W=H,E=H                            输出:无

写指令 输入:RS=L,R/W=L,D0~D7=指令码,E=高脉冲    输出:D0~D7=数据

写数据 输入:RS=H,R/W=L,D0~D7=指令码,E=高脉冲    输出:无

1602写操作时序图:

4、单元电路设计

4.1 直流稳压电源电路的设计

本系统采用双电源供电,故应设计正、负两路直流稳压电源。

VEE

VCC

4.2 电源显示电路的设计

P3^4

P3^5

P3^3

正电源输入

负电源输入

由于TLC549输入电压范围不超过5V,而要测的直流电源电压达15V,可用变阻器分压,将电源电压缩小为1/4后输给TLC549。又由于TLC549只能输入正电压,对于负电压,可用一NE5532构成的反相器先将负电压转成正电压再加到TLC549的输入端。其中NE5532采用双电源供电效果比较理想,VEE由ICL7660构成的电源极性转换电路提供,将+5V转换为-5V。TLC549采集的数据通过1602液晶显示。

4.3 电阻测量电路的设计

P1^2

P1^5

P1^5接一按键,当其按下时,NE555的3引脚输出方波,3脚与P1^2相接,可通过程序测出其频率,进而求出Rx的值,显示在1602液晶屏上。

4.4 电容测量电路的设计

P1^3

P1^6

P1^6接一按键,当其按下时,NE555的3引脚输出方波,3脚与P1^3相接,可通过程序测出其频率,进而求出Cx的值,显示在1602液晶屏上。

4.5 电感测量电路的设计

P1^4

P1^7

由于电容三点式震荡电路产生的信号较小,所以先加一级单管放大,在跟比较器将正弦波转化成方波。P1^4接一按键,当其按下时,运放输出口输出方波,该口与P1^3相接,可通过程序测出其频率,进而求出Lx的值,显示在1602液晶屏上。

4.6 电阻、电容、电感显示电路的设计

采用1602液晶显示,耗能低,显示数值范围较大。

5、程序设计

5.1 中断程序流程图

5.2 主程序流程图

5.3程序代码

程序1:直流稳压电源的显示

//数显直流稳压电源程序

//头文件

#include

#include

//宏定义

#define uint unsigned int

#define uchar unsigned char

//定义变量

uchar table[6]="00.00V";    //液晶显示字符串

uchar num,temp;

uint voltage;                //被测电压的100倍赋给voltage

//TLC549、液晶位声明

sbit ad_clk=P3^3;            //TLC549时钟

sbit ad_out=P3^4;            //TLC549数据输出

sbit ad_cs=P3^5;            //TLC549片选

sbit lcden=P2^4;            //液晶使能端   

sbit lcdrs=P2^5;           //液晶数据命令选择端

//子函数声明

void delayms(uint xms);         //延时函数

void write_com(uchar com);     //液晶写命令函数

void write_data(uchar date);  //液晶写数据函数

void led_init();             //液晶初始化函数

void tlc549_ad();             //TLC549获取数据及显示数据函数

//主函数

void main()

{

    led_init();

    tlc549_ad();

}

//液晶初始化函数

void led_init()

{

  lcden=0;

  write_com(0x38);                        //设置16×2显示,5×7点阵,8位数据接口            

  write_com(0x0c);                        //设置开显示,不显示光标        

  write_com(0x06);                        //写一个字符后地址指针加1        

  write_com(0x01);                        //显示清0,数据指针清0        

}

//TLC549获取数据及液晶显示数据函数

void tlc549_ad()

{

  ad_cs=1;                                //ad_cs置高,片选无效

  ad_clk=0;        

  ad_cs=0;                                //ad_cs置低,片选有效,同时ad_out输出最高位

  _nop_();

  _nop_();                                //延时至少1.4μs

  for(num=0;num<8;num++)    /                /串行数据移位输出

  {

temp<<=1;

    temp|=ad_out;

    ad_clk=1;

    _nop_();

    ad_clk=0;

   }

   

   ad_cs=1;                                //ad_cs置高,片选无效

   

   for(num=17;num>0;num--)                //延时约17μs

     _nop_();

   voltage=(uint)(5.0/256*temp*400);            //串行数据转化为十进制输入电压,乘以400赋给voltage

   temp=0;                                //串行数据清0

   table[0]=voltage/1000+48;                //整数部分装入字符串

   table[1]=voltage%1000/100+48;

   table[3]=voltage%1000%100/10+48;        //小数部分装入字符串

   table[4]=voltage%1000%100%10+48;

   

   write_com(0x80);                        //设置数据地址指针

   for(num=0;num<6;num++)                //显示字符串table[6]

   {

     write_data(table[num]);

     delayms(5);

   }

   delayms(2000);                            //数据显示2s

}

//延时函数

void delayms(uint xms)

{

  uint i,j;

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

for(j=110;j>0;j--);

}

//液晶写命令函数

void write_com(uchar com) 

{

  lcdrs=0;

  P0=com;

  delayms(5);

  lcden=1;

  delayms(5);

  lcden=0;

}

//液晶写数据函数

void write_data(uchar date)     

{

  lcdrs=1;

  P0=date;

  delayms(5);

  lcden=1;

  delayms(5);

  lcden=0;

}

程序2:电阻、电容和电感测量值的显示

//简易电阻、电容、电感测量仪程序

//初始化

#include

#define uint unsigned int

#define uchar unsigned char

#define ulong unsigned long

#define    PI 3.1415926

uchar code table1[8]="Welcome!";

uchar table2[16]="f(Hz)=";

uchar table3[16]="R(Ohm)=";

uchar table4[16]="C(pF)=";

uchar table5[16]="L(uH)=";

uchar num,a=0,th0,tl0;

uint C,L;

ulong f,R;

sbit lcden=P2^4;                //液晶使能端   

sbit lcdrs=P2^5;               //液晶数据命令选择端

sbit key_R=P1^5;               //测量电阻按键

sbit key_C=P1^6;               //测量电容按键

sbit key_L=P1^7;               //测量电感按键

sbit R_out=P1^2;                //测量电阻信号输入

sbit C_out=P1^3;                //测量电容信号输入

sbit L_out=P1^4;                //测量电感信号输入

//声明子函数

void delayms(uint xms);            //延时函数

void write_com(uchar com);         //液晶写命令函数

void write_data(uchar date);        //液晶写数据函数     

void led_init();                //液晶初始化函数

void t_init();                    //定时器0初始化函数

void keyscan();                //键盘检测函数(确定被测元件为电阻、电容或电感)

void display_f(ulong f);          //频率显示函数

void display_R(ulong R);         //电阻显示函数

void display_C(uint C);          //电容显示函数

void display_L(uint L);             //电感显示函数

//主函数

void main()

{

  led_init();

  t_init();

  keyscan();

  write_com(0x01);

  while(1)

  {

    display_f(f);

    switch(a)

    {

      case 1:R=(ulong)(5000000.0/0.6931472/f-150+0.5);display_R(R);break;

      case 2:C=(int)(100000000.0/153/0.6931472/f+0.5);display_C(C);break;

      case 3:L=(int)(1000000000000.0/0.1/PI/PI/f/f+0.5);display_L(L);break;

      }

  }

}

//中断函数

void T0_count() interrupt 1

{

  switch(a)

  {

   case 1:while(R_out);

             while(!R_out);

          TH0=0;

          TL0=0;

          while(R_out);

          while(!R_out);

          th0=TH0;

          tl0=TL0;

          TR0=0;

          break;

   case 2:while(C_out);

             while(!C_out);

          TH0=0;

          TL0=0;

          while(C_out);

          while(!C_out);

          th0=TH0;

          tl0=TL0;

          TR0=0;

          break;

    case 3:while(L_out);

             while(!L_out);

          TH0=0;

          TL0=0;

          while(L_out);

          while(!L_out);

          th0=TH0;

          tl0=TL0;

          TR0=0;

          break;

   }

   f=1000000.0/1.085069/(th0*256+tl0)+0.5;

}

//延时函数

void delayms(uint xms)    

{

  uint i,j;

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

for(j=110;j>0;j--);

}

//液晶写命令函数

void write_com(uchar com) 

{

  lcdrs=0;

  P0=com;

  delayms(5);

  lcden=1;

  delayms(5);

  lcden=0;

}

//液晶写数据函数

void write_data(uchar date)     

{

  lcdrs=1;

  P0=date;

  delayms(5);

  lcden=1;

  delayms(5);

  lcden=0;

}

//液晶初始化函数

void led_init()

{

  lcden=0;

  write_com(0x38);            //设置16×2显示,5×7点阵,8位数据接口            

  write_com(0x0c);            //设置开显示,不显示光标        

  write_com(0x06);            //写一个字符后地址指针加1        

  write_com(0x01);            //显示清0,数据指针清0        

  write_com(0x80);            //显示欢迎界面

  for(num=0;num<8;num++)    

  {

     write_data(table1[num]);

     delayms(5);

  }

}

//定时器0初始化函数

void t_init()

{

  TMOD=0x01;                //设置定时器0工作方式1(M1M0=0x0001)                                          

  TH0=0;                    //装初值            

  TL0=0;

  EA=1;                        //开总中断            

  ET0=1;                    //开定时器0中断

  TR0=1;                    //启动定时器0

}

//键盘检测函数(确定被测元件为电阻、电容或电感)

void keyscan()    

{

  if(key_R==0)

  {

    delayms(10);

    if(key_R==0)

      a=1;

  }

  else

    if(key_C==0)

    {

      delayms(10);

      if(key_C==0)

        a=2;

    }

      else

      if(key_L==0)

      {

        delayms(10);

        if(key_L==0)

          a=3;

      }

      else

        while(key_R&&key_C&&key_L);        //按键按下时退出死循环

}

//频率显示函数

void display_f(ulong f)  

{

  uchar count=0;

  ulong f0;

  f0=f;

  while(f)

  {

     f=f/10;

     count++;

  }

for(num=5+count;num>5;num--)

  {

      table2[num]=f0%10+48;

    f0=f0/10;

  }

  write_com(0x80);

for(num=0;num<6+count;num++)

  {

    write_data(table2[num]);

    delayms(5);

  }

}

//电阻显示函数

void display_R(ulong R) 

{

  uchar count=0;

  ulong R0;

  R0=R;

  while(R)

  {

     R=R/10;

     count++;

  }

for(num=6+count;num>6;num--)

  {

      table3[num]=R0%10+48;

    R0=R0/10;

  }

  write_com(0x80+0x40);

for(num=0;num<7+count;num++)

  {

    write_data(table3[num]);

    delayms(5);

  }

}

//电容显示函数

void display_C(uint C)  

{

  uchar count=0;

  uint C0;

  C0=C;

  while(C)

  {

     C=C/10;

     count++;

  }

for(num=5+count;num>5;num--)

  {

      table4[num]=C0%10+48;

    C0=C0/10;

  }

  write_com(0x80+0x40);

for(num=0;num<6+count;num++)

  {

    write_data(table4[num]);

    delayms(5);

  }

}

//电感显示函数

void display_L(uint L) 

{

  uchar count=0;

  uint L0;

  L0=L;

  while(L)

  {

     L=L/10;

     count++;

  }

for(num=5+count;num>5;num--)

  {

      table5[num]=L0%10+48;

    L0=L0/10;

  }

  write_com(0x80+0x40);

for(num=0;num<6+count;num++)

  {

    write_data(table5[num]);

    delayms(5);

  }

}

5.4元件清单

元件型号位号数量
单片机STCC52RCU11
排阻A103JR31
电位器10KΩ

R2,R13,R17,R18

4
晶振11.0592MX11
电解电容25V,10uF

C31
瓷片电容103(0.01uF)

C1,C2,C11

3
电阻10KΩ

R1,R13,R18

3
按键J1,J2,J3,J4

4
液晶1602U21
555定时器

NE555A1,A2

2
电阻300Ω

R41
电阻510KΩ

R5,R6

2
瓷片电容104(0.1uF)

C4,C5,C6,C7,C8,C9

6
电阻100KΩ

R7,R9

2
电解电容50V,22uF

C101
三极管S9018(NPN型)

Q1,Q2,Q3

3
电阻2KΩ

R101
电阻1KΩ

R8,R11,R14

3
电解电容50V,47uF

C12,C13

2
电阻39KΩ

R12,R19

2
电阻51Ω

R15,R16

2
电解电容25V,470uF

C141
运放NE5532U31
6、仿真结果

6.1 电阻测量电路仿真

仿真电路图:

输出波形:

6.2 电容测量电路仿真

仿真电路图:

输出波形:

6.3 电感测量电路仿真

仿真电路图:

输出波形:

7、调试过程

7.1 电阻、电容和电感测量电路调试

接通电源,用示波器观察输出波形,若为方波,则电路焊接无误,否则检查电路。

在调试过程中发现,若改变电源电压,输出方波的频率会发生变化,计算出的数值存在一定误差,当VCC为3.25V左右时误差较小。

7.2 液晶显示电路调试

将测量电路的输出分别与单片机的P1^5、P1^6、P1^7相接,观察液晶是否显示测量结果。

在调试过程中发现,电阻、电容的测量误差较小,由于电容三点式震荡电路的频率不稳定,电感测量的误差较大。 

小结

文档

简易电阻、电容和电感测试仪设计.(DOC)

元器件参数测量仪的设计一、课程目的1.加深对电路分析、模拟电路、数字逻辑电路、微处理器等相关课程理论知识的理解;2.掌握电子系统设计的基本方法和一般规则;3.熟练掌握电路仿真方法;4.掌握电子系统的制作和调试方法;二、设计任务1.设计并制作一个元器件参数测量仪。2.(基本要求)电阻阻值测量,范围:100欧~1M欧;3.(基本要求)电容容值测量,范围:100pF~10000pF;4.(基本要求)测量精度:正负5%;5.(基本要求)4位显示对应数值,并有发光二极管分别指示所测器件类型;6.(提高要
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top