基于单片机的RC检测仪

发布时间:   来源:文档文库   
字号:





2012


基于单片机的RC测试仪设计


2012年5月





近几年来,电子行业的发展速度相当快,电子行业的公司企业数目也不断增多。这个现象带来的直接结果是电子行业方面的人才需求不断增多。所以,现在大多数高校都开设与电子类相关的专业及课程,为社会培养大量的电子行业的人才。做过电路设计的工作人员或者学生大多数使用万用表来测量一些元件参数或者电路中的电压电流。然而万用表有一定的局限性,它只能测量有限种类的元器件的参数,对于电容和电阻的电抗元件就无能为力了。所以制作一种简便的电容电阻测量仪显得尤为重要,方便电路设计人员或者高校电子类专业的学生测量电路中需要用到的电容及电阻的具体值。
本次设计的思想是基于以上原因提出来的。该系统以AT89C51为控制核心,搭配必要的外围电路对电阻、电容参数进行测量。系统的基本原理是将电阻阻值、电容容值的变化均转换成方波脉冲频率的变化,利用计数器测频后通过单片机做运算,最后计算出待测元件的各个参数并显示在1602LCD显示屏上。系统使用按键设置及选择系统参数,使用1602LCD显示屏屏作为显示部分,使用继电器完成自动量程转换,实现了全自动化测量。测量时,只需将待测元件引脚夹在测试仪的输入端,用按键操作需要测量的参数,便可以很快测出被测元器件的参数,简便易用。实验测试结果表明,本系统性能稳定,测量精度高。软件方面,通过Keil,用C语言来编程,利用软硬件的结合,制作出一个快速的、方便的、符合实际应用的RC测量仪。
关键词51单片机;1602LCD显示;电阻;电容
I


Abstract
Inrecentyears,thedevelopmentoftheelectronicsindustryisveryfast,theelectronicsindustryhavecontinuedtoincreasethenumberofcompanies.Thisphenomenonisadirectconsequenceofthegrowingelectronicsindustrydemandforqualifiedpersonnel.Therefore,mostcollegesanduniversitieshavesetupaprofessionalandcoursesrelatedtoelectronics,tocultivatethetalentofalotoftheelectronicsindustryforthecommunity.Staffdidthecircuitdesignormoststudentsuseamultimetertomeasurevoltageandcurrentinthedeviceparametersorcircuit.Multimeter,howevertherearesomelimitations,itcanonlymeasuretheparametersofthelimitedtypesofcomponents,cannotdoanythingforthereactanceofthecapacitanceandresistancecomponents.Makeasimplecapacitorresistancemeasuringinstrumentisparticularlyimportantandneedtousethespecificvaluesofthecapacitanceandresistance,tofacilitatecircuitdesignorUniversityEprofessionalstudentsinthemeasurementcircuit.
Thedesignideaisproposedbytheabove-mentionedreasons.ThesystemtoAT89C51measureresistance,capacitanceparametersforthecontrolofthecore,withthenecessaryperipheralcircuits.Thebasicprincipleofresistance,capacitancevaluechangesareconvertedtoasquarewavepulsefrequencychanges,thecounterfrequencymeasurementbythemicrocontrolleroperation,thefinalcalculationofthevariousparametersoftheDUTanddisplayedinthe1602LCDdisplayon.Thesystemuseskeysettingsandselectthesystemparameters,1602LCDdisplayscreenasthedisplaypart,usetherelaytocompletetheautomaticrangeswitching,toachieveafullyautomatedmeasurements.Measurements,onlytheDUTpinfoldertheinputofthetesterbuttonoperationrequiresmeasurementoftheparameters,wecanquicklymeasuretheparametersofthetestedcomponents,easytouse.Thetestresultsshowthatthesystemperformanceandstability,highmeasurementaccuracy.Thesoftwareside,theKeilClanguageprogramming,theuseofacombinationofhardwareandsoftware,toproduceafast,convenient,inlinewiththepracticalapplicationoftheRCmeasuringinstrument.

KEYWORDS:51SCM;1602LCDdisplays;Resistor;capacitance
II




1....................................................................11.1本课题的背景、意义及目的.............................................11.2简述本课题...........................................................11.3本课题主要研究方法...................................................22.......................................................32.1总体方案的选择.......................................................32.2总体方案的分析.......................................................33.................................................................53.1单片机控制部分.......................................................53.2显示部分.............................................................73.3测量部分.............................................................93.3.1555定时器介绍....................................................93.3.2测电阻的电路....................................................103.3.3测量电容的电路..................................................114................................................................134.1液晶显示部分........................................................134.2定时/计数部分.......................................................145仿..............................................................166....................................................................21.....................................................................22.................................................................23.....................................................................24...............................................................24
III


