简易电阻电容和电感测试仪设计.docx
《简易电阻电容和电感测试仪设计.docx》由会员分享,可在线阅读,更多相关《简易电阻电容和电感测试仪设计.docx(34页珍藏版)》请在冰豆网上搜索。
简易电阻电容和电感测试仪设计
元器件参数测量仪的设计
一、课程目的
1.加深对电路分析、模拟电路、数字逻辑电路、微处理器等相关课程理论知识的理解;
2.掌握电子系统设计的根本方法和一般规则;
3.熟练掌握电路仿真方法;
4.掌握电子系统的制作和调试方法;
二、设计任务
1.设计并制作一个元器件参数测量仪。
2.〔根本要求〕电阻阻值测量,*围:
100欧~1M欧;
3.〔根本要求〕电容容值测量,*围:
100pF~10000pF;
4.〔根本要求〕测量精度:
正负5%;
5.〔根本要求〕4位显示对应数值,并有发光二极管分别指示所测器件类型;
6.〔提高要求〕增加电感参数的测量;
7.〔提高要求〕增加三极管直流放大倍数的测量;
8.〔提高要求〕扩大量程;
9.〔提高要求〕提高测量精度;
10.〔提高要求〕测量量程自动切换;
三、任务说明:
电阻电容电感参数测量常用电桥法,该方法测量精度,但是电路复杂。
也可为简化起见,电阻测量也可采用简单的恒流法,电容采用555定时电路;
1、绪论
在现代化生产、学习、实验当中,往往需要对*个元器件的具体参数进展测量,在这之中万用表以其简单易用,功耗低等优点被大多数人所选择使用。
然而万用表有一定的局限性,比方:
不能够测量电感,而且容量稍大的电容也显得无能为力。
所以制作一个简单易用的电抗元器件测量仪是很有必要的。
现在国内外有很多仪器设备公司都致力于低功耗手持式电抗元器件测量仪的研究与制作,而且精度越来越高,低功耗越来越低,体积小越来越小一直是他们不断努力的方向。
该类仪器的根本工作原理是将电阻器阻值的变化量,电容器容值的变化量,电感器电感量的变化量通过一定的调理电路统统转换为电压的变化量或者频率的变化量等等,再通过高精度AD采集或者频率检测计算等方法来得到确定的数字量的值,进而确定相应元器件的具体参数。
2、电路方案的比拟与论证
2.1电阻测量方案
方案一:
利用串联分压原理的方案
图2-1串联分压电路图
根据串联电路的分压原理可知,串联电路上电压与电阻成正比关系。
测量待测电阻R*和电阻R0上的电压,记为U*和U0.
方案二:
利用直流电桥平衡原理的方案
图2-2直流电桥平衡电路图
根据电路平衡原理,不断调节电位器R3,使得电表指针指向正中间,再测量电位器电阻值。
方案三:
利用555构成单稳态的方案
图2-3555定时器构成单稳态电路图
根据555定时器构成单稳态,产生脉冲波形,通过单片机读取上下电平得出频率,通过公式换算得到电阻阻值。
由
得
上述三种方案从对测量精度要求而言,方案一的测量精度极差,方案二需要测量的电阻值多,而且测量调节麻烦,不易操作与数字化,相比拟而言,方案三还是比拟符合要求的,由于是通过单片机读取转化,准确度会明显的提高。
故本设计选择了方案三。
2.2电容测量方案
方案一:
利用串联分压原理的方案〔原理图同图2-1〕
通过电容换算的容抗跟电阻分压,通过测量电压值,再经过公式换算得到电容的值。
原理同电阻测量的方案一。
方案二:
利用交流电桥平衡原理的方案〔原理图同图2-2〕
通过调节Z1、Z2使电桥平衡。
这时电表的读数为零。
通过读取Z1、Z2、Zn的值,即可得到被测电容的值。
方案三:
利用555构成单稳态原理的方案
图2-4555定时器构成单稳态电路图
根据555定时器构成单稳态,产生脉冲波形,通过单片机读取上下电平得出频率,通过公式换算得到电容值。
由
假设R1=R2,得
上述三种方案从对测量精度要求而言,方案一的测量精度极差,方案二需要测量的电容值多,而且测量调节麻烦、电容不易测得准确值,不易操作与数字化,相比拟而言,方案三还是比拟符合要求的,由于是通过单片机读取转化,准确度会明显的提高。
故本设计选择了方案三。
2.3电感测量方案
方案一:
利用交流电桥平衡原理的方案〔原理图同图2-2〕
方案二:
利用电容三点式正弦波震荡原理的方案
图2-5电容三点式正弦波震荡电路图
由
得
上述两种方案从对测量精度要求而言,方案二需要测量的电感值多,而且测量调节麻烦、电感不易测得准确值,不易操作与数字化,相比拟而言,方案二还是比拟符合要求的,由于是通过单片机读取转化,准确度会明显的提高。
故本设计选择了方案二。
3、核心元器件介绍
3.1LM317的介绍
LM317可输出连续可调的正电压,可调电压*围1.2V—37V,最大输出电流为1.5A,内部含有过流、过热保护电路,具有平安可靠、应用方便、性能优良等特点。
引脚图:
典型电路:
R1、R2组成电压输出调节电路,输出电压UO表达式为:
V
电容C2与R2并联组成滤波电路,减小输出的纹波电压。
二极管D2的作用是防止输出端与地短路时,电容C2上的电压损坏稳压器。
3.2LM337的介绍
与LM317正好相反,LM337可输出连续可调的负电压,可调电压*围1.2V—37V,最大输出电流为1.5A,内部含有过流、过热保护电路,具有平安可靠、应用方便、性能优良等特点。
引脚图:
典型电路:
R1、R2组成电压输出调节电路,输出电压UO表达式为:
V
3.3NE555的介绍
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.4NE5532的介绍
NE5532是一种双运放高性能低噪声运算放大器。
相比拟大多数标准运算放大器,如1458,它显示出更好的噪声性能,提高输出驱动能力和相当高的小信号和电源带宽。
这使该器件特别适合应用在高品质和专业音响设备,仪器和控制电路和通道放大器。
如果噪音非常最重要的,因此建议使用5532A版,因为它能保证噪声电压指标。
NE5532特点:
•小信号带宽:
10MHZ
•输出驱动能力:
600Ω,10V〔有效值〕
•输入噪声电压:
5nV/√Hz(典型值)
•直流电压增益:
50000
•交流电压增益:
2200-10KHZ
•功率带宽:
140KHZ
•转换速率:
9V/μs
•大的电源电压*围:
±3V-±20V
•单位增益补偿
NE5532引脚图:
NE5532内部原理图:
3.5STC89C52的介绍
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万片/人/天
*可供给内部集成MA*810专用复位电路的单片机
STC89C52单片机最小系统原理图:
3.6TLC549的介绍
TLC549是美国**仪器公司生产的8位串行A/D转换器芯片,可与通用微处理器、控制器通过CLK、CS、DATAOUT三条口线进展串行接口。
具有4MHz片内系统时钟和软、硬件控制电路,转换时间最长17μs,TLC549为40000次/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/OCLOCK是独立工作的,无须特殊的速度或相位匹配。
其工作时序如图2所示。
当CS为高时,数据输出(DATAOUT)端处于高阻状态,此时I/OCLOCK不起作用。
这种CS控制作用允许在同时使用多片TLC549时,共用I/OCLOCK,以减少多路(片)A/D并用时的I/O控制端口。
通常的控制时序:
(1)将CS置低。
内部电路在测得CS下降沿后,再等待两个内部时钟上升沿和一个下降沿后,然后确认这一变化,最后自动将前一次转换结果的最高位(D7)位输出到DATAOUT端上。
(2)前四个I/OCLOCK周期的下降沿依次移出第2、3、4和第5个位(D6、D5、D4、D3),片上采样保持电路在第4个I/OCLOCK下降沿开场采样模拟输入。
(3)接下来的3个I/OCLOCK周期的下降沿移出第6、7、8(D2、D1、D0)个转换位,
(4)最后,片上采样保持电路在第8个I/OCLOCK周期的下降沿将移出第6、7、8(D2、D1、D0)个转换位。
保持功能将持续4个内部时钟周期,然后开场进展32个内部时钟周期的A/D转换。
第8个I/OCLOCK后,CS必须为高,或I/OCLOCK保持低电平,这种状态需要维持36个内部系统时钟周期以等待保持和转换工作的完成。
如果CS为低时I/OCLOCK上出现一个有效干扰脉冲,则微处理器/控制器将与器件的I/O时序失去同步;假设CS为高时出现一次有效低电平,则将使引脚重新初始化,从而脱离原转换过程。
在36个内部系统时钟周期完毕之前,实施步骤
(1)-(4),可重新启动一次新的A/D转换,与此同时,正在进展的转换终止,此时的输出是前一次的转换结果而不是正在进展的转换结果。
假设要在特定的时刻采样模拟信号,应使第8个I/OCLOCK时钟的下降沿与该时刻对应,因为芯片虽在第4个I/OCLOCK时钟下降沿开场采样,却在第8个I/OCLOCK的下降沿开场保存。
3.7ICL7660的介绍
ICL7660是Ma*im公司生产的小功率极性反转电源转换器。
该集成电路与TC7662ACPAMA*1044的内部电路及引脚功能完全一致,可以直接替换。
引脚图:
引脚介绍:
引脚号
引脚符号
引脚功能
1
N.C
空脚
2
CAP+
储能电容正极
3
GND
接地
4
CAP-
储能电容负极
5
VOUT
负电压输出端
6
LV
输入低压电压控制端,输入电压低于3.5V时,该脚接地,输入电压高于3.5V时,该脚必须悬空。
7
OSC
工作时钟输入端
8
V+
电源输入端
ICL7660作为电源极性转换器的典型应用电路:
3.81602液晶的介绍
本设计使用的1602液晶为5V电压驱动,带背光,可显示两行,每行16个字符,不能显示汉字,内置含128个字符的ASCII字符集字库,只有并行接口,无串行接口。
1602与单片机接口:
接口说明:
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据口
2
VDD
电源正极
10
D3
数据口
3
VQ
液晶显示比照度调节
11
D4
数据口
4
RS
数据/命令选择端〔H/L〕
12
D5
数据口
5
R/W
读写选择端〔H/L〕
13
D6
数据口
6
E
使能信号
14
D7
数据口
7
D0
数据口
15
BLA
背光灯电源正极
8
D1
数据口
16
BLK
背光灯电源负极
根本操作时序:
读状态输入:
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电源显示电路的设计
由于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相接,可通过程序测出其频率,进而求出R*的值,显示在1602液晶屏上。
4.4电容测量电路的设计
P1^3
P1^6
P1^6接一独立按键,当其按下时,NE555的3引脚输出方波,3脚与P1^3相接,可通过程序测出其频率,进而求出C*的值,显示在1602液晶屏上。
4.5电感测量电路的设计
P1^4
P1^7
由于电容三点式震荡电路产生的信号较小,所以先加一级单管放大,在跟比拟器将正弦波转化成方波。
P1^4接一独立按键,当其按下时,运放输出口输出方波,该口与P1^3相接,可通过程序测出其频率,进而求出L*的值,显示在1602液晶屏上。
4.6电阻、电容、电感显示电路的设计
采用1602液晶显示,耗能低,显示数值*围较大。
5、程序设计
5.1中断程序流程图
5.2主程序流程图
5.3程序代码
程序1:
直流稳压电源的显示
//数显直流稳压电源程序
//头文件
*include
*include
//宏定义
*defineuintunsignedint
*defineucharunsignedchar
//定义变量
uchartable[6]="00.00V";//液晶显示字符串
ucharnum,temp;
uintvoltage;//被测电压的100倍赋给voltage
//TLC549、液晶位声明
sbitad_clk=P3^3;//TLC549时钟
sbitad_out=P3^4;//TLC549数据输出
sbitad_cs=P3^5;//TLC549片选
sbitlcden=P2^4;//液晶使能端
sbitlcdrs=P2^5;//液晶数据命令选择端
//子函数声明
voiddelayms(uint*ms);//延时函数
voidwrite_(uchar);//液晶写命令函数
voidwrite_data(uchardate);//液晶写数据函数
voidled_init();//液晶初始化函数
voidtlc549_ad();//TLC549获取数据及显示数据函数
//主函数
voidmain()
{
led_init();
tlc549_ad();
}
//液晶初始化函数
voidled_init()
{
lcden=0;
write_(0*38);//设置16×2显示,5×7点阵,8位数据接口
write_(0*0c);//设置开显示,不显示光标
write_(0*06);//写一个字符后地址指针加1
write_(0*01);//显示清0,数据指针清0
}
//TLC549获取数据及液晶显示数据函数
voidtlc549_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_(0*80);//设置数据地址指针
for(num=0;num<6;num++)//显示字符串table[6]
{
write_data(table[num]);
delayms(5);
}
delayms(2000);//数据显示2s
}
//延时函数
voiddelayms(uint*ms)
{
uinti,j;
for(i=*ms;i>0;i--)
for(j=110;j>0;j--);
}
//液晶写命令函数
voidwrite_(uchar)
{
lcdrs=0;
P0=;
delayms(5);
lcden=1;
delayms(5);
lcden=0;
}
//液晶写数据函数
voidwrite_data(uchardate)
{
lcdrs=1;
P0=date;
delayms(5);
lcden=1;
delayms(5);
lcden=0;
}
程序2:
电阻、电容和电感测量值的显示
//简易电阻、电容、电感测量仪程序
//初始化
*include
*defineuintunsignedint
*defineucharunsignedchar
*defineulongunsignedlong
*definePI3.1415926
ucharcodetable1[8]="Wele!
";
uchartable2[16]="f(Hz)=";
uchartable3[16]="R(Ohm)=";
uchartable4[16]="C(pF)=";
uchartable5[16]="L(uH)=";
ucharnum,a=0,th0,tl0;
uintC,L;
ulongf,R;
sbitlcden=P2^4;//液晶使能端
sbitlcdrs=P2^5;//液晶数据命令选择端
sbitkey_R=P1^5;//测量电阻按键
sbitkey_C=P1^6;//测量电容按键
sbitkey_L=P1^7;//测量电感按键
sbitR_out=P1^2;//测量电阻信号输入
sbitC_out=P1^3;//测量电容信号输入
sbitL_out=P1^4;//测量电感信号输入
//声明子函数
voiddelayms(uint*ms);//延时函数
voidwrite_(uchar);//液晶写命令函数
voidwrite_data(uchardate);//液晶写数据函数
voidled_init();//液晶初始化函数
voidt_init();//定时器0初始化函数
voidkeyscan();//键盘检测函数(确定被测元件为电阻、电容或电感)
voiddisplay_f(ulongf);//频率显示函数
voiddisplay_R(ulongR);//电阻显示函数
voiddisplay_C(uintC);//电容显示函数
voiddisplay_L(uintL);//电感显示函数
//主函数
voidmain()
{
led_init();
t_init();
keyscan();
write_(0*01);
while
(1)
{
display_f(f);
switch(a)
{
case1:
R=(ulong)(5000000.0/0.6931472/f-150+0.5);display_R(R);break;
case2:
C=(int)(100000000.0/153/0.6931472/f+0.5);display_C(C);break;
case3:
L=(int)(00.0/0.1/PI/PI/f/f+0.5);display_L(L);break;
}
}
}
//中断函数
voidT0_count()interrupt1
{
switch(a)
{
case1:
while(R_out);
while(!
R_out);
TH0=0;
TL0=0;
while(R_out);
while(!
R_out);
th0=TH0;
tl0=TL0;
T