收藏 分销(赏)

RLC测试专业课程设计实验报告.doc

上传人:精**** 文档编号:2727207 上传时间:2024-06-05 格式:DOC 页数:31 大小:964.54KB 下载积分:12 金币
下载 相关 举报
RLC测试专业课程设计实验报告.doc_第1页
第1页 / 共31页
RLC测试专业课程设计实验报告.doc_第2页
第2页 / 共31页


点击查看更多>>
资源描述
“电子系统设计” 课程设计汇报 设计课题: RLC参数测试仪 专业班级: 姓 名: 学 号: 设计时间: 评阅意见: 评阅意见 设计课题题目: RLC参数测试仪 一、设计任务和要求 1、测量范围:电阻 100Ω-1MΩ; 电容 100pF-10000pF; 电感 100μH-10mH。 2、制作1602液晶显示器,显示测量数值,并用发光二级管分别指示所测元件类别。 3、测量精度:5%。 二、系统设计方案 2.1电阻测量方案 方案一:利用串联分压原理方案 R0 Rx GND VCC 图2-1串联分压电路图 依据串联电路分压原理可知,串联电路上电压和电阻成正比关系。测量待测电阻Rx和已知电阻R0上电压,记为Ux和U0. , 方案二:利用直流电桥平衡原理方案 R2 R1 GND VCC G Rx R3 图2-2 直流电桥平衡电路图 依据电路平衡原理,不停调整电位器R3,使得电表指针指向正中间,再测量电位器电阻值。 方案三:利用555组成单稳态方案 图1 555定时器组成单稳态电路图 依据555定时器组成单稳态,产生脉冲波形,经过单片机读取高低电平得出频率,经过公式换算得到电阻阻值。 上述三种方案从对测量精度要求而言,方案一测量精度极差,方案二需要测量电阻值多,而且测量调整麻烦,不易操作和数字化,相比较而言,方案三还是比较符合要求,因为是经过单片机读取转化,正确度会显著提升。故本设计选择了方案三 2.2电容测量方案 方案一:利用串联分压原理方案(原理图同图2-1) 经过电容换算容抗跟已知电阻分压,经过测量电压值,再经过公式换算得到电容值。原理同电阻测量方案一。 方案二:利用交流电桥平衡原理方案(原理图同图2-2) 经过调整Z1、Z2使电桥平衡。这时电表读数为零。经过读取Z1、Z2、Zn值,即可得到被测电容值。 方案三:利用555组成单稳态原理方案 图2 555定时器组成单稳态电路图 单片机接一独立按键,当其按下时,NE5553引脚输出方波,3脚和单片机相接,可经过程序测出其频率,进而求出Cx值,显示在1602液晶屏上。 上述三种方案从对测量精度要求而言,方案一测量精度极差,方案二需要测量电容值多,而且测量调整麻烦、电容不易测得正确值,不易操作和数字化,相比较而言,方案三还是比较符合要求,因为是经过单片机读取转化,正确度会显著提升。故本设计选择了方案三。 2.3电感测量方案 方案一:利用交流电桥平衡原理方案。 方案二:利用电容三点式正弦波震荡原理在经过555组成单稳态原理输出脉冲方案 图3 电容三点式正弦波震荡电路图 因为电容三点式震荡电路产生信号较小,所以先加一级单管放大,在跟比较器将正弦波转化成方波。单片机接一独立按键,当其按下时,运放输出口输出方波,该口和单片机相 接,可经过程序测出其频率,进而求出Lx值,显示在1602液晶屏上。 上述两种方案从对测量精度要求而言,方案二需要测量电感值多,而且测量调整麻烦、电感不易测得正确值,不易操作和数字化,相比较而言,方案二还是比较符合要求,因为是经过单片机读取转化,正确度会显著提升。故本设计选择了方案二。 2.4电阻、电容、电感电路设计 本设计是单片机STC15F系列开发板作为主控中心: RLC参数测试模块 单片机STC15F12K60S2和液晶显示模块各接口分配 电阻、电容和电感测试显示选择按键 三、单元电路分析和设计 1.原理分析 电阻和电容测量参数是经过NE555震荡电路输出方波,供单片机测量计数可经过程序测出其频率,进而求出电阻和电容值,电感测量参数先经过电容三点式震荡电路,产生正弦波。然后进过NE555震荡电路输出方波,单片机测量计数可经过程序测出其频率,进而求出电感值。 2. 仿真结果 3.2.1 电阻测量电路仿真 仿真电路图: 接一独立按键,当其按下时,NE5553引脚输出方波,3脚和XSC1相接,可经过程序测出其频率,进而求出Rx值,显示在液晶屏上。 输出波形: 3.2.2 电容测量电路仿真 仿真电路图: 接一独立按键,当其按下时,NE5553引脚输出方波,3脚和XSC2相接,可经过程序测出其频率,进而求出Cx值,显示在液晶屏上。 输出波形: 3.2.3 电感测量电路仿真 仿真电路图: 因为电容三点式震荡电路产生信号较小,所以先加一级单管放大,在跟比较器将正弦波转化成方波。接一独立按键,当其按下时,运放输出口输出方波,该口和XSC1相接,可经过程序测出其频率,进而求出Lx值,显示在液晶屏上。 输出波形: 3. 电阻、电容、电感显示电路设计 采取1602液晶显示,耗能低,显示数值范围较大 四、软件部分设计 4.1 主程序步骤图 电阻、电容、电感测试仪设计中,便于直观性,在液晶屏上显示被测参数选择,被测参数各个灯选择和具体设置。经过按键来进行灵活控制。 4.2 中止程序步骤图 测试电阻并显示 按键中止入口 判定按键值 OK键键值=1? 进入选择档位界面 档位键值改变? 电阻档 电容档 电感档 OK键键值=0 ? 显示主界面 测试电容并显示 测试电感并显示 Y Y N Y N N 五、安装和调试 5.1 电阻、电容和电感测量电路调试 接通电源,用示波器观察输出波形,若为方波,则电路焊接无误,不然检验电路,在调试过程中发觉,若改变电源电压,输出方波频率会发生改变,计算出数值存在一定误差,当VCC为3.25V左右时误差较小测小电阻时,我们能够采取给待测电阻串联适宜已知标准电阻方法,来提升测量精度;测电感时,给待测电感串联适宜已知标准电感。 5.2 液晶显示电路调试 将测量电路输出分别和单片机P3^0、P3^2、P3^3相接,观察液晶是否显示测量结果。在调试过程中发觉,电阻、电容测量误差较小,因为电容三点式震荡电路频率不稳定,电感测量误差较大。 六、 系统测试和分析 6.1 系统测试  (1)测试原理:在系统设计中,以MCS-51单片机为关键电阻、电容、电感测试仪,将电阻,电容,电感,使用对应振荡电路转化为频率实现各个参数测量。其中电阻和电容是采取555多谐振荡电路产生,而电感则是依据电容三点式产生,将振荡频率送入AT89C52计数端端,经过定时而且计数能够计算出被测频率,再经过该频率计算出被测参数。以Keil51为仿真平台,使用C语言和汇编语言混合编程编写了系统应用软件;包含主程序模块、显示模块、电阻测试模块、电容测试模块和电感测试模块 (2)测试仪器:示波器,万用表,稳压电源,计算机。  (3)测试结果:经过按键,实现其按键所对应功效,并观察测试结果,对设计深入进行校正和对实现功效可靠性确实定,并统计观察结果 6.2测试方法  依据设计设计搭好好电路经过经过拨码选择给个部分模块供电,再测量前用电桥测量仪测出所需测量电阻电容和电感实际值,再依据单片机提醒选择选择所需测量器件。测量次序按电阻,电容,电感次序。器件按由小到大依次测量,再依据单片机实测值和电桥测量仪所测值计算出测量误差 6.3试验数据统计 (a)电阻测试数据如表所表示 电阻参数(kΩ) 0.1 1.0 10 100 500 1000 参数测试仪测试值 0.096 0.97 9.87 99.6 500 985 自制仪器测试值 102 1025 10452 106410 530901 1079440 相对误差 6.2 5.7 5.9 6.8 6.1 9.5 (b)电容测试数据如表所表示。 电容参数(pF) 50 100 500 1000 10000 参数测试仪测试值 94.02 424.0 940.0 4460 9376.0 自制仪器测试值 151 550.0 1310 6083 15006 相对误差 60.6 29.7 39.3 30.5 60.1 (c)电感测试数据如表所表示 电感参数 100uH 470uH 1mH 1mH 参数测试仪测试值 70.10 385.0 800 8.860 自制仪器测试值 120 580 1148 13547 相对误差 71.1 50.7 43.5 52.3 七、结论和心得 这次课设论文和设计是我这大学期间干最有意义事之一。我了解了电子制作很多知识,在以前基础上对模拟电路有了更深层次认识。这次设计大多数全部是模拟电路,对模拟电路要求比较高,而在这之前基础全部没有接触过这些东西,在制作过程中也碰到了不少问题,比如运放选型就是一个头疼问题,运放种类有很多,参数也各不相同,需要对照芯片数据手册选出自己需要型号。以前对电路设计也没有概念,面对一个现成电路也怎么分析,无从下手,更何况是自己设计电路呢。不过经过这次制作,我学会了怎样分析部分小规模模拟电路,而且能自己设计部分简单功效模拟电路,我认为学会这些东西是我这次毕业设计取得最大收获。 在制作过程之中碰到了好多细节问题全部是以前轻易忽略掉。比如,以前不关注电源质量和纹波大小,用万用表电压档测量以后感觉电压符合就拿来用了,却不知道电源纹波对电路影响。制作过模拟电路以后才有了电源纹波这个概念,尤其是运放,对电源要求相当高。给模拟电路供电电源质量要相当可靠,而且需要用示波器观察电源输出直流量中纹波大小。纹波太大会影响运放正常工作,尤其是在小信号电路中,有时候纹波噪声会将有用信号全部覆盖掉,单片机电源纹波也得确保在十毫伏以下,不然会影响单片机AD转换精度,总结了这次毕业设计经验,我认为以后做东西时候要愈加细心,碰到问题要多思索,问题不处理根本会留有后患。阅读芯片数据手册不能一味追求汉字版,有时候汉字版本翻译不仔细,造成错误也不易查找。调整心态,坚持去看英文原版数据手册,看多了就不会厌烦英文数据手册了,很多事情还是习惯了就好了。 参考文件  [1]申忠如,申淼,谭亚丽.MCS-51单片机原理及系统设计.西安交通大学出版社,3月第1版  [2]申忠如,郭福田,丁晖.现代测试技术和系统设计.西安:西安交通大学出版社,.2.  [3]付家才.单片机控制工程实践技术[M].北京化学工业出版社,  [4]张毅刚.MCS-51单片机应用系统.哈尔滨工业大学出版社,1997  [5]夏继强.单片机试验和实践教程.北京航空航天大学出版社,,.1  [6] 马忠梅,单片机C语言Windows环境编程宝典[M], 北京:北京航空航天大学出版社,.6;      附录: 1.关键元件清单及PCB图 元件 型号 数量 单片机 STC15F2K60S2 1 电位器 10KΩ 4 瓷片电容 103(0.01uF) 1 瓷片电容 104(0.1uF) 7 电阻 300R 1 电阻 100K 2 电阻 1K 2 电阻 2K 1 电阻 510K 2 按键 4 液晶 1602 1 555定时器 NE555 3 电解电容 50V,22uF 1 三极管 S8050(NPN型) 2 PCB图 2. 实物图 单片机最小系统模块 电感模块 电阻电容模块 3.程序代码 #include <STC15F2K60S2.H> #include <intrins.h> #define T1MS (65536-FOSC/12/1000) //12T?? #define uint unsigned int #define uchar unsigned char #define ulong unsigned long #define PI 3.1415926 uchar table2[16]="f(Hz)="; uchar table3[16]="R(Ohm)="; uchar table4[16]="C(pF)="; uchar table5[16]="L(uH)= "; uchar num,cc=0,th0,tl0; uint C,L; ulong f=0,R; int jishu=0; char ii=0; bit xuanzhe=1; //这三个引脚参考资料 sbit E=P2^2; //1602使能引脚 sbit RW=P2^1; //1602读写引脚 sbit RS=P2^0; //1602数据/命令选择引脚 sbit key_R=P3^4; //?????? sbit key_C=P3^5; //?????? sbit key_L=P3^6; //?????? sbit key_X=P3^7; sbit R_out=P3^2; //???????? sbit C_out=P3^3; //???????? sbit L_out=P3^0; //???????? bit bb=1; void Rrr(void) { f=0; bb=1; TR0=1; EX0 = 1; while(bb); EX0 = 0; } void Lrr(void) { f=0; bb=1; TR0=1; INT_CLKO |= 0x40; while(bb); INT_CLKO &= 0xbf; } void Crr(void) { f=0; bb=1; TR0=1; EX1 = 1; while(bb); EX1 = 0; } void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=1330;j>0;j--); } void delay() { uint i; for(i=0;i<4;i++) {_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } } bit Busy(void) { bit busy_flag = 0; RS = 0; RW = 1; E = 1; delay(); busy_flag = (bit)(P2 & 0x01); E = 0; return busy_flag; } void wcmd(uchar del) { uchar del2=0,i; while(Busy()); RS = 0; RW = 0; E = 0; delay(); P0 = del; delay(); E = 1; delay(); E = 0; } void wdata(uchar del) { uchar del2=0,i; while(Busy()); RS = 1; RW = 0; E = 0; delay(); P0 = del; delay(); E = 1; delay(); E = 0; } void L1602_init(void) { wcmd(0x38); wcmd(0x0c); wcmd(0x06); wcmd(0x01); } void t0_init() { AUXR &= 0x7F; //?????12T?? TMOD &= 0x00; TMOD = 0x01; //??????? TL0 = 0xB0; //?????? TH0 = 0x3C; //?????? TF0 = 0; //??TF0?? TR0 = 0; PX0=1; IT0 = 1; IT1= 1; EX0 = 0; EX1 =0; EA=1; } void t_init() { TMOD &= 0x00; AUXR &= 0x7F; //?????12T?? TMOD = 0x02; //??????? TL0 = 0xF6; //?????? TH0 = 0xF6; //??????? TF0 = 0; //??TF0?? TR0 = 0; //???0?????? ET0 = 1; //?????0?? EA = 1; } void keyscan() { if(key_R==0) { delayms(10); while(key_L==0); cc=1; } else if(key_C==0) { delayms(10); while(key_C==0); cc=2; } else if(key_L==0) { delayms(10); while(key_L==0); cc=3; } else if(key_X==0) { delayms(10); while(key_X==0); xuanzhe=!xuanzhe; //while(key_R&&key_C&&key_L); //?????????? } } void int0_Int(void) interrupt 0 { f++; } void int4_Int(void) interrupt 16 { f++; } void Outside(void) interrupt 2 { f++; } void T_count() interrupt 1 { if(xuanzhe) f++; else {TL0 = 0xB0; //?????? TH0 = 0x3C; //?????? if(++jishu==20) {jishu=0; TR0=0; EX0=0; bb=0; } } } void L1602_string(uchar hang,uchar lie,uchar *p) { uchar a,b=0; if(hang == 1) a = 0x80; if(hang == 2) a = 0xc0; a = a + lie - 1; while(1) { wcmd(a++); if((*p == '\0')||(b==16)) break; b++; wdata(*p); p++; } } void T0_count() { TL0 = 0xF6; //?????? TH0 = 0xF6; //??????? f=0; switch(cc) { case 1:while(!R_out); while(R_out); TR0 = 1; while(!R_out); while(R_out); TR0=0; break; case 2:while(!C_out); while(C_out); TR0 = 1; while(!C_out); while(C_out); TR0=0; break; case 3:while(!L_out); while(L_out); TR0 = 1; while(!L_out); while(L_out); TR0=0; break; default :break; } // f=1/(th0*256+tl0)*0.5*1000000.0; f=1000000.0/f/10; } void display_f(ulong f) { uchar count=0; ulong f0; wcmd(0x80|0x06); for(ii=0;ii<10;ii++) wdata(' '); f0=f; while(f) { f=f/10; count++; } for(num=5+count;num>5;num--) { table2[num]=f0%10+48; f0=f0/10; } wcmd(0x80); for(num=0;num<6+count;num++) { wdata(table2[num]); } } void display_R(ulong R) { uchar count=0; ulong R0; R0=R; wcmd(0x80|0x47); for(ii=0;ii<8;ii++) wdata(' '); while(R) { R=R/10; count++; } for(num=6+count;num>6;num--) { table3[num]=R0%10+48; R0=R0/10; } wcmd(0x80|0x40); for(num=0;num<7+count;num++) { wdata(table3[num]); delayms(5); } } //?????? void display_C(uint C) { uchar count=0; uint C0; C0=C; wcmd(0x80|0x47); for(ii=0;ii<8;ii++) wdata(' '); while(C) { C=C/10; count++; } for(num=5+count;num>5;num--) { table4[num]=C0%10+48; C0=C0/10; } wcmd(0x80|0x40); for(num=0;num<6+count;num++) { wdata(table4[num]); } } //?????? void display_L(uint L) { uchar count=0; uint L0; L0=L; wcmd(0x80|0x47); for(ii=0;ii<8;ii++) wdata(' '); while(L) { L=L/10; count++; } for(num=5+count;num>5;num--) { table5[num]=L0%10+48; L0=L0/10; } wcmd(0x80|0x40); for(num=0;num<6+count;num++) { wdata(table5[num]); } } void main(void) { L1602_init(); wcmd(0x01); L1602_string(1,1,"1R 2C 3L 4T/f"); L1602_string(2,1," CESHI:T"); while(1) {keyscan(); if(xuanzhe) { wcmd(0x80|0x4f); delayms(5); wdata('T'); } else { wcmd(0x80|0x4f); delayms(5); wdata('f');} if(cc!=0) break; } while(1) { T0_count(); keyscan(); if(xuanzhe) {t_init(); wcmd(0x80|0x4f); delayms(5); wdata('T'); T0_count();} else {t0_init(); wcmd(0x80|0x4f); delayms(5); wdata('f'); f=0; switch(cc) { case 1: Rrr();break; case 2: Crr();break; case 3: Lrr();break; default:break; } } switch(cc) { case 1:R=(ulong)(6735000.0/0.6931472/f-150+0.5);display_R(R);break; case 2:C=(int)(.0/153/0.6931472/f+0.5);display_C(C);break; case 3:L=(int)(.0/0.05/PI/PI/f/f+0.5);display_L(L);break; default : break; } if(cc>0) display_f(f); cc=0; } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服