1
1.1课题研究背景及选题意义
电路参数—电阻、电容和是电路的两种基本参数,也是描述网络和系统的重要参数,广泛应用于科学研究、教学实验、工农业生产、通信、医疗及军事等领域中。例如在强电系统中,输电线路中的传输线,电气设备中继电器、变压器、发电机等,都是用阻抗参数RC来描述的。人们通过测试阻抗参数可以判定设备的好坏,是否存在故障隐患。在弱电系统中,电路参数元件的好坏、量值的大小直接影响所设计的线路板的正常工作和可靠性。所以对它们的测试具有重要的意义。
测量是通过实验的方法获得定量信息的过程。没有测量,就没有科学,而且测量是认识自然界的主要工具。事实上,测量技术水平也是一个历史时期、一个国家的科学技术水平的一面镜子,它可以用来评价一个国家的科技状态。电子测量是利用电子技术对电量、磁量和各种非电量的测量,电子测量是电子工业的基础,也是一般工业不可或缺的重要测量手段。随着微电子技术、计算机技术和软件技术的快速发展,电子测量技术也随着向前发展,甚至可以说是一个飞跃,一场革命。电子测量的内容主要包括电能量的测量、电路参数和电子元件的测量、电信号特征的测量、电子设备性能的测量以及特性曲线的测量。电阻和电容是最基本的元器件,也是应用最广泛的元器件,因此,对它们的参数值的测量,已经变得很有必要了。测量电阻、电容的方法有很多,这些方法都有实用性,但是随着电子技术的发展以及工程技术要求的提高,它们的弊端也越来越明显,这就要求必须有一个新的思路。1.2课题概述
到目前为止,国内外已经有很多的厂家做出了RC检测仪,国外的厂家主要有日本日置,美国的安杰伦、惠普和福禄克等,他们的产品体积小,测试频率的范围可以从十几赫兹到达几十兆赫兹,并且有多种测试频率可供选择,测试速度也很快。国内的厂家主要有上海仪器仪表研究所、重庆茂丰工贸、苏州协锐电子和常州同惠电子等,所生产的RC检测仪体积比较大,测试频率的范围一般从几十赫兹到达几百千赫兹,而且可供选择的频率的种类也相对少些,测试速度与国外仪器相当。
虽然我国的电子测量技术已经有很大的提高,但是跟国外相比,仍然有很大的差距,我国主要的科研单位、学校以及企业等单位中使用的大型的仪器设备几乎全部依赖进口。同时,国外公司还占有国内中档产品以及许多关键零部件市场60%以上的份额。世界测试
1


仪器市场仍然对我国有很大的影响。目前,在世界电子测量仪器市场上,竞争依然很激烈,现在的厂商,都是把顾客当上帝,消费者需要什么样的仪器,他们就生产什么样的仪器,并且把更便宜、更好、更快、更易使用的测试仪器作为他们的奋斗目标。在这样信息化的推动下,全世界的测试仪器市场将继续保持很好的势头,电子测量技术的前景依然会很乐观。1.3课题主要研究方法
本课题主要研究的内容是基于单片机的RC检测仪,测量电容和电阻的原理是利用555形成多谐振荡电路,通过电容的充放电,使电阻、电容的参数转换为频率。计算频率,是通过51单片机的定时/计数器T0T1来计算的,把高低电平矩形波送给单片机,设时一定的时间。这段时间里,单片机对波进行计数,当达到定的时间时,溢出,计数停止,那么波的频率就是计数的数值除以定时的时间,根据频率,可计算算出被测元器件的参考值,然后显示出来。
2


2总体方案设计
2.1总体方案的选择
基于单片机的RC检测仪,是指以单片机为核心,实现对电阻和电容的值的测量。测量阻抗参数最常用的方法有伏安法、电桥法和谐振法。
伏安法又称为电压电流法,该方法是利用电压表和电流表分别测出元件的电压值和电流值,从而计算出元器件的值。该方法一般只能用于频率较低的情况,而且还需要把电阻器、电容器看成是理想的元器件。可想而知,这样的测量方法,误差肯定比较大,而且测量也不方便,受到的限制比较多,但是,也有它的好处,那就是使用比较简单。
电桥法是利用电桥平衡的原理。电桥平衡的条件是:一对相对桥臂阻抗的乘积必须等于另一对相对桥臂阻抗的乘积。直流电桥法用于精确地测量电阻的阻值,但是要适当的选择比率臂的倍率和标准电阻的阻值;比较电桥测量电容,就是通过与已知电容比较来测定未知电容,但是相邻两臂要采用纯电阻。此种测量方法,精度比较高,使用不同电桥可得到宽频率范围,价格低,但需要手动平衡,测试速度比较慢。
谐振法是利用LC串联电路和并联电路的谐振特性来进行测量的方法。当外加信号源的角频率等于回路的固有角频率时,LC串联或并联谐振电路发生谐振,可以求出电容的值。利用这种方法,前提是需要把电路调到谐振,而且精度不高,但是可一测得很高的Q值。
测量这些参量的方法有很多很经典的方法,这里就不一一介绍了。现在比较容易的一个方法就是阻抗的数字化测量。数字化测量是将测量的模拟量转化为数字量,设计最基本的思路就是RC的数字化测量,可以把它们转换为电压、电流及频率等。在设计中,被测电阻、电容作为谐振电路的一部分,用单片机测得电路发出的矩形波的频率,然后根据公式计算出电阻和电容。运用的方法就是谐振法。而测量电路,是用555定时器组成的基本振荡电路来测量电阻和电容。2.2总体方案的分析
测量电阻和电容,是以555芯片为核心,外加几个电阻、电容组成RC振荡电路,利用电容的充放电过程,使这个电路输出高低矩形波,利用这一点,使电阻和电容的参数值数字化的。
这个测量方法是目前比较好的一个选择了,首先,数字化测量的准确度高,测量速度快,又是数字显示,简单明了;其次,把阻抗转换为频率,频率相对来说,是一个比
3


