基于AT89C52控制的多功能电参数测试仪的设计

更新时间:2023-03-13 04:11:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目录 基于AT89C52控制的多功能电参数测试仪的设计

目 录

摘 要 .............................................. (2) Abstract ........................... (错误!未定义书签。) 1 绪论 ............................................ (3) 1.1论文的选题背景 .............................. (3) 1.2论文的研究意义 .............................. (3) 1.3交流电量采集的现状及发展 .................... (3) 1.4课题的主要内容 .............................. (4) 2 系统总体设计原理 ................................ (5) 2.1交流采样法 .................................. (5) 2.2 交流采样原理及相关算法 ...................... (6) 2.3 系统的工作过程 .............................. (7) 3 基础知识 ........................................ (8) 3.1单八路模拟开关CD4051 ....................... (8) 3.2 AD678 的性能特点 .......................... (9) 3.3定时器/计数器 .............................. (10) 3.4中断系统 ................................... (12)

5 系统软件设计 ................................... (15)

目录 5.1系统软件的编译环境 ......................... (32) 5.2系统软件总流程图 ........................... (33) 5.3部分功能程序的实现 ......................... (35) 5.3.1数据采集子程序流程图 ................... (35) 5.3.2 数据处理程序流程图 .................... (36) 5.3.3 LCD显示 ................ (错误!未定义书签。) 5 系统组装调试 ..................... (错误!未定义书签。) 6 结论 ............................. (错误!未定义书签。) 致 谢 .............................. (错误!未定义书签。) 参考文献 ........................... (错误!未定义书签。)

附录:源程序

1 绪论 摘 要

随着电力系统的快速发展,电网容量不断增大,结构日趋复杂,电力系统中实时监控、调度的自动化显得尤为重要,而电力参数的数据采集又是实现自动化的重要环节,如何快速准确地采集系统中各元件的电参数(电压、电流、功率、频率等)是实现电力系统自动化的一个重要因素。

基于此,此次设计采用单片机AT89C51实现电力监控系统的交流采样,即系统采集的是交流电压和电流,不需变送器进行交直流转换。模数转换器AD574A对三相交流电压和电流分时进行模数转换,把得到的数字量送单片机进行数据处理,然后通过LED数码管显示电压和电流,频率,功率,功率因数等的实时值。

文中论述了该系统实现电参数测量的工作原理,着重介绍了该系统的实现过程,在此基础上,详细介绍了整个系统的软件开发过程。 关键词:电力系统;交流采样;单片机;电参数测量

1 绪论

1 绪论

1.1论文的选题背景

现代社会电能是一种使用最为广泛的能源,其应用程度是一个国家发展水平的主要标志之一。随着科学技术和国民经济的发展,对电的需求量日益增加,同时对电网运行的稳定性要求也越来越高,对电网的实时监控就显得非常重要。随着我国电力行业的迅猛发展,电网供电品质越来越受到电力部门以及用户的关注。

在电力监控系统中,为了维护电网运行的稳定和安全,保证用户用电的可靠性,需要电网中各种电参量维持稳定值不变。这就需要实时的采集各种电参量,用来监控以保证电网的稳定。

1.2论文的研究意义

在微机技术发展初期,电力监控系统普遍采用经过变送器的直流采样方法,即经过变送器整流后的直流量。这种方法软件设计简单,对采样值只需作一次比例变换即可得到被测量的数值,因而采样周期短。由于以上特点,该方法在微机应用初期得到了广泛的应用。但经过变送器的直流采样方法存在一些问题,如测量精度直接受变送器的精度和稳定性的影响,设备复杂,监控系统造价高等。

随着科技的发展,仪器仪表的发展更新越来越进步。作为工业自动化技术工具的自动化仪表与控制装置,在高新技术的推动下,正跨入真正的数字化、智能化、网络化的时代。微机技术的发展,使微机系统主频提高,指令功能变强,模数转化芯片技术的提高,成本的降低,使得交流采样的运用成为可能。 由于交流采样去掉变送器,按一定的规律对被测量的瞬时值进行采样,用一定的算法求得被测量,即用软件的功能代替硬件的功能,从而降低了系统造价。所以,研究运用交流采样技术实现电量的数据采集具有很大的意义。

1.3交流电量采集的现状及发展

电测技术发展概述

近年来,随着电力系统的发展,对电测仪表的功能、精度、数据处理等方面都提出了更高的专业技术要求,以帮助工程技术人员在监督、管理现场设备运行状态时,便于测试、积累、统计、分析各种信息。尤其是计算机科学的发

展与应用技术的普及,使得现代数字测量技术、显示技术、数据管理技术得到迅速发展,为测试过程的数字化、智能化创造了条件,促进了电测仪器本身的变革。

目前我国电厂所采用的电参数测试仪器,可分为三个类型。

a)电工型仪表。b)数字式仪表是第二代仪器。c)智能型仪器是第三代仪器。

1.4课题的主要内容

问题的提出及本文研究内容

目前,工厂在检修前后及运行过程中,经常使用较高等级的单元仪表,测量电压、电流、功率、频率、相位等电参数,以便累积有关用电设备的状态的信息。但是,采用单元仪表进行多种电参数的测量,存在以下问题:一是携带不便;二是操作不便;三是测量精度不满足现场要求;四是不便于管理测试数据。因此,必将会造成工作效率不高,技术人员负担较重等不良现象。因此迫切需要对电测仪表进行改进,以帮助技术人员对所测量信息进行分析,以了解现场设备运行状态。而这些功能的实现就必须采用以单片机为核心的多功能智能化仪器。本文介绍了基于单片机的工频交流电参数多用表的设计过程,它可同时对一路工频交流电的各种功率值、电压有效值、电流有效值等参数进行测量。

根据上述问题的提出,本设计提出一种基于AT89C52单片机的智能电量测量仪的应用设计方案,对交流电量测量仪器的实现进行了讨论和研究 该系统具有结构简单,操作方便,成本低廉等特点,着重介绍其硬件和软件设计方法。利用单片机的控制运算功能,以软件代替硬件电路用软件计算分析出各种有效值,使硬件电路大大简化。给出了硬件设计的总体思路,提出一种测量相位角的简单办法。实验表明,该测量仪能正确测量电量。

2 系统总体设计原理 2 系统总体设计原理

2.1交流采样法

随着电力系统的快速发展,电网容量不断增大,结构日趋复杂,电力系统中实时监控、调度的自动化就显得十分重要,电量的数据采集是实现自动化的重要环节,尤其是如何准确、快速的采集系统中各元件的模拟量(电压、电流、功率等),是电力系统自动化的一个重要因素。

根据采样信号的不同,可以分为直流采样和交流采样两大类。所谓直流采样是把交流电压、电流信号转化为 0~5V 的直流电压,这种方法的主要优点是算法简单,便于滤波,但是由于其投资较大,维护复杂,无法对信号进行实时采集,因而在电力系统中的应用受到了限制。交流采样是把交流量转化为± 5V(或 0~5V)的交流电压进行采集,交流采样实时性好、相位失真小、便于维护,随着计算机和集成电路技术的发展,交流采样原有的困难如算法复杂、提高精度难、对 A/D 的速度要求高等已逐步得到克服。交流采样法具有响应速度快、投资省、工作可靠和维护简单等优点,但交流采样所得到的是信号的瞬时值,是随时间而变化的交变量,人们无法直接识别其大小和传送方向(指功率),这就需要通过一定的算法把信号的有关特征电量计算出来。

