中国知网查重 高校在线论文查重入口

立即检测
  • 58 元/篇
    系统说明: 知网职称论文检测AMLC/SMLC是杂志社专用系统,针对投稿论文、评审论文、学校、单位职称论文的学术不端重复率检测系统。
  • 298 元/篇
    系统说明: 知网本科论文检测PMLC是最权威的大学生毕业论文检测系统,含“大学生论文联合对比库”,国内95%以上高校使用。检测结果和学校一致!
  • 498 元/篇
    系统说明: 此系统不支持验证!可用作研究生初稿检测,相比知网VIP5.3缺少“学术论文联合对比库”,检测结果有5%左右的误差!(论文中若参考往届研究生论文,重复率误差会较大)
  • 128 元/篇
    系统说明: 大分解论文检测系统,对于想检测学术不端文献检测系统,而又价格便宜的同学可以选择,限每篇2.9万字符,结果与大学生PMLC、硕博VIP定稿系统有出入!
  • 68 元/篇
    系统说明: 知网论文小分解检测系统,适合中国知网初稿查重,数据库和定稿查重不同。结果与本科PMLC,研究生VIP5.3有出入,限每篇1.4万字符!
  • 3 元/千字
    系统说明: 学术家论文重复率检测系统,支持学位论文、毕业论文、投稿论文、职称评审论文,提供全文对照,word标红报告,性价比超高!
论文技巧大全-智能化RLC参数测量仪的设计
时间:2021-05-20 16:07:13

就目前来说我们的科技水平经过了三次工业革命后得到了质一般的飞跃。但是在这之后我们现阶段的水平增长速度就不是很明显了。其他的可能是属于高级机密我们没有知道的权限,所以就我们课题所需要了解的相关技术我们在这里简单的做一个说明。首先就是我们本次实验设计的首要技术:“测量技术”。伴随着方方面面的现代化的飞速发展,人们对于现实中的高质量生活水平的期盼也越来越殷切,毕竟大家都是追求更加美好的生活这没有错。而我们测量行业也不再是以前那样随随便便的记录数据了,包括一些相关的测量仪器在某些方面的要求也是更加的严格。说白了就是为了追求最后得到的数据的超高精确度甚至能够达到完美。对于我们学生而言在学校的教学实验中采用的一些光学仪器零件已经被现实需求所淘汰了。所以在本次实验中如果要追求更加精确的实验数据和准确的实验结论的话,我们就必须得查阅更多的学术性资料和相关的参考文献并从中找到一种或者几种可行的实验方案来做最后的性价对比。

如今的电子测试在现实生活中被应用的十分广泛,而且应用的前景也是让人值得期待。下面我们就来说说我们是如何进行电子测试的:首先在如今的电子测试领域里那肯定离不开这三个元件,1.电容2.电阻3.电感。我们先说说电容,它通常是被用作传感器的,所以我们一般也叫它电容传感器。随着时间的推移,总体上而言电容传感器也是越做越先进,并且由单一化发展成了多元化。但是大都是国外的电容传感器名气大,国产的却是寥寥无几。现在世界上比较有名气的制作电容的公司有:figaro、(日本)tecsis、(德国)alphasense,(美国)等等。在这些优秀的企业当中又以安杰伦和福禄克的更加出色,它们的产品:1.体积小、2.基本精度高,33.测试频率的范围广,有多种选择供人参考,4.测试速度快。这些公司的出处一看都是些世界上的T0级别的工业强国,不过非常遗憾的是没有我们祖国。其实国内的生产元件厂商也挺多的,不过大多也都只是生产。生产说白了毫无技术含量可言,只要拥有相关的生产线和适当的操作即可。我们在自主的研发方面还是不尽人意的,尽管近几年来中国的本土的测量行业一直在投钱创新,可结果并不让人满意。从客观上来说中国目前研发和制作测试测量仪器还很落后。每次讨论中国测试仪器落后的背后原因都会让人十分感慨。首先精度就不高,大多还是半自动化,还有设备故障问题频发等。中国虽建国时间短,发展的时间和空间在某种程度上遭到压缩,但随着国际形势越来越复杂,以美国为首的霸权主义和对高科技的封锁让我们不能再按部就班。这些问题值得我们去深究,去改变,为祖国的未来贡献一份力量。

我个人觉得虽然测试只是从属辅助位置,但这并不代表它不重要。现在好多企业都是这样以研发为核心,认为核心技术才是重中之重。其实这个观念并不完全正确,只要是涉及到工业领域我们所做的每一步都不是多余的无用功,每一步都非常的关键,你比如说当你为一个整体服务时突然某个环节出错从而导致满盘皆输,这岂不是得不偿失吗?同样那不就等于是前功尽弃了么?我们要注重每一个环节,注重每一个细节,不能放任自己的薄弱环节任其自生自灭,这样只会功亏一篑。

1.2电阻;电容;电感;及其测试仪的发展和现状

当今的电子领域的热门“测量技术”在产品研发的模块构造中已经占据了很重要的地位。而电路的测量我们前面也提到了它的基本三个元器件:1.电容,2.电阻,3.电感。

