基于51单片机的 电容数字测量仪电容测量的常规方法§1.2 单片机最小系统§1.3 课题介绍§1.4 本课题所做的主要工作二、 电容测量仪的硬件组成§2.1 AT89C51单片机工作原理§2.2 地址锁存器(74HC573)工作原理§2.3 LED数码管的工作原理§2.4 555时基振荡器的典型应用三、 电容测量仪硬件电路的实现§3.1 电路模块图§3.2 电路原理图§3.3 电路工作原理简介四、 电容测量仪的软件设计§4.1 程序流程图§4.2 系统功能模块的设置§4.3 稳压直流电源的实现§4.4 AT89C51单片机最小化系统的测试§4.5 单片机驱动573的实现§4.6 显示器件正正常显示的实现§4.7 555时基定时器在本系统中的应用§4.8 单片机测量电容的原理分析§4.9 量程档位选择的实现§4.10 系统功能正常运行的实现§4.11 系统的扩展§4.12 工业方面§4.13 民用方面五、 结束语§5.1 致 谢§5.2 参考书目一、 前 言§1.1电容测量的常规方法电容式传感器是将被测量的变化转换成电容量变化的一种装置。电容式传感器具有结构简单、分辨力高、工作可靠、动态响应快、可非接触测量,并能在高温、辐射和强烈振动等恶劣条件下工作等优点已在工农业生产的各个领域得到广泛应用。例如在气力输送系统中,可以用电容传感器来获得浓度信号和流动噪声信号,从而测量物料的质量流量;在电力系统中,采用电容传感器在线监测电缆沟的温度,确保使用的安全;由英国曼彻斯特科学与技术大学(UMIST)率先开发的电容层析成像(ECT)技术是解决火电厂煤粉输送风-粉在线监测等气固两相流成分和流量检测的有效途径,其中微小电容测量是关键技术之一。电容传感器的电容变化量往往很小。结果电容传感器电缆杂散电容的影响非常明显。特别在电容层析成像系统中被测电容变化量可达0.01pF,属于微弱电容测量,系统中总的杂散电容(一般大于100 pF)远远大于系统的电容变化值,且杂散电容会随温度、结构、位置、内外电场分布及器件的选取等诸多因素的影响而变化,同时被测电容变化范围大。因此微小电容测量电路必须满足动态范围大、测量灵敏度高、低噪声、抗杂散性等要求。1 充/放电电容测量电路充/放电电容测量电路基本原理如图1所示。由CMOS开关S1,将未知电容Cx充电至Ve,再由第二个CMOS开关S2放电至电荷检测器。在一个信号充/放电周期内从Cx传输到检波器的电荷量Q=Ve·Cx,在时钟脉冲控制下,充/放电过程以频率f=1/T重复进行,因而平均电流Im=Ve·Cx·f,该电流被转换成电压并被平滑,最后给出一个直流输出电压 Vo=Rf·Im=Rf·Ve·Cx·f(Rf为检波器的反馈电阻) 。充/放电电容测量电路典型的例子为差动式直流充放电C/V转换电路,如图2所示。Cs1和Cs2分别为源极板和检测极板与地间的等效杂散电容(通过分析可知,它们不影响电容Cx的测量)。S1-S4是CMOS开关,S1和S3同步,S2和S3同步,它们的通断受频率f的时钟信号控制,每个工作周期由充/放电组成。分析可得电路输出为Vo=2KRfVeCxf (1)式中,K为差分放大器D3的放大倍数。该电路的主要优点是能有效地抑制杂散电容,而且电路结构简单,成本很低,经过软件补偿后电路稳定性较高,获取数据速度快。缺点是电路采用的是直流放大,存在较大的漂移;另外,充/放电是由CMOS开关控制,所以存在电荷注入问题。目前该电路已成功应用于6、8、12电极的ECT系统中。其典型分辩率可达3*10-15F。图22 AC电桥电容测量电路AC电桥电容测量电路如图3所示,其原理是将被测电容在一个桥臂,可调的参考阻抗放在相邻的一个桥臂,二桥臂分别接到频率相同/幅值相同的信号源上,调节参考阻抗使桥路平衡,则被测桥臂中的阻抗与参与阻抗共轭相等。这种电路的主要优点是:精度高,适合作精密电容测量,可以做到高信噪比。图3电路的缺点是无自动平衡措施,为此可采用图4所示的自动平衡AC电桥电容测量电路。该系统输出Vd为一直流信号,ΔC为传感器的电容变化量。式中,2/π为相敏因子。结合平衡条件,在理论上输出Vd可写成获得该电桥的自动平衡过程的步骤为:保证电桥未加载时ΔC=0,测量电桥非平衡值并利用公式(3)计算出电桥输出为零时所需的反馈信号Ve的值。重新测量桥路的输出,若输出为零,则桥路平衡;若输出不为零,重复上述测量步骤,直至桥路输出为零,即桥路平衡为止。该电桥电容测量电路原理上没有考虑消除杂散电容影响的问题,为此采取屏蔽电缆等复杂措施,而且其效果也不一定理想。通过实验测得其线性误差能达到±1*10-13F。3 交流锁相放大电容测量电路交流型的C/V转换电路基本原理如图5所示。正弦信号Ui(t)对被测电容进行激励,激励电流流经由反馈电阻Rf、反馈电容Cf,和运放组成的检测器D转换成交流电压 Uo(t):若jωRfCf>>1,则(4)式为式(5)表明,输出电压值正比于被测电容值。为了能直接反映被测电容的变化量,目前常用的是带负反馈回路的C/V转换电路。这种电路的特点是抗杂散性、分辨率可高达0.4*10-15F。由于采用交流放大器,所以低漂移、高信噪比,但电路较复杂,成本高,频率受限。4 基于V/T变换的电容测量电路测量电路基本原理如图6所示。电流源Io为4DH型精密恒流管,它与电容C通过电子开关K串联构成闭合回路,电容C的两端连接到电压比较器P的输入端,测量过程如下:当K1闭合时,基准电压给电容充电至Uc=Us,然后K1断开,K2闭合,电容在电流源的作用下放电,单片机的内部计数器同时开始工作。当电流源对电容放电至Uc=0时,比较器翻转,计数器结束计数,计数值与电容放电时间成正比,计数脉冲与放电时间关系如图7所示。电容电压Uc与放电电流Io的关系为:令Uc=0,则有:式中,N为计数器的读数;Tc为计数脉冲的周期;它是一个常数;在Us和Io为定值时,C与N成正比。基于V/T变换的电容测量电路,对被测电容只进行一次充放电即可完成对被测电容的测量。采用了电子技术中准确度较高的时间测量原理,克服了传统测量微弱信号电路中放大器的稳定性不好、零点漂移大等缺点,且电路结构简单、测量精度和分辨率高。5 基于混沌理论的恒流式混沌测量电路恒流式混沌电路如图8所示。其工作原理如下:当K1、K2断开时,K3闭合。电容C充电使Uc=Ux,然后K3断开,待周期为t的脉冲序列δ中的一个脉冲到达G(逻辑电路)时,G的输人信号使K2闭合,K1保持断开(此时相当于图9中的X1点),电容开始以-0.5Io的恒定电流放电。当Uc=0时,相当于电路中的A点,比较器翻转,输出电压Up由高电平变为底电平,Up的变化促使G变化,使G控制K1闭合、K2断开,此时电容C由恒定电流Io充电,使Uc按A-X2方向上升。当又一个脉冲到来时(相当于图8中X2点),G又开始变化,使K1断开、K2闭合,又一个放电充电过程开始。这样周而复始的放电充电使Uc的变化如图9所示,只要适当调整,Io和t就可以使电路处于混沌状态。这种方法突出的优点是测量的分辨率高,测量的绝对误差不随被测电容值的变化而改变,对作为传感器的元件只要求稳定即可。当被测电容很大时,相对误差还会减小。此方法除了可以直接测量电容外,也可以作为电容式传感器测量其它电量和非电量。6 基于电荷放大原理的电容测量电路基于电荷放大原理的电容测量电路如图10所示,该电路是通过测量极板上的激励信号所感应出的电荷量而得到所测电容值的。图中Cx为被测电容,它的左侧极板为激励电极,右侧极板为测量电极。Cas和Cbs表示每个电极所有杂散电容的等效电容,Cas由激励信号源驱动,它的存在对流过被测电容的电流无影响。电容Cbs在测量过程中始终处于虚地状态,两端无电压差,因而它也对电容测量无影响,因此整个电路对杂散电容的存在不敏感。基于电荷放大原理的电容测量电路,一方面该电路对被测电容只进行一次充放电,就可完成对电容的测量,由于测量结果是直流稳定信号,不存在脉动成分,故电路中无需滤波器。因此大大提高了基于该电路的数据采集系统的数据采集速度。同时该电路具有很强的抗杂散电容的性能。另一方面该电路可以对各开关的控制时序进行合理的设计,用以较好地解决了电子开关的电荷注入效应对测量精度的影响问题,使电路达到了较高的分辨率。现在此电路成功应用于12电极ECT系统中,在不实时成像的情况下,数据采集速度可达600幅/s,对杂散电容具有较强的抑制能力,系统灵敏度4.8 V/pF,可达最高分辨率为5*10-15F。§1.2 单片机最小系统1 单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。下面给出一个51单片机的最小系统电路图(图1):图112 详细说明如下:(1) 复位电路:由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。一般教科书推荐C 取10u,R取10K。原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平。至于如何具体定量计算,可以参考电路分析相关书籍。(2) 晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作),在本电路中,取12M。(3) 单片机:一片AT89S51/52或其他51系列兼容单片机。对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行。1) AT89C51单片机的共40个引脚功总共40个脚,电源用2个(Vcc和GND),晶振用2个,复位1个,EA/Vpp用1个,剩下还有34个。29脚PSEN,30脚ALE为外扩数据/程序存储器时才有特定用处,一般情况下不用考虑,这样,就只剩下32个引脚,它们是:P0端口P0.0 - P0.7共8个;P1端口P1.0 - P1.7共8个;P2端口P2.0 - P2.7共8个;P3端口P3.0 - P3.7共8个;§1.3 课题介绍1 所选课题的题目及课题来源本人所选课题的题目为《 基于51单片机的 电容数字测量仪 》。在一般的电容测量系统中,几乎都是根据普通的电路原理,用一些常规的方法来测量的,近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入。本课题采用脉冲计数法,即利用555定时品来产生RC多谐振荡频率和单片机CPU的高速强大的计算及可编程功能,用软件查表的方法实现电容量高精度智能化的测量。它克服了以上的一些据点,充分利用单片机智能化的优势,操作方便,并且可以提供友好的人机界面。2. 课题研究的目的、意义本课题研究的目的:实现电容测量的低成本,高效率,高可靠性。本课题研究的意义,提供一种更新颖更合理的电容测量方法。§1.4 本课题所做的主要工作本课题的主要工作:利用单片机最小系统外加尽可能少的元器件1. 脉冲计数的法的设计思想是把电容C通过RC三点式振荡转换成频率信号f,这样就把模拟理转为数字量,然后送入单片机进行计数后再对数据进行处理和软件查表等一系列运算求出电容C,并送显示器显示。2. 本设计主要由测理电路,和控制电路两部分组成,测量电路主要用于产生RC振荡频率f,而控制电路则用于对所产生的振荡频率进行计数,处理,控制并送显示等。二、 电容测量仪的硬件组成§2.1 AT89C51单片机工作原理1. 单片机的雏形:MCS-48单片机是美国INTE公司于1976年推出,它是现代单片机的雏形,包含了数字处理的全部功能,外接一定的附加外围芯片即构成完整的微型计算机,其主要的功能特征为:8位CPU(中央处理器)、内置程序存储器(ROM)、随机存取数据存储器(RAM)和输入输出端口(I/O)全部集成在单一的芯片上而构成了完整的微型计算机。1) 8位CPU。2) 双列直插40PinDIP封装。3) 所有指令均为1-2个机器周期。4) 96条指令,大部分为单字节指令。5) 2个工作寄存器。6) 2个可编程定时/计数器。7) 8层堆栈。8) 单一+5V电源供电。使用6MHz外接石英晶体管振荡器,此时机器周期为2.5us。2. 单片机的发展,MCS-48系列单片机:8048和8748是最早期的产品,8048本身具有64x8位RAM,1kx8位的ROM,而后期的8049中的RAM大到256字节,ROM却增加到了4kBytes,这个成绩在当时是相当可喜的。还有一类的产品本身是不带程序存储器的,象8035和8039,它的程序存储器只能外接,当时常用的是EPROM(紫外线擦除电写只读程序存储器)一类的ROM。MCS-48系列单片机还有几个产品,象8021和8022单片机,8021该系列中的低价型单片机,而8022则是包含了单片机所有功能,并集成了A/D转换器的产品。现在MCS-48系列单片机已完全退出了历史舞台,由MCS-51系列单片机取而代之。§2.2 地址锁存器(74HC573)工作原理图12(1)74HC/LS573 及74HC/LS574叫八d锁存器 ,结构如下图(图12)所示:分析:LE=1, Qn=/Dn, /Dn表示Dn的反相;LE=0, Qn数据锁存为当前的/Dn;OE=1, 输出为高阻态;OE=0, On=/Qn;(2)74HC/LS574 引脚图如(图13)所示图13(2) 真值表如下图(图14)所示图14§2.3 LED数码管的工作原理(1)LED介绍LED是一种较为常用的发光元件。目前以LED为发光元件而研制的显示屏应用可作为实时工业控制系统中的远距离实时信息显示器,对高要求的工艺流程进行实时显示。目前,LED显示器的主要形式有两种,一种是能够显示各种字符、汉字和图像信息的阵列式LED。另一种则是只能显示0~9这10个阿拉伯数字及少数几个英文字母的数码式LED,即八段数码管。尽管阵列式LED从功能上来说完全取代数码式LED,但由于前者的成本造价要比后者高得多,实现方法要比后者复杂,故在很多场合还经常用到数码式LED。(2)本电路采用共阴的七段LED。§2.4 555时基振荡器的典型应用图15555电路在应用和工作方式上一般可归纳为3类。每类工作方式又有很多个不同的电路。在实际应用中,除了单一品种的电路外,还可组合出很多不同电路,如:多个单稳、多个双稳、单稳和无稳,双稳和无稳的组合等。这样一来,电路变的更加复杂。我们按555电路的结构特点进行分类和归纳,把555电路分为3类,下面将分别介绍这3类电路。单稳类电路单稳工作方式,它可分为3种。见图示。第1种(图15)是人工启动单稳,又因为定时电阻定时电容位置不同而分为2个不同的单元,并分别以1.1.1和1.1.2为代号。他们的输入端的形式,也就是电路的结构特点是:“RT-6.2-CT”和“CT-6.2-RT”。图16双稳类电路这里我们将对555双稳电路工作方式进行总结、归纳。555双稳电路可分成2种。第一种(见图1)是触发电路,有双端输入(2.1.1)和单端输入(2.1.2)2个单元。单端比较器(2.1.2)可以是6端固定,2段输入;也可是2端固定,6端输入。第2种(见图16)是施密特触发电路,有最简单形式的(2.2.1)和输入端电阻调整偏置或在控制端(5)加控制电压VCT以改变阀值电压的(2.2.2)共2个单元电路。双稳电路的输入端的输入电压端一般没有定时电阻和定时电容。这是双稳工作方式的结构特点。2.2.2单元电路中的C1只起耦合作用,R1和R2起直流偏置作用。无稳类电路第三类是无稳工作方式。无稳电路就是多谐振荡电路,是555电路中应用最广的一类。电路的变化形式也最多。为简单起见,也把它分为三种。第一种(见图16)是直接反馈型,振荡电阻是连在输出端VO的。图17第二种(见图17)是间接反馈型,振荡电阻是连在电源VCC上的。其中第1个单元电路(3.2.1)是应用最广的。第2个单元电路(3.2.2)是方波振荡电路。第3、4个单元电路都是占空比可调的脉冲振荡电路,功能相同而电路结构略有不同,因此分别以3.2.3a 和3.2.3b的代号。三、 电容测量仪硬件电路的实现§3.1 电路模块框图本电路采用基于MCS-51单片机,用LED进行显示的硬件设计方法,电路硬件模块图如下:硬件框图图18§3.2 电路原理图硬件电路原理图图19§3.3 电路工作原理简介振荡电路的振荡频率f是由相位平衡条件决定的,RC振荡电路有桥式振荡电呼,双T网络式和移相式振荡电路等类型 。建立振荡,就是要使电路自激,从面产生持续的振荡,由直流电变为交流电,对于RC振荡电路来说,直流电源即是能源,自激的因素是微弱的信号经过放大,通过正反馈的选频网络,使输出幅度愈来愈大,最后受电路中非线性元件的限制,使振荡幅度自动地稳定下来,为此采用555定时器来产生RC振荡频率。电源接通后,定时器进入稳态。此时定时电容CT的电压为:VCT=VCC=5V。对555这个等效触发器来讲,两个输入都是高电平,即VS=0。图20按一下按钮开关S之后,定时电容CT立即放到电压为零。于是此时555电路等效触发的输入成为:R=0、S=0,它的输出就成高电平:V0=1。Q端输出高电平,按钮开关按一下后立即放开,于是电源电压就通过RT向电容CT充电,暂稳态开始。当电容CT上的电压升到2/3VCC既3.3伏时,定时时间已到,555等效电路触发器的输入为:R=1、S=1,于是输出又翻转成低电平:V0=0。Q端输出为0,暂稳态结束,有恢复到稳态。S4,S5,S6为量程档位选择开关,流电时间计算公式为:T=1.1RT*CT。本电路提供参数的延时时间约为1秒~2分钟,可由电位器RP调整和设置。四、 电容测量仪的软件设计§4.1程序流程图1.主程序流程图yes调用显示子程序=2 测量子程序流程图图223 显示子程序流程图图23§4.2 系统功能模块的设置AT89C51图24§4.3 稳压直流电源的实现注:实际设计过程中,为节约成本,此部分电路功能由改装的手机充电器代替。(1)稳压直流电源原理图(2)图25稳压直流电源原理框图图26§4.4 AT89C51单片机最小化系统的测试单片机的最小化系统是指单片机能正常工作所必须的外围元件,主要可以分成时钟电路和复位电路,我采用的是AT89C51芯片,它内部自带4K的FLASH程序存储器,单片机的时钟电路有一个12M的晶振和两个30P的小电容组成,它们决定了单片机的工作时间精度为1微秒。复位电路由10UF的电容和10K的电阻组成。判断单片机芯片及时钟系统是否正常工作的办法,用万用表测量单片机晶振引脚(18、19脚)的对地电压,以正常工作的单片机用数字万用表测量为例:18脚对地约2.24V,19脚对地约2.09V。对于怀疑是复位电路故障而不能正常工作的单片机也可以采用模拟复位的方法来判断,单片机正常工作时第9脚对地电压为零,可以用导线短时间和+5V连接一下,模拟一下上电复位,如果单片机能正常工作了,说明这个复位电路有问题。§4.5 单片机驱动573的实现n 74HC573有如下特性1) 74HC573的输入是和标准CMOS 输出兼容的;2) 加上拉电阻,他们能和LS/ALSTTL 输出兼容。3) 当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。4) 输出能直接接到CMOS,NMOS 和TTL 接口上5) 操作电压范围:2.0V~6.0V6) 低输入电流:1.0uA7) CMOS 器件的高噪声抵抗特性8) 74HC573功能表图27本电路中利用74HC573的锁存特性,作数码管的驱动电路,利用IO端口P1.0作为使能端。§4.6 显示器件正常显示的实现按原理图正确搭接电路,如图所示图28(1) 先让两位数码管显示数字“5 5”附程序清单如下:;CPU:AT89C51;日期2008年4月10日;********************;资源配置申明;P0口段控(com1);P2口段控(com2);P1.0~18b20信号灯;P1.1~报警器;74HC573驱动数码管;本程序测量温度范围: 18℃ ~80℃;本程序测量精度1℃ORG 0000HLJMP STARTTESTOVER_FLAG BIT P1.0 ;电容测量结束PINLE573 BIT P1.1TESTSTAR_FLAG BIT P1.2 ;电容测量开始标志位ONLYONE_FLAG BIT 24H.0 ;单次只允许测试一次标志位COM4 BIT P2.0COM3 BIT P2.1COM2 BIT P2.2COM1 BIT P2.3DISP_NUM EQU 30H ;显示变量DISP_NUM1 EQU 31HDELAY_DATA1 DATA 40H ;延时子参数1DELAY_DATA2 DATA 41H ;延时子参数1DELAY_DATA3 DATA 42H ;延时子参数1NUM_OV1 DATA 37H ;定时器T0溢出次数放在37H中NUM_OV2 DATA 39H ;定时器T0溢出次数放在39H中TESTNUM DATA 38H ;测试数据放在38H单元中a_bit DATA 20H ;数码管个位数存放内存位置b_bit DATA 21H ;数码管十位数存放内存位置c_bit data 22h ;数码管百位数存放内存位置D_BIT DATA 23HMAIN:MOV B_BIT,#5 ;十位在BMOV A_BIT,#5 ;个位在AMOV C_BIT,#5 ;百位在CMOV DISP_NUM1,#4MOV DISP_NUM,#250circle:MOV DPTR,#NUMTAB ;指定查表启始地址MOV A,A_BIT ;取个位数CLR LE573 ;LE使能MOVC A,@A+DPTR ;查个位数的7段代码MOV P0,A ;送出个位的7段代码SETB LE573 ;等于1时,使能.输出端数据等于输入端数据SETB COM1SETB COM2SETB COM3CLR COM4LCALL DELAY_1ms ;开个位显示MOV A,B_BIT ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码CLR LE573MOV P0,A ;送出十位的7段代码SETB LE573 ;等于1时,使能.输出端数据等于输入端数据SETB COM1SETB COM2SETB COM4CLR COM3 ;开十位显示LCALL DELAY_1msMOV A,C_BIT ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码CLR LE573MOV P0,A ;送出十位的7段代码SETB LE573 ;等于1时,使能.输出端数据等于输入端数据SETB COM1SETB COM2SETB COM3CLR COM2 ;开十位显示LCALL DELAY_1msCLR LE573DJNZ DISP_NUM,CIRCLEMOV DISP_NUM,#50DJNZ DISP_NUM1,CIRCLEAJMP MAIN;*******************;延时750Us子程序;*******************DELAY_1ms:MOV DELAY_DATA1,#3DELAY_1ms_LOOP:MOV DELAY_DATA2,#79HDJNZ DELAY_DATA2,$DJNZ DELAY_DATA1,DELAY_1ms_LOOPMOV DELAY_DATA1,#5DJNZ DELAY_DATA1,$RET;*****************;延时3S子程序;*****************DELAY_2S:MOV DELAY_DATA3,#0FFHDELAY_3S_LOOP:CALL DELAY_1msDJNZ DELAY_DATA3,DELAY_3S_LOOPRET;**************;字段表;7段共阴数码管0~9数字的共阴显示代码;**************NUMTAB:DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHEND(3)“5 5”显示正常,说明单片机工作正常,74HC 573工作正常,显示器件工作正常。§4.7 555时基定时器在本系统中的应用(1)图19硬件电路图29§4.8 单片机测量电容的原理分析(1)S4对应10uF的档位,S5对应1uF的档位,S6对应0.1uF的档位。(2)先插好电容,再选择对应的量程开关,最后按下测试键S3,则显示当前测量值。(3)空闲状态显示四个0;完整的 全套程序清单:;CPU:AT89C51;日期2008年4月10日;********************;资源配置申明;P0口段控(com1);P2口段控(com2);P1.0~18b20信号灯;P1.1~报警器;74HC573驱动数码管;本程序测量温度范围: 18℃ ~80℃;本程序测量精度1℃ORG 0000HLJMP START;TESTOVER_FLAG BIT P1.0 ;电容测量结束PINLE573 BIT P1.1TESTSTAR_FLAG BIT P1.2 ;电容测量开始标志位ONLYONE_FLAG BIT 24H.0 ;单次只允许测试一次标志位COM4 BIT P2.0COM3 BIT P2.1COM2 BIT P2.2COM1 BIT P2.3DISP_NUM EQU 30H ;显示变量DISP_NUM1 EQU 31HDELAY_DATA1 DATA 40H ;延时子参数1DELAY_DATA2 DATA 41H ;延时子参数1DELAY_DATA3 DATA 42H ;延时子参数1NUM_OV1 DATA 37H ;定时器T0溢出次数放在37H中NUM_OV2 DATA 39H ;定时器T0溢出次数放在39H中TESTNUM DATA 38H ;测试数据放在38H单元中a_bit DATA 20H ;数码管个位数存放内存位置b_bit DATA 21H ;数码管十位数存放内存位置c_bit data 22h ;数码管百位数存放内存位置D_BIT DATA 23H;主程序入口START:MOV SP,#60HLCALL CLR_STORE; MOV CLR_VOICE,#2MAIN:CIRCLE:LCALL DISPLAYJB ONLYONE_FLAG,WAITING_KEYOFFAJMP WAITING_TESTFIRSTWAITING_KEYOFF:JNB TESTSTAR_FLAG,CIRCLE ;TEST STAR?WAITING_TESTSECOND:MOV A_BIT,#0MOV B_BIT,#0MOV C_BIT,#0MOV D_BIT,#0LCALL DISPLAYJB TESTSTAR_FLAG,WAITING_TESTSECONDAJMP TESTSTARWAITING_TESTFIRST:LCALL DISPLAYJB TESTSTAR_FLAG,WAITING_TESTFIRST ;TEST STAR?TESTSTAR:MOV NUM_OV1,#0 ;测试开始内存清零MOV NUM_OV2,#0 ;测试开始SETB TR0CLR ONLYONE_FLAG ;清允许测试标志位WAIT_TESTOVER:JB TESTOVER_FLAG,HERE ;TEST OVER?;测试完成,计算测试值CLR TR0LCALL HANDLE ;调用数据处理子函数LCALL DISPLAY ;调用数据显示子函数SETB TESTOVER_FLAGJB TESTSTAR_FLAG,CLRONLYONE_FLAGSETB ONLYONE_FLAG ;如果按键仍为开的状态,禁止测试AJMP CIRCLECLRONLYONE_FLAG:CLR ONLYONE_FLAG ;测试允许AJMP CIRCLE ;返回主循环HERE:JNB TF0,WAIT_TESTOVER ;timer0 ov ?CLR TF0INC NUM_OV1 ;circle low bit add 1MOV A,NUM_OV1CJNE A,#0FFH,WAIT_TESTOVERMOV NUM_OV1,#0INC NUM_OV2 ;circle high bit add 1MOV A,NUM_OV2CJNE A,#0FFH,WAIT_TESTOVER ;关定时器两 个条件,要么超时溢出,要么测试完成MOV NUM_OV1,#0 ;超时退出清零MOV NUM_OV2,#0JB TESTSTAR_FLAG,CLRONLYONE_FLAG2SETB ONLYONE_FLAG ;如果按键仍为开的状态,禁止测试AJMP CIRCLECLRONLYONE_FLAG2:CLR ONLYONE_FLAGAJMP CIRCLE;***************************;变量初始化;***************************CLR_STORE:MOV P0,#0FFH ;I/O口初始化MOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV A,#0MOV 20H,AMOV 21H,AMOV 22H,AMOV 23H,AMOV 24H,AMOV 28H,AMOV 29H,AMOV 30H,AMOV 31H,AMOV 40H,AMOV 41H,AMOV 42H,A ;内存清零MOV TMOD,#02HMOV TL0,#0MOV TH0,#0RET;***************************;数据处理子程序;***************************HANDLE:MOV A,NUM_OV2XRL A,#0JZ DISPTHREEBITMOV A,NUM_OV2MOV B,#10DIV ABJZ HIDEMOV B_BIT,A ;十位在BAJMP DISP_A_BITHIDE:MOV B_BIT,#11 ;HIDEDISP_A_BIT:MOV A_BIT,B ;个位在AMOV C_BIT,#11 ;HIDEMOV D_BIT,#11 ;HIDEAJMP HANDLE_OFFDISPTHREEBIT: ;当测量值较小时,显示小数点MOV A,NUM_OV1MOV B,#100DIV ABMOV D_BIT,A ;显示0MOV A,BMOV B,#10DIV ABMOV B_BIT,A ;十位在BMOV A_BIT,B ;十位在BMOV C_BIT,#10 ;显示小数点HANDLE_OFF:RET;*******************************;显示子程序;******************************DISPLAY:MOV DISP_NUM1,#4MOV DISP_NUM,#250DISP_circle:MOV DPTR,#NUMTAB ;指定查表启始地址MOV A,A_BIT ;取个位数CLR LE573 ;LE使能MOVC A,@A+DPTR ;查个位数的7段代码MOV P0,A ;送出个位的7段代码SETB LE573 ;等于1时,使能.输出端数据等于输入端数据SETB COM1SETB COM2SETB COM3CLR COM4LCALL DELAY_1ms ;开个位显示MOV A,B_BIT ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码CLR LE573MOV P0,A ;送出十位的7段代码SETB LE573 ;等于1时,使能.输出端数据等于输入端数据SETB COM1SETB COM2SETB COM4CLR COM3 ;开十位显示LCALL DELAY_1msMOV A,C_BIT ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码CLR LE573MOV P0,A ;送出十位的7段代码SETB LE573 ;等于1时,使能.输出端数据等于输入端数据SETB COM1SETB COM4SETB COM3CLR COM2 ;开十位显示LCALL DELAY_1msMOV A,D_BIT ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码CLR LE573MOV P0,A ;送出十位的7段代码SETB LE573 ;等于1时,使能.输出端数据等于输入端数据SETB COM4SETB COM2SETB COM3CLR COM1 ;开十位显示LCALL DELAY_1msCLR LE573DJNZ DISP_NUM,DISP_circle, ; MOV DISP_NUM,#50DJNZ DISP_NUM1,DISP_circle;RET;*******************;延时750Us子程序;*******************DELAY_1ms:MOV DELAY_DATA1,#3DELAY_1ms_LOOP:MOV DELAY_DATA2,#79HDJNZ DELAY_DATA2,$DJNZ DELAY_DATA1,DELAY_1ms_LOOPMOV DELAY_DATA1,#5DJNZ DELAY_DATA1,$RET;*****************;延时3S子程序;*****************DELAY_2S:MOV DELAY_DATA3,#0FFHDELAY_3S_LOOP:CALL DELAY_1msDJNZ DELAY_DATA3,DELAY_3S_LOOPRET;**************;字段表;7段共阴数码管0~9数字的共阴显示代码;**************NUMTAB:DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH,80H,00H;0A,为80H为小数点,0B为不亮END§4.9 量程档位选择的实现为了合理的选取测量时间,现把量程设为四档:1-10uF为第一档,0.1uF-1uF为第二档,0.1uF以下为第三档。它们分别对应相应的R参数。§4.10系统功能正常运行的实现(1) 直流稳压电源工作正常(2) 显示器件正常显示的实现(3) 555测量电路工作正常§4.12系统的扩展(1) 适当添加外设,比如添加可控硅或者继电器,本课件即可做成各种时间智能控制器,比如楼道灯。(2) 适当添加外设,本课件可以做成电容电感测量仪。(3) 由于本课件采用了先进的感温设备,占用单片机的资源非常少,本人以为,其功能的扩展亦是非常的方便。§4.13工业方面本课件若进一步改进,加上适当的外部电路,分辨力更高、工作更可靠、动态响应更快、并能在高温、辐射和强烈振动等恶劣条件下工作。例如在气力输送系统中,可以用电容传感器来获得浓度信号和流动噪声信号,从而测量物料的质量流量;在电力系统中,采用电容传感器在线监测电缆沟的温度,确保使用的安全。由英国曼彻斯特科学与技术大学(UMIST)率先开发的电容层析成像(ECT)技术是解决火电厂煤粉输送风-粉在线监测等气固两相流成分和流量检测的有效途径,其中微小电容测量是关键技术之一。§4.14民用方面(略)五、 结束语§5.1 致 谢§5.2 参考书目(1)感谢我的我的指导老师,他们严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;他们循循善诱的教导和不拘一格的思路给予我无尽的启迪。(2)感谢同学们对我的帮助和指点。没有他们的帮助和提供资料对于我一个对网络知识一窍不通的人来说要想在短短的几个月的时间里学习到电子知识并完成毕业论文是几乎不可能的事情。(1)《MCS-51系列单片机实用接口技术》作者: 李华出版社: 北京航空航天大学出版社出版日期:2001-5-1(2)《流行单片机实用子程序及应用实例》作者: 杨振江 杜铁军 李群出版社: 西安电子科技大学出版社出版日期:2002-7-1(3)《51单片机教程》EDA学习网(http://eda.sdedu.net)