1、元器件参数测量仪的设计一、课程目的1加深对电路分析、模拟电路、数字逻辑电路、微处理器等相关课程理论知识的理解;2掌握电子系统设计的基本方法和一般规则;3熟练掌握电路仿真方法;4掌握电子系统的制作和调试方法;二、 设计任务1 设计并制作一个元器件参数测量仪。2 (基本要求)电阻阻值测量,范围:100 欧1M 欧;3 (基本要求)电容容值测量,范围:100pF10 000pF;4 (基本要求)测量精度:正负 5% ;5 (基本要求)4 位显示对应数值,并有发光二极管分别指示所测器件类型;6 (提高要求)增加电感参数的测量;7 (提高要求)增加三极管直流放大倍数的测量;8 (提高要求)扩大量程;9
2、(提高要求)提高测量精度;10 (提高要求)测量量程自动切换;三、任务说明:电阻电容电感参数测量常用电桥法,该方法测量精度,但是电路复杂。也可为简化起见,电阻测量也可采用简单的恒流法,电容采用 555 定时电路;1、绪论在现代化生产、学习、实验当中,往往需要对某个元器件的具体参数进行测量,在这之中万用表以其简单易用,功耗低等优点被大多数人所选择使用。然而万用表有一定的局限性,比如:不能够测量电感,而且容量稍大的电容也显得无能为力。所以制作一个简单易用的电抗元器件测量仪是很有必要的。现在国内外有很多仪器设备公司都致力于低功耗手持式电抗元器件测量仪的研究与制作,而且精度越来越高,低功耗越来越低,体
3、积小越来越小一直是他们不断努力的方向。该类仪器的基本工作原理是将电阻器阻值的变化量,电容器容值的变化量,电感器电感量的变化量通过一定的调理电路统统转换为电压的变化量或者频率的变化量等等,再通过高精度 AD 采集或者频率检测计算等方法来得到确定的数字量的值,进而确定相应元器件的具体参数。12、电路方案的比较与论证2.1 电阻测量方案方案一:利用串联分压原理的方案图 2-1 串联分压电路图根据串联电路的分压原理可知,串联电路上电压与电阻成正比关系。测量待测电阻Rx和已知电阻 R0上的电压,记为 Ux和 U0. 0Rx方案二:利用直流电桥平衡原理的方案 图 2-2 直流电桥平衡电路图根据电路平衡原理
4、,不断调节电位器 R3,使得电表指针指向正中间,再测量电位器电阻值。 132xVCC GNDRx R0GVCC GNDRxR1 R2R32方案三:利用 555 构成单稳态的方案 图 2-3 555 定时器构成单稳态电路图根据 555 定时器构成单稳态,产生脉冲波形,通过单片机读取高低电平得出频率,通过公式换算得到电阻阻值。 由 CRfx*)2(ln1得 l*1fRx上述三种方案从对测量精度要求而言,方案一的测量精度极差,方案二需要测量的电阻值多,而且测量调节麻烦,不易操作与数字化,相比较而言,方案三还是比较符合要求的,由于是通过单片机读取转化,精确度会明显的提高。故本设计选择了方案三。2.2
5、电容测量方案方案一:利用串联分压原理的方案(原理图同图 2-1)通过电容换算的容抗跟已知电阻分压,通过测量电压值,再经过公式换算得到电容的3值。原理同电阻测量的方案一。方案二:利用交流电桥平衡原理的方案(原理图同图 2-2))(2)(21 221 xjxj eZeZ通过调节 Z1、Z2 使电桥平衡。这时电表的读数为零。通过读取 Z1、Z2 、Zn 的值,即可得到被测电容的值。方案三:利用 555 构成单稳态原理的方案图 2-4 555 定时器构成单稳态电路图根据 555 定时器构成单稳态,产生脉冲波形,通过单片机读取高低电平得出频率,通过公式换算得到电容值。由 xCRf*)2(ln1若 R1=
6、R2,得 1l3fx上述三种方案从对测量精度要求而言,方案一的测量精度极差,方案二需要测量的电容值多,而且测量调节麻烦、电容不易测得准确值,不易操作与数字化,相比较而言,4方案三还是比较符合要求的,由于是通过单片机读取转化,精确度会明显的提高。故本设计选择了方案三。2.3 电感测量方案方案一:利用交流电桥平衡原理的方案(原理图同图 2-2)方案二:利用电容三点式正弦波震荡原理的方案 图 2-5 电容三点式正弦波震荡电路图由xLCf*212得 21*)(fLx5上述两种方案从对测量精度要求而言,方案二需要测量的电感值多,而且测量调节麻烦、电感不易测得准确值,不易操作与数字化,相比较而言,方案二还
7、是比较符合要求的,由于是通过单片机读取转化,精确度会明显的提高。故本设计选择了方案二。3、核心元器件介绍3.1 LM317 的介绍LM317 可输出连续可调的正电压,可调电压范围 1.2V37V,最大输出电流为1.5A,内部含有过流、过热保护电路,具有安全可靠、应用方便、性能优良等特点。引脚图:典型电路:R1、 R2组成电压输出调节电路,输出电压 UO表达式为:Vi VO6V)1(25.2RUO电容 C2与 R2并联组成滤波电路,减小输出的纹波电压。二极管 D2的作用是防止输出端与地短路时,电容 C2上的电压损坏稳压器。3.2 LM337 的介绍与 LM317 正好相反,LM337 可输出连续
8、可调的负电压,可调电压范围 1.2V37V,最大输出电流为 1.5A,内部含有过流、过热保护电路,具有安全可靠、应用方便、性能优良等特点。引脚图:典型电路:R1、 R2组成电压输出调节电路,输出电压 UO表达式为:V)1(25.-2R73.3 NE555 的介绍555 集成电路开始是作定时器应用的,所以叫做 555 定时器或 555 时基电路。但后来经过开发,它除了作定时延时控制外,还可用于调光、调温、调压、调速等多种控制及计量检测。此外,还可以组成脉冲震荡、单稳、双稳和脉冲调制电路,用于交流信号源、电源变换、频率变换、脉冲调制等。它由于工作可靠、使用方便、价格低廉,目前被用于各种电子产品中,
9、555 集成电路内部有几十个元器件,有分压器、比较器、基本 R-S 触发器、放电管以及缓冲器等,电路比较复杂,是模拟电路和数字电路的混合体。555 集成电路内部结构图:引脚图:8管脚介绍:555 集成电路是 8 脚封装,双列直插型,如图(A )所示,按输入输出的排列可看成如图(B )所示。其中 6 脚称阈值端(TH) ,是上比较器的输入;2 脚称触发端,是下比较器的输入;3 脚是输出端(V O) ,它有 0 和 1 两种状态,由输入端所加电平决定;7 脚是放电端(DIS) ,它是内部放电管的输出,有悬空和接地两种状态,也是由输入端的状态决定;4 脚是复位端(MR) ,加上低电平时可使输出为低电
10、平;5 脚是控制电压端(V C) ,可用它改变上下触发电平值;8 脚是电源端,1 脚是接地端。典型应用555 震荡器电路:由 555 构成的多谐振荡器如图(a)所示,输出波形如图(b)所示。3.4 NE5532 的介绍NE5532 是一种双运放高性能低噪声运算放大器。 相比较大多数标准运算放大器,如1458,它显示出更好的噪声性能,提高输出驱动能力和相当高的小信号和电源带宽。这使该器件特别适合应用在高品质和专业音响设备,仪器和控制电路和电话通道放大器。9如果噪音非常最重要的,因此建议使用 5532A 版,因为它能保证噪声电压指标。NE5532 特点:小信号带宽:10MHZ输出驱动能力:600,
11、10V(有效值) 输入噪声电压:5nV/Hz(典型值) 直流 电压增益:50000 交流电压增益:2200-10KHZ功率带宽: 140KHZ转换速率: 9V/s大的电源电压范围:3V-20V 单位增益补偿NE5532 引脚图:NE5532 内部原理图:103.5 STC89C52 的介绍STC 单片机的优点:加密性强,很难解密或破解超强抗干扰:1 、高抗静电(ESD 保护) 2 、轻松过 2KV/4KV 快速脉冲干扰(EFT 测试) 3 、宽电压,不怕电源抖动 4 、宽温度范围,-4085 5 、I/O 口经过特殊处理 6 、单片机内部的电源供电系统经过特殊处理 7 、单片机内部的时钟电路经
12、过特殊处理 8 、单片机内部的复位电路经过特殊处理 9 、单片机内部的看门狗电路经过特殊处理 超低功耗:1 、掉电模式:典型功耗#include /宏定义#define uint unsigned int#define uchar unsigned char/定义变量uchar table6=“00.00V“; /液晶显示字符串uchar num,temp;uint voltage; /被测电压的 100 倍赋给 voltage/TLC549、液晶位声明sbit ad_clk=P33; /TLC549 时钟sbit ad_out=P34; /TLC549 数据输出sbit ad_cs=P35;
13、 /TLC549 片选24sbit lcden=P24; /液晶使能端 sbit lcdrs=P25; /液晶数据命令选择端/子函数声明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;
14、write_com(0x38); /设置 162 显示,57 点阵,8 位数据接口write_com(0x0c); /设置开显示,不显示光标write_com(0x06); /写一个字符后地址指针加 1write_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.4sfor(num=0;num0;num-) /延时约 17s_nop
15、_();voltage=(uint)(5.0/256*temp*400); /串行数据转化为十进制输入电压,乘以 400 赋给voltagetemp=0; /串行数据清 0table0=voltage/1000+48; /整数部分装入字符串table1=voltage%1000/100+48;table3=voltage%1000%100/10+48; /小数部分装入字符串table4=voltage%1000%100%10+48;write_com(0x80); /设置数据地址指针for(num=0;num0;i-)for(j=110;j0;j-);/液晶写命令函数void write_co
16、m(uchar com) lcdrs=0;P0=com;delayms(5);lcden=1;delayms(5);lcden=0;26/液晶写数据函数void write_data(uchar date) lcdrs=1;P0=date;delayms(5);lcden=1;delayms(5);lcden=0;27程序 2:电阻、电容和电感测量值的显示/简易电阻、电容、电感测量仪程序/初始化#include #define uint unsigned int#define uchar unsigned char#define ulong unsigned long#define PI 3.
17、1415926uchar code table18=“Welcome!“;uchar table216=“f(Hz)=“;uchar table316=“R(Ohm)=“;uchar table416=“C(pF)=“;uchar table516=“L(uH)=“;uchar num,a=0,th0,tl0;uint C,L;ulong f,R;sbit lcden=P24; /液晶使能端 sbit lcdrs=P25; /液晶数据命令选择端sbit key_R=P15; /测量电阻按键sbit key_C=P16; /测量电容按键sbit key_L=P17; /测量电感按键sbit R_
18、out=P12; /测量电阻信号输入sbit C_out=P13; /测量电容信号输入sbit L_out=P14; /测量电感信号输入/声明子函数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); /频率显示函数
19、void display_R(ulong R); /电阻显示函数void display_C(uint C); /电容显示函数void display_L(uint L); /电感显示函数/主函数void main()28led_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
20、);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 1switch(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_
21、out);th0=TH0;tl0=TL0;TR0=0;break;case 3:while(L_out);while(!L_out);TH0=0;29TL0=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;i0;i-)for(j=110;j0;j-);/液晶写命令函数void write_com(uchar com) lcdrs=0;P0=com;delayms
22、(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;30write_com(0x38); /设置 162 显示,57 点阵,8 位数据接口write_com(0x0c); /设置开显示,不显示光标write_com(0x06); /写一个字符后地址指针加 1write_com(0x01); /显示清 0,数据指针清 0write_com(0x80
23、); /显示欢迎界面for(num=0;num8;num+)write_data(table1num);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;elseif(key_C=0)delayms(10);if(key_C=0)a=2;elseif(key_L=0)delayms(10);if(key_L=0)