较容易测量出的量,尤其在单片机里,这一点就使整个设计轻松了不少;再者,选用的芯片555,所用的测量电路都是它们最基本的电路,电路图比较简单,也很容易理解,测量范围也很广,还有最重要的一点是,电路比较稳定,受外界影响比较小,都可以稳定的输出矩形波。


2-1系统框图
按键
1602LCD
量程切换
单片机AT89C51
量程切换
电容测量
频率计数器
电阻测量
待测电容
待测电阻

4


3硬件设计
3.1单片机控制部分
在本设计中,考虑到单片机构成的应用系统有较大的可靠性,容易构成各种规模的的应用系统,且应用系统有较高的软、硬件利用系数。还具有可编程性,硬件的功能描述可完全在软件上实现。另外,本设计还需要利用单片机的定时计数器、中断系统、串行接口等等,所以,选择点偏激为核心设计具有极大的必要性。在硬件设计中AT89C51单片机,测量部分,单片机控制部分,显示部分。
本单片机是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能,集成到一块硅片上构成的一个小而完善的计算机系统。在这里,单片机芯片用的是80C51系列中的AT89C51
AT89C5140个引脚大致可分为4类:电源、时钟、控制和I/O引脚。下面是4引脚介绍,分别是:
1电源:
Vcc:芯片电源,接+5VVss:接地端;2时钟
XTAL1XTAL2:晶体振荡电路反相输入端和输出端;其中,AT89C51的时钟信号通常由两种方式产生:一是内部时钟方式,二是外部时钟方式。实际应用中通常采用外接晶振的内部时钟方式,只要在单片机的XTAL1XTAL2引脚外接晶振即可,电容器C4C5的作用是稳定频率和快速起振,电容值一般取30pF选的晶振频率12MHz的,则机器周期就是1微秒。晶振频率为12MHz时,指令的执行速度会提高很多,但是相应的功耗和噪声也会增加。如图3-1

3-1晶振电路
3)复位电路
RST:复位信号输入端;当RST引脚加高电平复位信号时,单片机内部就执行复位操
5


作。复位信号变低电平时,单片机开始执行程序。复位操作有两种基本形式:一种是上电复位,就是接通电源后,自动实现复位操作;另一种是本设计采用的按键复位电路。如图3-2所示。

3-2复位电路
此电路的原理是:当按键被按下,电容被短路,RST是高电平,进入复位状态;松手后,电容充电,充电结束后,电流为0,电阻上的电压为0RST为低电平。
4EA引脚接高电平时,在片内程序存储器中取指令,如果内容超过FFFH时,系统就会自动的转到片外程序存储器中取指令;当EA接低电平时,会自动转到片外程序存储器中取指令。
5ALE:地址锁存允许。就是用来锁存输出的低8位地址。6PSEN:外部程序存储器读选通信号输出引脚。
7I/O口:有48位并行I/O口,各个口都由口锁存器、输出驱动器和输入缓冲器组成。
P0口:如果不需要外部程序/数据存储器扩展时,P0口可以作为普通的I/O口使用,这时属于准双向口;当需要扩展时,P0口作为分时复用的低8位地址/数据总线使用,时它是一个真正的双向口。本设计不需要扩展I/O口,所以P0口是作为普通的I/O口使用的。
P1口:它是一个单功能口,就只能用作通用的I/O口使用,没有其他的特殊功能。本设计也把它当作普通的I/O口使用。
P2口:当不需要外部程序/数据存储器扩展时,P2口也是当普通的I/O口使用的;需要扩展时,P2口是作为高8位地址总线使用的。本设计没有用到它的特殊功能,只拿它当普通的I/O口使用。
P3口:P3口是一个特殊的I/O口,有两个功能,第一个是作为普通的I/O口使用,性质跟P0P1P2类似,都属于准双向口。P3口还有第二功能,这时各引脚的定义为:
P3.0RXD(串行口输入)
6


