555定时器应用--[测电容-电阻-电感]

上传人:积*** 文档编号:123047800 上传时间:2022-07-21 格式:DOCX 页数:30 大小:1.03MB
收藏 版权申诉 举报 下载
555定时器应用--[测电容-电阻-电感]_第1页
第1页 / 共30页
555定时器应用--[测电容-电阻-电感]_第2页
第2页 / 共30页
555定时器应用--[测电容-电阻-电感]_第3页
第3页 / 共30页
资源描述:

《555定时器应用--[测电容-电阻-电感]》由会员分享,可在线阅读,更多相关《555定时器应用--[测电容-电阻-电感](30页珍藏版)》请在装配图网上搜索。

1、简易电阻、电感和电容的测试仪摘 要:本系统以MSP430单片机作为控制核心,由555构成多谐振荡电路实现对电阻和电容的测量,采用电容三点式振荡电路实现对电感的测量。控制继电器实现电阻、电容测量的档位自动切换,使测量精度满足指标规定;为使单片机精确测量待测频率,在电感测量模块中先进行整形和分频,然后测量,以提高测量精度。该系统设计简朴,成本低,操作简朴,在测量范畴内误差很小,经电路仿真分析可达到题目规定的指标。核心词:555多谐振荡电路,电容三点式振荡,MSP430单片机,继电器一、系统方案论证1.1 电阻测量模块方案论证方案一:伏安法。如图1-1所示,分别用电流表和电压表测出通过电阻的电流和电

2、阻两端的电压,根据公式R=U/I求得电阻。这种测量措施虽然电路简朴,但要同步测出两个模拟量,不易实现自动化,而电压表与电流表都存在内阻,测量误差大,精度不高。A RxV图1-1 伏安法测量原理 方案二:电阻分压法。如图1-2所示,将待测电阻Rx和基准电阻R串联在电路中,由于电阻分压的作用,当串联到电路上的电阻Rx的值不同步其Rx上分的压降也不同。通过测量上Vx便可由公式 求得。RxRGNDVccVx图1-2 电阻分压电路该方案原理简朴,理论上只要参照电阻精确,就可以测量任何阻值的电阻,但事实上由于AD的辨别率有限,当待测电阻很大或是很小时就很难测出Rx上的压降Vx,从而使测量范畴缩小,要提高测

3、量范畴和精度就需要对电阻分档测试和提高AD的辨别率。这无疑会增长系统的复杂性和成本,因此也不可行。方案三:RC和555定期器构成的多谐振荡电路。诸多仪表都是把较难测量的物理量转变成精度较高且较容易测量的物理量。基于此思路,我们把电阻阻值转换成频率信号,通过测量输出振荡频率的大小即可求得电阻的大小,如果固定电阻值,该方案硬件电路实现简朴,通过选择合适的电容值即可获得合适的频率范畴,同步输出波形为TTL电平的方波信号因此不需要再对信号做电平变换,即可直接供数字电路解决,这种解决一方面便于使仪表实现智能化,另一方面也避免了由指针读数引起的误差。综合比较,基于对精度规定较高,并从测量时操作的简便限度考

4、虑,本设计采用方案三,用RC和555定期器构成的多谐振荡电路来实现规定。1.2 电容测量模块方案论证方案一:运用RC充电原理,根据电路原理电容充电的时间常数=RC。通过选择合适的参照电容,通过测量充电到一种固定电压时所需的时间即可以测量出相应的电容大小。此方案下测量大电容较准,但在电容容量较小时,电容在极短的时间内就能布满,即充电时间较短,因此很难测准。方案二:电桥法是另一种典型的措施,如图1-3所示,可运用交流电桥来测量电容。Z1Z2GNDGVCCZnZx图1-3 直流电桥平衡电路电桥的平衡条件为: 通过调节阻抗Z1、Z2使电桥平衡,这时电表读数是零。根据平衡条件及某些已知的电路参数就可以求

5、出被测参数。用这种测量措施,参数的值还要通过联立方程求解,调节电阻值一般只能手动,电桥平衡的鉴别亦难以用简朴的电路实现。这样,电桥法不易实现自动测量。方案三:同样运用RC和555定期器构成的多谐振荡电路,通过测量输出振荡频率的大小即可求得电容的大小,如果固定电阻值,该方案硬件电路实现简朴,能测出较宽的电容范畴,完全满足题目的规定。同步输出波形为TTL电平的方波信号因此不需要再对信号做电平变换。即可直接输入单片机解决。综合比较,基于对精度规定较高,并从测量时操作的简便限度考虑,本设计采用方案三,用RC和555定期器构成的多谐振荡电路来实现规定。1.3 电感测量模块方案论证方案一:采用电桥法测量电

