基于单片机电容测量仪方案设计书.doc

上传人:小飞机 文档编号:3838762 上传时间:2023-03-24 格式:DOC 页数:19 大小:529.50KB
返回 下载 相关 举报
基于单片机电容测量仪方案设计书.doc_第1页
第1页 / 共19页
基于单片机电容测量仪方案设计书.doc_第2页
第2页 / 共19页
基于单片机电容测量仪方案设计书.doc_第3页
第3页 / 共19页
基于单片机电容测量仪方案设计书.doc_第4页
第4页 / 共19页
基于单片机电容测量仪方案设计书.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《基于单片机电容测量仪方案设计书.doc》由会员分享,可在线阅读,更多相关《基于单片机电容测量仪方案设计书.doc(19页珍藏版)》请在三一办公上搜索。

1、目前,随着电子工业的发展,电子元器件急剧增加,电子元器件的适用范围也逐渐广泛起来,在应用中我们常常要测定电容的大小。在电子产品的生产和维修中,电容测量这一环节至关重要,因此,设计可靠,安全,便捷的电容测试仪具有极大的现实必要性。本文提出了以MCS-51单片机为控制核心,结合多谐振荡器来实现电容测量的方法。并介绍了测量原理并给出了相应的电路及软件设计。关键词:电容测试仪;单片机;测量目录1概述11.1 设计目的和意义11.2 设计任务与要求12 硬件电路设计及其描述12.1 设计方案1 2.2 原理框图.22.3 基于AT89C51电容测量系统硬件设计详细分析22.3.1 AT89C51单片机工

2、作电路22.3.2 基于AT89C51电容测量系统复位电路32.3.3 基于AT89C51电容测量系统时钟电路42.3.4 基于AT89C51电容测量系统按键电路42.3.5 基于AT89C51电容测量系统555芯片电路52.3.6 基于AT89C51电容测量系统显示电路62.4 各部分电路连接成整个电路图92.5 系统所用元器件102.6 PCB制图.113 软件流程及程序设计113.1 系统模块层次结构图113.2 程序设计算法设计123.3 软件设计流程13 3.4 源程序代码134 系统调试及仿真175 总结185.1 本系统存在的问题及改进措施185.2 心得体会18参考文献191设

3、计任务 1.1 设计目的和意义目前,随着电子工业的发展,电子元器件急剧增加,电子元器件的适用范围也逐渐广泛起来,在应用中我们常常要测定电容的大小。在电子产品的生产和维修中,电容测量这一环节至关重要,一个好的电子产品应具备一定规格年限的使用寿命。因此在生产这一环节中,对其产品的检测至关重要,而检测电子产品是否符合出产要求的关键在于检测其内部核心的电路,电路的好坏决定了电子产品的好与坏,而电容在基本的电子产品的集成电路部分有着其不可替代的作用。同样,在维修人员在对电子产品的维修中,电路的检测是最基本的,有时需要检测电路中各个部件是否工作正常,电容器是否工作正常。因此,设计可靠,安全,便捷的电容测试

4、仪具有极大的现实必要性。 1.2 设计任务与要求(1)采用MCS-51系列单片机以及多谐振荡器进行电容测量仪设计;(2)能测试0.10.99UF的电容,其精确度为0.01UF。(3)用2行16个字的LCD1602显示测量结果。2 基于单片机电容测量硬件设计 2.1 设计方案 本设计选择基于AT89C51单片机和555芯片构成的多谐振荡电路的电容测量方法。这种电容测量方法主要是通过一块555芯片来测量电容,让555芯片工作在直接反馈无稳态的状态下,555芯片输出一定频率的方波,其频率的大小跟被测量的电容之间的关系是:f=0.772/(R*Cx),我们固定 R 的大小,其公式就可以写为:f=k/C