交流采样方法主要有同步采样、准同步采样和异步采样。同步采样的具体作法是将信号的一个整周期(或多个周期)进行均匀离散,在每一离散点处取其瞬时值。如被测信号频率有偏移,常利用锁相环电路或过零检测环节以保证采样同步。同步采样对采样速率 N 及采样周期的选择既要满足采样定理的要求,又要满足实时处理的要求。同步采样中由于 N 次均匀采样间隔 h 之和很难与一个周期 T 或 m 个周期 mT严格相等,它们之间的差异 d=hN-mT,称作同步误差。在实际测量中,很小的同步误差也会产生较大的测量误差。为了减小同步误差对采样的限制,准同步采样的方法便应运而生。准同步采样是在多个周期内均匀采样,然后根据特定的数值求积公式进行递推运算,它是以较多的数据及较长的运算时间作为代价来减小同步误差对测量的影响,而且在采样期间要求信号波形必须稳定。

同步、准同步采样适用于已知信号在某种频率范围内变动的情况,若要对频率范围很宽的信号采样,则宜采用异步采样的方法。异步采样采取等间隔采样方式,在较多周期上利用高采样率获取大量数据,对其求平均值,这样即使存在同步误差,其影响也将大为缩小。

2.2 交流采样原理及相关算法

工频参数的计算要用到电压、电流的有效值,功率等参数,而测量系统的 CPU 从A/D 转换器读取的数据是电压、电流的瞬时值,因此应根据电压、电流的瞬时值,计算出电压、电流的有效值、功率等参数。

将电压有效值公式(2.1)

U?1TT?u02(t)dt 式(2.1)

离散化,以一个周期内有限个采样电压数字量来代替一个周期内连续变化的电压函数值,则

1TTU??u(t)dt02U? 式(2.2)

u式(2.2)中:?Tm为相邻两次采样的时间间隔;m为第m-1个时间间隔的电压采样瞬时值;N为1个周期的采样点数。

?T 若相邻两采样的时间间隔相等,即?Tm为常数 ,考虑到N=(T/)+1, ?T则有

N12U=?N?1m=1um1Tm=1?uN2m?Tm?1TT?u02(t)dt 式(2.3)

式(2.3)就是根据一个周期各采样瞬时值及每周期采样点数计算电压信号有效值的公式。同理,电流有效值计算公式如下:

?1TT?u02(t)dtN12I=?N?1m=1Im 式(2.4)

计算一相有功功率的公式

1P??i?t?u?t?dtT0离散化后为

T 式(2.5)

式(2.6) ui式(2.6)中:m 、m为同一时刻的电流、电压采样值。功率因数可由下式求

cos??PUI 式(2.7) 但在实际的测量中,上式的算法很难实现,所以本文拟采用一种与接线无关的三相功率因数检测方法。具体内容会在第4章中详细讲叙。

1NP?imum?N?1m=1

对于频率的测量,是将交流信号经OP07电压比较器变成方波后送到AT89C52的P3.2脚(外中断0),由AT89C52计数器0在方波的一个周期内计数,然后乘以系统内部时钟就得到方波周期?T,所以频率就为1/?T。

2.3 系统的工作过程

系统交流采样某一工频电力参数的过程如下:

(1)通过电压互感器 PT 和电流互感器 CT 获得输配电线路上的电压、电流交流信号;

(2)对电压、电流交流信号进行选择、采样/保持; (3)进行 A/D 转换; (4)单片机对 A/D 转换信号进行数据处理,即采样数据处理,标度变换以及输出等操作;

(5)LCD显示器来实现系统功能

3 基础知识 3 基础知识

3.1单八路模拟开关CD4051

模拟多路开关是一种重要的器件,在多路被测信号共用一路 A/D转换器的数据采集系统中,通常用来将多路被测信号分别传送到 A/D 转换器进行转换,以便计算机能对多路被测信号进行处理。

模拟开关是一种三稳态电路,它可以根据选通端的电平,决定输入端与输出端的状态。当选通端处在选通状态时,输出端的状态取决于输入端的状态;当选通端处于截止状态时,则不管输入端电平如何,输出端都呈高阻状态。模拟开关在电子设备中主要起接通信号或断开信号的作用。由于模拟开关具有功耗低、速度快、无机械触点、体积小和使用寿命长等特点,因而,在自动控制系统和计算机中得到了广泛应用。

本次设计的系统中用到的是CD4051,具体内容如下: 单八路模拟开关CD4051

CD4051相当于一个单刀八掷开关,开关接通哪一通道,由输入的3位地址码ABC来决定。其真值表见表3.1。“INH”是禁止端,当“INH”=1时,各通道均不接通。此外,CD4051还设有另外一个电源端VEE,以作为电平位移时使用,从而使得通常在单组电源供电条件下工作的CMOS电路所提供的数字信号能直接控制这种多路开关,并使这种多路开关可传输峰-峰值达15V的交流信号。例如,若模拟开关的供电电源VDD=+5V,VSS=0V,当VEE=-5V时,只要对此模拟开关施加0~5V的数字控制信号,就可控制幅度范围为-5V~+5V的模拟信号。

表3.1 4051真值表 输入状态 INH 0 0 0 0 0 0 0 0 1 C 0 0 0 0 1 1 1 1 ? B 0 0 1 1 0 0 1 1 ? A 0 1 0 1 0 1 0 1 ? 接通通道 “0” “1” “2” “3” “4” “5” “6” “7” 均不接通 3.2 AD678的性能特点

将模拟量转换成数字量的过程称为模数转换,即A/D转换,A/D转换是数据采集系统的重要环节。 常见的A/D转换器有四种类型:计数式A/D转换器;逐次逼近型A/D转换器,双积分型A/D转换器和并行A/D转换器。A/D转换器的品种繁多,性能各异,但从使用的角度看,各类A/D转换器的外特性都包括:模拟信号输入端;数字信号并行输出端;启动转换的外部控制信号;转换完毕转换器发出的转换结束信号等。在将这些信号与CPU接口时要涉及到A/D转换器的输出方式和对启动信号的要求。

在数据采集系统中以逐次逼近式A/D转换器在与微型计算机接口时用得最广、最普遍,因此,本系统使用的即是这种A/D转换器,下面介绍其工作原理。

AD678的性能特点

AD678是AD公司出品的12位逐次逼近型模数转换器,本系统采用它来实现将采集到的模拟电压和电流转换成数字量。 ? ? ? ? ? ? ? ? ?

其主要特性如下:

具有内部参考电压源和内部时钟,输出带有三态输出缓冲器,因此使用方便,也便于和微机直接接口。

转换时间为5μs,属于高档速度。

输入模拟信号范围可为0~10V和0~20V,0~±5V和0~±10V两档四种。 数模转换可以为12位,也可以为8位,故可适用于不同场合。

输入控制信号有:

CS: 片选端,低电平有效。

CE: 片使能端,高电平有效。必须和/CS同时有效时,AD678才工作,否则处于禁止状态。

R/C: 读出和转换控制。当R/C=0时,启动模数转换过程;当R/C=1时,读出模数转换的结果。

A0和12/8:这两个控制信号用来决定是进行12位转换还是进行8位转换。 STS:工作状态指示信号端。当STS=1时,表示转换器正处于转换状态;当STS=0时,A/D转换结束。通过此信号可以判别A/D转换器的工作状态,作为单片机的中断或查询信号之用。 各控制信号的组合功能如表3.2所示:

表3.2 AD678逻辑控制真值表 CE 0 X 1 1 1 1 1 CS R/C X X 0 0 1 1 1 12/8 X X X X 接+5V 接0V 接0V A0 X X 0 1 X 0 1 工作状态 禁止 禁止 启动12位转换 启动8位转换 12位并行输出有效 高8位并行输出有效 低4位并行输出有效 X 1 0 0 0 0 0 3.3定时器/计数器

由于在本课题的设计中会用到单片机的定时/计数功能,所以在这里将定时器/计数器的特点详细介绍。