P3.1TXD(串行口输出)P3.2INT0(外部中断0输入)P3.3INT1(外部中断1输入)P3.4T0(定时/计数器0的外部输入)P3.5T1(定时/计数器1的外部输入)
P3.6WR(片外数据存储器“写”选通控制输出)P3.7RD(片外数据存储器“读”选通控制输出)
本设计中用了P3口的第二功能,需要用到两个定时/计数器,用于计算矩形波的频率。

3-3按键电路
3-3为本设计的按键电路图当按键按下时,程序执行。由于按键系统有三个测试电路,而只有一个口可以接入,所以测哪个就接哪个。但是,在按键电路的使用过程中,有一个不容忽视的问题,那就是按键抖动现象。由于弹性作用的影响,按键不能马上实现完全闭合或者是完全断开,使电信号产生抖动,从而会引起按键执行错误或者是重复执行指令,所以为了确保按键的一次闭合只处理一次,就必须消除抖动。目前最常使用的就是用软件延时的方法来避开抖动的阶段,一般是5~10ms的延时,所以采用10ms的延时来消除抖动的,延时之后,再判断一次按键是否闭合。
按键的一端接单片机的I/O口上,另一端接地,而且必须接地。当单片机通电后,I/O口上的电平就是高的,如果按键的另一端接电源,那么按键按下去的前后,I/O口的电平没什么变化,起不了按键选择的作用,所以必须接地,按键按下去后,按键所连的引脚变为低电平。3.2显示部分
这次设计中,选用的是LCD1602显示器。它与单片机相连,电路比较简单,而且它的体积比较小,重量比较轻,功耗还很低,能很容易的显示出各阻抗的单位。因为AT89C51P1口、P2口和P3口都是带内部上拉电阻的I/O口,所以如果液晶与三个I/O口中任一个相连,就可以不用接上拉电阻。具体电路如图3-4所示。
7



3-4液晶显示电路
因为AT89C51P1口、P2口和P3口都是带内部上拉电阻的I/O口,所以如果液晶与三个I/O口中任一个相连,就可以不用接上拉电阻,但是P0口却没有带内部上拉电阻,LCD1602液晶显示器是字符型液晶显示模块,可以显示字母、数字、符号等。LCD1602块由控制器HD44780、驱动器HD44100和液晶板组成。它的显示缓冲区有80个单元,但是第一行只用00H~0FH单元,第、二行只用40H~4FH单元。
它的主要技术参数为:显示容量:16×2个字符。芯片工作电压:4.5~5.5V工作电流:2.0mA(5.0V模块最佳工作电压:5.0V字符尺寸:2.95×4.35㎜。
采用的是标准的14脚(无背光)接口,各引脚功能如下:Vss:地电源。VDD:接+5V电源。
VEE:液晶显示器对比度调整端。接地时,对比度最高;接正电源时,对比度最弱。RS:寄存器选择。高电平时,选择数据寄存器;低电平时,选择指令寄存器。R/W读写信号线。高电平时,进行读操作;低电平时,进行写操作。RS=0R/W=0时,写入指令或者是显示地址;当RS=1R/W=0时,写数据;当RS=1R/W=1时,读数据。
8


E:使能端。当E=1变为E=0时,液晶模块执行命令。
D0~D78位双向数据线,此处与单片机的P0.0~P0.7分别相连。
LCD1602模块使用前,要先进行初始化,初始化的内容就是你希望它能怎样的去工作。这个电路图,液晶显示这块,希望字符能从最后一个开始显示,依次往前推,光标依次向左移动,字符不动,而且是8位接口,双行显示,5*7点阵。所以此次初始化的内容是:
1清屏:光标回到屏幕左上角,数据为0x01
2功能设置:8位接口,双行显示,5*7点阵,数据为0x38
3显示与不显示设置:开显示,有光标,而且光标闪烁,数据为0x0f4输入模式设置:光标左移一格,地址计数器减1,数据为0x045光标或屏幕内容移位选择:移光标,向左移,数据为0x103.3测量部分
测量电阻和电容是采用555内的振荡电路来完成的。对于电阻和电容,利用555内部结构,再根据电容的充放电原理,使电路输出矩形波。其中,充电的时间与放电的时间之和,就是波形的周期,频率是周期的倒数。3.3.1555定时器介绍

3-5555内部结构图
如图3-5所示,因为555将模拟功能和逻辑功能结合在一起.所以能够产生精
确的延迟和振但,555让模拟集成电路运用的范围更广。555是由两个比较器C1C2一个RS触发器和一个三极管开关电路(TD)组成的,其中,三个5千欧的电阻起分压的
9


作用。555定时器性能比较好,只要少接上几个电阻、电容就能构成多谐振荡器、单稳态触发器以及施密特触发器等脉冲产生与变换电路,经常用于仪器仪表、电子测量等方面。此设计测量的原理就是,利用555定时器外加几个电阻、电容或电感,生成多谐振荡器。C1为比较器1C2为比较器2
Vcc8脚):接正电源。一般为4.5V~15VGND1脚):接地。
R4脚):复位端。当此端接低电平时,电路不工作,这时不管TH是何电平,电路输出为“0。这个端在不用的时候,应该接高电平。
TH6脚):高电平触发端。当此引脚的电压大于2/3Vcc的时候,触发器复位,那么输出端处于“0”电平。
TR2脚)低电平触发端。当此引脚的电压小于1/3Vcc的时候,触发器处于置位状态,那么输出端就处于“1”电平。
Cv5脚):控制电压端。此端与2/3Vcc分压点相连,如果在这个端加入外部电压,可以改变上下触发电位。所以此端如果不用,就串入一只0.01μF的电容,并接地,防止引入干扰。
DC7脚):放电端。此脚与放电管相连,用作定时电容的放电。
Q或者V03脚):输出端。电路连接负载端,通常此脚为低电平,但在定时的时候是高电平。若测电阻,此脚与X0相连;若测电容,此脚与X1相连。3.3.2测电阻电路

