51单片机做电容测量仪解析.doc
《51单片机做电容测量仪解析.doc》由会员分享,可在线阅读,更多相关《51单片机做电容测量仪解析.doc(16页珍藏版)》请在咨信网上搜索。
第十三届“长通杯”大学生电子设计竞赛 电容测量仪(A题) 2016年5月14日 15 / 16 摘 要 电容测量仪装置是一种精度高、测试围宽、操作简便、功能完善的电容测量仪。随着科技的不断发展,电容在电路中有着越来越多的应用,其容量大小直接决定着电路的稳定性和准确性。因此,电容值的的测量在日常使用中不可避免。 为了深入了解和学习52单片机的功能,本设计采用STC89C52和555振荡器为主要元件对电容进行测量。先将555设计为多谐振荡器产生输入脉冲信号,然后利用单片机对脉冲进行中断计数,再使用公式计算出电容值。在多谐振荡器终端加一个HD74LS08(二输入与门)稳定输出波形,从而使测量中更精确。多谐振荡器会因为连接电阻值的不同而产生的方波的频率不同,从而可以变换档位测量容量差距较大的电容。如果在工程问题中想寻找出符合要求的电容,便可通过矩阵键盘输入相应的电容值的围,以方便筛选。当电容测定完以后,其数值通过LCD1602显示出来,以便阅读。 关键词:STC89C52单片机;电容测量;555定时器;LCD1602; 目 录 1系统方案 1 1.1 电容测量仪的论证与选择 1 1.2 控制系统的论证与选择 1 2系统理论分析与计算 1 2.1 设计方案的分析 1 2.1.1利用电容器放电测电容实验原理1 2.1.2利用放电时间比率来测电容1 2.1.3利用单片机测脉冲来测时间常数RC再计算电容1 2.2 电容的计算 1 2.2.1 计算振荡周期1 2.2.2 计算频率1 2.2.3 计算Cx1 3电路与程序设计 2 3.1电路的设计 2 3.1.1系统总体框图 2 3.1.2系统框图 2 3.1.3总程序框图 2 3.1.4电源 2 3.2程序的设计 2 3.2.1程序功能描述与设计思路 2 3.2.2程序流程图 3 4测试方案与测试结果 3 4.1测试方案 3 4.2 测试条件与仪器 3 4.3 测试结果与分析 3 4.3.1测试结果(数据) 3 4.3.2测试分析与结论 4 附录1:电路原理图 5 电容测量仪(A题) 1 设计方案 设计一:利用电容器放电测电容实验原理 电容器充电后,所带电量Q与两极板间电压U和电容C之间满足Q=CU的关系。U可由直流电压表测出,Q可由电容器放电测量。使电容器通过高电阻放电,放电电流随电容器两极板间的电压下降而减少,通过测出不同时刻的放电电流值,直至I=0,作出放电电流I随时间变化的曲线,曲线下的面积即等于电容器所带电量。由C=Q/U可求出电容器的电容值。但此方法操作性差,很难实现其功能,故舍之。 设计二:利用放电时间比率来测电容 其测量原理是把被测电容和基准电容连接到同一电阻上,构成RC网络。通过测量两个电容放电时间的比率,就可以求出被测电容的电容值。 充电前电容的电压为0,放电时电容电压与时间的关系为: 当Vc达到Vth时 从而 由于R和Vth/E已知,可根据Tc算出C。 此方法的测量围从pF(10-12F)到几十个nF(10-9F),并且在寄生电容的抑制和温度稳定性方面具有极很大的优势,但此方法适用于电解电容,对于瓷片电容并不适用。 设计三:利用单片机测脉冲来测时间常数RC再计算电容 其测量原理是把被测电容和电阻串联,构成RC网络,然后可利用这个时间常数去利用多谐振荡器,调好振荡信号的波形然后开始计数脉冲值,可能的周期为T=A0×RC,A0为一个常数,可通过周期可以计算出C的值。这个可以用单片机来测,理论上可以从测的值可以为N多个,大大超过前面所讲述的。 考虑到实用性和可操作性,我们选择设计三。 利用555构成单稳态电路(如图****),待测电容是电路中的Cx,再把”OUT”口输出的信号的频率输入单片机的P1.0口,CX的一端连接单片机的P2.3口,通过公式换算得到电容值。 P3.7口接一独立按键,当其按下时,555定时器的3引脚输出方波,3脚与P1.0口相接,可通过程序测出其频率,进而求出Cx的值,并显示在LCD1602液晶屏上。 由分析可知其振荡周期为: 由单稳态电路的特性知: 使R1=R2,则: 电容测量电路如图1所示: 图1 555定时器构成单稳态的电容测量电路图 此方案从计算公式可知,只需要通过单片机处理频率信号即可得到待测电容值,对测量精度要求而言,还是比较符合要求的,由于是通过单片机读取转化,精确度会明显的提高。 核心元器件简介 STC89C52的介绍 STC89C52是STC公司生产的一种低耗能、性能高的CMOS8位微控制器。具有以下标准功能: 置4KBEEPROM,有MAX810复位电路,3个16 位定时器/计数器,4个外部中断,8k字节Flash,32 位I/O 口线,512字节RAM,看门狗定时器,一个7向量4级中断结构,全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。最高运作频率35MHz,12T/6T可选。 STC89C52单片机最小系统原理图: 图2 STC89C52单片机最小系统 555定时器的介绍 NE555集成电路是8脚封装,双列直插型。NE555引脚功能如下: Pin 1-GND (接地)-通常被连接到电路共同接地。 Pin 2-Trigger(触发点) -这个脚位是触发NE555使其启动它的时间周期,又称触发端,是下比较器的输入。触发信号上缘电压须大于2/3 VCC,下缘须低于1/3 VCC 。 Pin 3-Output (输出) -输出端(VO),它有0和1两种状态,由输入端所加电平决定,当时间周期开始555的输出输出脚位,移至比电源电压少1.7伏的高电位。周期的完毕输出回到0伏左右的低电位。于高电位时的最大输出电流大约0.2A 。 Pin 4-Reset (重置)-一个低逻辑电位送至该脚位时会重置定时器且使输出回落到一个低电位,加上低电平时可使输出为低电平[5]。它通常被接到电源或不用连接。 Pin 5-Control voltage (控制) -控制电压端(VC),准许由外部电压控制触发和闸限电压,可用它控制改变上下触发电平值。当计时器经营在振荡或稳定的运作方式下,这个输入可以用来改变或调整输出的频率值。 Pin 6-Threshold (重置锁定) - 又称阈值端(TH),是上比较器的输入;重置锁定并能使输出呈低电平。当此接脚的电压从1/3 VCC电压以下移至2/3 VCC以上时启动这个动作。 Pin 7-Discharge (放电端DIS),它是部放电管的输出,有悬空和接地两种状态,也是由输入端的状态决定这个接脚和主要的输出接脚有相同的电流输出能力,当输出为ON时为LOW,对地为低阻抗,当输出为OFF时为HIGH,对地为高阻抗。 Pin 8-Vcc (V +) -这是555个计时器IC的正电源电压端。供应电压的围是+4.5伏特(最小值)至+16伏特(最大值)。 图3 555定时器输出波形 图4 555集成电路部结构图 1602液晶的介绍 本设计使用的1602液晶为5V电压驱动,带背光,可显示两行,每行16个字符,不能显示汉字,置含128个字符的ASCII字符集字库,只有并行接口,无串行接口。 接口说明: Pin-1-VSS电源地 Pin-2-VDD电源正极 Pin-3-VQ液晶显器对比度调节 Pin-4-RS数据/命令选择输入(H/L) Pin-5-R/W读写选择端(H/L) Pin-6-E使能信号 Pin-7-D0数据接口 Pin-8-D1数据接口 Pin-9-D2数据接口 Pin-10-D3数据接口 Pin-11-D4数据接口 Pin-12-D5数据接口 Pin-13-D6数据接口 Pin-14-D7数据接口 Pin-15-BLA背光灯电源正极 Pin-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与单片机接口: 图5 1602与单片机接口 系统的总体设计思路是被测电容通过555定时器构成多谐振荡电路,频率输入单片机,通过分屏电路把频率送入单片机,并把频率通过单片机处理,运算出相应的数值,再用LCD1062显示出来。系统方框图***如下: STC89C52 单片机 键盘输入范围 LCD1602 555多谐振荡器 被测电容 图6 系统方框图 主程序流程图: 主程序流程是先通过按键对单片机时钟和端口进行初始化,再对定时器进行初始化,液晶初始化显示开机界面,再转入上面所设计的开机总中断,完毕之后进入低功耗模式,具体流程如图7所示。 开始 单片机时钟初始化 单片机端口初始化 液晶初始化显示开机界面 开启总中断 定时器初始化 进入自动换挡测量模式 图7 主程序流程图 心得体会 这次设计历时两个周左右。在此期间,查找资料,同学交流,反复调试,每一个过程都是对我们这个团队的一次检验和挑战。通过这次实践,我们深入学习了52单片机、555定时器和LCD1602的用途与工作原理,掌握了设计步骤,锻炼了实践能力,培养了独立设计能力。这次课程设计收获很多,比如学会了查找相关资料相关标准,分析数据,提高了自己的制作能力。但是此次比赛也暴露出了我们的知识基础有很多不足之处。由于能力有限,未能做到用键盘输入电容的测量围来筛选电容,因此感到有点儿遗憾。这次实践是对自己模电和单片机所学的一次大检阅,使我明白自己的能力还有待提高。本设计是在老师的精心指导和鼓励下完成的。在此,谨向老师和帮助我的同学表示衷心的感!此外,我还要感在我的论文中所有被援引过的文献的作者们,他们是我的知识之源。 最后,再次向所有给予我帮助和鼓励的同学和老师致以最诚挚的意! 附件 附件1:电路图 图8 总电路图 附件2:元件清单 表1 元件 型号 位号 数量 单片机 STC89C52RC U1 1 排阻 A103J RP1 1 电磁继电器 JWD RL1,RL2,RL3 3 晶振 12M X1 1 瓷片电容 30pF C1,C2 2 独石电容 103(0.01uF) C4 1 电阻 10KΩ R1,R2,R5,R6,R7 5 按键 J1,J2, 2 液晶 LCD1602 LCD1 1 555定时器 NE555 U2 1 电阻 1KΩ R3,R4 2 电阻 10Ω R9,R10,R11 3 与门 HD74LS08 U3 1 电解电容 50V,1000pF C3 1 附件三:程序 #include <reg52.h> #include"intrins.h"//库函数 #define uint unsigned int #define uchar unsigned char #define ulong unsigned long uchar table4[16]="C(nF)="; uchar num,b,x=1,i,a=2,th0,tl0; uint C; ulong f,Cpf,f1; sbit lcden=P2^7; //液晶使能端 sbit lcdrs=P2^5; //液晶数据命令选择端 sbit RW=P2^6; //1602写地址 sbit key_C=P3^7; //测量电容按键 sbit C_out= P1^7; //测量电容信号输入 sbit switch0=P1^0; sbit switch1=P1^1; sbit switch2=P1^2; sbit key_C0=P1^3; sbit key_C1=P1^4; sbit key_C2=P1^5; //声明子函数 void delayms(uint xms); //延时函数 void write_(uchar ); //液晶写命令函数 void write_data(uchar date); //液晶写数据函数 void led_init(); //液晶初始化函数 void t_init(); //定时器0初始化函数 void keyscan(); //键盘检测函数(确定被测元件为电阻、电容或电感) void display_f(ulong f); //频率显示函数 void display_C(uint C); //电容显示函数 void display_Cpf(); //主函数 void main() { switch0=0; switch1=0; switch2=0; key_C0=0; key_C1=0; key_C2=0; RW=0; led_init(); //清屏函数 t_init(); keyscan(); write_(0x0c);//开显示,不开光标 a=2; while(1) { keyscan(); switch(b) { case 0:{ delayms(80); C=(int)(0.069*f*2); if(C<10)display_Cpf(); else {switch0=1;led_init();} }break; case 1:{ if(C)C=(int)(0.9*C+0.0069*f*2); else C=(int)(0.069*f*2); if(C<49){table4[2]=110;display_C(C);} else {switch1=1;led_init();} }break; case 2:{ if(C)C=(int)(0.9*C+0.0069*f*2); else C=(int)(0.069*f*2); if(C<499){ table4[2]=110;display_C(C);} else {switch2=1;led_init();} }break; case 3:{ if(C)C=(int)(0.9*C+0.0069*f*2); else C=(int)(0.069*f*2); if(C>4999)C=4999; table4[2]=110;display_C(C); }break; } } } //中断函数 void T0_count() interrupt 1 { switch(a) { case 2:while(C_out); while(!C_out); TH0=0; TL0=0; while(C_out); while(!C_out); th0=TH0; tl0=TL0; TR0=1; break; } f=th0*256+tl0; } //延时函数 void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } //液晶写命令函数 void write_(uchar ) { delayms(2); lcdrs=0; P0=; lcden=1; _nop_(); _nop_(); _nop_(); _nop_(); lcden=0; } //液晶写数据函数 void write_data(uchar date) { delayms(2); lcdrs=1; lcden=1; P0=date; lcden=1; _nop_(); _nop_(); _nop_(); _nop_(); lcden=0; } //液晶初始化函数 void led_init() { delayms(15); write_(0x38); //设置16×2显示,5×7点阵,8位数据接口 delayms(5); write_(0x38); delayms(5); write_(0x01); delayms(5); write_(0x08); delayms(5); write_(0x0C); } //定时器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_C0==1) { delayms(10); if(key_C0==1) b=1; } if(key_C1==1) { delayms(10); if(key_C1==1) b=2; } if(key_C2==1) { delayms(10); if(key_C2==1) b=3; } } //电容显示函数 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_(0x80+0x40); for(num=0;num<6+count;num++) { write_data(table4[num]); delayms(5); } } //电容值偏小时使用的显示函数 void display_Cpf() { while(C_out); while(!C_out); TH0=0; TL0=0; while(C_out); while(!C_out); while(C_out); while(!C_out); while(C_out); while(!C_out); while(C_out); while(!C_out); while(C_out); while(!C_out); while(C_out); while(!C_out); th0=TH0; tl0=TL0; TR0=1; f1=th0*256+tl0; table4[2]=112; if(Cpf)Cpf=(int)(0.9*Cpf+1.13645*f1*2/1.2); else Cpf=(int)(11.3645*f1*2/1.2); display_C(Cpf); }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 电容 测量仪 解析
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文