定时和计数是计算机控制系统中两个重要的功能,在实际系统中应用极为普遍,89C52单片机内部有两个16位可编程定时/计数器,即定时器T0和定时器T1。89C52单片机内部还有两个专用寄存器TMOD、TCON,可通过编程来设定有关参数,如方式选择、定时计数选择、运行控制、溢出标志、触发方式等控制字。

(一)TMOD和TCNO寄存器

89C52单片机内部设置的两个16位可编程的定时器/计数器T0和T1,它们可以处于计数方式或定时方式。可通过设置特殊功能寄存器TMOD中都有一个控制位来选择T0或T1位定时器还是计数器。其状态字均在响应的特殊功能寄存器中,通过对控制寄存器的编程,用户可以方便地选择适当的4中工作模式中的一种。89C52单片机定时器/计数器的结构如图3.1所示。

图3.1 89C52单片机定时器/计数器的结构图

其中,特殊功能寄存器TMOD用于控制和确定个定时器/计数器的功能和工

作模式;特殊功能寄存器TCON用于控制定时器/计数器T0、T1的启动和停止计数,同时包含定时器/计数器的状态。它们的内容靠软件设置。系统复位时,寄存器的所有位都被清零。 1. 工作方式控制寄存器TMOD

TMOD用于设定定时器/计数器的工作方式及四种工作模式中的一种,其各位的定义如图3.2所示。

图3.2 TMOD寄存器个为定义

TMOD地址为89H,高4位位定时器T1的方式控制字段,低4位位定时器T0的方式控制字段。

(1)门控位GATE:当GATE=0时,定时器/计数器只有软件控制位TR0或TR1来控制启停。TRi位为1,定时器启动开始工作;位0时,定时器调整工作。当GATE=1时,定时器/计数器的启动要由外部中断引脚和TRi为共同控制。只有当中断引脚INT0和INT1为高时,TR0或TR1置1才能启动定时器工作。

(2)C/T: C/T=0为定时器方式,采用晶振脉冲的12分频信号作为计数器的计数脉冲,即对机器周期进行计数。若选择12MHz晶振,则定时器的计数脉冲为1MHz。从定时器的计数值便可求得技术时间,故称为定时器方式。

C/T=1为计数器方式,采用外部引脚(T0为P3.4,T1为P3.5)的输入

脉冲作为计数脉冲。当T0(或T1)输入发生高到低的负跳变时,计数器加1,最高计数频率为晶振频率的1/14。

M1 M0:定时器的工作方式由M1M0二位的状态确定,对应关系如下所示。

M1 M0 工作方式 功能描述

0 0 方式0 13位的计数器,TLi只用低5位 0 1 方式1 16位的计数器

1 0 方式2 8位的自动重装计数初值的计数器 1 1 方式3 T0分成2个独立的8位计数器

2. 定时器/计数器控制寄存器TCON

控制寄存器TCON的主要功能是用于定时器的启动、停止以及在溢出时设定标志位和外部中断触发方式。它的字节地址位88H,位地址位88H~8FH。其控制字各位的定义如图3.3所示。

图3.3 TCON寄存器个位定义

低4位与外部中断有关,高4位的功能如下:

(1) TF1位T1的溢出标志位

当定时器T1溢出时,由硬件将TF1置1,并申请中断。当进入中断服务程序时,硬件又自动将TF1清零(也可以用软件清零)。 (2) TR1位定时器T1的运行控制位 该位由软件置位和复位。当GATE(TMOD.7)为0时,TR1为1时允许T1计数,TR1为0时禁止T1计数;当GATE为1时,TR1为1时而且INT1输入高电平时,才允许T1计数,TR1为0或INT1输入为低电平时禁止T1计数。 (3) TF0为定时器T0的溢出标志位

当定时器T0溢出时,由硬件将TF0置1,并申请中断。当进入中断服务程序时,硬件又自动将TF0清零(也可以用软件清零)。 (4) TR0为定时器T0的运行控制位 该位由软件置位和复位。当GATE(TMOD.3)为0时,TR0为1时允许T0计数TR0为0时禁止T0计数;当GATE为1时,TR0为1而且INT0输入高电平时,才允许T0计数,TR0为0或INT0输入为低电平时,禁止T0计数。

(二)定时器/计数器的初始化

定时器的功能是由软件来设置的,所以一般在使用定时器/计数器前均要对其进行初始化。 初始化的步骤

1)确定工作模式(是计数还是定时)、工作方式、启动控制方式,将其写入TMOD寄存器。 2)设置定时或计数器的初值:可直接将初值写入TH0、TL0或TH1、TL1中。16位计数初值必须分两次写入对应的计数器。

3)根据要求是否采用中断方式:直接对IE为赋值。开放中断时,对应位置位;采用程序查询方式IE位应清0进行中断屏蔽。 4)启动定时器工作:可使用SETB TRi启动。

若第一步设置为软启动,即GATE设置为0时,以上指令执行后,定时器即可开始工作。

若GATE设置为1时,还必须由外部中断引脚INTi(其中i为0或1)共同控制,只有当INTi引脚电平为高时,以上指令执行后定时器方可启动工作。定时器一旦启动就按规定的方式定时或计数。

3.4中断系统

(一)中断系统概述

当CPU正在处理某事件时外界发生了更为紧急的请求,要求CPU暂停当前的工作,转而去处理这个紧急事件。处理完成后,再回到原来被中断的地方继续原来的工作,这样的过程称为中断。实现这一功能的部件称为中断系统,请示CPU中断的请求源称为中断源。中断系统是使处理机对外界异步事件具有处理能力而设置的。功能越强的中断系统,其对外界异步事件的处理能力越强。

89C52单片机有6个中断源,当中断源同时向CPU请求中断时,就存在CPU优先响应哪个中断源的问题。

通常根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求源,即规定每一个中断源有一个优先级别,CPU总是最先响应级别最高的中断。它可分为两个中断优先级,即高级优先级和低级优先级;可实现两级中断嵌套。用户可以用关中断指令(或复位)来屏蔽所有的中断请求,也可以用开中断指令使CPU接受中断申请。即每一个中断源的优先级都可以由程序来设定。 (二) 中断源

IT1在89C52单片机中,有6个中断源:两个外部INT0(P3.2)和N(P3.3)

输入的中断源、两个定时器T0和T1的溢出中断和一个串行发送/接收中断。

1)外部中断源:INT0和INT1 89C52外部中断0和外部中断1的中断请求信号分别有P3.2和P3.3引脚输入。并允许外部中断源以低电平活负边沿两种中断取法方式来输入中断请求信号。请求信号的有效电平可由定时器控制寄存器TCON的IT0和IT1设置,如图3.4所示。

图3.4 定时器控制寄存器TCON各位的定义

89C52会在每个机器周期的S5P2时对INT0和INT1线上中断请求信号进行一次检测,检测方式和中断触发方式的选取有关。若89C52设定为电平触发方式(即IT0=0或IT1=0),则CPU检测到INT0/INT1上低电平时就可认定其上中断请求有效;若设定为边沿触发方式(即IT0=1或IT1=1时),则CPU会在相继的两个周期内两次检测INT0/INT1线上电平才能确定其上的中断请求是否有效,即前一次检测为高电平和后一次检测到为低电平时INT0/INT1上中断请求才有效。

由于外部中断信号每个机器周期被采样一次,有引脚INT0和INT1输入的信号应至少保持一个机器周期,即12个振荡周期。如果外部为边沿触发方式,则引脚出输入的信号的搞电平个低电平至少各保持一个周期,才能确保CPU检测到电平的调变;而如果采用电平触发方式,外部中断源应一直保持中断请求

有效,直到得到响应为止。

(三)中断控制

CPU对中断源的开放和屏蔽,以及每个中断源是否被允许中断,都受中断允许寄存器IE控制。每个中断源优先级的设定,则由中断优先级寄存器IP控制。寄存器状态可通过程序由软件设定。 中断的开放和屏蔽