3-6测电阻电路
如图3-6所示,Rx是被测的电阻,接通电源后,电容C1通过R1Rx充电,当电容C1上的电压达到2/3Vcc时,比较器1开始动作,RS触发器翻转,此时,输出端输出为
10


低电平。由于此时的三极管处于饱和导通状态,电容C1就通过Rx开始放电,当C1上的电压为1/3Vcc的时候,比较器2开始动作,RS触发器又被翻转,而这时,输出端输出为高电平,三极管此时截止,电容C1又开始再一次的充电。就这样不断重复这个充放电的过程,输出端就是一个高低电平的矩形波,矩形波的周期就是充电时间加上放电时间。
充电时间为:t1=ln2*(R1+Rx*C1放电时间为:t2=ln2*Rx*C1
则矩形波的周期为:T=t1+t2=ln2*(R1+Rx*C1+ln2*Rx*C1=ln2*C1*R1+2Rx频率为:f=1/T=1/ln2*C1(R1+2Rx如果测出矩形波的频率f
则可推出Rx=(1/ln2*f*C1-R1/23.3.3测量电容电路

3-7测量电容电路
如上图中Cx为待测的电容。通上电后,电容Cx通过R2D1开始充电,当电容Cx上的电压达到2/3Vcc时,比较器1开始动作,RS触发器被翻转,此时,输出端输出为低电平。RS触发器被翻转以后,三极管处于饱和导通状态,因为二极管是单向导通,所以这时电容Cx开始通过R3放电,当电容Cx上的电压达到1/3Vcc时,比较器2开始动作,RS触发器又被翻转,输出端输出高电平,而三极管却处于截止的状态,电容Cx又开始充电,就这样反反复复的充放电,那么输出端就会输出一个高低电平矩形波,矩形波的周期就是放电时间与充电时间的和。
充电的时间:t1=ln2*Cx*R2放电的时间:t2=ln2*Cx*R3
则矩形波的周期:T=t1+t2=ln2*Cx*R2+ln2*Cx*R3
11


=ln2*Cx*(R2+R3频率为:f=1/T=1/ln2*Cx*(R2+R3如果已知频率,则待测电容为:Cx=1/ln2*f*(R2+R3
12


4软件设计
这个设计的编程,这里使用的是C语言,其实用汇编语言会更容易些,本人对C言比较熟悉,所以还是选择了比较熟悉的语言来编写程序。
开始
初始化
测量电阻
Y
测量电容
转换电阻程序
N
Y
N
转换电容程序
刷新显示

4-1总流程图
4-1为,初始化运行程序,按下测量电阻的按钮,转换测量电阻程序,得出结果,刷新显示,测量电容转换为测量电容程序得出结果,刷新显示。4.1
如图4-2所示,
开始运行程序检测系统初始


查看LED是否显示字符
写入待测电阻电容数据
Y
示,继续检测
4-2液晶流程图
13


1602LCD液晶显示屏开始运行程序,显示屏检测系统初始化,查开LED显示屏是否显示出字符,然后输入待测的电阻或电容数据,测量结果出现后,返回初始显示LED屏幕,继续检测。4.2定时/计数部分
如图4-3所示,


T0T1开始初始化运行T0定时器运行,T1计数开始
运行
检测T0是否溢出
N
Y
系统开中断T1停止计数
取出T1的计数值并发送到计
算机
计算机计算得到测量的频率值
返回初始程序

4-3定时/计数流程图

如图4-3开始运行程序定时和计数,系统T0T1开始初始化运行T0定时器运行,
T1计数开始运行,系统运行后程序开始检测T0是否溢出,让系统开始终端T1停止计数,
14


然后系统取出T1的数值,发送到计算机中,计算机开始运行计算得到测量的频率值,计算完毕后,返回出事程序。
AT89C51芯片内有两个16位的定时/计数器:T0T1定时/计数器的核心是一个加1计数器,基本的功能是计数加1。对T0或者是T1引脚上输入一个从10的跳变,那么计数加1,这就是计数功能。对单片机内部的机器周期进行计数,从而得到定时,这就是定时功能。它们都是由软件来设定的。
对于这部分,T0作为定时器,T1用作计数器。其中T0的定时时间是已知的,定时时间为t=10ms知道定时的时间了,那么单片机对来自T1上的跳变脉冲进行计数,当定时时间到,也就是定时溢出,就申请中断,并停止T1的计数功能,从而得到T1的计数个数N,那么频率f=N/t
15

仿
5调试与仿真
仿真最主要的一步就是计算频率,频率测量的方法有很多,有谐振法、外差法、示波法、电子计数器法,这个设计中用的是电子计数器法,因为单片机的T0T1可以直接用于测频率,不需要接其它的电路,只要程序写好就行了,这也是单片机的一大优点。电子计数器法的原理是,某一信号在一定时间T内重复变化了N次,而它的频率f就是N除以T。利用单片机的定时/计数测频,就是让单片机按照一定的程序,自己完成操作,当然,这其中会存在一定的误差。
用单片机测频的时候,把T0用作定时器,T1用作计数器,定时是已知的,定时是10ms,所需要知道的就是这10ms内计数器计的个数。单片机对送入的脉冲进行计数,这一定会产生误差的,因为主门的开启时刻与计数脉冲之间的时间是没有关系的,单片机有可能会多计一个脉冲,也有可能少计一个,这是不能确定的。书上称这种误差为量化误差。测量电路最终输出的是高低电平矩形波,那么单片机在计数时,误差最大时不超过一个周期,可以尽量缩小误差,如果所测矩形波的频率越大,那么这种误差就会越小。相对的,低频的时候,这种误差就会很大,那这种时候就不能用测频的方法了,但可以改为测周期,因为周期和频率互为倒数。这就涉及到了一个量,那就是中界频率。中界频率的定义为,当对某一个信号使用测频法和测周法时,两者引起的误差相等,小于中界频率时,采用测周法,再把周期转换为频率;大于中界频率时,直接测频。此设计中,不考虑小于中界频率的,因为所测频率都比较大,所以用的是直接测频法。
单片机的定时器本质上是一个计数器,对时钟的十二分之一分频的每一跳加一来到达计时的目的,所以它的精度主要就取决于晶振精度了。在这个设计中,这里所用的晶振是12MHz的,虽然指令的执行速度提高了,但是功耗和噪声却增加了,也加大了测量的误差。
测量时,因为定时/计数方式选择的是方式1所以计数的范围为:1~65536,定时范围为:1~65ms。如果所测波的频率太大,计数的值就会超过65536,就超出了测量范围,所以测量电阻的电路所能测的电阻范围为:1~300千欧姆,电容的范围为:1~250nF。这个测量电路所测量的频率是有范围的,必须小于300KHz,当大于这个数时,液晶显示乱码。这些都是经过验证得到的,而且每次测的时候,数据就有可能不一样,这是因为稳定度不大,但是数据相差不大。
1电阻测试数据如表5-1所示。计算频率公式为:f=1/(0.7*(R1+2*R*C1其中R1=10千欧姆,C1=1nF
16

仿

5-1电阻测试数据
电阻原值(R
1k5k10k20k50k100k200k
频率原值(f119.04KHz71.42KHz47.61KHz28.57KHz12.98KHz6.80KHz3.48KHz
测得电阻值(Rx
1.79k5.75k10.94k21.45k53.54k106.60k211.45k
测得频率值(fx105.10KHz66.40KHz44.70KHz26.90KHz12.30KHz6.40KHz3.30KHz
(2电容测试数据如5-2所示。计算频率公式为:f=1/(0.7*(R2+R3*C其中R2=10千欧姆,R3=10千欧姆。
电容原值1nF5nF8nF10nF
频率原值71.42KHz14.28KHz8.92KHz7.14KHz
所测电容值1.13nF5.71nF9.15nF11.33nF5-2电容测试数据
所测频率值62.80KHz12.50KHz7.80KHz6.30KHz
从上面这些表格可以看出,测量时的误差其实挺大的,除了上面提到的那几个造成误差的原因外,其实,误差产生的最主要的原因还是所用的测量电路。测量电阻和电容时,电路是由555芯片和外接的电阻电容组成的。555是根据电源的精度和外围阻容元件的精度来决定输出频率精度的,如果外围精度很高并且温度变化不大,那么555的精度是足够的,但是以目前的情况来看,电阻值和电容值都有10%以上的偏差,这就直接导致了测量电路的精确性不是很好,所以就造成了现在上面这种状况。其实555定时器还有一个很大的缺点,那就是不能产生频率很低的信号,所以的测量范围比较小,这和555本身的内部结构有关。
还有一点就是,测量电路必须要保证起振,并且振荡电路要稳定,否则也会增加误差,这也是把元件参数转换成频率后测量的方法的一个不足之处。因为现在是仿真图,所以没有误差修正,而且实际中的电阻或电容的值肯定跟仿真时不一样。如果要是做硬件,那么可以进行误差的修正,根据实际电路中的电阻或电容,多测一些数据,并求这些数据的平均误差,再把这个误差加到程序中,那么再测数据,误差就会小很多,这样就做了误差的修正。
17

仿


5-5系统的总设计图
此图为本系统的总设计图。主体由AT89C51构成,LCD1602显示器将负责显示测量的电阻和电压值。测量电阻和电压的部分由两个555芯片构成,需要测量的时候将拨片拨至相应的电路上,按下测量按钮,这时测量的电阻和电压值会在LCD1602上显示出数值。然后按下复位按钮,显示屏上的数据清除,等待下一次测量。

18

仿
电阻仿真图:

5-6电阻仿真图
此图为载入将要测量的电阻值后仿真得出的结果图。把51单片机和测量电阻的555模块相连,先按一下复位按钮,再按测量按钮,等待两秒以后,显示屏就会显示出这次测量的电阻值。
19

仿
电容仿真图:

5-7电容仿真图
此图为载入将要测量的电容值后仿真得出的结果图。把51单片机和测量电容的555模块相连,先按一下复位按钮,再按测量按钮,等待两秒以后,显示屏就会显示出这次测量的电容值。

20


6
在设计制作本系统的过程中,我深切体会到,实践是理论运用的最好检验。本次设计是对我三年所学知识的一次综合性检测和考验,无论是动手能力还是理论知识运用能力都得到了提高,同时加深了我对网络资源认识,大大提高了查阅资料的效率,使我有充足的时间投入到电路设计当中。本系统的研制主要应用到了模拟电子技术、数字电子技术、单片机控制技术、电子工艺等多方面的知识,本系统达预期的要求,能够对电气元件RC进行简易的测量,误差保持在5%以内。在调试方面,经过一系列模块化的调试,使系统到达了正常工作条件。
当然由于时间的紧迫,在测试阶段,对仪器的调试还略显不足,系统的稳定性还有待提高。本次设计,为我提供了展示自我能力的舞台,也使我们深切认识到自身知识能力尚存在许多不足,更让我们体会到了电子技术与设计的趣味,以及其强大深远的实用性。
还有软件部分,程序是用C语言编写的,程序也比较简单,总体来说就两大部分,一个是液晶显示的程序,还有一个是定时/计数的程序。在编写程序的过程中,定时/数部分比较困难,因为以前没用过这个程序,所以做起来比较吃力,但是经过老师和同学的帮助,解决并完成了本论文的课题,在此谢谢对我有过帮助的老师和同学。
21



我要特别的感谢我的指导老师李平老师,没有老师的指导,我想我会很难完成这个毕业设计。我是一个相对比较懒惰的人,别人不逼着,我就很难定下心去做。这段时间,很感谢老师对我施加的压力,也感谢老师有那么大的耐心,给我讲解我所提出的各个问题。其次,要感谢我舍友以及班里的一些同学,我经常会提出一些问题,虽然他们也很忙,但他们还是用心的思考我的问题,并把他们的想法告诉我,和我一起探讨。再者,我还要感谢我的一个同学陈志谦,谢谢他把他的书借给我,这帮了我很大的一个忙。我真的很感谢这些给我帮助的老师和同学,谢谢你们。
22


参考文献
[1]王宏宝.电子测量.北京:科学出版社.2005
[2]杜宇人.现代电子测量技术.北京:机械工业出版社.2009.7
[3]高工、徐键.高速数模转换器的设计思路及应用考虑([J].电子技术应用,1998(12[4]沈兰荪.高速数据采集系统的原理及运用[M].民邮电出版社,1995
[5]张强.电流反馈运算放大器与电压反馈运算放大器的区别与应用[J].国外电子元器件,1997(1[6]李映波.集成电流反馈放大器的应用设计[J].电子技术,1997(4
[7]李素芬、李刚、张景发.模数转换技术及其发展[J].电子技术应用,2002(4[8]余文俊.8051C语言实习[M].中国水利水电出版社,2003[9]何立民.单片机实用文集[M].北京航空航天大学出版社,2006.[10]张毅刚.MCS51单片机应用设计[M].高等教育出版社,2006.[11]陈伟.MCS51系列单片机实用子程序[M].清华大学出版社,2003.
[12]冯育长.等单片机系统设计与实例分析[M].西安:西安电子科技大学出版社,2007.[13]牛昱光.李晓林.单片机原理与接口技术[M].电子工业出版社,2007.[14]李华.MCS51系列单片机实用接口技术[M].北京航空航天大学出版社,2010[15]张毅坤等.单片微型计算机原理及应用[M].西安电子科技大学出版社,2006.[16]戴佳.51单片机C语言应用程序设计实例精讲[M].电子工业出版社,2008.[17]谭浩强.C语言程序设计[M].高等教育出版社,2003.
[18]何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社,2007.[19]夏继强等.单片机实验与实践程序[M].北京:北京航空航天大学出版社,2009.[20]王文伟等.C语言程序选编[M].北京:北京航空航天大学出版社,2009.
23



附录源程序
#include#include#include
#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlongsbitRS=P2^5;sbitRW=P2^6;sbitE=P2^7;sbitbusy=P0^7;
sbitkey1=P1^0;//测量电阻的按键sbitkey2=P1^1;//测量电容的按键uchartime;//定时器的值
ucharnum;//溢出时计数器的值unsignedlongm;//相对应的计数值floatf;//实际频率值floatR;//被测电阻floatC;//被测电容intCx;intRx;intLx;
inti;//为保留两位小数所设的参数intk;//跳出死循环所设的变量
voiddelay(uintz//延时{
uintx,y;
for(x=z;x>0;x--
for(y=110;y>0;y--;}
voidcheck(//判断忙或空闲{
do{
P0=0xFF;RS=0;RW=1;E=0;delay(2;E=1;
24


}while(busy==1;}
voidwrite_com(ucharcom//写指令{
P0=com;//P0与液晶相连RS=0;//选择指令寄存器RW=0;//进行写操作E=0;//E从高变为低,液晶模块执行命令check(;E=1;}
voidwrite_data(uchardat//写数据{
P0=dat;
RS=1;//选择数据寄存器RW=0;//进行写操作E=0;//E从高变低,液晶模块执行命令check(;E=1;}
voidinit(//初始化{
E=1;
write_com(0x38;//显示模式:设置16*2显示,5*7点阵,8位数据接口write_com(0x08;//显示关闭write_com(0x01;//清屏
write_com(0x0f;//设置光标的显示和闪烁
write_com(0x04;//光标左移一格,地址计数器减一write_com(0x10;//光标左移}
voidtimer0(interrupt1{
time=0;
TH0=(65536-10000/256;//重新载入初值TL0=(65536-10000%256;time++;
if(time==0.01//如果定时时间到,停止计数{
time=0;
TR1=0;//计数停止}
25


}
voidtimer1(interrupt3{
num++;}
voidmain({
TMOD=0x51;//T0用作定时器,T1用作计数器,工作方式都为1TH0=(65536-10000/256;//赋初值TL0=(65536-10000%256;TH1=0;TL1=0;
TR0=1;//启动定时器0TR1=1;//启动定时器1ET0=1;//开定时器0中断ET1=1;//开定时器1中断EA=1;//开总中断init(;
write_com(0x80+0x4f;//光标移到最后一个,从最后一位开始显示i=0;k=0;while(1{if(key1==0{delay(10;//消抖if(key1==0&&k==0//若果按键1按下,测量电阻{k++;m=num*65536+TH1*256+TL1;//计数值f=1.0*m/10;//实际频率值
R=(1000/(0.7*f-10/2;//实际电阻值write_data(0xf4;//显示欧姆write_data(0x4b;//显示字母KRx=(int(R*1000/10;//取两位小数while(Rx!=0{
write_data(0x30+Rx%10;//逐一显示电阻值Rx=Rx/10;i++;if(i==2//保留两位小数write_data(0x2e;//显示小数点}
26


}}if(key2==0
{delay(10;//消抖if(key2==0&&k==0//按键2被按下,测量电容{k++;m=num*65536+TH1*256+TL1;//计数器的值f=1.0*m/10;//实际频率值C=1000/(14*f;//实际电容值write_data(0x46;//显示字母Fwrite_data(0x6e;//显示字母nCx=(int(C*1000/10;//保留两位小数while(Cx!=0{
write_data(0x30+Cx%10;//逐一显示电容的值Cx=Cx/10;i++;if(i==2//保留两位小数write_data(0x2e;//显示小数点}}}
if(key3==0{
delay(10;//消抖
if(key3==0&&k==0//按键3被按下,测量电感{
k++;m=num*65536+TH1*256+TL1;//计数器的值f=1.0*m/10;//实际频率值
Cn=1/17.35*f*f;//电路中的电容的值Lx=(int(L*1000/10;//取两位小数while(Lx!=0Lx=Lx/10;i++;if(i==2//保留两位小数write_data(0x2e;//显示小数点}}}time=0;num=0;TH1=0;TL1=0;TR1=1;
27


}}
28

本文来源:https://www.2haoxitong.net/k/doc/ca12e3f1ba0d4a7303763a06.html

《基于单片机的RC检测仪.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式