6、感。将待测电感和已知原则电阻电容构成电桥,通过单片机控制调节电阻参数使电桥平衡,电感的大小由电阻和电桥的本征频率求得,该方案测量精确,同步可以测量电容和电阻的大小,但其电路复杂,实现起来较为困难。方案二:用555定期器和被测电感运用电感储能以及充放原理构成多谐振荡器,通过测频率值拟定被测电感的值。该方案电路构造简朴,输出波形为TTL电平的方波信号,简朴分频后可获得较为抱负的测试频率范畴,以便单片机精确测量。方案三:采用LC配合三极管构成三点式振荡电路,通过测输出频率大小的措施来实现对电感值测量。该方案成本最低,但其输出波形为正弦波,需要将其波形整形后才干交给解决器解决,成本稍微高了。综合比较,

7、基于方案二的设计误差太大,最后采用了方案三。1.4 频率测量方案论证方案一:直接测频法。该测量措施是把被测频率信号通过脉冲形成电路,计数器计数被测信号的脉冲周数,从而通过计算频率的公式得到被测信号的频率。此方案对低频信号的测量精度不是很高,对于高频信号的测量也不是很精确,只在一定范畴的频率内才干测得比较精确的数值。因此只合用于一定范畴内的频率测量。方案二:测周期法。该测量措施是通过测量被测信号的周期来计算频率。被测信号经脉冲形成电路变成方波通过单片机的计数器计数,再根据计算公式即可获得被测信号的频率。该方案对低频信号的测量比较精确,但对于高频信号,测量误差较大,故只适合低频信号的测量。在比较两

8、种方案之后,决定采用第一种方案来进行频率的测量。1.5 系统方案概述量程切换F1 MSP430 单 片 机 DIP开关电阻谐振式测量数字显示量程切换频率 F2电容谐振式测量电感三点式测量 F3整形电路分频电路 图1-4 系统设计总框图系统设计总框图如图1-4所示,本设计将电阻、电容和电感测量模块产生的不同频率的方波信号经整形和分频电路分别送至通道选择模块,根据测试的元件类型,单片机通过按键的输入选择相应的测试电路,并自动检测出待测元件的值所相应的频率范畴,控制继电器实现对元件测量的自动换挡。同步单片机通过一定的计算后,在液晶显示屏上显示出元件的类型和测量值。二、理论分析与计算2.1 电阻测量的

9、分析与计算电阻测量原理图如图2-1所示,是由555定期器和R1、R2、C1构成的多谐振荡电路。电路振荡产生的频率由R1、Rx、C1拟定。Vout图2-1 电阻电容测量原理图C1R1Rx电容C1的充电所需的时间,即脉冲维持时间: 放电所用时间,即脉冲低电平时间: 因此脉冲周期时间为: 故输出脉冲频率为: 因此只要已知R1、RX、C1中的其中两项的参数再通过单片机测出振荡频率的大小就可以计算出剩余第三项的参数。本设计中通过固定R1和C1的参数将待测量的电阻作为R2接入电路中的措施来测量电阻。 为使振荡频率保持在10-20kHz这一段单片机计数的高精度范畴内,需选择合适的C1和R1的值,同步不能使电

10、阻功耗太大。因此我们设计了两路电路,第一种量程选择;第二个量程选择; 这样,在第一种量程中,若时(下限),;在第二个量程中,若时(上限),。由于RC振荡的稳定度可达1/1000,单片机测频率最多误差一种脉冲,因此由单片机测频率值引起的误差在百分之一如下。量程自动转换原理:单片机在第一种频率的记录中发现频率过小,即通过继电器转换量程。再测频率,求的值。 误差分析 : 由于相称小,在左右,远不不小于仪表所需要的精度,可忽视。这样,的精度取决于,即电容的稳定性。电路中采用了稳定性良好的独石电容,理论上说,只要不不小于,所测电阻的精度亦能在如下。由于单片机程序中采用了多位数的浮点运算,计算精度可远高于