89C52没有专门的开中断和关中断指令,中断的开放和关闭是通过中断允许寄存器IE进行两级控制的。

所谓两级控制是指有一个中断允许总控制位EA,配合各中断源的中断允许控制位共同实现对中断请求的控制。这些中断允许控制位集成在中断允许寄存器IE中,如图3.5所示为中断允许寄存器各位的定义。

图3.5 中断允许寄存器IE

现对IE各位的说明如下:

EA(IE.7) 为CPU中断走允许位,EA=0,CPU关中断,禁止一切中断。EA=1,CPU开放中断,而每个中断源是否开放还是屏蔽分别由各自的允许位确定。

×(IE.6) 保留位。 ET2(IE.5) 为定时器2中断允许位,仅用于52子系列单片机中,ET2=1允许定时器2中断,否则禁止中断。

ES(IE.4) 为串行口中断允许位。ES=1,允许串行口的接收和发送中断;ES=0禁止串行口中断。

ET1(IE.3) 为定时器1(T1溢出中断)中断允许位。ET1=1,允许T1中断,否则禁止中断。

EX1(IE.2) 为外部中断1(INT1)的中断允许位。EX1=1允许外部中断1中断;否则禁止中断。

ET0(IE.1) 为定时器0(T0溢出中断)的中断允许位。ET0=1允许T0中断,否则禁止中断。

EX0(IE.0) 为外部中断0(INT0)的中断允许位。EX0=1允许外部中断0中断,否则禁止中断。

中断允许寄存器IE的单元地址是A8H,个控制位(位地址为A8H~AFH)也可位寻址,可以进行字节寻址也可位寻址。所以既可以用字节传送指令又可以用位操作指令来对各个中断请求加以控制。

4硬件具体各个部件介绍

硬件系统流程图:

模拟开关与A/D转换电路 信号调理电路 信号放大电路 扩展I/O口及键盘显示电路 单片机 波形变化电路 流程图

4.1电压、电流信号采集:

用高精度电流互感器、电压互感器降压隔离变压器来完成电流、电压信号的获取。

1.信号的获取:

用高精度电流互感器、电压互感器降压隔离变压器来完成电流、电压信号

的获取.在这里获得输入信号电流电压信号,由于电力线路中存在复杂的谐波,会严重影响仪表的测量精度,因此将获取的电信号经过低通滤波器滤波,除去信号中的谐波干扰。电压互感器部分采集信号经过低通滤波器除去谐波干扰,再由分压电路限幅,输出极微弱的电压信号。

获得信号经过低通滤波器的去除谐波干扰: 所选择的电路如下:

左边是输入端子,右边是输出端子。得到的信号降低甚至是消除的谐波干扰,所得的信号更加精准。

输出经过分压电路限幅后输出极其微弱的电路。

这里实现了输入信号的采集工作。

交流采样的算法有一点采样、两点采样及多点采样等多种,这里用多点采样方式。根据离散积分原理得出电压、电流与功率的有关参数计算公式如下:

U?1N?um?1N2m 公式(1)

式(1)中,N为每周期采样次数,um为第m次采样的电压瞬时值。电流有效值计算公式为:

I?1N2?im 公式(2) Nm?1式(2)中,N为每周期采样次数,im为第m次采样的电流瞬时值。功率、功率因数的计算方法为:设电压超前或滞后电流时间为△T,信号周期为T,则电压、电流间的相位差为:

??360???TT 公式(3) 功率因数和功率分别为:

??cos? 公式(4) (有功功率)P?UI? 公式(5) (视在功率)S?UI 公式(6) (无功功率)Q?UIsin? 公式(7)

工频参数的计算要用到电压、电流的有效值,功率等参数,而测量系统的 CPU 从A/D 转换器读取的数据是电压、电流的瞬时值,因此应根据电压、电流的瞬时值,计算出电压、电流的有效值、功率等参数。

将电压有效值公式(2.1)

U?1TT2u?(t)dt0 式(2.1)

离散化,以一个周期内有限个采样电压数字量来代替一个周期内连续变化的电

压函数值,则

1TTU??u(t)dt02U? 式(2.2)

u式(2.2)中:?Tm为相邻两次采样的时间间隔;m为第m-1个时间间隔的电压采样瞬时值;N为1个周期的采样点数。

?T 若相邻两采样的时间间隔相等,即?Tm为常数 ,考虑到N=(T/)+1, ?T则有

1Tm=1?uN2m?Tm ?1TT?u02(t)dtN12U=?N?1m=1um 式(2.3)

式(2.3)就是根据一个周期各采样瞬时值及每周期采样点数计算电压信号有效值的公式。同理,电流有效值计算公式如下:

?1TT?u02(t)dtN12I=?N?1m=1Im 式(2.4)

计算一相有功功率的公式

1P??i?t?u?t?dtT0离散化后为

T 式(2.5)

式(2.6) ui式(2.6)中:m 、m为同一时刻的电流、电压采样值。功率因数可由下式求

cos??PUI 式(2.7)

但在实际的测量中,上式的算法很难实现,所以本文拟采用一种与接线无关的三相功率因数检测方法。具体内容会在第4章中详细讲叙。

对于频率的测量,是将交流信号经OP07电压比较器变成方波后送到89C51的P3.2脚(外中断0),由89C51计数器0在方波的一个周期内计数,然后乘以系统内部时钟就得到方波周期?T,所以频率就为1/?T。

为了对周期性交流信号进行采样,采用定时中断方式,每隔一段时间触发一次中断,在中断期间对数据进行采样,采样完后,要对其作数学运算、存储、滤波、越限检查、标尺变换,二—十进制转换等处理。然后再计算及处理各种有效值、各种功率值等参数,最后通过显示器显示结果。其中在求取电压与电流的有效值时涉及到了开平方子程序,采用了牛顿迭代公式,经过若干次迭代后使得开平方结果的误差小于01H(十六进制数)。

1NP?imum?N?1m=1

4.2放大电路设计

因为本设计中使用的模拟电压单端输入范围为0-5V,因此应该首先通过运算放大器将其转换至合适的电压幅值范围。由于精度的要求在这里选用精度高兼容性能好的芯片INA141来实现放大电路的设计,具体设计思路如下:

实现思路:

由精密仪表放大器INA141构成放大电路,利用数字电位器AD5242作为放大器的反馈电阻,通过对不同信号幅度的判断,调整AD5242的阻值,使放大器的放大倍数改变,保证系统工作在最佳线性状态,并实现自动换档。

INI.141脚配置图:

芯片的使用介绍:2,3引脚为信号的输入端口;4,7引脚为电源的输入端口;

1,8引脚为放大信号信号的选择端口,1引脚实现信号的10倍增益而8引脚实现信号的100倍增益;6引脚是信号的输出端口;5引脚是信号的反馈端口。

得到输出电压后利用数字电位器AD5242作为放大器的反馈电阻。 先介绍数字电位器AD5242:

图2 AD5242内部结构图

AD5242是双通道具有256抽头数字控制可调电阻器件,在A端与滑动端W之间或B端与滑动端W之间的阻值可编程。A端与B端的固定阻值为10K或100K(本系统选100K),具有1%信道对信道的匹配公差。滑动端W在系统上电时的默认值为中间抽头处,上电后,电位器滑动端W的位置可通过与I2C相兼容的两线串口进行编程,两个可编程逻辑输出端可为用户提供驱动数字负载、逻辑门、LCD驱动器和模拟开关等功能。具有特点:

(1)256抽头,10kΩ/100kΩ两阻值电位器。 (2)温度系数为30ppm/℃。 (3)上电复位于中间抽头。

