数字电容测量仪设计.docx
《数字电容测量仪设计.docx》由会员分享,可在线阅读,更多相关《数字电容测量仪设计.docx(32页珍藏版)》请在冰豆网上搜索。
数字电容测量仪设计
毕业设计、毕业论文
题目
数字电容测量仪设计
学校
长春工业大学人文信息学院
专业班级
电子信息工程090321班
指导教师
姓名
2013年月日
摘要
当前现代化电子市场正朝着快速及便利同时大容量的方向发展,现代电子产品几乎能运用到社会的各个领域当中,有力的推动了社会现代化的发展。
同时,电子产品也被要求以更快速度的升级和更快速的处理。
本设计以STC89C52单片机和555振荡器作为主要元件,来实现对电容容量的基本测量。
本设计基于555振荡器构成多谐振荡器来产生输入脉冲信号,然后再通过STC89C52单片机对方波脉冲进行中断计数而测量电容的。
在多谐振荡器输出端加入一个74HC08使输出波型毛刺减少,从而使单片机测量结果变精确。
555振荡器所产生的信号会根据所选的电阻的阻值不同,从而调节电容的参数值,这样就可以确定被测电容的容值范围,最后通过LCD1602显示器显示被测电容容值。
在软件设计中,该设计使用C语言来编写程序。
该仪器具有方便快捷,简单实用,价格低廉等特点。
关键词电容测量555振荡器STC89C52LCD1602
Abstract
Thecurrentmodernelectronicmarketisheadedinfastandconvenientlargecapacityandthedirectionofdevelopment,modernelectronicproductstousetoalmostallareasofsocietyofpowerfulpromotedthedevelopmentofmodernsociety.Atthesametime,theelectronicproductsalsoarerequiredtofasterspeedupgradeandmorefastprocess.
ThisdesigntoSTC89C52single-chipmicrocomputerand555oscillatorasthemaincomponents,torealizethebasiccapacityofcapacitancemeasurement.Thisdesignbasedonthe555oscillatortogeneratemorethanaharmonicoscillatorinputpulsesignal,andthenthroughtheSTC89C52microcontrollereachothertointerruptpulsecountandmeasurementofcapacitance.Inordertojointheoutputoscillatora74HC08tomaketheoutputwaveformburrreduced,sothatthesinglechipmicrocomputervariableprecisionmeasurementresults.555oscillatorgeneratedsignalwillbeselectedaccordingtotheresistanceoftheresistanceisdifferent,whichregulatescapacitanceparametervalue,whichcandeterminethecapacityofthecapacitancevaluerange,thelastthroughtheLCD1602displayshowsmeasuredcapacitanceletvalue.Insoftwaredesign,thisdesignusingClanguagetowritetheprogram.Theinstrumenthasconvenientandquick,simple,practical,andlowprices,etc.
Keywordscapacitancemeasurements555oscillatorSTC89C52LCD1602
目录
摘要I
AbstractII
目录
1绪论1
1.1引言1
2STC89C52单片机的基本功能及应用3
2.1STC89C52芯片介绍3
2.2STC89C52应用说明5
2.3单片机工作的最小化配置6
3数字电容测量仪系统工作原理7
3.1整体方案设计7
3.2系统按键电路8
3.3系统复位电路8
3.4555芯片电路9
3.5系统显示电路11
4程序设计13
5总结15
参考文献16
附录17
附录1元件清单17
附录2系统原理图18
附录3程序清单19
致谢25
1绪论
1.1引言
当前现代化电子市场正朝着方便快捷容量大的方向发展,现代电子产品几乎能运用到社会的各个领域当中,有力的推动了社会现代化的发。
同时,电子产品也面临着更快速度的节奏升级和更快速的处理功效。
当今电子测试领域,电容测量技术已经应用的非常广泛了,数字电容测量技术的发展主要取决于电容传感器的发展。
由最初的用交流不平衡电桥就能测量基本的电容传感器到现在主要使用容栅式电容传感器,陶瓷电容压力传感器等。
电容测量技术也从单一化向多元化发展。
虽然国内电容传感器方面的厂家越来越多,但是每当提起国内电容测量仪器,用户就会有很多看法。
如:
诸如精度不高,外观不好,可靠性差等。
近年来我国在电子测量仪器的精准度方面投入了很多人力物力,状况有了很大改观。
中国本土的仪器制造与生产已经取得了很大的进步,特别是在电子测量这个领域,与国外的差距正在逐日减少,并对国外电子设备巨头产生了一定的影响。
随着现代化技术的提高与政府的重视,中国的的测量仪器每年都以30%的速度增长,同时也催生除了大批创新型企业和产品。
其实影响国内测量技术的根本原因是:
(1)测试在整个产品流程中的地位偏低,人们一般认为产品的开发过程中最重要的是研发,而测试的话只属于边沿技术。
其实这一点是非常错误的,因为在大部分的研究机构部门配置上对其重视都不够。
造成这种错误观念的原因是因为整个社会对电子测量的重视度不够,从而造成电子测试方面人才的缺失同时相关的基础科学研究也变得比较薄弱,这就成为了中国电子测量发展的一个瓶颈。
同时,研发团队自己对电子测试的重视度和对仪器本身的研究程度也远远不够。
(2)面向应用和现代市场营销模式还没有真正建立起来,国内仪器设备生产商只是一味的研发生产,但是却没有建立起一条连贯的全面的现代营销体系跟科技研发模式。
传统的营销模式虽然在以前的八九十年代发展出很大的效益,但却无法满足现代化市场的需求。
因此,为了拉近国内电子测量仪器与国外巨头厂家之间的差距,国内电子测量仪器厂家应当加快自己企业的换代更新。
(3)缺乏标准件的材料配套体系。
历史上的中国电子测量设备配套行业的企业都是一些私人的中小型企业,并没有很大的资金投入到生产标准化跟技术研发上,这导致了电子测量行业配套行业的研发水品普遍较低。
虽然随着社会现代化发展,这方面已经有了很大的提高,但是这还是远远不够的。
我们应当提高对电子测量技术的研发力度,一味的提高精准度但却没有配套材料精准度的支持是很难实现的。
以上这些因素都制约了本土电子测量仪器的发展革新。
电容测量是一项很基础的研究工作,在日常的电路研究及实验中,电容作为一个使用非常频繁的电子元件,实际电路对电容的研究越来越精确。
如果电容测量达不到一个很准确的水品,会直接的影响到各项科技的提升和进步,因此研究电容测量技术具有非常重要的意义。
传统电容测量仪精度不高,测量不够便利,因此我选择一个数字电容测量仪来测量电容的容值大小。
该数字电容仪有方便,精度高的优点,这也使我的选题有了更大的意义,并提高了我对做毕业设计的兴趣。
2STC89C52单片机的基本功能及应用
2.1STC89C52芯片介绍
STC89C52是一种低电压、高性能的CMOS8位微处理器,具有8K在系统可编程的Flash处理器。
STC89C52对比51单片机具有更大的数据存储空间,并且带有4K字节EEPROM存储空间,使得该单片机比51单片机存储空间更大,数据处理速度也更快。
在单片机芯片上,该芯片拥有灵巧的8位CPU和在系统内可编程的Flash,这使得STC89C52单片机相比其它单片机有了很大的提高,大大提高了它在各种电子系统中的使用。
STC89C52是由一个时钟电路OSC、一个程序存储器ROM、一个数据存储器RAM和一个定时器/计数器组成。
程序存储器跟数据存储器分为了两个不同的逻辑存储空间,这样就可以用8位地址对数据及程序存储器来进行访问,通过这样可以提高8位CPU的存储和处理速度。
(1)STC89C52芯片引脚分布及说明:
STC89S52引脚分布如图1所示:
图1STC89C52引脚分布
(2)STC89C52各引脚功能简介:
P0口:
8位。
漏极开路的双向I/O口。
当STC89C52扩展外部存储器及I/O接口芯片是没P作为地址总线(低8位)及数据总线的分时复用端口。
P0口也可作为通用的I/O口使用,但需加上拉电阻,这时为准双向口。
当作为通用的I/O输入时,应先向端口输出锁存器写入1。
P0口可驱动8个LS型TTL负载。
P1口:
8位,准双向I/O口,具有内部上拉电阻。
P1口是专为用户使用的准双向I/O口。
当作为通用的I/O口输出时,应先向端口锁存器写入1.P1口可驱动4个LS型TTL负载。
MOSI/P1.5、MISO/P1.6和SCK/P1.7也可用于对卡片内Flash存储器串行编程和校验,它们分别是串行数据输入、输出和移位脉冲引脚。
P2口:
8位,准双向I/O口,具有内部上拉电阻。
当STC89C52扩展外部存储器及I/O口时,P2口作为高8位地址总线用,输出高8位地址。
P2口也可作为普通的I/O口使用。
当作为通用的I/O输入时,应先向端口锁存器写入1。
P2口可驱动4个LS型TTL负载。
P3口:
8位,准双向I/O口,具有内部上拉电阻。
P3口可作为通用的I/O口使用。
当作为通用的I/O输入时,应先向端口锁存器写入1.P3口可驱动4个LS型TTL负载。
RST:
复位电路输入端,高电平有效。
在此引脚加上持续时间大于2个机器周期的高电平,就可以使单片机复位。
在单片机正常工作时,此引脚应为≤0.5V的低电平。
ALE/PROG:
ALE为CPU访问外部程序存储器或外部数据存储器提供一个地址锁存信号,将低8位地质所存在片外的地址锁存器中。
此外,单片机在正常运行时,ALE端一直有正脉冲信号输出,此频率为时钟振荡器频率f的1/6。
该正脉冲振荡信号可做外部定时或出发信号使用。
但是要注意每当STC89C52访问外部RAM时(即执行MOVX类指令时),要丢失一个ALE脉冲。
PROG为该引脚的第二功能,即在对片内Flash存储器编程是,此引脚作为编程脉冲输入端。
PSEN:
片外程序存储器的读选通信号,低电平有效。
EA/VPP:
EA为该引脚的异地功能,即外部程序存储器访问允许控制端。
当EA引脚接高电平时,在PC值不超出0FFFH时,将自动转向读取片外60KB程序存储器空间的程序。
当EA引脚接高电平时,只读取外部程序存储器中的内容,读取的地址范围为0000H-FFFFH,片内的4KBFlash程序存储器不起作用。
VPP位该引脚第二功能,即在对片内Flash进行编程时,VPP引脚接入编程电压。
XTAL1:
片内振荡器反相放大器和时钟发生器电路的输入端。
当使用片内振荡器时,该引脚连接外部石英晶体和微调电容;当采用外接时钟源时,该引脚接外部时钟振荡器的信号。
XTAL2:
片内振荡器反相放大器的输出端。
当使用片内振荡器时,该引脚连接外部石英晶体和微调电容;当采用外部时钟源时,该引脚悬空。
INT0:
外部中断请求0,中断请求信号由INT0引脚输入,中断请求标志为IE0。
INT1:
外部中断请求1,中断请求信号由INT1引脚输入,中断请求标志为IE1。
TO:
计数器/定时器T0计数溢出发出的中断请求,中断请求标志为TF0。
T1:
计数器/定时器T1计数溢出发出的中断请求,中断请求标志为TF1。
2.2STC89C52应用说明
STC89C52主要性能如表1所示:
表1STC89C52主要性能
STC89C52各引脚性能
STC89C52各引脚性能
与MCS-51单片机产品兼容
1000次擦写周期
三级加密程序存储器
三个16位定时器/计数器
全双工UART串行通道
掉电后中断可唤醒
双数据指针
8K字节在系统可编程Flash存储器
全静态操作:
0Hz~33Hz
32个可编程I/O口线
八个中断源
低功耗空闲和掉电模式
看门狗定时器
掉电标识符
2.3单片机工作的最小化配置
单片机的最小化系统简称单片机最小应用系统,通俗的讲就是单片机工作所用的最少元件。
如图2所示,最小系统一般包括只需要单片机、晶振电路和复位电路这三部分就可以让单片机正常工作。
该设计使用了STC89C52芯片,该芯片自带8KFLASH程序存储器,在通常情况下,该芯片的这8K的存储空间是足够我们使用的,因此STC89C52芯片的第31个引脚一般都用来接高电平,所以我们只用芯片本身内部提供的8K程序存储器。
单片机的时钟电路通常由12M的晶振及两个30P的电瓷电容组成,它们共同决定了单片机的机器周期为1us。
该复位电路由一个10UF电容一个200欧电阻和10K电阻共同组成。
图2STC89C52的最小化配置
3数字电容测量仪系统工作原理
3.1整体方案设计
本设计是通过一块555芯片来测量电容,让555芯片工作在直接反馈无稳态的状态下,使555芯片输出一定频率的方波,其频率的大小跟被测量的电容之间的关系是:
我们固定R的大小,其公式就可以写为:
因此,只要我们能够测量出555芯片输出的频率,就可以计算出被测电容的容值。
计算频率的方法可以利用单片机的计数器T0和中断INT0配合使用来测量,这种研究方法相当的简单。
系统框图见图3:
STC89C52
图3系统框图
图中给出了整个系统设计的系统框图,系统主要由四个主要部分组成,单片机和晶振电路设计,555芯片电路设计,LCD1602显示电路,复位电路设计。
3.2系统按键电路
按键电路可以实现人机对话,人们可以通过按键来实现让单片机自动的做不同的工作。
键盘是一组按键的集合,按键开关是一种常开型开关,一般情况下按键电路的两个触点会处于断开状态,按下键时它们是闭合的。
键盘分为编码键盘及非编码键盘这2种,按键的识别是由专门的硬件通过译码来实现的,能产生键编号或者是键值的键盘被称为编码键盘,而缺少这种的要靠自编软件识别的键盘则被称为非编码键盘。
在由单片机组成的电路系统以及智能仪器中,使用的较多的一般是非编码键盘。
图4就是一种比较典型的按键电路,在按键没有按下的时候,输出的是高电平,当按键按下去的时候,输出的是低电平。
电路图见图4:
图4系统按键电路
3.3系统复位电路
单片机复位电路主要包括积分复位、微分复位、比较器复位和看门狗复位这四种类型。
52单片机的复位功能主要是由外接复位电路来实现的,单片机在启动时都会需要复位电路来实现CPU和各个原件都处于初始状态,并从初始状态开始工作。
该复位电路采用的是按钮复位这种方式,还有一种方式是上电自动复位。
上电自动复位电路通过外接的电解电容自动充放电从而实现电路的复位作用,只要Vcc的上升时间低于1ms,自动上电复位就可以实现。
图5中所示的电解电容在系统内可以起到上电复位的作用,因为考虑到芯片刚刚上电时由于供电不稳定而做出错误的计算,所以增加一个上电复位以达到延时启动CPU的目的,使芯片能够正常工作。
虽然现在很多芯片自带了上电延时功能,但是我们一般还是会增加额外的上电复位电路,提高可靠性。
当按压式开关按下时,电容两端构成回路并放电,使RST端重新变为高电平,按键抬起时电容又充电使RST变回低电平电路。
图5系统复位电路
3.4555芯片电路
555芯片电路是一种能将模拟数据功能与逻辑数据功能结合在同一个芯片上的组合式集成电路。
它的设计新颖、功能强大、适用面广泛,深受电子方面工作人员以及电子爱好者的喜爱,因此人们称555芯片为小IC。
555芯片电路能应用的电路有很多,例如:
多个单稳、双稳触发器以及一个单稳和无稳触发器,一个双稳和无稳触发器等组合。
在实际电路应用中,除了一些简单的电路外,555芯片还可以与不同的原件组合出很多功能不同的电路。
本次设计中应用的电路是直接反馈型无稳类电路。
电路如图6所示:
图6555芯片电路
在555芯片输出方波后,由于硬件的原因,输出的方波会有很多毛刺,所以为了去除这些毛刺本设计中使用了一个两输入与门(74HC08),让信号通过74HC08后会使输出的波形毛刺减少很多,使单片机的测量结果变得精确。
555时基芯片的输出频率跟所使用的电阻R和电容C的关系是:
又因为
,所以
即:
如果单片机采用12M的晶振,计数器T0的值增加1,时间就增加1μS,我们采用中断的方式来启动和停止计数器T0,中断的触发方式为脉冲下降沿触发,第一次中断到来启动T0,计数器的值为
,第二次中断到来停止T0,计数器器的值为
,则测量方波的周期为
如何开始时刻计数器的值
,则
。
则:
单片机的计数器的值N=0-65535,为了测量的精度,N的取值一般在100~5000,当电阻R越大,电容C的值就越小。
我们取不同的电阻值,就得到不同的电容测量的量程。
第一档:
1~50uf
第二档:
0.1~5uf
第三档:
0.01~0.5uf
第四档:
0.001~0.05uf
为了编写程序的方便,我们只计算
后面的单位可以根据使用的量程自行添加。
测量范围的大小0.001uF~655.35uF。
3.5系统显示电路
LCD1602拥有功耗小、数据显示丰富、体型轻便,功能强大等诸多优点,在很多电子产品和单片机系统中得到了广泛的应用。
LCD1602一共有16个引脚,其引脚分布如图7所示:
图7系统显示电路
1602采用标准的16脚接口,引脚具体功能如表2所示:
表2LCD1602各引脚功能图
引脚号
引脚名
电平
输入/输出
作用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Vss
Vcc
Vee
RS
R/W
E
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
A
K
0/1
0/1
0,1→0
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
=Vcc
接地
输入
输入
输入
输入/输出
输入/输出
输入/输出
输入/输出
输入/输出
输入/输出
输入/输出
输入/输出
电源地
电源(+5V)
对比调整电压
0=输入指令,1=输出数据
0=写数据,1=读数据
使能信号,1时读信息,0时执行指令
数据总线line0(最低位)
数据总线line1
数据总线line2
数据总线line3
数据总线line4
数据总线line5
数据总线line6
数据总线line7(最高位)
LCD背光电源正极
LCD背光电源负极
4程序设计
软件设计看起来是个非常复杂的过程,但其实这是一个非常有创造性的过程。
软件设计通过将问题和事物抽象起来,同时将这些东西分成不同的层和面来进行编译。
对一些新手来说上手起来比较难,但是一旦理解了它的原理上手之后,编写程序就会变得非常简单。
书上的理论知识虽然很重要,但是要想掌握程序设计,最重要的还是自己多实践,自己程序写得多了自然会掌握到其中的诀窍。
对于高级的软件设计,一个好的软件系统与差的软件系统相差是非常大的。
好的软件系统可以让你日常维护、功能实现变得非常简单,而一个差的软件系统则会让功能实现屡屡受挫。
因此,软件开发最重要的步骤是对程序的构思。
其实软件设计到现在还是一个流程非常固定的过程,一般都是先构思程序的流程,再加上一些指针及判断和判定系统,最后就是写好程序进行调试并且将其写入实物中。
如果实物实现不了功能,就需要对程序和实物都进行检测,查找是程序问题还是硬件问题。
软件设计主要是针对硬件设计里面的控制部分的,这里指的是STC89C52单片机,一般的单片机均可用汇编语言和C语言进行编程。
C语言直观,相对比较的简单,但占用的程序存储器的内存比较大,汇编语言是针对硬件设计的语言,如果想用汇编语言设计的话必须要对硬件有很大的了解,相对C语言就比较的复杂,但是比较的精简,占用的程序存储器的空间比较的小。
作为还在学生阶段的我们,用汇编语言进行编程对我们理解单片机的内部结构、资源都有很好的帮助,但是C语言编程在以后的实际工作中将会大大简化自己的工作。
因此本论文的程序都是基于C语言的。
要完成的任务是:
初始化程序设计、按键程序设计、中断处理程序,计数器计数程序,显示程序设计等。
在主程序中,通过检测按键是否按下来执行循环程序。
通过单片机P3.7端口检测是否开始测量电容,然后通过端口P3.6端口对555定时器复位端进行方波输出控制。
最后通过程序对外部中断0与定时器控制,计算出电容值得大小并通过LCD1602进行显示。
图8为该程序设计的流程图:
图8软件设计流程图
5总结
在这次的设计过程中,遇到了许多的困难,首先在原理图的设计过程中,由于对STC89C52的工作原理不太了解,导致在刚开始编写程序时不知道该如何下手。
后来通过翻阅课本和在网上查找资料,基本了解了STC89C52的工作原理,才有了初步的思路。
本设计通过由555芯片和电容电阻组成的振荡电路来输出方波,通过单片机定时器T0测量其脉冲宽度,从而达到测量其周期的目的,再通过单片机软件编程,对数据进行进一步的计算从而得出被测电容的值,最后再通过LCD1602显示初被测电容的容值。
在最小电路的测试中,与单片机连接的LCD始终不亮,用万用表测试发现是显示管脚接错了,重新焊接以后,LCD1602就亮了。
焊晶振要注意:
一定要尽量保证晶振焊脚与18、19脚的焊脚是最短,对称的,晶振焊脚与30pF的电容也要求最短和对称。
因为在STC89C52最小系统搭建中,最关键的就是确保晶振能起振。
感觉晶振比较娇气,偏差一点点就很容易不振或乱振。
前两次的最小系统就是因为没有起振,所以失败了!
不过有过两次经验之后,这个就是小问题了。
参考文献
[1]张毅刚.单片机原理及应用[M].北京:
高等教育出版社,2005
[2]刘光斌,刘冬,姚志成.单片机系统实用抗干扰技术[M].北京人民邮电出版社,2004
[3]杨小川.prote