11、。2.2电容测量的分析与计算电容测量的原理图也如图2-1,同样由555电路构成的多谐振荡电路,通过计算振荡输出的频率来计算被测电容的大小。由2.1的分析知其振荡周期为: 得出: ,即: 为使频率在单片机高精度测量范畴内,我们同样设计了两路电路,取值分别为:第一量程:;第二量程:;这样的取值使电容档的测量范畴很宽,同样可通过继电器转换量程。误差分析:同的测量,有,已知能满足如下的精度,而精密的金属膜电阻其阻值的变化亦能满足左右的精度。这样,电容的精度也可以做得很高。2.3 电感测量的分析与计算电感的测量是采用电容三点式振荡电路来实现的。三点式振荡电路是指:LC回路中与发射极相连的两个电抗元件必须

12、是同性质的,此外一种电抗元件必须为异性质的,而与发射级相连的两个电抗元件同为电容式的三点式振荡电路,其振荡频率为: 即: 如图3-3所示, C1和C2分别采用100nF和1uF的独石电容,其电容值远不小于晶体管的极间电容,可以把极间电容忽视,则单片机的高精度测量范畴有限,因此在测电感这一档时,只能分频后送单片机计数。误差分析: 由此可见,由于相称小,的精度重要取决于电容值的稳定性,从理论上讲,只要不不小于,也就能达到相称的水平。一般而言,电容的稳定性,特别是像独石电容一类性能比较好的电容,能满足不不小于的规定,这样误差精度就能保持在以内。三、硬件电路设计3.1 测量电阻电路的设计电阻的测量分为

13、两个量程:第一种量程,开关S1和S3闭合; 第二个量程,开关S2和S4闭合。电路图如图3-1所示:图3-1 电阻测量电路图3.2 测量电容电路的设计电容的测量同样设计了两路电路,取值分别为:第一量程:,开关S2和S4闭合;第二量程:,开关S1和S3闭合;电路图如图3-2所示:图3-2 电容测量电路图3.3 测量电感电路的设计由于电感测量模块产生的信号是正弦信号,因此必须先整形成方波,又由理论分析可知电路的输出频率很高,因此也要对输出的信号分频,单片机才干解决。3.3.1 电感测量电路图3-3 电感测量电路3.3.2 整形电路图3-4 整形电路3.3.3 分频电路图3-5 10分频电路3.4继电

14、器的设计电阻与电容的测量电路中均需要自动换挡,我们采用继电器来实现。继电器是一种电子控制器件,一般应用于自动控制电路中。当测量电路中所测频率过低时,单片机就会控制继电器转换量程。如图3-6所示为继电器的原理图,其中,二极管是对其有保护作用,三极管有放大电流的作用。在具体电路中,继电器是1伏和3伏换挡,通过单片机来实现其自动化。 图3-6 继电器原理图3.5 按键部分通道的选择可以通过MSP430单片机上面的键盘控制。通道选择见表3-1 .表3-1 按键通道选择按键相应测试项KEY1测试RKEY2测试CKEY5测试LKEY6返回 四、 程序设计 开始时钟、液晶屏、键盘初始化扫描键盘获得键值Che

15、ck_Key2电容测量3电感测量1 电阻测量转换量程f=30Hz转换量程C 0;i-); / 稳定期间 while(IFG1 & OFIFG) != 0); / 如果振荡器失效标志存在 BCSCTL2 |=SELM_2+SELS; / SMCLK LFXT2CLK /*捕获设立*/void Init_cap() P1DIR&=BIT3;/P1.3输入 P1SEL|=BIT3;/p1.3复用为TA2 TACCTL2=CM_2+SCS+CCIS_0+CAP+CCIE;/下降沿捕获+同步捕获+CCIxA(P1.3)+捕获中断使捕获模式能 CCR0=TIMER; TACTL=TASSEL_1+MC_1

16、+TAIE+TACLR;/时钟源ACLK+增计数模式+TAIFG中断祈求使能 /timer_B设立。void Init_TB() P1DIR=0xfe; P1SEL|=BIT0; /闸门法测频输入口为P1.0 TBCCTL0 = CCIE; /使能CCR0中断 TBCCR0 = 1023; /设定周期0.25S TBCTL = TBSSEL_1 + ID_3 + MC_1; /定期器b的时钟源选择ACLK,增计数模式 CCTL0=CCIE; TACTL = TASSEL_0+MC_2; /外部引脚TACLK信号+持续计数模式 TAR=0; /*显示界面*/const uchar hang1 =