(4)单供电2.7V~5.5V工作或双供电±2.7V(AC)工作或双极性操作。 (5)具有I2C兼容接口。 (6)具有外部可编程逻辑输出。 (7)自身包含关闭功能。

(8)工作环境温度为-40℃~+105℃。

图3 放大电路连线图

放大电路的连线图如图3所示,以数字电位器AD5242作为精密运算放大器INA141的反馈电阻,这样可根据输入信号的幅度大小,选择不同的放大倍数,

实现量程的自动转换。芯片AD5242具有两个非易失性数控电位器单元,每个单元有256个可以被滑动单元访问的抽头点,单片机可通过AD5242的串行接口(SCI,SDA)改变任意一个电位器的输出阻值。在本系统中,通过对不同信号幅度的判断,来调整AD5242的电阻值,使运算放大器的放大倍数改变,保证系统工作于最佳线性状态,并实现了量程的自动转换。

在多路信号检测过程中,多个通道共用一个放大器,信号经放大器处理后至A/D转换器。由于各个输入量送到放大器的信号电平不同,放大器的增益也应不同。即使对于单通道的信号输入,如果该信号的变化范围较大,当放大器增益固定时,也常出现小信号得不到有效放大而降低A/D转换精度的情况。如用某热电偶测量温度,当温度变化范围为700℃~1000℃时,传感器输出电压为20μV~50mV,为使上限不超过A/D转换器的最高输入电压(假设是5V),放大器增益最大选为100,则放大后的信号电压为2mV~5V,显然,2mV左右的信号转换结果为数少,精度低。一般情况下,应使被转换量落在A/D转换线性特性区间之内,并尽可能使模拟量在1/2满度与接近满度的区域中转换。解决的方法就是对小信号输入采用高放大倍数,对大信号输入采用小放大倍数,即根据未知参数量值的范围,自动地选择合适的增益,以切换到合适的量程。

过去实现量程自动转换的方法是在采集通道中设置可变增益放大器,借助量程转换开关,控制其通断,获得所需要的量程。这样的设计转换速度慢,档位设置简单,精度低,势必对系统的精度和和快速响应造成影响。所以本设计采用了以数字电位器代替量程转换开关的方法,用数字电位器作为仪表放大器的反馈电阻,这种数字电位器阻值变化台阶多,调整灵敏度高,对提高仪表测量精度效果非常好。而且可以由单片机对其直接编程控制,也使电路进一步简化,因此,数字电位器在新型测量仪表的量程变换电路中,被广泛的应用

2.3 A/D转换器:

模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考

信号的大小。

4.3.1模数转换原理概述:

随着数字电子技术的迅速发展,各种数字设备,特别是数字电子计算机的应用日益广泛,几乎渗透到国民经济的所有领域之中。数字计算机只能够对数字信号进行处理,处理的结果还是数字量,它在用于生产过程自动控制的时候,所要处理的变量往往是连续变化的物理量,如温度、压力、速度等都是模拟量,这些非电子信号的模拟量先要经过传感器变成电压或者电流信号, 然后再转换成数字量,才能够送往计算机进行处理。

4.3.2多路开关与A/D转换电路

A/D 转换器选择

目前,计算机接受的信息只能是数字量。A/D转换器的功能是将任意模拟信号,如电压或电流,按一定的位数变换成数字代码。因此,A/D转换器是连接模拟世界与数字世界的桥梁,它担负着将模拟信号变换成适合数字处理的二进制代码的任务。随着设计技术的提高和加工工艺的改进,A/D 转换器的转换速度越来越高。目前,8位A/D转换器的转换速度已经达到1.5GHz;并且,有些A/D 转换器还可以工作在欠采样状态。本设计中,(选用器件)A/D转换器选用功能强大的12位的AD678。

AD678的介绍:是美国AD公司生产的200kHz的12位A/D转换器。它主要由高速采样保持放大器、ADC5V基准源、时钟产生电路、控制逻辑和数字量输出接口等组成。

要让交流电模拟量信号采样到单片机进行数据处理,必须经过A/D转换电路,设计中,需要对电压、电流两路信号进行采样,所以设置一个多路开关CD4051对信号进行选通。

模拟开关与A/D转换电路部分

电路如图4所示,通过多路开关CD4051选择输入信号,A/D转换器选用功能强大的12位的AD678,它内部含有采样/保持器、高精度参考电源、内部时钟和三态缓冲数据输出等部件,应用时只要很少的外部元件。本设计将其接成双极性输入方式,输入电压范围±5V,输出为二进制补码,完成一次A/D转换

只需5μs。它们之间用跟随器隔离,这样整个电路系统避免了采样的孔径时间以及器件间互相影响引起的误差,保证了系统测量精度。

2.4

波形变换电路

通过放大电路放大后的正弦交流电信号,电压幅值被限制在0V~5V之间,但是这样的信号属于模拟信号,是不能直接送入单片机中进行数据处理的,为此设计中首先通过波形变换电路,将正弦交流电信号转换成方波信号,而方波信号符合数字信号高低电平的特点,可以直接输入到单片机中,而无须再次经过数/模转换。波形变换电路由过零比较器、反相器及与非门组成,用于相角的测量。

波形变换电路由过零比较器、反相器及与非门组成,用于相角的测量。电路如图所示。电压、电流信号通过比较器后变成方波信号,分别送至单片机的I/O口,由单片机计数测出其波形宽度计算出相位差,从而达到测量交流电功率因数的目的。

图5 波形变换电路 从而实现了波形变换功能。

2.5.1多路开关选择

多路开关是一种三稳态电路,它可以根据选通端的电平,决定输人端与输出端的状态。当选通端处在选通状态时,输出端的状态取决于输人端的状态;当选通端处于截止状态时,则不管输人端电平如何,输出端都呈高阻状态。(优点)由于模拟开关具有功耗低、速度快、无机械触点、体积小和使用寿命长等特点,因而,在自动控制系统和计算机中得到了广泛应用。多路开关的作用主要是用于信号切换,如在某一时刻接通某一路,让该路信号输入而让其它路断开,从而达到信号切换的目的。

2.5单片机

单片机选用低功耗,高性能的CMOS型的8位机AT89C52。它含有8K字节的内存,256字节的RAM,具有可编程的串行口、8个中断源及掉电方式。采用虚拟I2C总线技术,外扩了存储器,选用256×8静态RAM:PCF8570C,它的器

件地址及寻址字节是1011A2A1A0R/。选512字节的AT24C04,它的器件地址及寻址字节是1010A2A1POR/。选点阵式LCD驱动器PCF8578,它的器件地址及寻址字节是011110A0R/电路连线图如图6所示。为了增强系统的抗干扰能力,防止程序“跑飞”,加进了看门狗电路,采用的是X5045。它是一种新型的芯片,具有三种功能:(1)电压监控,当电压失常时,可为89C52提供上电复位;(2)看门狗定时,当程序紊乱“跑飞”时,启动内部的看门狗电路来强制单片机复位;(3)内部包含512字节的E2PROM,可用于缓解系统资源紧张的状况,和其它外存储器一样,保存一些重要的数据。AD5242支持I2C串行双向总线的定向规约:实际应用时AD5242为从器件,由主机启动数据的传输,并为发送和接收操作提供时钟。数据线SDA和时钟线SCL的信号间关系(起始条件、终止条件及应答条件)。它的器件地址及寻址字节是:0101A3A2A1A0。

图6 单片机与其外部电路连线图

2.6.2显示电路设计:

液晶显示器作为一种低功耗显示器件,广泛应用于计算器、数字式仪表等低功耗系统中。但一般使用的液晶显示器均为七段笔划式,只能显示数字和少量字符,对于较复杂的字符或图形则无能为力。而点阵式液晶显示模块可以显示各种各样的字符(包括简单的汉字),而且点阵显示模块具有可编程能力,与

