基于单片机的电容测试仪_第1页
基于单片机的电容测试仪_第2页
基于单片机的电容测试仪_第3页
基于单片机的电容测试仪_第4页
基于单片机的电容测试仪_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计说明书PAGE基于单片机的电容测试仪摘要:提出了一个电容测量解决方案,采用NE555与被测电容构成多谐振荡器,单片机控制多谐振荡器起振信号,采用单片机外部中断和定时器判断多谐振荡器输出一个完整方波的时间,再根据多谐振荡器匹配电阻计算得到被测电容电容值并送入液晶显示。关键词:电容测试仪,单片机,LCD1602,AT89C51Abstract:Thispaperputsforwardacapacitancemeasurementsolutions,usingNE555andmeasuredcapacitanceconstitutemultivibrator,single-chipmicrocomputercontrolmultivi-bratoronvibrationsignal,USESthemonolithicexternalinterruptandtimerjudgmentltivibratoroutputacompletesquarewavetime,againaccordingtothemultivibratormatchingresistancecalculationgetmeasuredcapacitancecapacitancevalueandintotheliquidcrys-taldisplay.Keywords:capacitancemeasurementsolutions,microcomputer,LCD1602,AT89C51第PAGEI页目录290021前言 197112整体方案设计 264842.1方案论证 239312.2方案比较 3286913单元模块设计 4110573.1多谐振荡器模块 4125303.2单片机模块 5198553.3显示模块 6134533.4电源模块 6137684软件设计 724055系统技术指标及精度和误差分析 8232486结论 9192537设计小结 10122308参考文献 1130146附录1:电路总图 1218932附录2:软件代码 13第1页1前言电容,是指在给定电位差下的电荷储藏量,记为C,国际单位是法拉(F)。一般来说,电荷在电场中会受力而移动,当导体之间有了介质,则阻碍了电荷移动而使得电荷累积在导体上,造成电荷的累积储存,储存的电荷量则称为电容。因电容是电子设备中大量使用的电子元件之一,所以广泛应用于隔直、耦合、旁路、滤波、调谐回路、能量转换、控制电路等方面。电容按结构划分主要有二种:一是固定电容,二是可变电容.按电介质划分主要有:有机介质电容器,无机介质电容器,电解电容等.按材料分为陶瓷电容,用于高频的云母电容;涤沦电容,用于中低频;金属膜电容,用于低频;电解电容是固定电容,一般体积比较大,用在低频滤波电路中,它有正负极之分使用时不能接反,否则会发生漏液或爆炸.电子制作中需要用到各种各样的电容器,它们在电路中分别起着不同的作用。与电阻器相似,通常简称其为电容,用字母C表示。顾名思义,电容器就是“储存电荷的容器”。尽管电容器品种繁多,但它们的基本结构和原理是相同的。两片相距很近的金属中间被某物质(固体、气体或液体)所隔开,就构成了电容器。两片金属称为极板,中间的物质叫做介质。电容器也分为容量固定的与容量可变的。但常见的是固定容量的电容,最多见的是电解电容和瓷片电容。电容值的测量对于硬件设计显得非常重要,硬件计算所得电容值与我们选择电容时见到电容的标称值存在着差距,因为电容的制作工艺不同,不能保证电容的实际值和标称值完全一样,这样给我们使用带来很多麻烦,特别是在高频电子中,电容值的微小变化都肯能引起结果的极大不精确,由此测量电容值的意义可见一斑。第16页2整体方案设计本设计的整体思路是:利用NE555时基集成电路与被测电容构成多谐振荡器,通过单片机对多谐振荡器输出计数得到电容值与多谐振荡器输出方波周期之前的关系,从而通过判断方波周期得到被测电容的电容值,并通过LCD12864显示出来。2.1方案论证设计中采用了两个方案,具体的方案见方案一和方案二。方案一:电容放电时间方案这种电容测量方法主要利用了电容的充放电特性,放电常数,通过测量与被测电容相关电路的充放电时间来确定电容值。用NE555芯片组成的单稳态触发器,在秒脉冲的作用下产生触发脉冲,根据电容值不同,其脉冲高电平持续时间不同我们可以通过单机对其放电高电平时间计时,得到电容放电时间与高电平计时之间的关系,从而用高电平续时间反推出电容值,这种方案原理框图如下:图2.1电容放电时间方案框图方案二:单片机计数方案本方案的设计思路是利用NE555时基集成电路与被测电容构成多谐振荡器,通过单片机对多谐振荡器输出计数得到电容值与多谐振荡器输出方波周期之前的关系,从而通过判断方波周期得到被测电容的电容值,并通过LCD1602显示出来。图2.2单片机计数方案框图2.2方案比较由于方案一采用计时高电平方法与方案二采用计数方法相比,方案一产生的误差较大,且对pF级别的电容测量存在很大困难,而方案二能容许电容值很小故方案二精度更高,实用范围更广,本次设计选择方案二。3单元模块设计本次设计系统由多谐振荡模块,单片机模块,和显示模块组成,其中多谐振荡器由NE555和被测电容构成,单片机模块由51单片机及其外围电路组成。显示模块有LCD12864组成。3.1多谐振荡器模块该模块由NE555构成多谐振荡器,其中R1取100欧姆,R2取20欧姆,C2为被测电容。如下图所示:图3.1NE555构成的多谐振荡器NE555(TimerIC)为8脚时基集成电路,大约在1971年由SigneticsCorporation发布,在当时是唯一非常快速且商业化的TimerIC,在往后的30年中非常普遍被使用,且延伸出许多的应用电路,后来基于CMOS技术版本的TimerIC如MOTOROLA的MC1455已被大量的使用,但原规格的NE555依然正常的在市场上供应,尽管新版IC在功能上有部份的改善,但其脚位劲能并没变化,所以到目前都可直接的代用。NE555是属于555系列的计时IC的其中的一种型号,555系列IC的接脚功能及运用都是相容的,只是型号不同的因其价格不同其稳定度、省电、可产生的振荡频率也不大相同;而555是一个用途很广且相当普遍的计时IC,只需少数的电阻和电容,便可产生数位电路所需的各种不同频率之脉波讯号。3.2单片机模块单片机电路是本设计的核心部分,本设计选用了常用的AT89C52单片机。AT89C52是低功耗、高性能、经济的8位CMOS微处理器,工作频率为0—24MHz,内置4K字节可编程只读闪存,128x8位的内部RAM,16位可编程I/O总线。AT89C51工作的最简单的电路是其外围接一个晶振和一个复位电路,给单片机接上电源和地,单片机就可以工作了。图3.2单片机模块电路图3.3显示模块显示模块由LCD1602组成,本设计使用的是2行16个字的1602液晶模块作为测量值显示部分。其中字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据示的容量可以分为1行16个字、2行16个字、2行20个字等等。图3.3显示模块电路图3.4电源模块电源模块由三端集成稳压器LM7805构成,该芯片的输入电压为5~12V,输出为标准5V,输入端加100uF大电容,滤除剑锋脉冲,加10uF小电容平稳输入电压,输出端同理再次滤波,使输出电压稳定平滑供整个系统使用,其原理图如下:图3.4电源模块电路图4软件设计1、主程序设计:配置单片机定时器0为计数模式,TH0,TL0初值均为0x00;外部中断0与多谐振荡器的脉冲输出端相连,NE555的参考电压引脚(4)与单片机IO口相连,系统上电后单片机给NE555参考电压引脚拉高,NE555开始震荡,同时外部中断接收多谐振荡器输出,当中断触发两次即表示计时一个周期,同时将多谐振荡器参考电压拉低,多谐振荡器停止震荡。取出定时器0中的值即得到一个周期的时间,再计算电容,完成显示。2、电容值计算程序设置:多谐振荡器震荡频率与电阻电容的关系为f=1.43/{C*(R1+2R2)},其中f的单位是赫兹,电阻单位是欧姆,电容单位是法拉。单片机晶振为12M所以单片机机器周期为1us,计数器里面的值以us为单位。为了统一单位我将所以单位以ms为标准,作用计数器值应乘以1000。得到的电容值就是以uf为单位,而不再是法拉。3、显示程序:计算得到的电容值,是一个浮点数对于整数部分采用求余数和求商的方法得到百位,十位和个位。对于小数部分,因为浮点数不允许进行求余数操作,所以我将这个数强制转化为int形,再乘以10,再求余数得到十分位,同理乘以100得到百分位。再讲每一位数送入液晶显示。程序整体设计图:YESYESNOYESYESNO图4.1程序整体设计框图5系统技术指标及精度和误差分析本次设计采用的方式是外部中断判断多谐振荡器的单个周期,对于电容值较小,小到多谐振荡器周期小于1us时,该测量仪不能准确测出电容值。对于电容值在1uf到10uf内电容有较好的测量指标。另外电容值算法效果不理想,因为本次设计采用算法是f=1.43/{C*(R1+2R2)},其中1/f为T,T使用的的浮点数类型,单片机计算完电容值大概要花几十个机器周期,这期间可能有外部中断的多次触发,造成标志位反复翻转,从而改变计数器中的值。所以我在计完第一个周期后将NE555关掉,这样做可以减小误差。另外,计算电容值采用浮点数的方式,结果保留两位小数,在对浮点数做取余数运算时,没有采用乘以10的方法,而是采用强制转换为整形的方式,节约程序执行时间,提高了程序效率,但是这样的缺点是会产生一定误差。6结论本次设计单片机测量电容采用单片机外部中断采NE555与被测电容组成的多谐振荡器输出脉冲周期的方式。我一开始的思路是将定时器0设置为定时50ms模式,将定时器1设置为计数模式,当定时器0定时时间到时,读取定时器1中的值,那么定时器1中的值减去1即为50ms内多谐振荡器的周期个数,再把这个值取出来求电容,但是后来发现,如果多谐振荡器的输出周期较长,或者过短采回来的值就不具备计算意义,因为周期过长比如电容值为100uf,101uf,才回来的值几乎不变,周期过小,则计数器溢出,这样给计算带来很多难题。后来想到只采一个周期,才有了上面的方案,采用该方案基本上满足了电容值为1uf到10uf内电容的测量。通过改变匹配电阻R1,R2能达到其他量程电容的测量,本次设计没有过多考虑,希望以后有机会将此功能完善。7设计小结本次设计的小量程电容测试仪能够有效的测量电容值为1uf到10uf的电容,为实际应用中提供了电容选择的依据,更重要的是通过本次课程设计我明白了仪器的设计流程和设计指标,了解了由NE555构成的多谐振荡器电路工作原理,以及调节其方波输出周期的方法,了解了单片机及其外围电路设计,理解了51单片机定时器以及外部中断的使用。电容值的测量对于硬件设计显得非常重要,硬件计算所得电容值与我们选择电容时见到电容的标称值存在着差距,因为电容的制作工艺不同,不能保证电容的实际值和标称值完全一样,这样给我们使用带来很多麻烦,特别是在高频电子中,电容值的微小变化都肯能引起结果的极大不精确,通过本次设计,我明白电容值的测量方法,更体会到电容值的确定关系到整个电子线路的可靠性,使我在以后的学习应用中增加了一定设计经验。8参考文献[1]谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2005.[2]胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,2004.[3]蔡美琴、张为民.MCS-51系列单片机系统及其应用(第二版)[M].北京:高等教育出版社,2004.[4]杨振江、杜铁军.流行单片机实用子程序及应用实例[M].西安电子科技大学出版社,2002.[5]张培仁.基于C语言编程MCS-51单片机原理与应用[M].北京:清华大学出版社,2003.[6]郭天翔.51单片机C语言教程[J].北京:电子工业出版社,2006.[7]张洪润、刘秀英、张亚凡等.单片机应用设计200例[M].北京:航空航天大学出版社,2006.[8]谢自美.电子线路设计·实现·测试(第二版).武汉:华中科技大学出版社,2000[9]康华光.电子技术基础模拟部分(第五版).北京:高等教育出版社,2006[10]康华光.电子技术基础数字部分(第五版).北京:高等教育出版社,2006[11]张毅刚.单片机原理及应用.北京:高等教育出版社,2003[12]燕庆明.电路分析教程(第二版).北京:高等教育出版社,2006[13]谭浩强.C程序设计(第三版).北京:清华大学出版社,2005[14]潘新明.微型计算机控制技术(第二版).北京:电子工业出版社,2008[15]程德福.智能仪器(第二版).北京:机械工业出版社,2011[16]王军.自动控制原理.北京:机械工业出版社,2011[17]赵亮.单片机C语言编程与事例.北京:邮电出版社,2008附录1:电路总图附录2:软件代码#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint#defineLCD_DataP0ucharJi_s=0,Ji_s1=0,Ji_s2=0,m4,js=0,T_flag;floatR1=100,R2=100;//欧姆ucharcodetable[]="THECAPIS:";ucharcodetable1[]="uF";sbitlcden=P1^7;sbitlcdrs=P1^5;sbitlcdrw=P1^6;sbit_reset=P1^4;sbitstart=P2^7;ucharjishu=0; voiddelay(void){ uinty; for(y=5552;y>0;y--);} voidwrite_com(ucharcom){ lcdrs=0; lcdrw=0; P0=com; delay(); lcden=1; delay(); lcden=0;} voidwrite_data(uchardate){ lcdrs=1; lcdrw=0; P0=date; delay(); lcden=1; delay(); lcden=0;} voidinit(){ucharnum,num1;lcden=0; write_com(0x38);//显示模式设置 write_com(0x0e);//D=1开显示C=1显示光标 write_com(0x06);//N=1读或写一个字符后地址指针加一且光标加一 write_com(0x01);//清屏 write_com(0x80);//设置数据地址指针 for(num=0;num<11;num++) { write_data(table[num]); delay(); } write_com(0xc8); for(num1=0;num1<2;num1++) { write_data(table1[num1]); delay(); } } floatJi_sT(){ucharnT;floatT,CAP;nT=Ji_s;//计数个数减1得到周期数nTT=nT; //单位换算单片机机器周期1USCAP=1.43*1000*T/(R1+2*R2);//多谐振荡器震荡周期returnCAP;} voidcount(){ floatC; floatC1,C2,C3; ucharbai,shi,

温馨提示

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

评论

0/150

提交评论