5、x,只要我们能够测量出555芯片输出的频率,就可以计算出测量的电容。计算频率的方法可以利用单片机的计数器T0和中断INT0,配合使用来测量,系统框图见图1所示。图中给出了整个系统设计的系统框图,系统主要由四个主要部分组成:单片机和晶振电路设计、555芯片电路设计、显示电路设计、复位电路设计。2.2原理框图图1 系统框图2.3 基于AT89C51电容测量系统硬件设计详细分析2.3.1 AT89C51单片机工作电路单片机电路是本设计的核心部分,本设计选用了常用的AT89C51单片机。AT89C51是低功耗、高性能、经济的8位CMOS微处理器,工作频率为024MHz,内置4K字节可编程只读闪存,12

6、8x8位的内部RAM,16位可编程IO总线。AT89C51工作的最简单的电路是其外围接一个晶振和一个复位电路,给单片机接上电源和地,单片机就可以工作了。其最简单的工作原理图如图2所示。图2 工作原理图2.3.2 基于AT89C51电容测量系统复位电路MCS-51的复位是由外部的复位电路来实现的。MCS-51单片机片内复位,复位引脚RST通过一个斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。 本设计采用按键手动脉冲复位方式,按键脉冲复位是利用RC微分电路产生的正脉冲来实现的。复位电路如图3所示。图3 复位电路

7、一般的,单片机的复位速度比外围I/O快些。若RC上电复位电路接MCS-51单片机和外围电路复位端,则能使系统可靠地同步复位。为保证系统可靠复位,在初始化程序中应用到一定的复位延迟时间。复位电路软件程序或者硬件发生错误的时候产生一个复位信号,控制MCS-51单片机从0000H单元开始执行程序,重新执行软件程序。此电路的输出端RESET接在单片机的复位引脚。2.3.3 基于AT89C51电容测量系统时钟电路时钟在单片机中非常重要,单片机各功能部件的运行都是以时钟频率为基准。时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种

8、为外部时钟方式。 本设计使用内部时钟方式,其内部时钟方式电路图如图4所示。图4 内部时钟方式电路图 MCS-51单片机内部有一个用与构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器电路。电路中的电容C1和C2典型值通常选择为30PF左右。对外接电容的值虽然没有严格的要求,但是电容的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。晶体的振荡频率的范围通常是在1.2MHz12MHz之间。很设计中单片机选择12MHz的石英晶体。2.3.4 基于AT89C51电容测量系统按键

9、电路按键是实现人机对话的比较直观的接口,可以通过按键实现人们想让单片机做的不同的工作。键盘是一组按键的集合,键是一种常开型开关,平时按键的两个触点处于断开状态,按下键是它们闭合。图5就是一种比较典型的按键电路,在按键没有按下的时候,输出的是高电平,当按键按下去的时候,输出的低电平。图5 按键电路2.3.5 基于AT89C51电容测量系统555芯片电路对于555电路等效看成一个带放电开关的RS触发器,这个特殊的触发器有两个输入端:阈值端TH可看成是置零端R,要求高电平,触发端R可看成置位端低电平有效。它只有一个输出端Vo,Vo可等效为触发器的Q端。放电端DIS可看成由内部放电开关控制的一个接点,

10、放电开关由触发器的端控制:Q=1时DIS端接地;Q=0时,DIS端悬空。此外,这个触发器还有复位端MR加上低电平(0。mm-) for(i=100。i0。i-)。/*检查忙否*/void Checkstates() unsigned char dat。 RS=0。 RW=1。 doEN=1。/下降沿 _nop_()。/保持一定间隔_nop_()。 dat=DATA。 _nop_()。_nop_()。 EN=0。 while(dat&0x80)=1)。/*LCD写命令函数*/void wcomd(unsigned char cmd) Checkstates()。 RS=0。 RW=0。 DATA

11、=cmd。 EN=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 EN=0。/*LCD写数据函数*/void wdata(unsigned char dat) Checkstates()。 RS=1。 RW=0。 DATA=dat。 EN=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 EN=0。/*初始化*/void LCDINIT() Delay1ms(15)。 wcomd(0x38)。/功能设置 Delay1ms(5)。 wcomd(0x38)。/功能设置 Delay1ms(5)。 wcomd(0x01)。/清屏 Delay1m