单片机接口方便。因此,从电子表到计算器,从袖珍式仪表到便携式微型计算机以及一些文字处理机都广泛应用了液晶显示器,本设计中选用点阵式液晶显示器LCD12864。

有关LCD12846介绍:

LCD12846分为带字库何不带字库两种类型,在这里就不进行赘述。仅介绍一下有关不带字库类型的使用.

引脚功能介绍:

几个重要指令:

接线图如下:

2.6.3键盘电路设计

键盘在单片机应用系统中是一个很关键的部件,它能向计算机输入数据、传送命令等功能,是人工干预计算机的主要手段。键盘实质上是一组按键开关的集合。通常,按键所用开关为机械弹性开关,均利用了机械触点的合、断作用。一个电压信号通过机械触点的断开、闭合过程。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,抖动时间的长短由按键的机械特性决定,一般为5ms~10ms,这是一个很重要的时间参数,在很多场合都要用到。

矩阵键盘和单片机连接的情况当一个单片机系统只需要少量的键盘的时候用简单的独立键盘:

比如说按一个键亮一个灯就可当系统需要比较多的键盘时采用矩阵键盘就比较方便见下图:

4x4 矩阵键盘检测按键的方法是

先拉低第一行的电平,检测1~4 列有无键按下如有返回键值如无看下行 再拉低第二行的电平,检测1~4 列有无键按下如有返回键值如无看下行 先拉低第三行的电平,检测1~4 列有无键按下如有返回键值如无看下行 再拉低第四行的电平,检测1~4 列有无键按下如有返回键值如无则返回无键按下 unsigned char Key_Scan(void)//键盘扫描函数如果有键按下返回键ASC 值若无返回 0 {

P1=0XF0;

if(P1!=0XF0)//先确定是否有键按下 {

//--------------1------------------------------------ P1=0XFE;//第一次把P1^7 拉低

switch (P1)//测P1^0~~~P1^3 有没有低的 {

case 0xee: return '0';//P1^3 低返回‘0’ case 0xde: return '1';//P1^2 低返回‘1’ case 0xbe: return '2';//P1^1 低返回‘2’ case 0x7e: return '3';//P1^0 低返回‘3’

default: break;//没有本行的键按下继续下面扫描 }

//---------------------------------------------------- //-------------2-------------------------------------- P1=0XFD;//第二次把P1^6 拉低

switch (P1)//测P1^0~~~P1^3 有没有低的 {

case 0xed: return '4';//P1^3 低返回‘4’ case 0xdd: return '5';//P1^2 低返回‘5’ case 0xbd: return '6';//P1^1 低返回‘6’ case 0x7d: return '7';//P1^0 低返回‘7’

default: break;//没有本行的键按下继续下面扫描 }

//---------------------------------------------------- //-------------3-------------------------------------- P1=0XFB;//第三次把P1^5 拉低

switch (P1)//测P1^0~~~P1^3 有没有低的 {

case 0xeb: return '8';//P1^3 低返回‘8’ case 0xdb: return '9';//P1^2 低返回‘9’ case 0xbb: return 'A';//P1^1 低返回‘A’ case 0x7b: return 'B';//P1^0 低返回‘B’

default: break;//没有本行的键按下继续下面扫描 } 3

//---------------------------------------------------- //-------------4-------------------------------------- P1=0XF7;//第三次把P1^4 拉低

switch (P1)//测P1^0~~~P1^3 有没有低的 {

case 0xe7: return 'C';//P1^3 低返回‘C’ case 0xd7: return 'D';//P1^2 低返回‘D’ case 0xb7: return 'E';//P1^1 低返回‘E’ case 0x77: return 'F';//P1^0 低返回‘F’ default: break;//没有键按下继续下面 } }

return 0; }

2.7复位电路:

复位电路常采用上电复位和按钮复位两种方式,除了上电复位外,有时还需要人工按钮复位。考虑到系统在实际运行中可能会出现死机的情况,自动复位不能实现,于是就采用了上电复位与按钮复位兼有的复位电路,确保系统安全运行。

原理图:

1、手动按钮复位

手动按钮复位需要人为在复位输入端RST上加入高电平(图1)。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。 2、上电复位

AT89C51的上电复位电路如图2所示,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1?F。上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。在图2的复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。 3、积分型上电复位

常用的上电或开关复位电路如图3所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。 根据实际操作的经验,下面给出这种复位电路的电容、电阻参考值。 C:=1uF,Rl=lk,R2=10k

5 系统软件设计

5.1系统软件的编译环境

本论文采用Keil51作为单片机的程序编译环境,它的环境界面如图4.1所示。与其它编译环境相仿,具有打开文件、加载文件、编译文件的功能,同时,Keil51还具有对程序的仿真功能,可以指定P0口、P1口、P2口、P3口的地址以及功能端口,可以对程序指定中断地址以及T0、T1定时中断等

图4.1 编译程序环境

Keil51的基本操作:

(1) 打开新建文件(File),直接编写新的汇编程序并保存。保存文件以

(.ASM)为后缀;

(2) 点击工程(Project)菜单栏中的新建工程文件(New Project), 在

对话框中写入刚才保存的文件名,最后点“保存”,这样就新建了一个工程文件;

(3) 选择所需公司及芯片型号,本论文设计中用到的是AT89C52芯片。首

先在选择芯片菜单栏中点击Atmel,再在子菜单中选择AT89C52芯片型号。如图4.2所示

图 4.2 选择芯片型号

(4) 在新的编译环境中,添加已经保存的文件。右击“Souce Group”选择“Add File To‘Souce Group’”,然后选择文件,点击添加即可。

(5) 编好程序后,对所编程序进行编译,待编译提出无错误时进行下一步操作。

(6) 从(1)到(5)部分结束后,可以创建16进制文件提供烧录。

(7) 对程序仿真点击“debug”即可,“debug”中可以观察反汇编程序。此外,点击“debug”中的“step”,再打开相关寄存器和端口显示单步运行结果。

5.2系统软件总流程图

在系统的软件设计中,采用模块化设计方法,使得程序结构清晰,便于今后进一步扩展系统的功能。系统软件有以下模块构成:主程序、时钟中断服务程序、数据采集处理子程序、显示程序等。主程序主要完成系统初始化,装置自检等任务。系统的初始化部分包括CPU各端口输入输出设置、外围驱动、译码电路的初始化、数据RAM的初始化等。 系统的数据采集处理子程序的功能是采集各相电压值、电流值。在定时中断服务程序中主要进行频率测量。

另外,我们还应考虑到电网存在谐波,还会有各种瞬时干扰,而采用硬件滤波存在硬件电路复杂等诸多弊端,因此在此系统中求取电力参数实行数字滤波方法祛除干扰,此外,系统中还应采用指令冗余等抗干扰措施,以使系统具有良好的抗干扰性能。

系统的总流程图如下图5.3所示

程序开始 系统初始化 关中断 数据组计数器加1 启动下一通道 N A/D转换结束? Y 读数据 N 采样达16点? Y N 三相测量结束? Y 开中断 触发中断 U,I,P,F,Cos?数据处理 显示 图5.3 系统软件流程图

5.3部分功能程序的实现

5.3.1数据采集子程序流程图

设计原理:根据离散化公式可知,由一个周期内不同时刻的电压、电流的采样值及每周期采样点数可计算出电压、电流、有功功率等值。工频交流电标准频率为50Hz,周期为20ms。根据89C52的12MHz主频和AD574的25μs的转换速度,采样周期定为400μs,即一个周期内采16个点。在1个信号周期内对一相电压、电流等时间间隔准确采样16个点并把结果存入片外数据存储器相应的存储页内 。数据采集流程图如下图4.4。

初始化

选三相中的一

相进入4051

选通当前电压N 信号 采样达16 点?