17、 R L C 测量:;const uchar hang2 = 电阻请按:1;const uchar hang3 = 电容请按:2;const uchar hang4 = 电感请按:5;/*测量界面*/const uchar hang5 = 电阻测量: ;const uchar hang6 = R= ;const uchar hang7 = 退出测量请按: 6 ;const uchar hang8 = 电容测量: ;const uchar hang9 = C= ;const uchar hang10 = 电感测量: ;const uchar hang11 = L= uH;/const uchar

18、 hang22 = ;const uchar hang17 = K;const uchar hang_f = f= Hz;const uchar hang_99 = *;/*主函数*/void main( void ) /int p=0; int K; / Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; Init_clk(); /初始化时钟 Ini_Lcd(); /初始化液晶 Init_Keypad(); /初始化键盘端口c huanying(); P6DIR=0xff; P6OUT=0x00; w

19、hile(1) Ini_Lcd(); P6OUT=0x00; Disp_HZ(0x80,hang1,7); Disp_HZ(0x90,hang2,5); Disp_HZ(0x88,hang3,5); Disp_HZ(0x98,hang4,5); Key_Event(); Check_Key(); if(key_Flag=1) key_Flag=0; K=key_val; /*电阻计算*/ if(K=1) int i=0; P6OUT=0x40; Init_cap(); /初始化CAP TBCCTL0 = CCIE; /关闭CCR0中断 Ini_Lcd(); double Rc=0,RA=0;

20、Disp_HZ(0x80,hang5,8); Disp_HZ(0x90,hang_f,8); Disp_HZ(0x88,hang6,8); Disp_HZ(0x98,hang7,8); _EINT(); /打开中断 while(1) Key_Event(); Check_Key(); if(key_Flag=1) key_Flag=0; K=key_val; while(flag) _DINT(); flag=0; /清晰捕获标志 f=pulse; if(f26) const uchar hang22 = ; f=f*100; Value=(unsigned long)(f); Disp_Sh

21、uZhi(0x92,Value); f=f/100; P6OUT=0x40; Rc=1;RA=500; R=1.4427/(Rc*1e-6)*f)-RA; R=R/2; if(R30)R=R-R*0.30; if(30R&R2400)i=1; f=f*100; Value=(unsigned long)(f); Disp_ShuZhi(0x92,Value); f=f/100; Rc=0.01;RA=0; const uchar hang22 = K; R=1.4427/(Rc*1e-6)*f)-RA; R=R/1000; R=R/2; if(25R&R550)R=R+R*0.04; /if(

22、100R&R450)R=R+R*0.07; /if(R4500)R=R-R*0.06; R=R*100; Value=(unsigned long)(R); Disp_ShuZhi(0x8A,Value); Disp_HZ(0x8E,hang22,2); Init_cap(); /初始化CAP _EINT(); delay_1ms(1000); /else i=1;f=0;break; if(K=6) break; if(K=6) break; if(i=1) i=0;f=0;break; if(K=6)_DINT();f=0;pulse=0;Value=0;TAR=0; break; /*电

23、容计算*/ else if(K=2) int i=0; P6OUT=0x80; Init_cap(); /初始化CAP TBCCTL0 = CCIE; /关闭CCR0中断 Ini_Lcd(); double R1=0,R2=0; Disp_HZ(0x80,hang8,8); Disp_HZ(0x90,hang_f,8); Disp_HZ(0x88,hang9,8); Disp_HZ(0x98,hang7,8); _EINT(); /打开中断 while(1) if(i=0)P6OUT=0x80; Key_Event(); Check_Key(); if(key_Flag=1) key_Flag

24、=0; K=key_val; TBCCTL0 = CCIE; /关闭CCR0中断 _EINT(); while(flag) _DINT(); flag=0; /清晰捕获标志 f=pulse; f=f*100; Value=(unsigned long)(f); Disp_ShuZhi(0x92,Value); f=f/100; R1=1000;R2=1000000; const uchar hang23 = pF; CZ=1.4427/(R1+2*R2)*f*1e-6); CZ=CZ*1e+6; _EINT(); if(CZ950) i=1; P6OUT=0x84; _DINT(); flag