其实要说起来的话它们的历史已经很久远了,而且种类繁多,各式各样,真的是会让人眼花缭乱的。那么它们究竟是如何进行测量的呢?其实它们有着最基本的三种方法。那首先我们就拿电阻的测量来说吧,有三种方法分别是1.电位降法、2.比例运算器法、3.积分运算器法。(其中第二个方法的误差比较大,所以被淘汰)。然后就是电容,电容它有着谐振法和电桥法两种辅助方法。第一种电路虽然简单而且速度快,但是误差大,所以一般有较大的误差的情况下我们不做考虑。总体上来看就是各有利弊。电感的话是参照交流电桥法,过程相对较为复杂,所以出现误差的几率也很多。如果再过些许年之后测量的技术的发展得到飞跃的话,这些问题就有希望解决。

近几年来,我们的仪器得到了重视并且有了相关的人力物力支持,所以有了很大的进步,目前正和国外的先进产品的两极分化严重的格局也在逐步缩小。就通讯方面来说咱们国家的华为作为新兴的通讯巨头,对以美国为首的西方技术垄断阵容造成了巨大的冲击。我们的5G技术世界领先,这就说明了我们的努力没有白费,我们并不比他们差。现在中国政府对基础建设日益重视,特别是对自主研发这块更为看重。而且出台了许多优惠政策鼓励我们大学生自主创业,做新兴科技技术。这对于我们来说无疑是雪中送炭啊!所以我们更得抓紧机会好好学习了。

1.3本设计的论文的内容安排:

第一章,简单介绍测量现今的技术以及国内外的研究现状,顺便做全文内容的安排。

第二章,我们多选择并列举几种电容、电阻、电感系统设计的可行方案,然后进行最终执行方案的选择。

第三章,利用查阅到的相关资料对系统各个模块的设计思路和工作电路原理进行详细的解释说明并要分析出实现某一功能的设计特点。

第四章,学习单片机和C语言的基础知识对整个设计的电路框架图进行编写运行编程并利用仿真软件运行得到最终实验数据。

第五章,对完成的实验结论与查阅相关的资料文献进行对比参靠,如无误差的话就确定下来。

第二章 电容;电阻;电感的测量系统设计

2.1首先电容的测量设计方案总结以下种类

电容的具体方案有很多,我在其中选择了两种我认为比较可行的方案:

1)可编程逻辑控制器(PLC)

因为这个方法目前应用的十分广泛,所以我把他列举出来进行一个参考。用这种方法的特点就是:1.速度快,2.占用空间小,3.精确度高。利用PLC来控制硬件的话,价格过于昂贵,如果不考虑成本的话可以应用此方案。

2)单片机与电路相结合

单片机的出现使得好多问题迎刃而解,它解决了很多不必要的麻烦。所以在此次实验设计中我们必须得考虑的方案。在单片机中我们优先考虑的是目前应用广泛的555多谐振荡电路。这种电路的原理就是将电容参数转化成频率信号,再把模拟量转换成数字量。不仅测量精度高,还十分的简单。

单片机拥有的独特之处有:1.具有可编程性,;2.设计所用时间较短,精确度高;3.节约成本。(没有经费补贴这点还是很重要的)。

结合了上面举例的两种方案进行对比分析后,我还是觉得应用单片机的方案相对较好的。不仅能节省成本,还能再一定程度上规避掉它的缺点。这是相当于趋近完美啊!随着科技的快速发展,单片机的功能也越来越高级和广阔,这也归功于它的灵活性很强,因此我选择第二种方案利用单片机编程来完成本次实验设计。

2.2电容测试仪的设计方案的最终选择

总览上述所有情况,我列举出了三种方法作为备选方案来进行对比分析。此次的设计方案选择我将要考虑的是简便可行,最好还能够节省成本。以下是我对电容测试仪的方案选择,后面的电阻和电感也是类似于此来做方案选择。

2.2.1方案一 :利用电容换算的容抗进行电阻分压

这种方法我们其实也不错,就是先换算出电容然后将容抗跟已知的电阻进行分压处理。测量出的电压值用公式计算出电容。原理如下图:

Rx Ro

V cc 。 。 GND

Ux Uo

图2.1电容换算的容抗来跟已知电阻分压

虽然说硬件结构相对较为简单,但是要想通过软件来实现的话那难度的提升不止几个档次呢!

2.2.2方案二 :直接用充放电时间来判断电容的值

电容的充放电特性公式(),放电常数(),这些我们都可以计算出来的,然后利用它们通过一系列的操作之后最终得到相对准确度高的电容值。一般来说,我设计的电路使( T振荡周期或触发时间 ; A电路常数)电路上的相关参数存在着某种程度上的关联。我就可以让555芯片进行单稳态触发装置并且在一定的作用之下发生触发,这样我们就能控制门电路,最终设计好相对应的参数,使得计数值和被测的电容相互对应。

目前阶段的实验还没有达到能百分百的消除误差,这也从侧面验证了误差存在的必然性,不过有的时候误差却是必不可少的,因为有误差才正常。当然这些都是题外话,就本方案的设计来说,我分析了下此次的误差主要是由两个部分组成:1.是单稳态触发电路自身所带的非线性造成的(T主要取决于充放电时间,而是被测的电容值)。2.数字电路(这个主要是数字电路的量化误差)本身就会有的误差。(该误差可以忽略不计)。这种本身就自带有的误差无法避免,只能是选择相对较小的误差的方案来进行试验。

此方案的硬件结构较为复杂,在现实的设计中会遇到了硬件一旦固定下来之后就无法再改变了。

