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

下载本文档

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

文档简介

摘要目前,随着电子工业的开展,电子元器件急剧增加,电子元器件的适用范围也逐渐广泛起来,在应用中我们常常要测定电容的大小。在电子产品的生产和维修中,电容测量这一环节至关重要,因此,设计可靠,平安,便捷的电容测试仪具有极大的现实必要性。本文提出了以MCS-51单片机为控制核心,结合多谐振荡器来实现电容测量的方法。并介绍了测量原理并给出了相应的电路及软件设计。关键词:电容测试仪;单片机;测量目录TOC\o"1-3"\h\u1设计任务 11.1设计目的和意义 11.2设计任务与要求 12基于单片机电容测量硬件设计 12.1设计方案 12.2基于AT89C51电容测量系统硬件设计详细分析 22.2.1AT89C51单片机工作电路 22.2.2基于AT89C51电容测量系统复位电路 32.2.3基于AT89C51电容测量系统时钟电路 32.2.4基于AT89C51电容测量系统按键电路 42.2.5基于AT89C51电容测量系统555芯片电路 52.2.6基于AT89C51电容测量系统显示电路 62.3各局部电路连接成整个电路图 92.4系统所用元器件 113软件流程及程序设计 113.1软件系统总体设计方案 113.2程序设计算法设计 123.3软件设计流程 134系统调试及仿真 135总结 155.1本系统存在的问题及改良措施 155.2心得体会 15参考文献 16附录1:源程序清单 17附录2:电路原理图 221设计任务设计目的和意义目前,随着电子工业的开展,电子元器件急剧增加,电子元器件的适用范围也逐渐广泛起来,在应用中我们常常要测定电容的大小。在电子产品的生产和维修中,电容测量这一环节至关重要,一个好的电子产品应具备一定规格年限的使用寿命。因此在生产这一环节中,对其产品的检测至关重要,而检测电子产品是否符合出产要求的关键在于检测其内部核心的电路,电路的好坏决定了电子产品的好与坏,而电容在根本的电子产品的集成电路局部有着其不可替代的作用。同样,在维修人员在对电子产品的维修中,电路的检测是最根本的,有时需要检测电路中各个部件是否工作正常,电容器是否工作正常。因此,设计可靠,平安,便捷的电容测试仪具有极大的现实必要性。设计任务与要求〔1〕采用MCS-51系列单片机以及多谐振荡器进行电容测量仪设计〔2~1UF、10~50UF两个档位的电容;两、1UF;〔3〕用2行16个字的LCD1602显示测量结果。2基于单片机电容测量硬件设计2.1设计方案本设计选择基于AT89C51单片机和555芯片构成的多谐振荡电路的电容测量方法。这种电容测量方法主要是通过一块555芯片来测量电容,让555芯片工作在直接反应无稳态的状态下,555芯片输出一定频率的方波,其频率的大小跟被测量的电容之间的关系是:f=0.772/〔R*Cx〕,我们固定R的大小,其公式就可以写为:f=k/Cx,只要我们能够测量出555芯片输出的频率,就可以计算出测量的电容。计算频率的方法可以利用单片机的计数器T0和中断INT0',配合使用来测量,系统框图见图1所示。图中给出了整个系统设计的系统框图,系统主要由四个主要局部组成:单片机和晶振电路设计、555芯片电路设计、显示电路设计、复位电路设计。图1系统框图图1系统框图2.2基于AT89C51电容测量系统硬件设计详细分析2.2.1AT89C51单片机工作电路图2工作原理图单片机电路是本设计的核心局部,本设计选用了常用的AT89C51单片机。AT89C51是低功耗、高性能、经济的8位CMOS微处理器,工作频率为0—24MHz,内置4K字节可编程只读闪存,128x8位的内部RAM,16位可编程I/O总线。AT89C51工作的最简单的电路是其外围接一个晶振和一个复位电路,给单片机接上电源和地,单片机就可以工作了。其最简单的工作原理图如图2所示。图2工作原理图基于AT89C51电容测量系统复位电路MCS-51的复位是由外部的复位电路来实现的。MCS-51单片机片内复位,复位引脚RST通过一个斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。本设计采用按键手动脉冲复位方式,按键脉冲复位是利用RC微分电路产生的正脉冲来实现的。复位电路如图3所示。图3复位电路图3复位电路一般的,单片机的复位速度比外围I/O快些。假设RC上电复位电路接MCS-51单片机和外围电路复位端,那么能使系统可靠地同步复位。为保证系统可靠复位,在初始化程序中应用到一定的复位延迟时间。复位电路软件程序或者硬件发生错误的时候产生一个复位信号,控制MCS-51单片机从0000H单元开始执行程序,重新执行软件程序。此电路的输出端RESET接在单片机的复位引脚。2.2.3基于AT89C51电容测量系统时钟电路时钟在单片机中非常重要,单片机各功能部件的运行都是以时钟频率为基准。时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种为外部时钟方式。本设计使用内部时钟方式,其内部时钟方式电路图如图4所示。图4内部时钟方式电路图图4内部时钟方式电路图MCS-51单片机内部有一个用与构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器电路。电路中的电容C1和C2典型值通常选择为30PF左右。对外接电容的值虽然没有严格的要求,但是电容的大小会影响振—12MHz之间。很设计中单片机选择12MHz的石英晶体。2.2.4基于AT89C51电容测量系统按键电路按键是实现人机对话的比拟直观的接口,可以通过按键实现人们想让单片机做的不同的工作。键盘是一组按键的集合,键是一种常开型开关,平时按键的两个触点处于断开状态,按下键是它们闭合。图5就是一种比拟典型的按键电路,在按键没有按下的时候,输出的是高电平,当按键按下去的时候,输出的低电平。图5按键电路图5按键电路2.2.5基于AT89C51电容测量系统555芯片电路对于555电路等效看成一个带放电开关的RS触发器,这个特殊的触发器有两个输入端:阈值端TH可看成是置零端R,要求高电平,触发端R可看成置位端低电平有效。它只有一个输出端Vo,Vo可等效为触发器的Q端。放电端DIS可看成由内部放电开关控制的一个接点,放电开关由触发器的端控制:Q=1时DIS端接地;Q=0时,DIS端悬空。此外,这个触发器还有复位端MR加上低电平(<0.3V)时可使输出为低电平。该特殊的RS触发器有两个输入端,这两个输入端的触发电平要求一高一低,其中置零端R即阈值端TH要求高电平,置位端即触发端那么要求低电平,也就是使它们翻转的阈值电压值不同。当VK端不接控制电压时,对TH端(即R端)来讲,大于2/3VDD是高电平1,小于2/3VDD时是低电平0;而对TR端(即端)来讲,大于1/3VDD是高电平1,小于1/3VDD是低电平O。55芯片电路的应用电路很多,本次设计应用直接反应型无稳类电路。电路如图6所示。图6555产生方波电路图6555产生方波电路555芯片芯片输出的频率为f=0.772/(R*C),只要我们改变电阻R,就可以到达改变电阻量程的目的,本设计提供了两组电阻,所以说有两组组的电容测量量程。分别为(1~~1UF)。在555芯片输出方波后,由于硬件的原因,输出的方波会有很多毛刺,为了去除这些毛刺本设计中使用了一个两输入与门〔74HC08〕,让信号通过74HC08后会使输出的波形毛刺减少很多,使单片机的测量结果变得精确。74HC08如图7所示,经过整形前后波形比拟如图8所示。图774HC08图8经过74HC08整形前后波形比拟图774HC08图8经过74HC08整形前后波形比拟期中下面一条为整形后〕2.2.6基于AT89C51电容测量系统显示电路本设计使用的是2行16个字的1602液晶模块作为测量值显示局部。其中字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等。如图9为LCD1602引脚图。图10LCD1602引脚图图10LCD1602引脚图图10LCD1602引脚图1602采用标准的16脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器比照度调整端,接正电源时比照度最弱,接地电源时比照度最高,比照度过高时会产生“鬼影〞,使用时可以通过一个10K的电位器调整比照度第4脚:RS为存放器选择,高电平时选择数据存放器、低电平时选择指令存放器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15~16脚:空脚1602液晶模块内部的字符发生存储器〔CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比方大写的英文字母“A〞的代码是01000001B〔41H〕,显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A〞表1CGROM和CGRAM中字符代码与字符图形对应关系1602液晶模块内部的控制器共有11条控制指令,其控制命令如下表所示。表2LCD1602内部11条控制指令它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。〔说明:1为高电平、0为低电平〕指令1:清显示,指令码01H,光标复位到地址00H位置指令2:光标复位,光标返回到地址00H指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平那么无效指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符〔有些模块是DL:高电平时为8位总线,低电平时为4位总线〕指令7:字符发生器RAM地址设置指令8:DDRAM地址设置指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据指令11:读数据表3LCD1602的内部显示地址液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否那么此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,LCD1602的内部显示地址如下。表3LCD1602的内部显示地址图11显示电路图图11显示电路图各局部电路连接成整个电路图完成各个局部的电路设计后,即可组合成一个总的电路图。本设计中使用Proteus完成电路图。总电路图12所示。图12总电路图12总电路2.4系统所用元器件本系统所用的元器件清单如下所示。表4元器件清单表4元器件清单CategoryReferenceValueOrderCodeResistorsR11kResistorsR31kResistorsR2200ResistorsR4ResistorsR5CapacitorsC122uFCapacitorsC230pFCapacitorsC330pFCapacitorsC425uFCapacitorsC510uFIntegratedCircuitsU1AT89C51IntegratedCircuitsU2555IntegratedCircuitsU374HC08MiscellaneousLCD1LM016LMiscellaneousRP1RESPACK-8MiscellaneousSW1SW-SPSTMiscellaneousSW2SW-SPSTMiscellaneousX1CRYSTAL3软件流程及程序设计3.1软件系统总体设计方案本设计的程序都是基于C语言的。要完成的任务是:初始化程序设计、按键程序设计、中断处理程序,计数器计数程序,显示程序设计等。本次设计所选用KeilC51中的编译/连接器软件KeiluVision2作为编译器/连接工具。3.2程序设计算法设计整个程序设计过程中遇到的最大的问题的如何根据测量到的方波的频率来计算所测量的电容的大小。在前面的介绍中我们知道:555时基芯片的输出频率跟所使用的电阻R和电容C的关系是:又因为,所以(7)即:(8)因单片机采用12M的晶振,计数器T0的值增加1,时间就增加1μS ,所以采用中断的方式来启动和停止计数器T0,中断的触发方式为脉冲下降沿触发,第一次中断到来启动T0,计数器的值为,第二次中断到来停止T0,计数器器的值为,那么测量方波的周期为,令开始时刻计数器的值,那么。简单时序图13所示。图13简单时序图13简单时序那么:(9)单片机的计数器的值N=0-65535,为了测量的精度,N的取值一般在100~5000,当电阻R越大,电容C的值就越小。我们取不同的电阻值,就得到不同的电容测量的量程。第一档:10~50uF第二档:0.1~5uF为了编写程序的方便,我们只计算,后面的单位可以根据使用的量程自行添加。3.3软件设计流程流程图是一种传统的算法表示法,它利用几何图形的框来代表各种不同性质的操作,用流程线来指示算法的执行方向。本设计的程序的流程图如图14所示。图14流程图图14流程图4系统调试及仿真讲上面所编的C语言程序在KeiluVision3软件上链接、编译后,无误,并给总电路图中的单片机AT89C51加载程序进行仿真,得到仿真结果如下所示。〔1)待测电容C5在1~50UF内,选择档位一:图15仿真结果1例如C5=45uf、18uf时,档位一开关闭合,仿真结构如下列图15所示图15仿真结果1(2)待测电容C5在0.1~1.0uf内,选择档位二:例如C5=0.4uf、0.9uf时,档位二开关闭合,仿真结构如下列图16所示。图图16仿真结果25总结5.1本系统存在的问题及改良措施本设计基于单片机AT89C51的计数器和中断配合使用来计算RC振荡电路输出的频率,设计中使R固定不变,从而推算出C的大小。由于单片机的计数器的值N=0~65535,为了测量的精度,N的取值一般在100~5000,所以所设计的电容测量仪的量程受较小。5.2心得体会本次课程设计是一次非常好的将理论与实际相结合的时机,通过对电容测试仪的课题设计,锻炼了我的实际动手能力,增强了我解决实际工程问题的能力,同时也提高我查阅文献资料、设计标准以及电脑制图等其他专业能力水平。本设计通过由555芯片和电容电阻组成的振荡电路来输出方波,通过单片机定时器T0测量其输出频率,再通过单片机软件编程,对数据进行进一步的计算从而得出被测电容的值,再通过LCD1602显示出其测量值。系统的软件局部是系统实现功能的关键,软件局部是在Keil51的平台上使用是C语言编写程序。本系统通过一个测量按键启动整个测量程序,通过外部中断零INT0来控制计数器T0的开始和停止,INT0采用边沿触发方式,在第一个脉冲边沿启动T0,使T0开始计数,在第二个脉冲边沿停止T0计数,然后通过对数据的计算和处理最后将数据显示在LCD1602上。总之,整个系统的工作正常,完成了设计任务的全部要求虽然本设计完成了设计任务,但无法得到十分精确的测量结果,这主要是有以下几点原因,首先单片机对于脉冲宽度的测量精确度有限,其次是外界的干扰对波形有一定的影响,还有硬件自身也有一局部原因。希望在之后的设计之中能够得到进一步解决。参考文献[1]康华光.电子技术根底(模拟局部).[2]华成英,童诗白.数字电子技术根底.北京:高等教育出版社,2006.5[3]谢自美.电子线路设计/实验/测试.[4]郭文川.单片机原理与接口技术.北京:中国农业出版社,2007.8.[5]丁英丽.交流型微小电容测量电路的设计.[6]王毓银.数字电路逻辑设计.[7]罗民昌.集成电路系统.[8]申忠如,申淼,谭亚丽主编,MCS-51单片机原理及系统设计,西安:西安交通大学出版社,2023年3月第1版[9[10[11附录1:源程序清单#include"reg51.h"#include"intrins.h"//库函数#defineDATAP0sbitRW=P2^1;//1602写数据sbitRS=P2^0;//1602写地址sbitEN=P2^2;//1602工作使能sbitb_test=P3^7;//开始测量电容的按键输入sbit_reset=P3^5;//555时基芯片工作控制信号unsignedintT_flag,N,C,i,Dis1,Dis0;unsignedintb[7]={0X13,0X0D,0X00,0X00,0X00,0X25,0X16};//显示C=00000UF/***********延时1MS******************/voidDelay1ms(unsignedintmm){unsignedinti;for(mm;mm>0;mm--)for(i=100;i>0;i--);}/***************检查忙否*****************/voidCheckstates(){unsignedchardat;RS=0;RW=1;do{EN=1;//下降沿_nop_();//保持一定间隔 _nop_();dat=DATA;_nop_(); _nop_();EN=0;}while((dat&0x80)==1);}/**************LCD写命令函数*********/voidwcomd(unsignedcharcmd){Checkstates();RS=0;RW=0;DATA=cmd;EN=1;_nop_();_nop_();_nop_();_nop_();EN=0;}/**********LCD写数据函数**************/voidwdata(unsignedchardat){Checkstates();RS=1;RW=0;DATA=dat;EN=1;_nop_();_nop_();_nop_();_nop_();EN=0;}/*****************初始化********************/voidLCDINIT(){Delay1ms(15);wcomd(0x38);//功能设置Delay1ms(5);wcomd(0x38);//功能设置Delay1ms(5);wcomd(0x01);//清屏Delay1ms(5);wcomd(0x08);//关显示Delay1ms(5);wcomd(0x0c);//开显示,不开光标}/***********显示函数**************/voidDisplay(void)//显示函数{unsignedchari,j;unsignedchara[12]={0X4D,0X45,0X41,0X53,0X55,0X52,0X45,0X4D,0X45,0X4E,0X54,0X53};//显示measurementsLCDINIT();for(i=0;i<12;i++)//写显示第一行{wcomd(0x80+i);Delay1ms(1);wdata(a[i]);Delay1ms(1);}for(j=0;j<7;j++)//写显示第二行{wcomd(0xc0+j);Delay1ms(1);wdata(0x30+b[j]);Delay1ms(1);}Delay1ms(150);}voidmain(){IE=0x81;//翻开全部的中断控制,并开启外部中断允许TMOD=0x09;//T0为16位计数工作方式1IT0=1;//设置外部中断的触发的方式为脉冲触发TH0=0x00;TL0=0x00;T_flag=0;_reset=0;while(1){while(!b_test)//如果有测量按键输入就往下执行{i=0;_reset=1;//启动555时基芯片EX0=1

温馨提示

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

评论

0/150

提交评论