分享

基于51单片机的 电容数字测量仪

 共同成长888 2014-05-08

      基于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。

图2

2 AC电桥电容测量电路
AC电桥电容测量电路如图3所示,其原理是将被测电容在一个桥臂,可调的参考阻抗放在相邻的一个桥臂,二桥臂分别接到频率相同/幅值相同的信号源上,调节参考阻抗使桥路平衡,则被测桥臂中的阻抗与参与阻抗共轭相等。这种电路的主要优点是:精度高,适合作精密电容测量,可以做到高信噪比。
AC电桥电容测量电路
图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):

图11


2 详细说明如下:

(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时基振荡器的典型应用

图15

555电路在应用和工作方式上一般可归纳为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 测量子程序流程图


图22


3 显示子程序流程图

图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.0V

6) 低输入电流:1.0uA

7) 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 0000H

LJMP START

TESTOVER_FLAG BIT P1.0 ;电容测量结束PIN

LE573 BIT P1.1

TESTSTAR_FLAG BIT P1.2 ;电容测量开始标志位

ONLYONE_FLAG BIT 24H.0 ;单次只允许测试一次标志位

COM4 BIT P2.0

COM3 BIT P2.1

COM2 BIT P2.2

COM1 BIT P2.3

DISP_NUM EQU 30H ;显示变量

DISP_NUM1 EQU 31H

DELAY_DATA1 DATA 40H ;延时子参数1

DELAY_DATA2 DATA 41H ;延时子参数1

DELAY_DATA3 DATA 42H ;延时子参数1

NUM_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

MAIN:

MOV B_BIT,#5 ;十位在B

MOV A_BIT,#5 ;个位在A

MOV C_BIT,#5 ;百位在C

MOV DISP_NUM1,#4

MOV DISP_NUM,#250

circle:

MOV DPTR,#NUMTAB ;指定查表启始地址

MOV A,A_BIT ;取个位数

CLR LE573 ;LE使能

MOVC A,@A+DPTR ;查个位数的7段代码

MOV P0,A ;送出个位的7段代码

SETB LE573 ;等于1时,使能.输出端数据等于输入端数据

SETB COM1

SETB COM2

SETB COM3

CLR COM4

LCALL DELAY_1ms ;开个位显示

MOV A,B_BIT ;取十位数

MOVC A,@A+DPTR ;查十位数的7段代码

CLR LE573

MOV P0,A ;送出十位的7段代码

SETB LE573 ;等于1时,使能.输出端数据等于输入端数据

SETB COM1

SETB COM2

SETB COM4

CLR COM3 ;开十位显示

LCALL DELAY_1ms

MOV A,C_BIT ;取十位数

MOVC A,@A+DPTR ;查十位数的7段代码

CLR LE573

MOV P0,A ;送出十位的7段代码

SETB LE573 ;等于1时,使能.输出端数据等于输入端数据

SETB COM1

SETB COM2

SETB COM3

CLR COM2 ;开十位显示

LCALL DELAY_1ms

CLR LE573

DJNZ DISP_NUM,CIRCLE

MOV DISP_NUM,#50

DJNZ DISP_NUM1,CIRCLE

AJMP MAIN

;*******************

;延时750Us子程序

;*******************

DELAY_1ms:

MOV DELAY_DATA1,#3

DELAY_1ms_LOOP:

MOV DELAY_DATA2,#79H

DJNZ DELAY_DATA2,$

DJNZ DELAY_DATA1,DELAY_1ms_LOOP

MOV DELAY_DATA1,#5

DJNZ DELAY_DATA1,$

RET

;*****************

;延时3S子程序

;*****************

DELAY_2S:

MOV DELAY_DATA3,#0FFH

DELAY_3S_LOOP:

CALL DELAY_1ms

DJNZ DELAY_DATA3,DELAY_3S_LOOP

RET

;**************

;字段表