2.2.3方案三 :AT89C51单片机555芯片构成的电容进行测量

说到单片机我们选用了555芯片,由于单片机的功能简单灵活,工作无反馈的话就会输出一定频率的方波,频率与电容的关系的公式:。(在这里如果我们固定了的值,那么公式就可以换成另一种形式:。然后就是计算频率,我们可以利用单片机的功能配合使用进行测量,至少到这一步我觉得是可行的,因为比较简单。

现在我设计出整个系统的框架:这里我运用了几个关键点来表示:

图2.2 AT89C51单片机555芯片构成的电容测量图

以上我所描述的三种测量方法就测量精度方面的要求来说:第一个方案的测量精度很差;第三个方案精度会明显的高,因为单片机的读取和转化功能我向大家都应该知道的。第二个大家从方案里就可以看出虽然也有可取之处,但是缺点也是尤为突出,所以不做参考。那么一三进行比较后,我还是选择了第三个方案,当然这也是因为单片机的功劳,它的特点大家是有目共睹的。

2.3 电阻的测量设计方案举例

目前我们比较常见的电阻测量方法大家可能都比较熟悉,初中的物理就已经简单的对大家进行介绍了,在此我就不一一说明了。在此我列举了在现实中应用较为广泛的几种方法仅供大家参考。下面我们就来看看以下这三种方法以及优缺点吧!

2.3.1 方案一 :串联分压的原理

我相信大家接触过初高中物理的都应该知道在串联电路中的电阻如何进行分压,其原理也是十分的简单的。串联电路里的电压和电阻是成正比关系的。所以我们将待测电阻用Rx来表示。因为电阻是R0,并且是已知的。所以设计出的测量原理图应该是下图2.3所示:

图2.3 串联分压测电阻

当我们设定了相关的参数值的字母代表后,又因为我们前面说了它们的关系后那Rx就可以表示成以下公式:

这个方法我们都知道它的优点:(1.电路简单2.操作简便)。但是它也有它的致命缺点,那就是测量精度非常的差。就单凭这一点我们就对此方案就不做考虑了,不管如何,精度是必须准确的,不然那实验有何意义!

2.3.2 方案二 :电桥法测电阻

我想大家对惠斯通电桥原理并不陌生吧,我把电桥法测电阻做成一个简单的原理图如下图2.5所示。具体的操作就不用我多说了,我列举了相关的计算公式供大家参详。

待测电阻的计算公式:

经过仔细的研究过后得到了结论,这个方法也是有着非常致命的缺点。我们得测好多组电阻才能得出最终所需要的值,那中间的环节就会增加,误差也就自然的增大了。所以这种方案也不行的,误差最为致命。

图2.4 电桥法测电阻

2.3.3方案三 :LM555CM构成单稳态测量电阻的测量

这是最后一种测量法了,我经过考虑后采用的是‘脉冲计数法’。第一步就是构造出多谐振荡电路,第二步利用其输出的频率得到电阻值。

在此我将555多谐振荡器的振荡周期计算公式列举出来:

频率公式是:

综上所得,待测电阻值的计算公式换算为如下所示:

以上三种方法均已介绍,还是老样子,我将最为稳妥且可行的方案都放在最后。前两种的方案也就是对比参考,本次设计已经决定好了要用单片机的相关应用和操作,所以那就贯彻到底吧!另外再说一句就是实验的重中之重就是最终的结果,如果误差太大那肯定不做考虑,而精确度高的方案自然就做为了预选方案。

图2.5 LM555CM构成单稳态测量电阻

2.4 电感的测量设计方案列举及选择

电感测量方法相对于电阻电容来说就没有那么麻烦了,目前我就找到了并进行具体分析的两种方法:(1.交流电桥法2.电容三点式正弦波震荡法)。下面详细的介绍下交流电桥法的测量原理。其实它和电桥法测电阻的原理基本相同,不过在测电阻的时候就会出现差异,一个用直流电源一个用交流电源。它的问题在于:比如说需要测量大量元件的参数,这毫无疑问的又加大了中间环节增大了误差,操作上的麻烦这时候就显得不是那么重要了。所以我放弃了该方法,那然后就只剩这一种方法了:“电容三点式正弦波震荡法”。

“电容三点式振荡电路”的本质其实就是和发射级相连的两个电抗元件是电容式的三点式组成了振荡电路。那这样的话也可以说我们是利用了‘射同基反’的构成原理做成了电容的三点式振荡电路。在此我只列举振荡频率计算公式:

那么:

电容三点式正弦波震荡测电感法原理图如下所示:

图2.6 电容三点式正弦波震荡法测电感

2.5本章小结

本章中我们列举了并且详细的介绍了电容电感和电阻的每一种测量方案的具体内容以及其优点和不足之处。最后经过综合分析我们排除了误差较大的方案,保留了精度较高的方案,并且也都选择了最佳的方案进行后面的设计。大多是以单片机的相关知识为基础。

第三章 电容;电阻;电感测量系统的硬件

3.1 AT89C51电容测量

3.1.1 第一个(AT89C51单片机工作电路)

我们此次设计的主要组成拿就是单片机应用组合电路,其次还想着能够兼顾成本,所以我选用了应用比较广泛的AT89C51单片机。这个单片机的特点主要有1.低功能耗2.较高性能3.经济实惠的8位CMOS微处理器。

首先我们要考虑到的是一个中断输入,然后存储容量以及外部接口对单片机的需求。现在这个单片机它采用的是Atmel公司的一些十分先进的技术比如说1.非易储器制造技术2.MCS51的指令设置3.芯片引脚可兼容。而且最重要的就是还可以在线编程,这点就很棒。最终的步骤拿就是接上电源让单片机正常的投入工作就可以了。以下我设计的这框架已经是最简单的了。

图3.1 AT89C51单片机工作电路

3.1.2 第二个(AT89C51电容的测量系统的复位电路设计)

图3.2 AT89C51电容测量系统复位电路图

MCS-51单片机片内复位的本质在这里我跟大家来详细的介绍下:首先就是复位,然后我们的单片机上的引脚RST就可以通过触发器(这里我们将要采用的是斯密特触发器)来压制噪音。触发器输出电平时会不定时的提取样本,所以我们才能够得到所需要的信号。

目前大家通常都采用1.上电自动复位2.按钮复位这两种复位电路方式。下来我们就详细的介绍下着两种不同的复位电路。首先第一个“上电自动复位”:它其实就是外部电路的电容充电来实现的,然后只要保证Vcc的上升时间在1ms之内就可以了。第二个就是“按键手动复位”:所以下面我们就来介绍下第二种方法‘按键手动复位’。这种方法具体的还要分为:1.电平方式2.脉冲方式这两种。“电平复位”时RST端经电阻再加上电源Vcc接通实现的。

在此次的设计当中,外部扩展的I/O接口的电路复位,如果能够连接MCS-51单片机的复位,就会使得复位电路中的R以及C两个参数受到某种程度上的影响。那这个时侯复位电路中的R和C两个参数就要统一考虑下,因为要确保可靠的相关复位。如果MCS-51外围的I/O接口的复位电路和复位时间不一致,那单片机将停止运行。通俗意义上来讲,单片机的复位速度要快一些的。如果要保证系统进行准确复位,就应该在程序中使用复位延迟时间功能。这一点绝对不可或缺。

在复位电路软件的程序中,要是出现了以下两种情况就会产生一种复位信号就能够控制51单片机。(第一种情况就是程序跑飞;第二种就是自身的硬件发生了错误)。另外本次电路的输出端连接在单片机的复位引脚上。

3.1.3 AT89C51电容测量系统的时钟电路

时钟电路在单片机所有的强大功能中都占据着无法比拟的地位,它也是很多设计所要实现目的的重要手段。原因有很多:1。单片机中的各个功能运行以时钟频率做做为基准。2.时钟的频率直接干扰到整个单片机的运行速度的,3.时钟电路的质量会直接影响到整个单片机系统的稳定。所以由此可见时钟的重要性了吧。话说回来我们日常生活中比较常用的时钟电路分为了两种方式:1.主要是内部时钟方式。2.主要是外部时钟方式。接下里我将要具体的介绍这两种方式的内容。

一、内部时钟方式:首先我做了一个内部时钟方式的电路图仅供参考。如下图3.3所示

图3.3 AT89C51电容测量内部时钟方式电路图

首先我们得熟悉掌握51单片机。利用内部构成振荡器的高增益的反向放大器形成高增益,那么反向放大器的输入端就是芯片的引脚XTAL1;输出端就是引脚XTAL2。这两个引脚连接了微调电容之后,就会形成一个相对稳定的自激振荡器电路。

现在我在设计的电路中的电容选择上做了一些微略的调整,C1和C2的值我选择在30PF上下不等,所以我会根据实际情况来做一些相应的调整。我们得注意电容的值的大小。因为这也会影响到后面振荡器频率的高低和稳定。所以也是不能够忽视的细节问题。不过由于晶体特性的原因使得随着晶体的频率增高,系统的时钟频率也会随着增高而增高,当然这是好事,因为这会使得单片机的运行速度也加快。最后我们为了使得温度能够保持相对的稳定采用了温度稳定功能好的NPO高频率电容。而51单片机就没有那么多要求了,所以这个电路基本上就很完美。

3.1.4 AT89C51电容测量系统的按键电路

‘按键’是实现人机进行对话的一个相对直观的纽带,它可以用来实现人们操控着单片机做出满足不同需求的日常生活中的工作。在现实生活中,有很多按键的升级品或者替代品,但是其意义都是相通的。比如我们说这个‘键盘’,它其实就是一组或者一部分的按键的集合体。现在计算机行业如此的发达,我相信大家对它都很熟悉吧!我们拆开来说其实‘键’就是一种类似于开关的东西。一般来说这个按键它有两个触点:要么处于断开状态,要么处于闭合状态。然而这些状态的来回变化就依靠的是‘按键’对它们进行相关的操作。再回过头来我们说这个键盘,程序上把它分为编码键盘和非编码键盘。我们先说第一种,一般实现专用的硬件译码能够产生键的编号(也叫做键值)的键盘我们称之为编码键盘。而第二种相对就简单多了,就是依靠自身编写软件来识别的就是非编码键盘。在单片机现实应用中最多的就是非编码键盘。当然这些都应用在智能化仪器里。一些比较典型的按键电路也应用了按键的思想后使得智能化仪器能更进一步。具体的控制我们可以通过输出的高低电平来实现按键的控制作用和效果。

3.2 简单介绍下什么是555集成电路

首先我们说说这个集成电路,集成电路的英文名称是(integrated circuit)。它是一个微型电子部件,经过工艺加工把一个电路中所需的元件及布线相互连接。这再往下就是半导体芯片了。集成电路的发明者我想大家也许很是陌生。一个叫“杰克·基尔比”在锗(Ge)的集成电路上大有作为;还有一个叫“罗伯特·诺伊思”在硅(Si)的集成电路上有着巨大贡献。现在我们再说说这个集成电路555,它最初的作用就是应用于计时器的应用程序中,因此它还可以被叫做‘计时器555’或‘时基电路555’。随着时间的推移,科学技术也在逐步的提高,更加先进的功能也被人们开发了出来。目前在各种电子产品中被应用的十分广泛。 555集成电路分为很多电子元件,其中就包括很多的基本元件(比如说:1.分压器,2.比较器,3.基本RS触发器,4.排气管和缓冲器等等)。正因为它包含的零件范围广而且种类也较为繁多。不过他们能够混合到一起使用,所以这种电路将会更加的复杂多变,成为混合体。

如下所示:

555集成电路内部结构示意图

它的引脚图如下:

图3.5引脚图

综上图所述它是8脚封装,双列直插类型的,由第一个图所示我们就知道了按照输入输出的排列也可以看成是第二个图所展示的样子。下面我们来一一介绍下各个引脚的具体作用。先从最简单最好记的开始,分别是1脚和8脚:图中的8脚就是连接电源的(俗称电源端),而1脚也就是接地端了。第二个图中(后面介绍的引脚均为第二个图所示)的6脚被称为是:阈值端(简称TH),其实是上比较器的输入。图中的2脚被称为是触发端,也就是下比较器的输入。图中的3脚是输出端(也就是VO),这个比较特殊,因为它有0和1这两种不同的状态,被电平的高低控制。图中的7脚就是放电端(简称DIS),它其实是内部放电管的输出,也有着1.悬空2.接地这两种状态的,同样是输入端的状态来决定的。由于3脚和7脚类似所以我们把它两放在一起。图中的4脚是复位端(简称MR),加上低电平它就可以输出低电平。而5脚是控制电压端(简称VC),我们改变控制它上下就能调节电平值。

我们做出类似的电路模型然后再分别做出图(a)和图(b)仅供参考。

图3.6 555构成的多谐振荡器

3.3 LED数码管的原理

图3.7 LED数码管结构

现在的半导体发展前景越来越好,国内外的地位也是日益渐升。我们现在所要用的就是LED数位管(数码管)其中的一种发光元器件,好多人对此不是很了解,其实这一类元器件的基本是多个发光二极体的集合。目前的现实应用也是很广泛的。现实设计中的数位管种类有很多,具体主要是按照段数来进行分类,目前主要分为:1.七段数位管2.八段数位管这两种。其中‘八段数位管’要比‘七段数位管’多一个发光二极体单元,也就是多一个小数点来显示数值。不过数码管连接在一起的个数不同也会被继续分为多种类型的数码管组:有二位的、有四位的、有六位的还有八位的数码管组等等。再然后的区分就是按每个发光二极体单元的连接方式的不同又分为了‘共阳极数位管’和‘共阴极数位管’这两种。

如果我们将两个二极管的阴极给它连接在一起,就会形成公共阴极。一般情况下此公共阴极都是接地,相同的如果共阳极的话则是将发光二极管的阳极相互连接,并且接入了+5V的电压。当将一定的直接电容应用于发光二极管的特定部分时,该部分的部分将变亮; 如果未添加容量,则该指示灯将变暗。 若要保护各段的LED避免被损坏,那就需要另外加限流电阻了。 发光二极管是由某些特殊的半导体材料制成的PN结。 (另外正向压降VF和电流IF的乘积越大,那么发光强度就会越大)。

LED现在的发展前景也很好,从最开始的新能源节能灯管到现在的发光器件,虽然我这种描述不正确,但给人的早期印象就是如此。现在的变化太大但原理基本都是如此,现在的灯管应用不仅仅是照明那么简单了,一些单片机或者其它的电路中应用报警或着指示功能。

它现在做成的数位管挺不错的,只要配合其他的电子元器件进行使用的话它的优点也是很明显的,如果把它们的数量增加形成几何图形,就我们常用的计数器上现实的“8”字型的就可以实现技术显示功能。

LED数码管结构、字段及引脚排列结构示意简图如下所示:

图3.8 LED数码管结构、字段及引脚排列

我们这次预先的方案是先选用共阴极数码管,所以在使用的时侯一定要严格的按照它的基本原理进行操作。其实话说回来‘共阴极数码管’的字段也并不像前面的图3.4所示的那样进行排列的,从某种意义上它是严格的按照(dp、 g、 f、 e、 d、 c、 b、 a)这样的顺序来进行排列的,也就是说赋值的时侯,从左往右依次排列顺序时,最左边的(上面举例中的dp)它表示的是最高位。当然了这样的赋值状况也并不是都是这样的。主要还是看它和单片机的连接方式。

第四章 电容测量电路的仿真设计

4.1系统的硬件的总体电路图

4.1.1电容测量硬件

综合以上各个模块进行了对比分析,我将设计出的数字电容测量电路图整理出来仅供参考:

电容测量硬件电路

前面的方案中提到过“脉冲计数发”,其本质就是555电路组建的多谐振荡电路,之后我们运用一些相关的计算就能得到被测电容的准确值。

以下是翻阅资料所得的振荡周期计算公式:(4.1)

假如我们让它的R1=R2,那么就能得出电容计算公式:(4.2)

4.1.2电阻硬件

和上面的电容一个道理,经过了对比和分析之后做出设计的数字电阻测量电路图:

电阻测量硬件电路设计图解

我们利用此仿真系统通过程序来测出它的频率,然后就能算出Rx的值并且让其在数码管上显示出来。

那么电阻公式就为:(4.3)

4.1.3电感硬件的总体电路图

电容和电阻的分析结果的道理一样,电感也不例外。我们就先设计出数字电感测量电路图:

电阻测量硬件电路设计图解

(顺便说下以上三张图都为总体电路的框架图)

“三点式振荡电路”法的另外一个名字叫做‘考毕兹振荡电路’。此方法应用于本次的实验设计方案里非常的完美。此法的本质就是LC回路中跟发射极上连接的两个电抗元件一个得是同一性质一个电抗元件得是相反的。(这两点必须满足,不可或缺)。他们一起组成电容电路然后利用了射同基反的原则就变成了‘三点式振荡电路’。(从某种意义上来讲)。

不过此电路它所产生的信号小,因此我们操作的时候要先加一级和三级管进行放大,信号自然也就放大,为的就是让它能使得比较器将正弦波转换成为方波。这样的话,我们就可以通过程序测出频率进而求出Lx的大小,最后再结合单片机技术将数值在数码管上显示出来即可。

电感的计算公式:(4.4)

4.1.4数码管的硬件电路

本次实验设计我们选择的是六位共阴极的数码管来做显示。具体的操作就是要进行电路的连接,其实就单数码管来看的话是很简单的,主要的难点就是如何在连接之后分清共阴极数码管并且还要保证其能显示出准确的测量数值。(当然这只是基本要求,所以我们要了解基本代码来做出最佳的编程实现目的)。

单片机以及数码管硬件的总体电路设计图

熟悉LED的人应该都知道它的显示数码管是由硬件的7段译码来做成的集成电路,从而完成了从数字一直到显示码的驱动。我们现在的设计中将要采用的是软件译码,这里不得不说说选它的原因:1.减小体积;2.降低成本和功耗;3.最重要的第三点就是它有着更大的灵活性(相对于硬件译码)。我列举了段码位和显示段的对应关系的表格如下。

段码位 D7 D6 D5 D4 D3 D2 D1 D0

显示段 dp g f e d c b a

表4.1

由此表我们通过分析得到了以下信息,P1是仅有的高电位,如果我们把GND和地相连接,那么LED位才会被选中从而具备了发光的条件。

4.1.5电容:电阻:电感;硬件总体电路图

图4.5电容;电阻;电感;三者硬件总体电路仿真设计图

4.2单片机的电容测量软件设计

4.2.1 软件设计

现实中如果要针对硬件设计里面的部分进行控制的时候,那就得用上我们的软件设计了。单片机可以用汇编语言或者C语言来做相关功能的编程的。不过两者相比较下来说的话,C语言就显得比较直观一些,而且也很简单。它的不足之处就是占用程序存储器的内存太大了。然而对于汇编语言来说其实就是一种针对硬件设计的语言。我们得先对硬件有了足够的了解之后再去使用汇编语言的话就很更加的得心应手。如果拿汇编语言和C语言做个对比的话,那么C语言就会相对的要复杂一些,但是汇编占用的程序存储器内存就要小的多了。目前对于我们学生阶段来说,用汇编语言来练习编程的话不但能够加深我们对单片机的全方位理解,而且它的资源也是非常的丰富的。C语言编程的话呢,它只是会让我们以后步入社会的现实生活中能够简化自己的工作而已。所以再三经过考虑之后我还是采用了 C语言来编写设计中所需要的程序。设计类型较多就不一一举例了。

在规划总体的电路或者其他类似的规划时,我们又不得不提下‘流程图’了。首先它是一种传统的表示法,利用各种几何图形再加上相应的文字来表示我总体的电路布局以及每一步的流程或操作,还有我们还可以加上线条以及箭头来表示每一步流程的先后顺序或者执行方向。目前来看的话,也就流程图能够简单明了的表述算法,它的特点主要有:(1.直观明了,2范围广)。也正因为如此成了我们向外界表达的一种重要的手段。

4.2.2算法详解流程图(4.2)

图4.2

4.2.3算法设计

(首先在这里提前说明下:由于2019年末至2020年初期间全国各地爆发了重大的疫情灾难,严重的影响到了人们正常的生活。而作为今年应届毕业的大学生来说不能够按时的返回学校进行最后的毕业设计实验,所以对于实验操作这块有所欠缺,但是疫情期间我在家也做了很多有关于本课题的准备工作。比如以上对于整个设计系统方案的解析与构建,并在查阅资料或寻找相关的学术文献侯预备了几种可行的方案进行对比参考,最终我选出了自认为最佳的方案来完成本次的毕业设计。以上文中所述皆为本课题的准备工作以及我对此课题的研究方向和深度,到此之后就是设计出相关的与之对应功能的C语言程序。然后做出了仿真设计系统后参考相关资料并对最后的运行结果进行分析。)

(1)我们先让单片机程序定时器计数器初始化,程序如下:

//定时器计数器初始化

void InitTimer(void)

{

TMOD=0x15; //选择方式

TH0=0; //

TL0=0; //

TH1=(65536-5000)/256; //x为定时时间,x<65536

TL1=(65536-5000)%256; //

TR1=1; //拉高电平

TR0=1;

ET0=1;

ET1=1; 启动定时器

PT1=1;

EA=1; 开中断

}

//计数器复位

void TCOUNTER0_RESET(void)

{

timecount=0;

T0count=0;

TH0=0;

TL0=0;

TR0=1;

TR1=1;

}

(2)之后再继续扫描按键,再进行按键选择电阻、电感和电容的档位。我们定000为电阻档,100电容X1档,010为电容X10档,110电感X1档,001电感X10档,101为电感X100档。程序如下:

//选择为电阻档

void CD4051_SEL_RES(void)

{

C_A=0;

C_B=0;

C_C=0;

}

//选择为电容X1档

void CD4051_SEL_CAP1(void)

{

C_A=1;

C_B=0;

C_C=0;

}

//选择为电容X10档

void CD4051_SEL_CAP10(void)

{

C_A=0;

C_B=1;

C_C=0;

}

//选择为电感X1档

void CD4051_SEL_IND1(void)

{

C_A=1;

C_B=1;

C_C=0;

}

//选择为电感X10档

void CD4051_SEL_IND10(void)

{

C_A=0;

C_B=0;

C_C=1;

}

//选择为电感X100档

void CD4051_SEL_IND100(void)

{

C_A=1;

C_B=0;

C_C=1;

}

(3)初始化之后,我们就要设置测量器件开中断并且打开计时器,程序如下所示:

void t0(void) interrupt 1 using 0

{

T0count++;

}

void t1(void) interrupt 3 using 0

{

TH1=(65536-5000)/256;

TL1=(65536-5000)%256;

timecount++;

if(timecount==200)

{

TR0=0;

timecount=0;

flag1=1;

}

}

void KEY_set(void) interrupt 0 using 0

{

EX0=0;

if((P1&0XE0)!=0XE0)delay();

if((P1&0XE0)!=0XE0)KEY_VALUE=P1&0XE0;

EX0=1;

}

(4)当测量对象为电感时,根据之前确定的测量函数,程序如下所示:

void INDUCTOR_MEASURGE(void)//参数要重设

{ unsigned char y=0;

bit flag2=1;

RT_EN=0;

CT_EN=0;

LT_EN=1;

CD4051_SEL_IND100();

LCD_write_com(0x01);

LCD_write_str(0,0,"Freq=");

LCD_write_str(14,0,"Hz");

LCD_write_str(0,1,"L=");

LCD_write_str(14,1,"mH");

while(KEY_VALUE==0XA0)

{ x=0;

if(flag1==1)

{

flag1=0;

x=T0count*65536+TH0*256+TL0;

if((x<=50)&&(y<2))

{ y++;

indctor_choose(y);

flag2=0;

}

else flag2=1;

ShowFloat(6,0,x,6);

if(flag2==1)

{

switch(y)

{

case 0 : LTEST=760.10/x; break;

case 1 : LTEST=761.0/x; break;

case 2 : LTEST=7610.0/x;

}

ShowFloat(5,1,LTEST,8);

}

TCOUNTER0_RESET();

}

}

}

(5)当测量对象是电阻的时候,之前的方案确定了测量函数,程序如下所示:

void RESISTOR_MEASURGE(void)

{ unsigned char Rmp=0;

bit flag2=1;

RT_EN=1;

CT_EN=0;

LT_EN=0;

CD4051_SEL_RES();

LCD_write_com(0x01);

LCD_write_str(0,0,"Freq=");

LCD_write_str(14,0,"Hz");

LCD_write_str(0,1,"R=");

LCD_write_str(14,1,"om");

while(KEY_VALUE==0XC0)

{ x=0;

if(flag1==1)

{

flag1=0;

x=T0count*65536+TH0*256+TL0;

if((x<=50)&&(Rmp==0))

{ Rmp=1;

RESISTOR_choose(Rmp);

flag2=0;

}

else flag2=1;

ShowFloat(6,0,x,6);

if(flag2==1)

{if(Rmp==0)

{ RTEST=72.0*10000/x-500; //C=500n

if(RTEST<=25) RTEST=RTEST-2.0;

if(RTEST<=50) RTEST=RTEST-1.5;

if(RTEST<=65) RTEST=RTEST-1.0;

}

else

RTEST=72.0*5000000/x-500; //C=1n

if((RTEST>=1000)&&(RTEST<1000000))

{ RTEST=RTEST/1000; //显示档位换为k档

LCD_write_str(14,1,"k ");

} else if(RTEST>=1000000)

{

RTEST=RTEST/1000000; //显示档位换为k档

LCD_write_str(14,1," M");

}

ShowFloat(5,1,RTEST,8);

}

TCOUNTER0_RESET();

}

}

}

(6)当测量对象是电容时,还是老样子来确定测量函数,程序如下所示:

void CAPACITOR_MEASURGE(void)

{ unsigned char temp=0;

bit flag2=1;

RT_EN=0;

CT_EN=1;

LT_EN=0;

LCD_write_com(0x01);

LCD_write_str(0,0,"Freq=");

LCD_write_str(14,0,"Hz");

LCD_write_str(0,1,"C=");

LCD_write_str(14,1,"pF");

CD4051_SEL_CAP1();

while(KEY_VALUE==0X60)

{ x=0;

if(flag1==1)

{

flag1=0;

x=T0count*65536+TH0*256+TL0;

if((x<=50)&&(temp==0))

{ temp=1;

CAPCITOR_choose(temp);

flag2=0;

}

else flag2=1;

ShowFloat(6,0,x,6);

if(flag2==1)

{if(temp==0)

CTEST=729000.0/x; //R=1M;

else

CTEST=1.432*10000000/x; //R=50k

if(CTEST>=1000)

{

CTEST=CTEST/1000; //显示档位换为k档

LCD_write_str(14,1,"nF");

}

else LCD_write_str(14,1,"pF");

ShowFloat(5,1,CTEST,8);

}

TCOUNTER0_RESET();

}

}

}

(7)当这些事情都做完了之后,我们就要开始测量相应器件的数值。在这之前我们得先清理之前的数据。

void LCD_write_Data(uint8 Data)

{

RS_SET;

RW_CLR;

EN_SET;

P0 = Data; //P0口写入数据

delay_us(5); //延迟5秒

EN_CLR;

}

void LCD_clear(void)

{

LCD_write_com(0x01);

delay_ms(5);

}

void LCD_write_str(uint8 x,uint8 y,uint8 *s)

{

if(y==0)

{

LCD_write_com(0x80+x);

}

else

{

LCD_write_com(0xC0+x);

}

while(*s)

{

LCD_write_Data(*s);

s++;

}

}

具体的程序放入本文附录。

如果在应用的过程当中发生了S1置于2nf档,而且我们也没有测试电容器的时侯就会导致电容先进行放电。这个时候放电完后,电压表的残存0.12V的电压就是一种正常现象。(因为只要在编程时减去这一数值就会减小误差。)

4.3仿真结果

图4.3

上图中的开关是放置于2000nf档的,因为在此时系统的默认的最高位为千位,而往后的依次排列顺序就是1.百位、2.十位、3.个位。但是当你测大于2000nf的电容值时该怎么办呢?目前的办法只有当超出测量范围的按程序千位显示1,其余都不显示这种方法了。对了每次测量时等待着电容放电完毕之后(也就是说等电压表示数不再变化)只要按下控制键就能够显示出此次的测量值。图中的测量误差大概是-0.0555%,不过无论测什么值都只精确到个位。

我们此次的系统仿真采用的是C语言的模块方式,通过Keil C51软件的平台将程序转变成可读专有或共有进制的程序语言。接下来我们就直接使用仿真软件来运行此次的程序了,我们引用了proteus7.0设计出了软件的仿真图并进行应用软件仿真测试,直到电路设计达到了现实所需的最基本的要求。

4.4 仿真软件PROTEUS

4.4.1 简单说明PROTEUS

用过仿真软件的同学们对这应该是再熟悉不过了,这是英国的Labcenter electronics公司出版工具软件,该软件在中国也有代理公司,目前坐落于广东广州市。它还具有其它工具软件的仿真功能,仅凭这一点就十分的厉害。所以就目前来说它就是最好的仿真工具了。目前国内刚刚起步,但是我坚信着未来的时间里这款应用软件的功能将会越来越强大,越来越完善的。

下面我们就详细的介绍下这个软件的具体原理及构成成分。它可以将1.电路仿真软件、2.PCB设计软件、3.虚拟模型仿真软件三合一。它的处理器支持很多的模型,随着时间的推移,它的功能也在逐步的完善和加强。从某种意义上来讲它真正的实现了从概念到产品的完整设计的本质就是从原理图布图到代码调试再到单片机与外围电路的协同仿真。

Proteus可以实现数字/模拟电路的混合仿真。(基于工业标准SPICE3F5的情况下)

4.4.2 PROTEUS的特点

Proteus的几个优点大家已经很熟悉了,我就简单坐下介绍:

1提供的仿真元器件资源非常的多,具体我就不在举例说明了。

2提供的仿真仪表资源也是非常的多 :(1.示波器、2.逻辑分析仪、3.虚拟终端、4.SPI调试器、5.I2C调试器、6.信号发生器、7.模式发生器、8.交直流电压表、9.交直流电流表)。

3提供了图形显示的功能,而且功能很多。(不过这些对最终测量结果的影响有所降低)。

4最后一个就是提供了调试手段 :说白了就是利用丰富的测试信号来测试电路。(测试信号分为:1.模拟信号2.数字信号)。

4.5本章小结

本章主要是在前面确定过的方案上进行总体的实验设计规划,中间我们运用了很多的硬软件设计,也做出了程序语言等众多工具上的选择,最终做出总体的框架图和运行程序,然后就是利用PROTEUS的仿真软件测试模拟来运行我们前面所作的一切方案和电路,并且观察和记录实验所需的相关数据,经过分析对比之后得到本次设计的最终结论。期间我们还运用了流程图来解释说明每一部分电路功能的实现流程。(这其中的难点就是把程序设计和硬件电路结合在一起,好在最后达到了我们一开始所希望的效果)。