A/D转换

Y

存储数据 结束

切换到电流信

A/D转换

图4.4 数据采集流程图

存储数据

5.3.2 数据处理程序流程图

一.电压处理模块。

将电压有效值公式(4.1)

U?1TT2u?(t)dt0 式(5.1)

离散化,以一个周期内有限个采样电压数字量来代替一个周期内连续变化的电压函数值,则

1TTU??u(t)dt02U? 式(5.2)

u式(4.2)中:?Tm为相邻两次采样的时间间隔;m为第m-1个时间间隔的电压采样瞬时值;N为1个周期的采样点数。

T,考虑到N=()+1, 若相邻两采样的时间间隔相等,即?Tm为常数?

则有

N12U=?N?1m=1um1Tm=1?uN2m?Tm?1TT?u02(t)dt 式(5.3)

式(4.3)就是根据一个周期各采样瞬时值及每周期采样点数计算电压信号有效值的公式。根据式(4.3),我们画出电压处理程序的流程图如图4.5:

开始 sum1=sum1/16 赋初值sum1=0,counter=0 U=sum1 求和sum=sum1+U(n)*U(n) 返回 计数增量count=count+1 N count>=15 ? Y 图4.5 电压处理流程图

二.电流处理模块。

同电压计算方法一样,我们可以得到电流有效值的公式(5.4)

?1TT?u02(t)dt 式(5.4)

我们画出电流处理流程图如图5.6:

开始 N12I=?N?1m=1Im赋初值sum2=0,counter=0 求和sum2=sum2+U(n)*U(n) 计数增量counter=counter+1 N Counter>=15? Y sum2=sum2/16 U=sum2 返回

图5.6 电流处理流程图

三.频率测量模块

对于频率的测量,本设计拟采用中断方式。

下面画出频率测量的流程图,如图5.7

中断服务子程序 停止计数器计数 读计数器的计数值 计数器清零 求工频频率 启动计数器 中断结束 图5.7 频率测量流程图

对频率的测量是将交流信号经OP07电压比较器变成方波后送到89C52的P3.2脚(外中断0),由89C52计数器0(工作方式1计数初值为0)在中断触发后对89C52(采用12MHz晶振)的内部时钟进行计数。设置中断触发方式为边沿触发方式,所以当方波由高电平变为低电平时触发中断,随后先停止计数器计数,读出计数器的计数值,随即将计数器清零,等待下次计数。用计数值乘以单片机内部时钟周期就得到被测方波计数内的周期?T,所以要测量的工频频率就是1/?T。下一步启动计数器,开始下一次计数,直到中断结束。

该方法存在这一定的误差,因为在中断第一次被触发后,计数器内的值有可能是个随机值,用该值计算所得的频率就有可能偏高或偏低。所以在测量多次后,对所有结果进行数字滤波,去掉偏大值和偏小值就可以克服该缺点。 四.功率因数测量模块

在三相电网的功率因数测量中,一般假设电网是三相平衡的,此时任意一相的功率因数就相当于三相系统的功率因数。由于测量单相功率因数需要中性点

(如果采用三相四线制),在某些应用场合有很大的不便,因此本设计拟通过采样三相中一相的电流以及另外两相的线电压之间的相位差来得到三相系统的功率因数的检测方法。由于利用该方法测量功率因数的接线方式有12种,每种接线方式的相位关系又不一样,所以功率因数的计算以及超前滞后的判断方法也有些差别。

本设计利用电网三相电压、电流间的相位角关系,通过直接检测相电流相邻的方波信号上升沿的时间差以及相电流和线电压的相邻的两个方波的上升沿的时间差,来确定功率因数以及功率因数的超前滞后情况,从而得到了一种与接线无关的三相功率因数检测方法。 1 工作原理

设三相的电压分别为Ua、Ub、Uc,电流分别为Ia、Ib、Ic,假设电网三相平衡,则它们的表达式如下:

Ua=UmSinωt

Ub=UmSin(ωt-120°)

Uc=UmSin(ωt+120°) Ia=ImSin(ωt-φ)

Ib=ImSin(ωt-φ-120°) Ic=ImSin(ωt-φ+120°)

上式中,Um表示每相电压幅值,Im表示每相电流幅值,ω表示角频率,φ表示相电流滞后相电压的相角(功率因数角)。由此可以得到:

Ubc=Ub-Uc=3Um Sin (ωt-90°) Ucb=Uc-Ub=3Um Sin (ωt-270°) Uca=Uc-Ua=3Um Sin (ωt-210°) Uac=Ua-Uc=3Um Sin (ωt-30°) Uab=Ua-Ub=3Um Sin (ωt+30°) Uba=Ub-Ua=3Um Sin (ωt-150°)

-Ia=Im Sin(ωt-φ-180) -Ib=Im Sin(ωt-φ+60°) -Ic=Im Sin(ωt-φ-60°)

其中,-Ia表示负A相电流,-Ib表示负B相电流,-Ic表示负C相电流。可见,采用其中一相的相电流和另外两相的线电压之间的相位差来测量功率因数的接线方式有12种,分别为:Ia,Ubc;Ia,Ucb;Ib,Uca;Ib,Uac;Ic,Uab;Ic,Uba;-Ia,Ubc;-Ia,Ucb;-Ib,Uca;-Ib,Uac;-Ic,Uab;-Ic,Uba。下面以Ia,UbcI型接线和Ia,UcbII型接线两种接线方式来讨论φ的计算。 (1)I型接线φ的计算

设α为Ubc滞后Ia的相角,由于Ia滞后Ua的相角为φ,而Ubc滞后Ua的相角为90°,所以有α=90°-φ。针对三种负载情况,α表达式如下:

???90?当负载为纯阻性,即??0时?????90???180当负载为容性,即?90???0时 ?0????90?当负载为感性,即?0???90时?在电路设计中,若把A相相电流和Ubc线电压的采样信号放大后,再进行

上升沿过零触发,即可得到反映相位的方波信号。针对纯阻性负载、容性负载和感性负载,经过上升沿过零触发后可得到相电流和线电压的方波信号,从上到下分别为相电流与线电压的正弦波、上升沿过零触发后的方波、纯阻性负载电流与电压上升沿时间差、容性负载电流与电压上升沿时间差、感性负载电流与电压上升沿时间差。τ为相电流与线电压的上升沿的时间差,τ的宽度随φ的变化而变化。

设T为正弦波的周期,则τ和T满足下面的表达式:

???T当负载为纯阻性时4??T?4???T2当负载为容性时 ?0???T当负载为感性时?4?显然,α=(τ/T)×360°。根据α与φ的关系,可以得到:

???0?当负载为纯阻性时???(?T)?360??0?当负载为容性时 ??90?90??0??90??(?T)?360??90?当负载为感性时?因此,针对A相电流Ia和线电压Ubc的接线方式,超前滞后的判断和相

位角的绝对值|φ|的计算表达式如下:

T/4<τ≤T/2,超前; 0≤τ<T/4,滞后;

|φ|=|(τ/T)×360°-90°| (4.5) (2) Ⅱ型接线的计算

设α为Ucb滞后Ia的相角,由于Ia滞后Ua的相角为φ,而Ucb滞后Ua的相角为270°,所以α=270°-φ。针对三种负载情况,有如下表达式:

???270?当负载为纯阻性,即??0时????当负载为容性,即?90????0时 ?270?270???360?180??270????270?当负载为感性,即0???90?时?同理,此时τ和T满足下面表达式:

当负载为纯阻性时???3T4?当负载为容性时 ?3T4???T?T2???3T4当负载为感性时?显然,α=(τ/T)×360°。根据α与φ角的关系,可以得到:

???0?当负载为纯阻性时???(?T)?360??0?当负载为容性时 ??90?270??0??270??(?T)?360??90?当负载为感性时?因此,针对A相电流Ia和线电压Ucb的接线方式,超前滞后的判断和相

位角的绝对值|φ|的计算表达式如下:

3T/4<τ≤T,超前; T/2≤τ<3T/4,滞后;

|φ|=|τ/T×360°-270°| (5.6) (3)与接线无关的功率因数测量原理

采用同样的分析方法,可以发现-Ia,Ucb;Ib,Uca;-Ib,Uac;Ic,Uab;-Ic,Uba等五种接线方式的相对位置的波形图与Ia,Ubc接线方式的一样,其它的计算同式(4.5);而-Ia,Ubc;Ib,Uac;-Ib,Uca;Ic,Uba;-Ic,Uab等五种接线方式的相对位置的波形图与Ia,Ucb接线方式的一样,其它的计算同式(4.6)。

因此,直接检测相电流的两个相邻的方波信号上升沿的时间差,即可得到周期T;检测相电流线电压的相邻的两个上升沿过零触发方波的上升沿的时间差,即可得到时间τ;根据τ落在周期T的范围可确定接线方式是属于I型还是Ⅱ型,然后参照相应的计算公式可以很容易算出相位角φ以及超前滞后情况,从而得到三相系统的功率因数。

根据上述原理,我们画出功率因数测量模块流程图如图4.8。 T0选用计数功能,工作方式1,测量相电流的两个相邻的方波信号上升沿的时间差,记为T

T1选用技术功能,工作方式1,测量相电流线电压的相邻的两个上升沿过零触发方波的上升沿的时间差,记为τ。

开始 开始 T0初始化 T1初始化 N INT0为 1 Y INT0为1 Y N T0开始计数 T1开始计数 N N INT0为1 Y INT1为1 Y T0停止计数 T1停止计数 存储数据T,T0清零 存储数据τ,T1清零 判断数据,调用相应处理程序 判断数据,调用相应处理程序 返回 返回

图5.8 功率因数测量流程图

6 软件程序

系统源程序:

ORG 0000H

LJMP MAIN

ORG 00DFH LJMP PL

MAIN:MOV TMOD, #15H MOV IE OOH;关中断

SMPA:MOV R0,#00H ;A相电压、电流采样子程序,相数选择初始化 MOV R2,#80H ; RTEA:MOV A,R0 MOV P2,A

MOV R7,#00H

MOV R1,21H

AD12A:MOV R0,00H MOV A,R0 SHA:JNB 00H,SHA NOP NOP NOP

CLR P2.0

MOV P3,#3FH ;起动A/D转换 AD1A:JB P1.3,AD1A

SETB P2.0 LCALL DATA

MOV R0,0CH; 切换到电流信号 MOV A,R0 MOV P2,A CLR P2.0

MOV P3,#3FH ;启动A/D转换 AD2A:JB P1.3,AD2A ; INC R2 ; SETB P2.0

LCALL DATA INC R7 INC R1 INC R1

CJNE R7,#10H,AD12

NOP

NOP NOP

INC R0

INC R2

SMPB:MOV R0,#80H ;B相电压、电流采样子程序相数选择初始化 MOV R2,#82H ; RTEB:MOV A,R0 MOV P2,A

MOV R7,#00H MOV R1,21H

AD12B:MOV R0,80H MOV A,R0 SHB:JNB 00H,SHB NOP NOP

NOP

CLR P2.0

MOV P3,#3FH AD1B:JB P1.3,AD1B SETB P2.0 LCALL DATA MOV R0,20H MOV A,R0 MOV P2,A CLR P2.0

MOV P3,#3FH AD2B:JB P1.3,AD2B ; INC R2 ; SETB P2.0 LCALL DATA INC R7 INC R1

INC R1

CJNE R7,#10H,AD12 NOP NOP NOP INC R0 INC R2

SMPC:MOV R0,#40H ;C相电压电压、电流采样子程序相数选择初始化

MOV R2,#84H ; RTEC:MOV A,R0 MOV P2,A

MOV R7,#00H

MOV R1,21H

AD12C:MOV R0,40H MOV A,R0 SHC:JNB 00H,SHC NOP NOP

NOP CLR P2.0

MOV P3,#3FH AD1C:JB P1.3,AD1C SETB P2.0 LCALL DATA MOV R0,0A0H MOV A,R0 MOV P2,A CLR P2.0

MOV P3,#3FH AD2C:JB P1.3,AD2C ; INC R2 ; SETB P2.0 LCALL DATA INC R7 INC R1 INC R1

CJNE R7,#10H,AD12 NOP

NOP NOP INC R0 INC R2

MOV R1,21H

CJNE R1,#03H,RTEC MOV IE ,9FH;开中断 LCALL PL

PL: MOV TMOE , # 15H ;频率测量子程序:

MOV TH0 , # FFH MOV TL0 , # 80H MOV TH1 , # 00H MOV TL1 , # 00H SETB TR0 SETB TR1 LP1 : JBC TF0 , LP2

AJMP LP1 :循环等待 LP2 : CLR TR1

CLR TR0 :停止计时

CLR TF0 :清标志位 CLR TF1 :清标志位 MOV R0 , # 50H MOV @R0 , TL0 : INC R0 :

MOV @R0 ,TH0 : LCALL NDIV42 NDIV42 :MOV R5,0 MOV R2,0 MOV R3,51H MOV R4,50H MOV R6,#FFH MOV R7,#80H

MOV A,R1 PUSH A

MOV B,#00H

NDV421 : MOV A,R2

CLR C SUBB A,R7 NOP

NOP

NOP

MOV R1,A MOV A,R5

SUBB A,R6

NOP

NOP

NOP

LJMP 0000H

JC NDV422 MOV R5,A MOV A,R1 MOV R2,A INC B

SJMP NDV421

NDV422 : PUSH B

MOV B,#10H

NDV423 : CLR C

MOV A,R4 RLC A MOV R4,A MOV A,R3 RLC A MOV R3,A MOV A,R2 RLC A MOV R2,A XCH A,R5 RLC A XCH A,R5 MOV F0,C CLR C

SUBB A,R7 MOV R1,A MOV A,R5 SUBB A,R6 NOP

NOP

NOP

LJMP 0000H

JB F0,NCV424 JC NDV425

NCV424 : MOV R5,A

MOV A,R1 MOV R2,A

INC R4

NDV425 : DJNZ B,NDV423 NOP

NOP

NOP

LJMP 0000H

POP A

CLR OV

JNZ NDV426 SETB OV

NDV426 : XCH A,R2

MOV R7,A MOV A,R5 MOV R6,A POP A MOV R1,A

RET

U:MOV R7, 10H; 电压电流计算子程序: MOV R1,#80H

MOV AL, [80H]; MOV BL, [80H];

MUL AB; NOP

NOP NOP

LJMP 0000H

ADD [80H], AL;电压 INC R1 INC R1 DEC R7 CJNE R7,#0H,U NOP NOP NOP

LJMP 0000H

MOV R2,80H LJMP NDIV31 MOV R0,80H

LJMP FSQR NOP NOP NOP

LJMP 0000H

I: MOV R7, 10H; MOV R1,#881H MOV AL, [81H]; MOV BL, [81H]; MUL AB; NOP NOP NOP

LJMP 0000H

ADD [81H], AL;//电流 INC R1 INC R1 DEC R7

CJNE R7,#0H,I NOP NOP NOP

LJMP 0000H

MOV R2,81H LJMP NDIV31 MOV R0,81H LJMP FSQR

NDIV31 : MOV A,R2

MOV B,R7 DIV AB

NOP

NOP

NOP

LJMP 0000H

PUSH A

MOV R2,B MOV B,#10H

NDV311 : CLR C

本文来源:https://www.bwwdw.com/article/0zro.html

Top