12、s(5)。 wcomd(0x08)。/关显示 Delay1ms(5)。 wcomd(0x0c)。/开显示,不开光标 /*显示函数*/void Display(void) /显示函数 unsigned char i,j。 unsigned char a12=0X4D,0X45,0X41,0X53,0X55,0X52,0X45,0X4D,0X45,0X4E,0X54,0X53。 /显示measurements LCDINIT()。 for(i=0。i12。i+) /写显示第一行 wcomd(0x80+i)。 Delay1ms(1)。 wdata(ai)。 Delay1ms(1)。 for(j=0。

13、j5000) /设置最长等待时间 _reset=0。 /最长等待时间到还没有中断,停止555 if(N=1000) /如果计数值大于1000,显示LA,表示应换用大一点的量程 b2=0X1C。 b3=0X11。 b4=0X5E。 b5=0X5E。 b6=0X5E。 b7=0X5E。 if(N=100&N1000) b3=0XFE。 /计算电容的大小 b4=N/100。 b5=(N/10)%10。 b6=0X25。 b7=0X16。 Display()。 /显示电容的大小 void int0(void) interrupt 0 /第一次中断开始计数,第二个中断停止计数 T_flag=!T_fla

14、g。 if(T_flag=1) TR0=1。 /开始计时 if(T_flag=0) TR0=0。 /停止计时 EX0=0。 /关闭中断 _reset=0。 /停止发出方波 N=TH0*256+TL0。 /计算计数器的值 N=N*5/3。 TH0=0x00。 /恢复初值 TL0=0x00。 4 系统调试及仿真讲上面所编的C语言程序在Keil uVision3软件上链接、编译后,无误,并给总电路图中的单片机AT89C51加载程序进行仿真,得到仿真结果如下所示。(1)待测电容C5在0.10.99uf内例如C5=0.55uf、0.99uf时,仿真结构如下图14所示。A、C5=0.55uf时仿真图 B、

15、C5=0.99uf时仿真图 图14 仿真图5 总结 5.1 本系统存在的问题及改进措施本设计基于单片机AT89C51的计数器和中断配合使用来计算RC振荡电路输出的频率,设计中使R固定不变,从而推算出C的大小。由于单片机的计数器的值N=065535,为了测量的精度,N的取值一般在1005000,所以所设计的电容测量仪的量程受较小。5.2 心得体会 本次课程设计是一次非常好的将理论与实际相结合的机会,通过对电容测试仪的课题设计,锻炼了我的实际动手能力,增强了我解决实际工程问题的能力,同时也提高我查阅文献资料、设计规范以及电脑制图等其他专业能力水平。本设计通过由555芯片和电容电阻组成的振荡电路来输

16、出方波,通过单片机定时器T0测量其输出频率,再通过单片机软件编程,对数据进行进一步的计算从而得出被测电容的值,再通过LCD1602显示出其测量值。 系统的软件部分是系统实现功能的关键,软件部分是在Keil51的平台上使用是C语言编写程序。本系统通过一个测量按键启动整个测量程序,通过外部中断零INT0来控制计数器T0的开始和停止,INT0采用边沿触发方式,在第一个脉冲边沿启动T0,使T0开始计数,在第二个脉冲边沿停止T0计数,然后通过对数据的计算和处理最后将数据显示在LCD1602上。总之,整个系统的工作正常,完成了设计任务的全部要求虽然本设计完成了设计任务,但无法得到十分精确的测量结果,这主要是有以下几点原因,首先单片机对于脉冲宽度的测量精确度有限,其次是外界的干扰对波形有一定的影响,还有硬件自身也有一部分原因。希望在之后的设计之中能够得到进一步解决。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备2025010119号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000987号