25、=0; /清晰捕获标志 f=pulse; f=f*100; Value=(unsigned long)(f); Disp_ShuZhi(0x92,Value); f=f/100; R1=465500;R2=461000; const uchar hang23 = nF; CZ=1.4427/(R1+2*R2)*f*1e-6); CZ=CZ*1e+3; if(1.5CZ&CZ40)CZ=CZ-CZ*0.07; CZ=CZ*100; Value=(unsigned long)(CZ); Disp_ShuZhi(0x8A,Value); Disp_HZ(0x8F,hang23,1); Init_ca

26、p(); /初始化CAP _EINT(); else i=0; /if(CZ65)CZ=CZ-18; if(65CZ900)CZ=CZ-20; CZ=CZ*100; Value=(unsigned long)(CZ); Disp_ShuZhi(0x8A,Value); Disp_HZ(0x8F,hang23,1); Init_cap(); /初始化CAP _EINT(); if(K=6)_DINT();f=0;pulse=0;Value=0;TAR=0; break; /*电感计算*/ else if(K=5) P6OUT=0xC0; Init_cap(); /初始化CAP TBCCTL0 =

27、 CCIE; /关闭CCR0中断 Ini_Lcd(); double LC=9.090909; Disp_HZ(0x80,hang10,8); Disp_HZ(0x90,hang_f,8); Disp_HZ(0x88,hang11,8); Disp_HZ(0x98,hang7,8); _EINT(); /打开中断 while(1) Key_Event(); Check_Key(); if(key_Flag=1) key_Flag=0; K=key_val; const uchar hang_mH = mH; _EINT(); /打开中断 while(flag) _DINT(); flag=0;

28、 /清晰捕获标志 f=pulse; f=f*100; Value=(unsigned long)(f); Disp_ShuZhi(0x92,Value); f=f/100; L=0.02535/(LC*f*f); L=L*1e+12; /if(L80)L=L-L*0.04; if(80L&L100)L=L+L*0.15; if(275L&L300)L=L+L*0.20; if(6000L&L7000)L=L+L*0.12; L=L*100; Value=(unsigned long)(L); Disp_ShuZhi(0x8A,Value); Init_cap(); /初始化CAP _EINT(

29、); if(K=6)_DINT();f=0;pulse=0;Value=0;TAR=0;break; 采频程序#pragma vector=TIMERA1_VECTOR_interrupt void TimerA1_ISR(void) switch(TAIV) case 2:break; case 4: Cap_Tar+; break; case 10: pulse=Cap_Tar-1; Cap_Tar=0; flag=1; break; 键盘扫描、获得键值程序void Check_Key(void) uchar row ,col,tmp1,tmp2; tmp1 = 0x80; for(row

30、 = 0;row =1; if (P1IN & 0x03) 0x03) /与否P1IN的P1.0P1.3中有一位为0 tmp2 = 0x01; / tmp2用于检测出那一位为0 for(col = 0;col 2;col+) / 列检测 if(P1IN & tmp2) = 0x00) / 与否是该列,等于0为是 key_val = key_Maprow * 4 + col; / 获取键值 / return; / 退出循环 tmp2 = 1; / tmp2右移1位 液晶显示程序void Write_Data(uchar dat)#define LCD_DataIn P4DIR=0x00 /数据口

31、方向设立为输入#define LCD_DataOut P4DIR=0xff /数据口方向设立为输出#define LCD2MCU_Data P4IN#define MCU2LCD_Data P4OUT#define LCD_CMDOut P3DIR|=0x07 /P3口的低三位设立为输出#define LCD_RS_H P3OUT|=BIT0 /P3.0输出高#define LCD_RS_L P3OUT&=BIT0 /P3.0输出低电平#define LCD_RW_H P3OUT|=BIT1 /P3.1输出高#define LCD_RW_L P3OUT&=BIT1 /P3.1输出低#define LCD_EN_H P3OUT|=BIT2 /P3.2输出高#define LCD_EN_L P3OUT&=BIT2 /P3.2输出低 uchar lcdtemp = 0; LCD_RS_L; LCD_RW_H; LCD_DataIn; do /判忙 LCD_EN_H; _NOP(); lcdtemp = LCD2MCU_Data; LCD_EN_L; while(lcdtemp & 0x80); LCD_DataOut; LCD_RS_H; LCD_RW_L; MCU2LCD_Data = dat; LCD_EN_H; _NOP(); LCD_EN_L;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!