;7段共阴数码管0~9数字的共阴显示代码

;**************

NUMTAB:

DB 3FH,06H,5BH,4FH,66H

DB 6DH,7DH,07H,7FH,6FH

END

(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 0000H

LJMP START

;

TESTOVER_FLAG BIT P1.0 ;电容测量结束PIN

LE573 BIT P1.1

TESTSTAR_FLAG BIT P1.2 ;电容测量开始标志位

ONLYONE_FLAG BIT 24H.0 ;单次只允许测试一次标志位

COM4 BIT P2.0

COM3 BIT P2.1

COM2 BIT P2.2

COM1 BIT P2.3

DISP_NUM EQU 30H ;显示变量

DISP_NUM1 EQU 31H

DELAY_DATA1 DATA 40H ;延时子参数1

DELAY_DATA2 DATA 41H ;延时子参数1

DELAY_DATA3 DATA 42H ;延时子参数1

NUM_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,#60H

LCALL CLR_STORE

; MOV CLR_VOICE,#2

MAIN:

CIRCLE:

LCALL DISPLAY

JB ONLYONE_FLAG,WAITING_KEYOFF

AJMP WAITING_TESTFIRST

WAITING_KEYOFF:

JNB TESTSTAR_FLAG,CIRCLE ;TEST STAR?

WAITING_TESTSECOND:

MOV A_BIT,#0

MOV B_BIT,#0

MOV C_BIT,#0

MOV D_BIT,#0

LCALL DISPLAY

JB TESTSTAR_FLAG,WAITING_TESTSECOND

AJMP TESTSTAR

WAITING_TESTFIRST:

LCALL DISPLAY

JB TESTSTAR_FLAG,WAITING_TESTFIRST ;TEST STAR?

TESTSTAR:

MOV NUM_OV1,#0 ;测试开始内存清零

MOV NUM_OV2,#0 ;测试开始

SETB TR0

CLR ONLYONE_FLAG ;清允许测试标志位

WAIT_TESTOVER:

JB TESTOVER_FLAG,HERE ;TEST OVER?

;测试完成,计算测试值

CLR TR0

LCALL HANDLE ;调用数据处理子函数

LCALL DISPLAY ;调用数据显示子函数

SETB TESTOVER_FLAG

JB TESTSTAR_FLAG,CLRONLYONE_FLAG

SETB ONLYONE_FLAG ;如果按键仍为开的状态,禁止测试

AJMP CIRCLE

CLRONLYONE_FLAG:

CLR ONLYONE_FLAG ;测试允许

AJMP CIRCLE ;返回主循环

HERE:

JNB TF0,WAIT_TESTOVER ;timer0 ov ?

CLR TF0

INC NUM_OV1 ;circle low bit add 1

MOV A,NUM_OV1

CJNE A,#0FFH,WAIT_TESTOVER

MOV NUM_OV1,#0

INC NUM_OV2 ;circle high bit add 1

MOV A,NUM_OV2

CJNE A,#0FFH,WAIT_TESTOVER ;关定时器两 个条件,要么超时溢出,要么测试完成

MOV NUM_OV1,#0 ;超时退出清零

MOV NUM_OV2,#0

JB TESTSTAR_FLAG,CLRONLYONE_FLAG2

SETB ONLYONE_FLAG ;如果按键仍为开的状态,禁止测试

AJMP CIRCLE

CLRONLYONE_FLAG2:

CLR ONLYONE_FLAG

AJMP CIRCLE

;***************************

;变量初始化

;***************************

CLR_STORE:

MOV P0,#0FFH ;I/O口初始化

MOV P1,#0FFH

MOV P2,#0FFH

MOV P3,#0FFH

MOV A,#0

MOV 20H,A

MOV 21H,A

MOV 22H,A

MOV 23H,A

MOV 24H,A

MOV 28H,A

MOV 29H,A

MOV 30H,A

MOV 31H,A

MOV 40H,A

MOV 41H,A

MOV 42H,A ;内存清零

MOV TMOD,#02H

MOV TL0,#0

MOV TH0,#0

RET

;***************************

;数据处理子程序

;***************************

HANDLE:

MOV A,NUM_OV2

XRL A,#0

JZ DISPTHREEBIT

MOV A,NUM_OV2

MOV B,#10

DIV AB

JZ HIDE

MOV B_BIT,A ;十位在B

AJMP DISP_A_BIT

HIDE:

MOV B_BIT,#11 ;HIDE

DISP_A_BIT:

MOV A_BIT,B ;个位在A

MOV C_BIT,#11 ;HIDE

MOV D_BIT,#11 ;HIDE

AJMP HANDLE_OFF

DISPTHREEBIT: ;当测量值较小时,显示小数点

MOV A,NUM_OV1

MOV B,#100

DIV AB

MOV D_BIT,A ;显示0

MOV A,B

MOV B,#10

DIV AB

MOV B_BIT,A ;十位在B

MOV A_BIT,B ;十位在B

MOV C_BIT,#10 ;显示小数点

HANDLE_OFF:

RET

;*******************************

;显示子程序

;******************************

DISPLAY:

MOV DISP_NUM1,#4

MOV DISP_NUM,#250

DISP_circle:

MOV DPTR,#NUMTAB ;指定查表启始地址

MOV A,A_BIT ;取个位数

CLR LE573 ;LE使能

MOVC A,@A+DPTR ;查个位数的7段代码

MOV P0,A ;送出个位的7段代码

SETB LE573 ;等于1时,使能.输出端数据等于输入端数据

SETB COM1

SETB COM2

SETB COM3

CLR COM4

LCALL DELAY_1ms ;开个位显示

MOV A,B_BIT ;取十位数

MOVC A,@A+DPTR ;查十位数的7段代码

CLR LE573

MOV P0,A ;送出十位的7段代码

SETB LE573 ;等于1时,使能.输出端数据等于输入端数据

SETB COM1

SETB COM2

SETB COM4

CLR COM3 ;开十位显示

LCALL DELAY_1ms

MOV A,C_BIT ;取十位数

MOVC A,@A+DPTR ;查十位数的7段代码

CLR LE573

MOV P0,A ;送出十位的7段代码

SETB LE573 ;等于1时,使能.输出端数据等于输入端数据

SETB COM1

SETB COM4

SETB COM3

CLR COM2 ;开十位显示

LCALL DELAY_1ms

MOV A,D_BIT ;取十位数

MOVC A,@A+DPTR ;查十位数的7段代码

CLR LE573

MOV P0,A ;送出十位的7段代码

SETB LE573 ;等于1时,使能.输出端数据等于输入端数据

SETB COM4

SETB COM2

SETB COM3

CLR COM1 ;开十位显示

LCALL DELAY_1ms

CLR LE573

DJNZ DISP_NUM,DISP_circle

, ; MOV DISP_NUM,#50

DJNZ DISP_NUM1,DISP_circle

;

RET

;*******************

;延时750Us子程序

;*******************

DELAY_1ms:

MOV DELAY_DATA1,#3

DELAY_1ms_LOOP:

MOV DELAY_DATA2,#79H

DJNZ DELAY_DATA2,$

DJNZ DELAY_DATA1,DELAY_1ms_LOOP

MOV DELAY_DATA1,#5

DJNZ DELAY_DATA1,$

RET

;*****************

;延时3S子程序

;*****************

DELAY_2S:

MOV DELAY_DATA3,#0FFH

DELAY_3S_LOOP:

CALL DELAY_1ms

DJNZ DELAY_DATA3,DELAY_3S_LOOP

RET

;**************

;字段表

;7段共阴数码管0~9数字的共阴显示代码

;**************

NUMTAB:

DB 3FH,06H,5BH,4FH,66H

DB 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.)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多