当前位置:首页 >> 电子/电路 >>

单相电功率计设计


单相交流电功率计设计
学生:** 指导教师:***





电功率计是一种电子式电能计量仪表,在为负载设备提供用电的同时,能够实时捕获电器设备 的各项参数。根据这些工作参数,人们可以更方便地监测电器设备的工作状况,为科学节能、安全 合理地使用、维护和调校电器设备提供了有效帮助。 本次设计的电功率计以高精度电能计量芯片 RN8209G 为计量核心、 STC89C52 单片机为控制 以 核心,并辅以必要的外围电路,可以准确地测量电压、电流、有功功率、视在功率、无功功率、功 率因数等各种单相电参数。 系统主要包括信号采集模块、 电量计量模块、 MCU 控制模块、 时钟模块、 显示模块以及继电器保护模块等。通过上述模块的相互配合工作,电功率计可以有效监测各类电参 数,达到设计目的。 论文首先介绍了电功率计的发展以及相关基本原理,根据基本原理选择合适的系统方案。然后 详细介绍了系统的硬件和软件设计以及实物完成的调试过程和测试结果。最后通过测试结果,分析 了整个系统的工作状况,并对系统提出了改进意见。

关键词:电功率计,功率测量,功率因数,单片机

Design of Single-phase AC Power Meter
Abstract:
The electric power meter is an electronic power measuring instruments, which can not only provide electricity for loading equipment, but also can capture the real-time electric parameters at the same time. According to these parameters, it can be more convenient for people to monitoring the working condition of electrical equipment which can provide effective help for scientific energy saving, safety and rational use, maintenance and calibration of electrical equipment. This system is based on the high precision electric meter IC RN8209G as the measuring core and the STC89C52 single chip microcomputer as control core. Supplemented by the necessary external circuit, the system can measure the single-phase electric parameters accurately such as the voltage, current, active power, apparent power, reactive power, power factor and so on. System mainly includes signal acquisition module, the power measurement module, MCU control module, clock module, display module and relay protection module. Through the above modules working with each other, this electric power meter introduced by this paper can effectively monitor various electrical parameters to achieve the design goal. This paper describes the development of the electric power meter, the relevant basic principle and the selection of right system system scheme according to the basic principles. Then it tells the design of the hardware and software of in detail, describes the commissioning process and test results. Finally, through the test results, the paper analysis the working conditions of the whole system, and put forward the improvement on the system.

Key Words: electric power meter,power measurement, power factor, single chip microcomputer

中国民航飞行学院航空工程学院毕业论文





第 1 章 绪论 .......................................................................................................................................................3 1.1 电功率计的发展概况及现状 .............................................................................................................3 1.2 交流电功率的基本概念 .....................................................................................................................4 第 2 章 系统设计 ...............................................................................................................................................6 2.1 设计要求 .............................................................................................................................................6 2.2 总体设计方案 .....................................................................................................................................6 2.3 系统组成 .............................................................................................................................................9 第 3 章 系统硬件设计 ..................................................................................................................................... 11 3.1 MCU 控制模块 .................................................................................................................................... 11 3.2 信号采集模块 ...................................................................................................................................13 3.3 电量计量模块 ...................................................................................................................................13 3.4 时钟模块 ...........................................................................................................................................15 3.5 存储模块 ...........................................................................................................................................16 3.6 显示模块 ...........................................................................................................................................18 3.7 继电器保护模块 ...............................................................................................................................19 3.8 按键电路设计 ...................................................................................................................................20 第 4 章 系统软件设计 .....................................................................................................................................21 4.1 编译环境介绍 ...................................................................................................................................21 4.2 主程序设计 .......................................................................................................................................21 4.3 电能计量程序 ...................................................................................................................................22 4.4 显示程序 ...........................................................................................................................................24 4.5 实时时钟程序 ...................................................................................................................................24 4.6 存储模块程序 ...................................................................................................................................25 第 5 章 系统制备与调试 .................................................................................................................................27 5.1 系统硬件制作 ...................................................................................................................................27 5.2 元器件的安装 ...................................................................................................................................27 5.3 系统调试 ...........................................................................................................................................28
I

5.4 功能测试 ...........................................................................................................................................29 第 6 章 总结与改进 .........................................................................................................................................31 6.1 总结 ...................................................................................................................................................31 6.2 设计的不足与改进 ...........................................................................................................................32 致 谢 .................................................................................................................................................................33 参考文献 .............................................................................................................................................................34 附录 .....................................................................................................................................................................35 1. 原理图 ...................................................................................................................................................35 2. PCB 图 ....................................................................................................................................................35 3. 实物图 ....................................................................................................................................................36 4. 部分程序 ...............................................................................................................................................37

II

中国民航飞行学院航空工程学院毕业论文

第1章

绪论

科技发展到今天,人们的生活中涌现出各种各样的科技产品,各种各样的电子产品更 是花样百出、遍及人们生活中的每一部分。电功率计作为一种电子式电能计量仪表,在为 负载设备提供用电的同时,能够实时捕获电器设备的各项参数。功率计提供的电器设备的 各项工作参数,让人们更为方便地监测电器设备的工作状况,可以为科学节能、安全合理 地使用、维护和调校电器设备提供了有效帮助。

1.1

电功率计的发展概况及现状
电功率计是用来测量负载功率的仪器,它和其它类的仪器仪表一样,有着相同的发展

历程.按照其时间和工作原理分类,电功率表主要经历了感应式、机电式、电子式等时代。 感应式电功率表是利用电磁感应原理制成的,先将交流的电场转化为交变的磁场,从而引 起转盘的转动,由转盘所转圈数和速度即可得到所用电量和功率。机电式电功率表是感应 式向电子式电功率表的过渡产品。电子式电功率表是利用新型数字转换芯片制成,再加上 微处理器的控制可记录广泛的用电信息,还可利用这些信息产生各种控制信号,实现电功 率表的智能化,结合现在的计算机网络,还可实现远程监测功能,通过无线网络或调制解 器实现远程监控。本文就是利用国产专用电能计量芯片 RN8209 与 STC89C52 单片机设计 智能电功率模块,对市电负载电功率的在线测量,同时实现对市电用户的使用状态进行在 线监测,提供了其硬件设计,并在此硬件平台的基础上采用模块化软件设计方法实现有功 功率、无功功率、视在功率和功率因数测量。该功率表具有多功能、高精度、高性能、低 成本等特点,有一定推广价值[1]。 电功率计由功率传感器和功率指示器两部分组成。功率传感器也称功率计探头,它把 高频电信号通过能量转换为可以直接检测的电信号。功率指示器包括信号放大、变换和显 示器。显示器直接显示功率值。 功率传感器和功率指示器之间用电缆连接。为了适应不 同频率、不同功率电平和不同传输线结构的需要,一台功率计要配若干个不同功能的功率 计探头。 这种电功率表在电能表中有更为广阔的发展空间。电能表产品已经历了数次更新换代, 特别是近几年来为了与国际上电能表产品发展同步,无论是技术水平、生产水平,还是产 品质量等方面都发生了质的飞跃,新式样、新功能的电能表产品纷纷问世:从感应式电能
3

单相交流电功率计设计

表到电子式电能表,从单一计费功能的电能表到多费率、多功能电能表,从依靠人工抄表 到远程自动抄表,IC 卡电能表、多用户电能表、模块化电能表也相继研制成功并投入生产 和使用。电能表也从低附加值向高附加值过渡,技术含量大大增加。电能表不再仅作为单 一仪表而存在,已由单一的计量抄表功能向模块化、智能化、多功能、系统化和多元化发 展[2]。

1.2
1.2.1

交流电功率的基本概念
正弦交流电的基本概念

正弦交流电的大小和方向均随时间按正弦规律作周期性变化,交流电的三要素:频率 (f) 、幅值(IUE) 、相位(φ) 。我国规定用电频率(工频)是 50 赫兹,即每秒变化 50 周, 对应的周期为 0.02 秒; 按正弦规律变化的正弦交流电量在任一瞬时间的数值, 称为瞬时值, 瞬时值中的最大值叫幅值或最大值,实际中一般讲的交流电的大小都指它的有效值(正弦 量的幅值都是有效值的倍) ,例如电动机的额定电压 380V 或 220V,以及交流电流表、电 压表的读数都是有效值。在正弦交流电路中,电压和电流的频率虽相同,但二者初相位不 一定相同,它们之间的相位角差称为相位差[3]。 1.2.2 正弦交流电路中的功率以及功率因数

交流电路中主要功率有三种: 为方便起见,设一负载两端的电流初相为 0?,电压和电流之间的相位差Φ ,Um,Im 为 峰值,U,I 为有效值。则它们可分别表示为 u(t)=Umcos(ωt+Φ) i(t)=Imcosωt 那么,其接收的瞬时功率为 p(t)= u(t)i(t)= UmImcos(ω t+Φ )cosω t =UIcosΦ +UIcos(2ω t+Φ ) ① 有功功率:是瞬时功率在一个周期内的平均值,对于正弦电压及电流,复功率的实 部即有功功率,用 P 表示: P=1/2UmImcosΦ = UIcosΦ 保持用电设备正常运行所需的电功率,也就是将电能转换为其他形式能量(机械能、光 能、 热能)的电功率, 称为有功功率; 又称平均功率。 是指在电路中电阻部分所消耗的功率, 以字母 P 表示,单位主要有瓦(W)、千瓦(kW)、兆瓦(MW)、毫瓦(mW) 。
4

Um= 2 U ; Im= 2 I ;

中国民航飞行学院航空工程学院毕业论文

② 无功功率:是用来表明该电路能量交换的最大量值的。在正弦电流电路中,复功率

的虚部即无功功率,用 Q 表示 Q=1/2UmImsinΦ =UIsinΦ 由此可见,无功功率的大小反映了负载与外部电路进行能量交换的程度, 电路中存在感 性或是容性原件时,就会产生无功功率。以字母 Q 表示,单位为 var。
③ 视在功率:表示一个电器设备的容量,是电路消耗功率的最大值。在正弦电路中,

复功率的模即视在功率,用 S 表示: S=1/2UmIm=UI 所以有, S?=P?+Q? 一个正弦稳态电路中,复功率是守恒的,但是视在功率并不守恒。为与其他功率区别, 是在功率表的单位用伏安(V.A)表示[4]。
④ 功率因数

有功功率一般是小于视在功率的,也就是说要在视在功率上打一个折扣才能等于有功 功率。这折扣就是 cosΦ ,称为功率因数。也就是说有功功率与视在功率的比值即为功率 因数,用λ 表示. λ =P/S=cosΦ 功率因数是电力系统的一个重要的技术数据。功率因数是衡量电气设备效率高低的一 个系数。功率因数低,说明电路用于交变磁场转换的无功功率大, 从而降低了设备的利 用率,增加了线路供电损失[5]。 由上所述可知,有功功率 UIcosΦ ,就是负载所消耗的功率,而有功功率 UIsinΦ ,则是 负载与外部电路进行能量交换的功率,负载并没有消耗它。因此,从能量的角度考虑,衡 量用户用电多少的标准应是有功功率。

5

单相交流电功率计设计

第2章
2.1 设计要求

系统设计

设计并制作一个基于单片机的交流电功率计,设计的主要要求如下: (1)该交流电功率计能实现对单相交流电量的测量,能测量并显示当前的电压和电 流的有效值; (2)可以显示有功功率、无功功率和视载功率,并指示出电路的功率因数; (3)显示当前时间,断电时间继续运行; (4)可设置过流断开门限,停电不丢失门限数据; (5)电参数 LCD 显示;

2.2
2.2.1

总体设计方案
设计思路

要求设计的是一个能到达相关要求的电功率计,以监测电网的用电状况,显示相关的 电量参数。首先应该能对电网的电压和电流进行正确的采样,A/D 转换后按照电路知识以 及前面的分析,对电压和电流进行处理,得到相关的要求参数。通过 MCU 处理后产生相 关的显示和控制信号。 在绪论中已经论述了实现功率计算的数字运算方案。可以看出,实现功率计算的全数 字运算方案主要包括 A/D 转换,数字相乘和数字滤波三部分。实现功率计算后,再配有其 他功能模块,就能显示相关的要求数据并产生控制信号[6]。 2.2.2 方案一: 系统方案论证与比较 A/D 转换器和 MCS-51 单片机

大家都知道, MCS-51 单片机内部有中央处理器(运算器、 控制器和寄存器)和存储器, 因此可进行数字相乘和滤波运算,但由于其内部没有 A/D 转换器,所以需要和专门的 A/D 转换器配套使用,其原理框图如图 2.1 所示。
6

中国民航飞行学院航空工程学院毕业论文

电压 电流

电压电流 传感器

A/D 转换器

用 MCU 51 类单片机实现数 字相乘、滤波和系统控制

图 2.1 用 A/D 转换器和 MCS-51 单片机实现电功率表方案

相关公式有: 电压有效值 U ? 有功功率 P ? 1 N
1 N
N

?u
i ?1

i

2 (i )

,电流有效值 I ?

1 N

?u
i ?1

i

2 (i )



?u
n ?1

(n)

? i( n ) ,视在功率

S ?U ?I ,

功率因数 cos? ? P / S

……

这种方案是负载的电压和电流传感器产生的可识别电压信号先经过 A/D 转换器,转换 为全数字信号,然后用 MCS-51 单片机编程实现数字相乘和滤波,可以方便地得出题目所要 求的电流、电压、有功、无功等参数。但是采用这种方案要求 MCU 进行大量的数学运算, 且单片机的截断误差影响较大,使得最终的结果不会很精确。此外,数学运算会占用大 量的 MCU 时间,使得我们很难去完成其他的附加功能。对于电压和电流突变状况不能有效 测量,会出现一些误差,而且该方案使用了较多的硬件模块,不便于调试。 方案二: 专用电能计量芯片和单片机

随着电子电表的快速发展,目前市场上出现了很多种专用电能计量芯片如,深圳锐 能微的 RN82╳╳系列,Cirrus Logic 公司的 CS546╳系列[7],ADI 公司生产的 ADE77╳╳ 系列等。它们的基本原理和基本功能是一样的,都含有 A/D 转换,数字相乘和滤波部分, 且均有数字-频率转换部分,将计算得到的数字功率信号转化为频率,输出相应频率的脉 冲信号。只是它们在具体功能上有所不同,有些则还提供无功功率,视在功率,电流和 电压有效值等更多电能参数。利用这类专用电能计量芯片和 STC89C52 单片机配合使用, 可以很方便地开发出一些应用系统[8],其原理框图如图 2.2 所示。
电压电流 传感器 专用电能计 量芯片 用 STC89C52 单片机 实现系统控制

电压 电流

图 2.2 用专用电能计量芯片和 STC89C52 单片机实现电功率表方案

7

单相交流电功率计设计

由图 2.2 可知,负载的电压和电流传感器产生的可识别电压信号直接经过专用电能计 量芯片产生频率与负载功率成正比的脉冲信号,并在相应寄存器内存有相应的用电信息, 通过与单片机进行通信,读出相关寄存器内的信息,从而得到有功功率、无功功率、电 压、电流等一系列参数,在 MCU 中通过运算可以得到功率因数等其他信息,产生并产生 系统所需控制信号,完成整个系统的功能。目前市场上也大多采用这类方案。 方案三: MSP430FE42x 系列

微控制器(MCU)-MSP430FE42x 系列是 TI 公司生产的用于电子式电能表的片上系统, 它具有完全可编程的通信功能,完全能满足从事开发诸如测量值自动读取(AMR)、智能卡 预付和多费率计费等具有复杂功能的电子式电能表制造的需要。它具有高性能的 16-位 RISC 结构指令的 CPU,可实现实时信号处理和多任务计算处理;其内部集成有 SCAN IF 模块,可以检测信号,并实现 A/D 转换,最终实现低功率测量。因此。可以对其编程,使 它实现从 A/D 转换到数字相乘和滤波的全部数字处理过程,从而产生数字化的功率信息, 在此基础上产生系统所需控制信号,完成整个系统的功能[9],其原理框图如图图 2.3 所示。
电压 电流 图 2.3 用微控制器(MCU)-MSP430FE42x 实现电功率表方案 电压电流 传感器 用微控制器(MCU)-MSP430FE42x 实现 A/D 转 换,数字相乘和滤波及系统控制

以上方案中,方案一成本较低,但是采用这种方案要求 MCU 进行大量的数学运算,且 单片机的截断误差影响较大,使得最终的结果不会很精确。此外,数学运算会占用大量 的 MCU 时间,使得我们很难去完成其他的附加功能。方案二,成本适中,主要的电量运算 由专用的电能计量芯片完成,单片机完成对数据的读取,处理等,编程简单,精度较高。 方案三,虽然 MCU 的运算速度能够达到要求,但是成本较高,编程比较复杂,难度较大。 综上所述,出于成本和难度考虑,本设计采用方案二,并选择使用专用电能计量芯片 RN8209G 实现。将采样后的电压与电流送入 RN8209G 进行测算,通过 STC89C52 单片机 与 RN8209G 进行通信,读取对应寄存器内的信息,进行处理后得到相关的电量参数。辅 助以其他模块包括信号采集模块,时钟模块,显示模块,存储模块,控制模块,继电器 保护模块以及按键控制模块等,实现电功率计的制作。

8

中国民航飞行学院航空工程学院毕业论文

2.3

系统组成
通过上述论证,系统方案的选定是利用专用电能计量芯片 RN8209G 对用电状况进行

监测,这里再辅助以采集模块,时钟模块,显示模块,存储模块,控制模块,继电器保护 模块以及按键控制模块等就能实现设计要求,系统框图如图 2.4 所示。
键盘 时钟 备用电源

存储器 计量芯片 MCU 电源 电流信号 电压信号

家用 220V 线路

继电器

显示

图 2.4 系统框图

信号采集模块: 利用精密小电阻对电网电流进行采样, 利用电阻分压对电压进行采样, 送入计量模块。 计量模块:利用高精度电能计量芯片 RN8209G 对送入的电压和电流信号进行处理, 设计过程中参考相关技术手册和参考电路图。 时钟模块:利用专业时钟芯片 DS1302,配合控制芯片与显示模块显示出时间。 显示模块:使用 LCD12864 液晶对要显示的各种信息进行显示。 存储模块:使用 AT24C02 对要存储的相关重要参数进行存储,达到掉电保护效果。 控制模块:利用 STC89C52 控制所有芯片的工作、与各芯片进行数据交换,测量并进 行计算,送往显示模块和存储模块进行实时显示和存储。 继电器模块:主要由继电器 HK4100F-DC5V-SHG 实现对电路的通断保护,电网出现 异常电流超过设置的警报门限时,控制模块输出控制信号,经三极管放大后控制继电器断 开,防止用电设备损坏。 按键输入模块:通过 MCU 对按键电路的识别,达到对系统的控制效果。 以上各模块根据各自的特点配置硬件电路,经过控制模块进行工作,再配上一些其他 的部分,包括按键、电源等,就能基本实现电功率计的设计要求。
9

单相交流电功率计设计

10

中国民航飞行学院航空工程学院毕业论文

第3章

系统硬件设计

由上述分析可知,系统包括 MCU 控制模块,信号采集模块,电量计量模块,时钟模 块,存储模块,显示模块,以及继电器保护和按键控制等其他模块组成。下面主要介绍各 模块的基本原理,主控芯片特点以及其与其他模块间的硬件连接与信息交互状况。

3.1

MCU 控制模块
本设计采用 STC89C52 单片机作为控制系统的核心。STC89C52 使用经典的 MCS-51

内核,但做了很多的改进使得芯片具有传统 51 单片机不具备的功能。在单芯片上,拥有 灵巧的 8 位 CPU 和在系统可编程 Flash, 使得 STC89C52 为众多嵌入式控制应用系统提供 高灵活、超有效的解决方案。 3.1.1 单片机介绍 具有以下标准功能:8k 字节 Flash,512 字节 RAM, 32 位 I/O 口线,看门狗定时器, 内置 4KB EEPROM,MAX810 复位电路,3 个 16 位定时器/计数器,4 个外部中断,一个 7 向量 4 级中断结构 (兼容传统 51 的 5 向量 2 级中断结构)全双工串行口。 , 另外 STC89C52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作, 允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存, 振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率 35MHz,6T/12T 可选[10],STC89C52 单片机引脚图如图 3.1 所示。

图 3.1 STC89C52 单片机引脚图
11

单相交流电功率计设计

STC89S52 芯片具有以下特性

[11]



(1)指令集和芯片引脚与 Intel 公司的 8051 兼容; (2)32 个双向 I/O 口; (3)3 个 16 位可编程定时/计数器; (4)中断唤醒省电模式; (5)看门狗(WDT)电路; (6)灵活的 ISP 字节和分页编程; (7)8K 可反复擦写(>1000 次)ISP Flash ROM; (8)4.5~5.5V 工作电压; (9)双数据寄存器指针; (10)低功耗空闲和省电模式; (11)振荡器和时钟电路的全静态工作频率为 0~33MHz。 3.1.2 单片机硬件电路

系统单片机主控电路是整个设计方案的控制运算核心,单片机控制模块电路由单片机 STC89S52 及晶振电路、复位电路组成,该部分电路的设计如图 3.2 所示。

图 3.2 单片机控制模块电路

图 3.2 所示电路图为 STC89C52 单片机的最小系统图,即能保证单片机正常运行工作 的最简单硬件电路图[12]。单片机通过其他各模块的交互连接,通过程序控制其他模块相互 配合工作,包括相互控制,数据交换等,实现最终的设计要求。
12

中国民航飞行学院航空工程学院毕业论文

3.2

信号采集模块
信号采集模块主要用于对电路的电压和电流进行采样,送入计量模块进行计算。根据

计量芯片 RN8209G 的输入端配置情况,参考其数据手册,RN8209G 包括三路 ADC,一路 用于相线电流采样,一路用于零线电流采样,一路用于电压采样。ADC 采用全差分方式输 入,电流、电压通道的最大信号输入幅度为峰值 1000mv。 实际电路中,我们只对一路电流进行采样,而不进行防窃电设计。电流通道用小电阻 对电流进行采样,得到不大于 1000mv 峰值的小电压信号,小电阻选用 0.01 欧姆的精密电 阻;电压通道采用电阻分压进行采样,得到不大于 1000mv 峰值的小电压信号,分压比例 为 1000:1,选用分压电阻为 1M 欧姆与 1K 欧姆的电阻,设计电压和电流采样模块如图 3.3 所示。

图 3.3 采样电路

3.3

电量计量模块
采样电路得到的电压信号、电流信号通过 V1P、VIN、V3P、V3N 接口送入电能表芯

片 RN8209G,芯片经校正、放大、滤波、采样、计算,计算出瞬时功率,并根据周期计数 寄存器内设定的计数周期计算出功率值、电流有效值、电压有效值,并将其存入相应的寄 存器中,然后单片机通过与芯片通信将相应寄存器中的电压有效值、电流有效值、和有功 功率读出, 进行处理后并送予液晶显示。 RN8209G 也可将电能转化成与电能成正比的脉冲, 由 QF 和 PF 口输出,以便于电能表的检定 。
[13]

13

单相交流电功率计设计

3.3.1

电能计量 RN8209 介绍

RN8209G 是一款高可靠性、高精度的优质 IC,已经得到了国内很多大型电表厂的选 用量产。 功能简介 RN8209G 能够测量有功功率、 有功能量, 并能同时提供两路独立的有功功率和有效值、 电压有效值、线频率、过零中断等,可以实现灵活的防窃电方案。 RN8209G 支持全数字增益、相位和 offset 校正。有功电能脉冲从 PF 管脚输出,用户 自定义电能脉冲频率从 QF 引脚输出。 RN8209 提供两个串行接口 SPI 和 RSIO,方便与外部 MCU 之间进行通信。 RN8209 内部的电压监控电路可以保证上电和断电时芯片的可靠工作。 系统框图 RN8209 系统框图如图 3.4 所示。

图 3.4 RN8209 系统框图

3.3.2

电能计量模块的电路连接

由于设计的功能比较简单, 电路中只对相线电流进行采样, 而不进行防窃电检测设计。 采样电路得到的电流信号、电压信号通过 V1P、VIN、V3P、V3N 接口,送入计量芯片, 根据数据手册配置相关外围电路,与 STC89C52 的通信方式采用 SPI 接口通信,电能计量 模块的电路连接图 3.5 所示。
14

中国民航飞行学院航空工程学院毕业论文

图 3.5 电能计量模块线路连接

电路中,V1P、VIN、V3P、V3N 分别与电流采样电路和电压采样电路的端口相连; SPI 通信接口中,SCSN 与单片机的 P3^4 相连,RSCL 与单片机的 P3^5 相连,SDI 与单片 机的 P3^6 相连,SDO 与单片机的 P3^7 相连,实现单片机与计量芯片的通信。

3.4

时钟模块
系统需要时间显示,就需要时钟芯片,模块采用 DS1302。DS1302 是一种高性能、低

功耗、带 RAM 的实时时钟芯片,它工作电压宽达 2.5 一 5.5V,DS1302 是 DALLAS 公司 推出的涓流充电时钟芯片内含有一个实时时钟/日历和 31 字节静态 RAM 通过简单的串行 接口与单片机进行通信实时时钟/日历电路提供秒、分、时、日、日期、月年的信息每月的 天数和闰年的天数可自动调整时钟操作可通过 AM/PM 指示决定采用 24 或 12 小时格式 DS1302 与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线,通常 DS1302 工作时功耗很低保持数据和时钟信息时功率小于 1mW[14]。 3.4.1 时钟芯片 DS1302 引脚图

DS13O2 的引脚分布见图 3.6。 X1 X2: 32.768KHz 晶振输入引脚。 GND: 接地引脚。
15

单相交流电功率计设计

SCLK: 串行时钟输入引脚。 I/O: 数据输入输出引脚。 RET: 复位引脚。 VCC1、VCC2: 电源引脚。

图 3.6 DS13O2 的管脚分布图

3.4.2

时钟模块电路连接

DS1302 与 STC89C52 的连接只需三条线, SCLK 、 RST 分别与 STC89C52 的 P1^3、 I/O、 P1^4、P1^5 连接。在双电源系统中提供主电源,在这种运行方式下连接到备份电源,以便 在没有主电源的情况下能保存时间信息以及数据。DS1302 由两者中的较大者供电。VCC2 是主电源, VCC1 是辅助电源。 VCC2>VCC1+0.2V 时, 当 VCC2 给 DS13O2 供电; VCC2 当 不提供电能时,由 VCC1 给 DS13O2 供电。按以上思路,设计时钟模块电路连接如图 3.7 所示。

图 3.7 时钟模块电路连接

3.5

存储模块
由于系统要进行电流限制,电流限定值由按键控制,单片机断电后,电流限定值丢失。

因此必须使用外部存储, 存储相关数据。 AT24Cxx 系列芯片由于具有很多优点,受到了广大 电子工程师的喜爱,因此应用非常广泛 。
[15]

16

中国民航飞行学院航空工程学院毕业论文

本设计使用的是 AT24C02,AT24C02 是一个 2K 位串行 CMOS E2PROM, 内部含有 256 个 8 位字节,CATALYST 公司的先进 CMOS 技术实质上减少了器件的功耗。AT24C02 有一个 16 字节页写缓冲器。 该器件通过 IIC 总线接口进行操作, 有一个专门的写保护功能。 3.5.1 存储芯片 AT24C02 介绍

AT24C02 管脚图如图 3.8 所示,其引脚相关说明如下: SCL:串行时钟信号引脚 在 SCL 输入时钟信号的上升沿将数据送入 EEPROM 器

件,并在时钟的下降沿将数据读出。 SDA:串行数据输入/输出引脚 SDA 引脚可实现双向串行数据传输。该引脚为开漏

输出,可与其它多个开漏输出器件或开集电极器件线或连接。 A0,A1,A2——地址输入引脚。当使用 24C02 时最大可级联 8 个器件,如果只有一 个 24C02 被总线寻址,这三个地址输入脚 A0,A1,A2 可悬空或拉高。 WP——写保护,当 WP 接地时,允许对器件的正常读写操作;当 WP 接高电平时, 写保护,只能进行读操作。 VCC,GND——电源,接地引脚,1.8-5.5v

图 3.8 AT24C02 的引脚功能图

3.5.2

存储模块电路连接

存储模块电路连接如图 3.9 所示。

图 3.9 存储模块电路图
17

单相交流电功率计设计

图 3.9 所示的 AT24C02 的 1、2、3 脚是三条地址线,用于确定芯片的硬件地址,本设 计将其地址引脚 A0, A1, 全部置低, A2 询问地址确定为 0xa0。 4 脚和 8 脚分别为电源、 第 地线。第 5 脚 SDA 为串行数据输入/输出,数据通过这条双向 I2C 总线串行传输,本电路 SDA 与单片机 P2^0 相连。第 6 脚 SCL 为串行时钟输入线,与单片机 P2^1 相连。

3.6

显示模块
系统显示器采用 LCD 液晶显示器显示,LCD 显示画面较好,抗干扰能力强,可以节

省软硬件资源,功耗低,成本也不高。现在字符型液晶显示模块已经是单片机应用设计中 最常用的信息显示器件 。
[16]

本设计采用带字库的 LCD12864 作为显示模块,考虑到显示的实时性,故采用 LCD12864 的并行模式。 3.6.1 LCD12864 介绍

现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。 LCD12864 是 128*64 点阵的汉字图形型液晶显示模块,可以显示汉字及图形,内置 8192 个中文汉字 (16*16 点阵) 128 个字符 、 (8*16 点阵) 以及 64*256 点阵显示 RAM (GDRAM) 。 可与 CPU 直接接口,提供两种界面来连接微处理器:8 位并行及串行两种连接方式,具有 多种功能。LCD12864 有 20 个管脚,管脚说明如表 3.1 所示。
表 3.1 LCD12864 管脚说明 编号 1 2 3 4 5 6 7 8 9 10 符号 VSS VDD VL RS R/W E DB0 DB1 DB2 DB3 引脚说明 电源地 电源正极 液晶显示偏压 数据/命令选择 读/写选择 使能信号 数据0 数据1 数据2 数据3
18

编号 11 12 13 14 15 16 17 18 19 20

符号 DB4 DB5 DB6 DB7 PSB NC /RST NC LEDA LEDK

引脚说明 数据4 数据5 数据6 数据7 并串行选择 空 重置 空 背光负极 背光正极

中国民航飞行学院航空工程学院毕业论文

本次设计采用并行显示,其显示原理与 LCD1602 相似,有 8 位数据总线 D0~D7 和 RS,R/W,EN 三个控制端口,工作电压为 5V。以下是并行方式下,各重要管脚具体功能: D0--D7:数据口,将控制字或是数据字以并行方式输入 RS: 控制端口,RS=0 时,表示输入为控制指令 RS=1 时,表示输入为数据 R/W:读写端口,R/W=1 时,表示读,R/W=0 时,表示写 E: 3.6.2 使能端 显示模块电路连接

LCD12864 的并行显示虽然比串行显示占用微处理器管脚较多,但是速度比较快。为 了保证数据显示的实时性,本设计采用并行连接方式,具体连接图如图 3.10 所示。

图 3.10 显示模块电路连接

1 脚和 2 脚分别为 LCD12864 地和电源引脚,3 脚为背光调节引脚,通过 1K 电位器接 地,背光可通过电位器来调节亮度;4 脚、5 脚、6 脚为液晶片选控制引脚其中 RS 与单片 机 P1^0 连接,RW 与 P1^1 相连,E 与 P1^2 相连,数据端口 DB0 到 DB7 分别与 P0 口的 P0^0 到 P0^7 相连,19、29 脚为液晶的背光控制脚,分别接到电源和地。通过单片机内部 的程序,控制 LCD 的显示。

3.7

继电器保护模块
为了保护电路,不受电流过大而损坏,特设计继电器保护模块,用以在电流超限(由

按键设定)时断开负载。继电器选用 5V 控制的 HK4100-DC5V-SHG 六继电器,在检测电 流超限时,单片机给出控制信号,由 NPN 三极管 8050 驱动使得继电器工作。继电器的 1, 6 管脚处于连通状态,2,5 管脚是控制端,控制 1,6 端口与 4 相连还是与 3 相连,继电 器控制电路如图 3.11 所示。

19

单相交流电功率计设计

图 3.11 继电器保护模块电路

RELAY 与单片机 P1^6 口相连,正常情况下 I1 与 I1’连通,进行正常测量。当测量到 的电流超限时,单片机控制 RELAY 输出高电平,使得 NPN 基极与射极连通,继电器 2, 5 端口出线 5V 压差,继电器切换开关,I1 与 I1’断开,保护电路。电路中,DR2 为续流二 极管,作用是吸收继电器线圈在通断瞬间产生的反电势,保护电路[17]。

3.8

按键电路设计
按键设置部分采用独立式按键。Key1 与单片机的 P2^6,Key2 与单片机的 P2^5,Key3

与单片机的 P2^4,Key4 与单片机的 P2^3,Key5 与单片机的 P2^2 口相连。Key1 控制时间 设置,Key2 与 Key3 分别控制加减,Key4 控制限流设置,Key5 控制翻页显示不同的页面, 电路连接图如图 3.12 所示。

图 3.12 按键电路连接

当某一按键按下时,相应的 I/O 线变为低电平,这样通过键盘上的高低电平来检测有 无按键被按下,从而读入相应的数值,进行相应的操作,在程序中可进行消抖,减小干扰。 对应不同的按键被确定按下时,进行相应操作。

20

中国民航飞行学院航空工程学院毕业论文

第4章

系统软件设计

在单片机测量系统中,软件的重要性与硬件同等重要。硬件是躯体,软件是灵魂,但 系统的硬件电路确定之后,系统的主要功能还要靠软件来实现,而且软件的设计很大程度 上决定了系统的性能。

4.1

编译环境介绍
Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,

和汇编相比,C 在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。另 外重要的一点,只要看一下编译后生成的代码,就能体会到 Keil c51 生成的目标代码效率 非常之高,多数语句生成的代码很紧凑,容易理解。在开发大型软件时更能体现高级语言 的优势。 Keil C51 可以完成编辑、 编译、 连接、 调试、 仿真等整个开发流程。 开发人员可用 IDE 本身或其它编辑器编辑 C 或汇编源文件, 然后分别有 C51 及 A51 编辑器编译连接生成单 片机可执行的二进制文件(.HEX) ,最后通过单片机的烧写软件将 HEX 文件烧入单片机 内。软件主要三个方面:一是初始化系统;二是按键检测;三是数据采集、数据处理并进 行显示。这三个方面的操作分别在主程序中来进行。程序采用模块化的结构,这样程序结 构清楚,易编程和易读性好,也便于调试和修改[18]。 本次系统的软件设计是在 Keil 的软件环境下采用 C 语言编程和调试的, Keil 系列软件 具有良好的调试界面,优秀的编译效果,丰富的使用资料,应用十分广泛,而 C 语言功能 丰富,表达能力强,目标程序效率高,可移植性好,即具有高级语言的优点,又具有低级 语言的许多特点,两者的完美结合,很好的实现了软件功能。

4.2

主程序设计
本次设计的软件编程部分包括按键扫描程序,时钟程序,存储程序,显示程序以及单

片机读取数据后的数据处理等,其核心在于对计量芯片 RN8209G 的数据处理上,辅助以 电路其他控制部分,包括按键以及继电器控制等,实现本次设计的基本要求。
21

单相交流电功率计设计

程序的主流程图如图 4.1 所示。 开始
时钟初始化

显示初始化

是否按键 N

Y

按键操作

存储信息

电能计量

送显示



电流超限 Y 控制继电器 断开电路

等待重启

图 4.1 主流程图

4.3

电能计量程序
电能计量芯片 RN8209G 通过配置 IS 引脚使得其与单片机通过 SPI 串口进行通信,

RN8209G 的串行接口使用了包括 2 条控制线 SCSN、SCLK 和 2 条数据线 SDI、SDO 的外 接方式。RN8209G 在采集完电流和电压参数后,会对数据进行 A/D 转换、滤波,然后将 电网信息存入对应的寄存器内,单片机通过 SPI 串口通信与 RN8209G 进行数据交换,得 到对应寄存器内的信息,送显示即可。 SPI 帧包括读写操作帧、写操作帧和特殊命令帧。每一帧的传输过程如下:
22

中国民航飞行学院航空工程学院毕业论文

当 RN8209G 检测到 SCSN 下降沿时,SPI 进入通信方式,在此模式下,RN8209G 等 到 MCU 向命令寄存器传送命令字节。 命令寄存器是一个 8bit 的寄存器。对于读写操作,命令寄存器的 bit7 用来确定本次数 据传输操作的类型是读还是写操作,命令寄存器 bit6-0 是读写的寄存器地址。 写完命令寄存器,芯片解析和响应命令,开始本次数据传输。数据传输结束后,SPI 又进入通信模式,等待 CPU 向命令寄存器传送新的命令字节,图 4.2 为 RN8209G SPI 串 行通信的时序图。

图 4.2(1) 写时序

图 4.2(2) 读时序

在程序中自定义的电量计量函数如表 4.1 所示:
表 4.1 电量计量模块中自定义的函数 函数名 uchar RN8209readbyte(void) uchar RN8209readbyte(void) void WriteRN8209(uchar address,uchar *pt,uchar len) void ReadRN8209(uchar address,uchar *pt,uchar len) void mer() 功能描述 读一个字节 写一个字节 向指定寄存器写入数据 从指定寄存器读出数据 将相关数据进行处理,送显示

本部分设计在 void mer()子程序中,对具体得到的数据进行了处理显示,包括对继 电器的控制,是本次设计的核心程序。
23

单相交流电功率计设计

4.4

显示程序
MCU 与 LCD12864 通过并行通信进行数据的读写,在 LCD12864 上电后进行初始化。

在本设计中,采用 LCD12864 的并行模式,设定显示状态为整体显示,工作模式为 8 位基本 指令集,游标移动的方向为向右。一般不会从 LCD 读数据,因此这里就不关心读的时序 图了,向 LCD12864 写数据的时序图如图 4.3 所示。

图 4.3 MCU 向 LCD12864 写入资料时序图(并行模式)

在程序中自定义的电量计量函数如表 4.2 所示。
表 4.2 显示程序中自定义的函数 函数名 void write12864(uchar wdata,bit cd) void init12864() void dis(unsigned char code *s) void gotoxy(unsigned char x,unsigned char y) 功能描述 向 LCD 写入数据或命令(cd:1 数据,0 命令) LCD 初始化 写字符串 设置显示位置

4.5

实时时钟程序
MCU 通过三个普通 I/O 口与 DS1302 的控制管脚相连,三个 I/O 口配合使用操作

DS1302, 其中 D7 口产生同步时钟, 口传送或接收数据, 口复位 DS1302。 DS1302 D6 D5 在 上电后,先在时钟/日历突发模式下连续写入 8 字节的初始量,然后写保护位制置高,每次 需要时间量时只需读取就行了。每次读取时间量时要先写入相应得寄存器地址,延时一段 时间,等数据线上数据稳定了才能读取数据,图 4.4 为 MCU 与 DS1302 通信的流程图。

24

中国民航飞行学院航空工程学院毕业论文

图 4.4 MCU 控制 DS1302 流程图

在程序中自定义的实时时钟模块函数如表 4.3 所示:
表 4.3 实时时钟软件模块中自定义的函数 函数名 void ds1302_write_byte(unsigned char addr, unsigned char d) unsigned char ds1302_read_byte(unsigned char addr) void ds1302_write_time(void) void ds1302_read_time(void) void ds1302_init(void) void disptime(void) 功能描述 向 DS1302 指定位置写入一个字节 从 DS1302 指定位置读出一个字节 向 DS130 写入时钟数据 从 DS1302 读出时钟数据 时钟初始化函数 时间显示

4.6

存储模块程序
本次设计存储模块使用的是 EPROM 24C02 进行密码保存。24C02 通过 SDA 和 SCL

两根口线可以实现与单片机的 I2C 通信。 主要工作情况: 以启动信号 START 来掌管总线,以停止信号 STOP 来释放总线; 每次通讯以 START 开始,以 STOP 结束; 启动信号 START 后紧接着发送一个地址字节,其中 7 位为被控器件的地址码,一位
25

单相交流电功率计设计

为读/写控制位 R/W,R. /W 位为 0 表示由主控向被控器件写数据, R/W 为 1 表示由主控向被 控器件读数据; 当被控器件检测到收到的地址与自己的地址相同时, 在第 9 个时钟期间反馈应答信号; 4.6.1 写通讯过程: 1. 主控在检测到总线空闲的状况下,首先发送一个 START 信号掌管总线; 2. 发送一个地址字节(包括 7 位地址码和一位 R/W); 3. 当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK); 4. 主控收到 ACK 后开始发送第一个数据字节; 5. 被控器收到数据字节后发送一个 ACK 表示继续传送数据, 发送 NACK 表示传送数 据结束; 6. 主控发送完全部数据后,发送一个停止位 STOP,结束整个通讯并且释放总线; 4.6.2 读通讯过程: 1. 主控在检测到总线空闲的状况下,首先发送一个 START 信号掌管总线; 2. 发送一个地址字节(包括 7 位地址码和一位 R/W); 3. 当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK); 4. 主控收到 ACK 后释放数据总线,开始接收第一个数据字节; 5. 主控收到数据后发送 ACK 表示继续传送数据,发送 NACK 表示传送数据结束; 6. 主控发送完全部数据后,发送一个停止位 STOP,结束整个通讯并且释放总线; 在程序中自定义的存储模块函数如表 4.4 所示:
表 4.4 存储模块软件中自定义的函数 函数名 void Start_I2c() void Stop_I2c() void SendByte(uchar c) uchar RcvByte() void Ack_I2c() void NoAck_I2c() bit ISendByte(uchar sla,uchar c) 功能描述 起动总线函数 结束总线函数 字节数据传送函数(发送) 字节数据传送函数(接收) 应答函数 非应答子函数 向无子地址器件发送字节数据函数 向无子地址器件读字节数据函数 向有子地址器件读取多字节数据函数
26

bit ISendStr(uchar sla,uchar suba_h,uchar suba_l,uchar *s,uchar no) 向有子地址器件发送多字节数据函数 bit IRcvByte(uchar sla,uchar *c) bit ISendStr(uchar sla,uchar suba,ucahr *s,uchar no)

中国民航飞行学院航空工程学院毕业论文

第5章

系统制备与调试

本章内容主要介绍本次设计的制作过程,安装过程,以及调试过程中遇到的问题,并 以数据展示最后的调试效果。将各部分均设计好之后,就应考虑如何让它们协调工作成为 一个整体。首先,利用软件 Altium Designer 6.9 根据自己设计的原理图制作 PCB 板。然后 用软件 Keil 编译程序,将程序下载到芯片中调试,修改程序,直至全部能运行为止。

5.1

系统硬件制作
在确定好实施方案后,就应该进行制作部分了。首先利用 Altium Designer 6.9 绘制原

理图,根据原理图生成的网络表格,在 PCB 图编辑页面下进行 PCB 图的绘制,这也是电 路设计过程中最为复杂的一个步骤。在 PCB 设计中,布线是完成产品设计的重要步骤,在 整个 PCB 中,以布线的设计过程限定最高,技巧最细、工作量最大。Altium Designer 6.9 拥有强大的自动布线功能,自动布线的成功率及效果与器件的摆放位置有非常大的关系, 但为了免除一些干扰和规则,本次实际布线过程中是自动布线与手动布线相结合完成的。 在本次的 PCB 绘图过程中,应注意以下问题: (1)电源线、地线的处理 电源和地线之间要有去耦电容,特别是在精密的电能计量芯片附近。主电源和地线要 比一般的信号线粗。 (2)应注意强电和弱电的干扰问题。由于本次设计是对强电进行测试,由于其干扰 比较大,故采样部分应该尽量与数据处理部分远一些,以减少干扰。 (3)比较容易发热的器件放在电路板的边缘,有利于散热。各模块内的器件应该尽 可能距离相近,易于检查。 由于本次设计的核心芯片 RN8209G 是贴片 SSOP24 封装,为了减少干扰和提高精度, 设计中的很多电容和电阻也都选择了贴片封装,管脚比较密集,间距比较窄,限于学校实 验设备的精度不够,所以此次设计完成后是在校外制作的电路板。

5.2

元器件的安装
PCB 板制作完成之后,就要进行器件安装了。首先要熟悉本次设计所选用元器件的类

型以及特点,以免在安装过程中出现失误。在安装之前应该各元器件进行检查,避免把已
27

单相交流电功率计设计

经坏掉的元器件焊入电路,给后期调试带来麻烦。对于贴片封装的元器件进行焊接时,要 特别注意焊锡量不能过多,并特别注意要逐个检查相邻管脚的通断状况是否正常,特别是 对于 RN8209G 的焊接过程中,由于管脚很密,所以对于焊锡量的控制要十分精准,并要 对于相邻管脚测试通断[19]。 焊接过程中应该对照原理图和 PCB 图进行焊接,特别注意元器件的电源与地线的焊 接,否则可能会损坏元器件。安装过程中 应该先安装比较难焊接的芯片,以防止器件过 多时给焊接带来不便。

5.3

系统调试
元器件焊接完成后,电路就基本成型了,下面就是要对电路进行调试,达到预期效果。

根据方案设计的要求,测试过程共分为三大部分:硬件调试、软件调试和软硬件联调。 电路按模块调试,各模块逐个调试后,再进行联调。单片机软件先在最小系统板上调 试,确保外部电路正常工作后,再与硬件系统联调。 5.3.1 硬件调试

硬件调试,查看个硬件模块电路的连线是否与逻辑图一致,用万用表检测有无短路或 短路现象,器件的规格、极性是否有误。检查完毕,用万用表测量一下电路板正负电源端 之间的电阻,排除电源短路的可能性。 在系统通电之前,千万要查清楚有无短路,特别注意元器件的极性,上电之后要对发 热发烫或者火花现象敏感,防止出线纰漏。 5.3.2 软件调试

本系统的软件调试因 STC89C52 核心控制模块的使用而变得相对容易, keilc 软件开发 环境,能判断语法差错和逻辑差错,判断程序无误后,可以直接下载到单片机中进行调试。 5.3.3 软硬件联调

这个过程是整个设计环节中的难点,需要相当的耐心。在软件和硬件都基本调通的情 况下,进行系统的软硬件联调。按照由上向下,模块化设计的理念对模块逐个调试:首先, 调通液晶显示模块,时钟模块以及存储模块,由于以前对于这些芯片有过一些接触,因此 这里就充分发挥了 C 语言可移植性的极大优点,对于系统软件调试带来了很大方便。最主 要的问题是对于 RN8209G 的软硬件调试。首先,电路选择的通信方式是 SPI 通信,根据
28

中国民航飞行学院航空工程学院毕业论文

芯片数据手册的 SPI 通信时序,写出 RN8209G 的读写程序,为数据处理打下基础。由于 数据手册中, 没有对芯片的数据字格式进行说明, 这给芯片的数据读出带来了很大的麻烦。 我采取的办法是利用 DDS 函数信号发生器直接给入相应的信号,换算成对应的电压和电 流信号,取出对应寄存器的内容,进行比较,发现转换系数,进行程序编写。 软硬件联调过程中,我也发现了一些硬件设计时的错误,对硬件电路进行了小部分改 动。比如,设计过程中,继电器的默认管脚通断出线错误,导致我不得不将继电器拆卸下 来反过来安装;驱动继电器的三极管也选择错误,经过正确对比后,选择 NPN 8050 进行 焊接;三极管的射极输出连接继电器控制端的同时,连接一个 LED,导致继电器控制端口 的电压不足以驱动继电器工作,为此,必须拆卸下这个 LED,保证继电器在出线过流的情 况下能够正确动作,保护用电设备。

5.4

功能测试
完成了整体调试后,对本设计进行功能测试,为了检验其精度,采用人工方法对其进行

了检定。将功率计接入插座中,进行 220V 强电测试,由于负载设备不是很多,下面只对 几种常用的用电设备进行测试,测试过程中,人体一定不能与功率计直接接触。
表 5.1 市电电路负载电路测试 负载 空载 小风扇(13W) 一挡 小风扇(13W) 二挡 台灯(MT6042)9W 三星电脑 待机状态 大风扇(20W) 一挡位 大风扇(20W) 二挡位 大风扇(二挡位) +MT6042 台灯 大风扇(二挡)+小风 扇(二挡)+台灯 电压 (V) 215.4 215.5 215.6 215.0 215.1 215.2 215.3 215.1 电流 (mA) 0.0 80.0 62.6 52.4 188.2 145.2 118.3 143.9 有功功率 (mW) 0 10891 8415 7743 22452 18071 15034 23255 视在功率 (mVA) 0 17410 13468 11131 39320 30909 25272 30859 无功功率 (mVar) 0 13560 10524 7995 32288 25067 20313 20285 功率因数 无电流 0.626 0.625 0.695 0.695 0.582 0.692 0.752

214.4

201.2

30862

43124

30140

0.717

29

单相交流电功率计设计

以上数据是在市电情况下测得的各类用电器的电参数,经过分析,可知用本次设计的 电功率表测得的各类电参数应该比较准确,达到基本要求,但是由于没有测得实际的电参 数,无法进行比较。 为了验证数据的正确性,考虑安全和可操作性,下面利用变压器将 220V 交变电压降 压后,对变阻箱和电容进行测量,主要测量内容有:电压、电流、功率以及功率因数,将 测量值与计算值进行比对。 5.2 记录了 9V 变压器给不同的负载供电, 表 电功率计测得的部 分电量参数。
表 5.2 9V 变压器电路负载电路测试 负载 电压(V) 测量值 9.4 实际值 9.423 误差 0.04% 电流(mA) 测量值 / 实际值 / 误差 / 功率 (mW) / 测量值 / 功率因数 计算值 / 误差 /

空载

500 欧姆电阻

9.3

9.342

0.43%

18.6

18.52

0.43%

172

0.997

1.000

0.30%

100 欧姆电阻 10uf 电容+500 欧电阻 10uf 电容+300 欧电阻 100uf 电容+50 欧电阻

8.9

8.901

0.01%

86.3

86.39

0.10%

762

0.994

1.00

0.60%

9.5

9.476

0.25%

15.5

15.62

0.77%

123

0.852

0.843

1.06%

9.5

9.480

0.21%

21.1

20.92

0.86%

139

0.711

0.685

3.79%

8.8

8.813

0.14%

138.6

140.25

1.17%

1041

0.858

0.843

1.77%

表格中,测量值是有本次设计的电功率计测得的数值,实际值为利用万用表 ET-986 测得的数值,功率因数的计算值是根据负载特性,计算出来的数值。 通过对上述表格的分析,可知道本次设计的电功率计能够比较有效的对相应的电参数 进行测量显示,电流与电压以及功率因数都存在微小误差。其中采样的精度,变压器的带 负载能力,电网电压波动,模块间干扰以及程序处理的显示精度都有可能对最后的输出产 生影响[20],希望在以后的电路设计里可以提升精度。但总体来说,达到了设计效果。

30

中国民航飞行学院航空工程学院毕业论文

第6章

总结与改进

本次毕业设计是大学学习生活中的最后一课,我对此非常用心,整个过程中我收获了很 多。整个过程中有很多的辛酸与喜悦,失望与成功,鼓励和鞭策,这将对于我的人生都有很 重大的意义。

6.1

总结
本文详细介绍了以 STC89C52 为控制运算核心, RN8209G 为测量核心的电功率计设计 以

的设计方案以及软硬件设计理论。系统包括信号采集模块,电量计量模块,时钟模块,存储 模块,显示模块,控制模块以及继电器按键等其他模块组成。本文详细讲述了各个模块的实 现过程,通过硬件与软件调试,本次设计基本达到了设计对于电流、电压、功率以及功率因 数等电网参数监控测量的目标,能在一定程度上反应电网的用电状况。整个设计过程中我进 行了如下工作: (1)熟悉 STC89C52 的硬件内部资源,掌握 IIC 通信、串行通信、并行通信、系统时钟 等模块工作原理。 (2)设计方案的整体硬件电路。硬件电路包括控制器最小系统电路、LCD 接口电路、 按键控制电路、实时时钟电路、外扩 EEPROM 电路、电能计量电路、继电器电路等。 (3)设计电压、电流信号采集电路。电压信号采集电路采用电阻分压,电流信号采集采 用小电阻转换,两路信号采用完全差动方式输入。 (4)分别编写各个模块与 MCU 通信的软件并调试。 (5)方案整体软件的编写以及整体调试。 通过不断努力,本次设计有以下特点: (1)采用大屏 LCD 显示,精度较高,摆脱以前机械表的认读困难等问题。 (2)设计成本低,效果稳定。 (3)能够进行有效的过流保护,且电流限定值可调,对于不同的用电设备可以实现针对 性保护。 (4)能够对重要数据进行存储,有掉电保护功能。 本设计软硬件相结合,在整个设计过程中我遇到了很多困难,在老师和同学的帮助下我 学到了很多知识。在这个过程中,我学会了很多东西,真正体会到了:理论和实际还是相差很
31

单相交流电功率计设计

远的,即使理解透的理论也并不一定能够马上用于实践,这还取决于平时积累的实际经验.有 了丰富的实际经验才知道如何可以更好地运用理论知识。在此毕业设计的制作过程中,我的 专业理论知识及动手制作的能力都得到了很大的提高。在本系统的设计中,巩固了我在大学 4 年内学过的知识,尤其是单片机和 C 语言编程方面的知识。同时通过这次毕业设计提高了 单片机编程的能力,尤其是获得的软件调试经验。总之通过这次毕业设计我的专业技能得到 了很大的提高,为今后的工作学习打下了坚实的基础。

6.2

设计的不足与改进
尽管整体设计达到了基本要求,但是由于时间紧迫及自身经验和能力问题,本设计还有

缺陷,很多值得改进的地方。具体的不足和改进如下: (1)对于电压和电流的采样电路,设计中采用的是电阻分压和小电阻采样,这样对于整 体电路来说还是存在一定的误差,特别是当电压较小时,体现的比较明显。建议采用电流互 感器和电压互感器,减少误差。 (2)由于数据手册数据字格式介绍不清,没能实现电量的计算,也就没能实现电费的分 时计费等功能。也曾考虑过通过积分进行电量计算,但是千瓦时这个计量单位实在太大,存 储问题比较大。希望以后对于数据手册有了更深的了解,可以直接从对应的寄存器中读取出 来 (3)没有标准表进行校表,对应的寄存器配置不足,条件允许的话完全可以制作出来精 度比较高的电能表。 (4)电路设计过程中对于用电的保护没有做到最好,特别是通入强电的过程中,一定不 能够触碰电路板,否则会有被电到的危险。建议在制版的过程中,充分考虑强电和弱电的隔 离问题,采用更加妥当的隔离手段。 (5)电源供电,由干电池供电,这对于提倡节能的理念不相符合,应该设计出利用身市 电进行工作的电源电路,这个对于目前来说不是难事。 目前 RN8209G 作为国内智能电表最受青睐的智能芯片, 成熟的方案肯定比比皆是, 经过 以上思考,希望对于这个系统会有更好的设计方案,能达到更加的效果。

32

中国民航飞行学院航空工程学院毕业论文





在毕业论文即将完成,我想向曾经给予我帮助和支持的人表示衷心的感谢。 首先感谢中国民航飞行学院,给我提供这么好的学习生活环境,在这里学习和生活的日 子是我一生中一段难忘的经历,感谢我在大学中结识的诸位同学和朋友,他们给了我无数的 关心和鼓励,也让我的大学生活充满了温暖和欢乐。我非常珍视和他们的友谊! 论文完成之际,我要衷心感谢罗文田老师。罗文田老师在审题及资料的选择方面给予了 我许多指导,在整个毕业设计的过程中,从方案选定,硬件电路设计,系统编程以及整体电 路板的制备等各个方面给我提供了很大的帮助,给我提出了许多宝贵意见。在论文的完成过 程中,感谢各位同学和朋友给我提供的技术支持和资料介绍,以及在论文撰写和排版过程汇 总对我的帮助。由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批 评和指正。 感谢学校给我们安排的毕业设计,在实践中学到了许多从书本中学不到的知识。在论文 定稿之际,再次向罗文田老师表示深深的谢意! 最后,我要向在百忙之中抽时间对本文进行审阅、评议和参与本人论文答辩的各位老师 表示衷心的感谢。

33

单相交流电功率计设计

参考文献

[1] 林屹清, 施火泉. 基于 ATmega128L 和 RN8209 的多功能数字功率表的设计[J]. 自动化应用, 2010(11):66-68+71. [2] Longzhang F. The development and the trend of the watt meters’technology[J]. Shanghai Measurement and Testing, 2009(01):45-47. [3] 吴安澜, 李书跃, 郑小平. 电能计量基础及新技术[M]. 第二版. 北京:中国水利水电出版社, 2008. [4] 胡翔俊. 电路分析[M]北京. 第二版. 高等教育出版社, 2007. [5] Ling R, Zhiqiang W, Siyang L. Tendency of Active Power Factor Correction (APFC) Methods[J].Power Supply Technologies and Applications, 2005(07): 54-57. [6] 边晶莹, 李平舟. 一种新型电网数显功率表的电路设计[J]. 电子科技, 2009(10):18-21+76. [7] 周敏奇, 张谦. 基于 CS5460A 的智能电力控制系统[J]. 现代电子技术, 2010(01):167-170. [8] Jianhua Z, Jinru G, Xiangjiang Y, etal. The performance of single chip ICs for Watt-hour meter[J]. Electrical Measurement & Instrumentation, 2002(08):14-16+35. [9] 徐云, 叶朝锋, 秦春林. 基于 MSP430F149 的自适应功率因数测量仪的研究[J]. 现代科学仪器, 2007(06):53-56. [10] 杨金岩等. 8051 单片机数据传输接口扩展技术与应用实例[M].北京:人民邮电出版社,2005. [11] 李朝青.单片机原理及接口技术[M ].北京:北京航空航天大学出版社,2005. [12] Teplov V Y, Anisimov A V. Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Modules[J]. Instruments and Experimental Techniques, 2002(3):408-411. [13] 梁方英, 何日阳, 陈妙芳. 基于 RN8209 防窃电电能表设计[J]. 机电工程, 2010(11):106-109. [14] 刘彬,何林,范俊鸿;时钟芯片 DS1302 在校园电视信号控制系统中的应用[J]. 贵州工业大学学报,2005(05):81-83. [15] Xujin L. Based on Keil C AT24C02 Serial E~2PROM’s Programming[J]. Modern Electronics Technique, 2007(05):154-157+160. [16] Shiliang. Design of Interface between LCD1284 Display Module And Microprocessor[J]. MINING SAFETY & ENVIRONMENTAL PROTECTION, 1999(5):16-17+49. [17] Yuzhu L, Weijiang N, Zheyang L, etal. 600 V-30 A 4H-SiC SBD Used as FreewheelingDiode for IGBT Module[J]. Research & Progress of SSE Solid State Electronics, 2010(02):292-296. [18] 孙鉴. KEIL μ Vision 2 环境下仿真单片机程序[J]. 计算机辅助工程, 2006(02):74-77. [19] 郑冰. 关于电子装配表面安装技术的研究[J]. 广西轻工业, 2010(09):52-53. [20] 王琳. 系统误差分析及其减小方法[J]. 内蒙古石油化工, 2005(11):53-54.

34

中国民航飞行学院航空工程学院毕业论文

附录
1. 原理图

2. PCB 图

35

单相交流电功率计设计

3. 实物图

36

中国民航飞行学院航空工程学院毕业论文

4. 部分程序
#include <reg52.h> #include <intrins.h> #include <math.h> #define uchar unsigned char #define uint unsigned int #define Data P0 //数据端口 #define i2c_clk_delay 10 #define i2c_ack_wait_delay 50 #define i2c_datachange_delay 100 sbit DSCK=P1^3; //DS1302 sbit DSDA=P1^4; sbit DRST=P1^5; sbit CS=P3^4; //RN8209 sbit SCK=P3^5; sbit SDI=P3^6; sbit SDO=P3^7; sbit lcd_rs=P1^0; //LCD12864 sbit lcd_rw=P1^1; sbit lcd_en=P1^2; sbit lcd_rst=P2^7; sbit key1=P2^6; //按键 sbit key2=P2^5; sbit key3=P2^4; sbit key4=P2^3; sbit key5=P2^2; sbit SDA=P2^0; //AT24CXX sbit SCL=P2^1; sbit relay=P1^6; //继电器 bit ack; /*应答标志位*/ unsigned char time_buf[8]; //空年月日时分秒周 unsigned char time_buf1[8] = {20,9,3,13,18,51,00,6};//空年月日时分秒周 unsigned char TempData[8]; unsigned char FiDRSTLine[8]; uchar state=0; uchar state1=0; //按键状态 unsigned int limit=300; //电流限定值 uchar URMS[3]; //电压有效值 uchar IARMS[3]; //电流有效值 uchar PowerP[4]; //有功功率 uchar PowerQ[4]; //无功功率
37

单相交流电功率计设计

uchar EnergyP[3]; uchar dan_jia[1]; uchar limit1[2]; unsigned int R; void kay_sacn() { if(key1==0) { DelayMs(10); if(key1==0) { while(!key1); state++; if(state==4) state=0; } } if(key2==0) { DelayMs(10); if(key2==0) { while(!key2); if(state==1) { TempData[4]++; if(TempData[4]==24) TempData[4]=0; time_buf1[4]=TempData[4]; ds1302_write_time(); disptime(); } if(state==2) { TempData[5]++; if(TempData[5]==60) TempData[5]=0; time_buf1[5]=TempData[5]; ds1302_write_time(); disptime(); } if(state==3)

//耗电量

//功率因数

38

中国民航飞行学院航空工程学院毕业论文

{ TempData[6]++; if(TempData[6]==60) TempData[6]=0; time_buf1[6]=TempData[6]; ds1302_write_time(); disptime(); } if(state1==1) { ack=IRcvStr(0xa0,0x01,0x00,limit1,2); limit=limit1[0]*256+limit1[1]+10; limit1[0]=limit/256; limit1[1]=limit%256; ack=ISendStr(0xa0,0x01,0x00,limit1,2); if(limit==3000) limit=10; } if(state1==2) { ack=IRcvStr(0xa0,0x00,0x01,dan_jia,1); dan_jia[0]++; ack=ISendStr(0xa0,0x00,0x01,dan_jia,1); } } } if(key3==0) { DelayMs(10); if(key3==0) { while(!key2); if(state==1) { if(TempData[4]==0) TempData[4]=23; else TempData[4]--; time_buf1[4]=TempData[4]; ds1302_write_time(); disptime(); } if(state==2) { if(TempData[5]==0) TempData[5]=59; else TempData[5]--; time_buf1[5]=TempData[5];
39

单相交流电功率计设计

ds1302_write_time(); disptime(); } if(state==3) { if(TempData[6]==0) TempData[6]=59; else TempData[6]--; time_buf1[6]=TempData[6]; ds1302_write_time(); disptime(); } if(state1==1) { ack=IRcvStr(0xa0,0x01,0x00,limit1,2); limit=limit1[0]*256+limit1[1]-10; limit1[0]=limit/256; limit1[1]=limit%256; ack=ISendStr(0xa0,0x01,0x00,limit1,2); limit=limit-10; if(limit==10) limit=3000; } if(state1==2) { ack=IRcvStr(0xa0,0x00,0x01,dan_jia,1); dan_jia[0]--; ack=ISendStr(0xa0,0x00,0x01,dan_jia,1); } } } if(key4==0) { DelayMs(10); if(key4==0) { while(!key4); state1++; if(state1==3) state1=0; } } if(key5==0) { DelayMs(10); if(key5==0)
40

// //

中国民航飞行学院航空工程学院毕业论文

{ while(!key5); write12864(0x01,0); page++; if(page==4) page=1; } } } void displayL() { dis("电流限定:"); ack=IRcvStr(0xa0,0x01,0x00,limit1,2); limit=limit1[0]*256+limit1[1]; write12864(limit/1000+'0',1); write12864(limit%1000/100+'0',1); write12864(limit%100/10+'0',1); write12864(limit%10+'0',1); dis("mA"); } void mer() { uchar idata dat[5],dat2[5],dat3[7],dat4[7],dat5[7]; unsigned int U,I; float P,S,Q; ReadRN8209(0x24,URMS,3); //清屏

//电压

U=(float)(URMS[0]*65536+URMS[1]*256+URMS[2])/1000; dat[0]=U/10000; dat[1]=U%10000/1000; dat[2]=U%1000/100; dat[3]=U%100/10; dat[4]=U%10; ReadRN8209(0x22,IARMS,3); //电流

I=(float)(IARMS[0]*65536+IARMS[1]*256+IARMS[2])/152; dat2[0]=I/10000; dat2[1]=I%10000/1000; dat2[2]=I%1000/100; dat2[3]=I%100/10; dat2[4]=I%10; ReadRN8209(0x26,PowerP,4);
41

//有功功率

单相交流电功率计设计

if(PowerP[0]>0x7f) { PowerP[0]=255-PowerP[0]; PowerP[1]=255-PowerP[1]; PowerP[2]=255-PowerP[2]; PowerP[3]=255-PowerP[3]; } P=(float)(PowerP[0]*16777216+PowerP[1]*65536+PowerP[2]*256+PowerP[3])/468; dat3[0]=P/10000000; dat3[1]=(P-dat3[0]*10000000)/100000; dat3[2]=(P-dat3[0]*10000000-dat3[1]*100000)/10000; dat3[3]=(P-dat3[0]*10000000-dat3[1]*100000-dat3[2]*10000)/1000; dat3[4]=(P-dat3[0]*10000000-dat3[1]*100000-dat3[2]*10000-dat3[3]*1000)/100; dat3[5]=(P-dat3[0]*10000000-dat3[1]*100000-dat3[2]*10000-dat3[3]*1000-dat3[4]*100)/10; dat3[6]=(P-dat3[0]*10000000-dat3[1]*100000-dat3[2]*10000-dat3[3]*1000-dat3[4]*100-dat3[5]*10)/1; S=(float)U*I/100; // 视载功率 dat4[0]=S/10000000; dat4[1]=(S-dat4[0]*10000000)/100000; dat4[2]=(S-dat4[0]*10000000-dat4[1]*100000)/10000; dat4[3]=(S-dat4[0]*10000000-dat4[1]*100000-dat4[2]*10000)/1000; dat4[4]=(S-dat4[0]*10000000-dat4[1]*100000-dat4[2]*10000-dat4[3]*1000)/100; dat4[5]=(S-dat4[0]*10000000-dat4[1]*100000-dat4[2]*10000-dat4[3]*1000-dat4[4]*100)/10; dat4[6]=(S-dat4[0]*10000000-dat4[1]*100000-dat4[2]*10000-dat4[3]*1000-dat4[4]*100-dat4[5]*10)/1; if(P<S) Q=sqrt(S*S-P*P); //无功功率 dat5[0]=Q/10000000; dat5[1]=(Q-dat5[0]*10000000)/100000; dat5[2]=(Q-dat5[0]*10000000-dat5[1]*100000)/10000; dat5[3]=(Q-dat5[0]*10000000-dat5[1]*100000-dat5[2]*10000)/1000; dat5[4]=(Q-dat5[0]*10000000-dat5[1]*100000-dat5[2]*10000-dat5[3]*1000)/100; dat5[5]=(Q-dat5[0]*10000000-dat5[1]*100000-dat5[2]*10000-dat5[3]*1000-dat5[4]*100)/10; dat5[6]=(Q-dat5[0]*10000000-dat5[1]*100000-dat5[2]*10000-dat5[3]*1000-dat5[4]*100-dat5[5]*10)/1; if(page==1) { gotoxy(2,1); //第二行 if(!(URMS[0]&0x80)) { write12864(dat[0]+'0',1); write12864(dat[1]+'0',1); write12864(dat[2]+'0',1); write12864(dat[3]+'0',1); dis(".");
42

//电压

中国民航飞行学院航空工程学院毕业论文

write12864(dat[4]+'0',1); dis("V"); dis(" "); } if(!(IARMS[0]&0x80)) { write12864(dat2[0]+'0',1); write12864(dat2[1]+'0',1); write12864(dat2[2]+'0',1); write12864(dat2[3]+'0',1); dis("."); if(dat2[3]==0) write12864(0+'0',1); else write12864(dat2[4]+'0',1); dis("mA"); dis(" "); if(I>=(limit*10)) { relay=1; write12864(0x01,0); gotoxy(2,1); dis("电流过大"); gotoxy(3,1); dis("电路已断开"); while(1); } else relay=0; } gotoxy(4,1); displayL(); } if(page==2) { gotoxy(2,1); if(!(PowerP[0]&0x80)==1) { dis(" "); dis("P="); write12864(dat3[0]+'0',1); write12864(dat3[1]+'0',1); write12864(dat3[2]+'0',1); write12864(dat3[3]+'0',1); write12864(dat3[4]+'0',1); write12864(dat3[5]+'0',1); write12864(dat3[6]+'0',1);
43

//电流

//第四行 //limit

//第二行 //有功功率

单相交流电功率计设计

dis("mW"); dis(" "); } gotoxy(3,1); dis(" "); dis("S="); write12864(dat4[0]+'0',1); write12864(dat4[1]+'0',1); write12864(dat4[2]+'0',1); write12864(dat4[3]+'0',1); write12864(dat4[4]+'0',1); write12864(dat4[5]+'0',1); if(dat2[3]==0) write12864(0+'0',1); else write12864(dat4[6]+'0',1); dis("mVA"); dis(" "); gotoxy(4,1); dis(" "); dis("Q="); write12864(dat5[0]+'0',1); write12864(dat5[1]+'0',1); write12864(dat5[2]+'0',1); write12864(dat5[3]+'0',1); write12864(dat5[4]+'0',1); write12864(dat5[5]+'0',1); if(dat2[3]==0) write12864(0+'0',1); else write12864(dat5[6]+'0',1); dis("mVar"); dis(" "); } if(page==3) { gotoxy(2,1); if(dat3[6]==0){dis("无电流:");} else { //第三行 视载功率

//第四行 无功功率

//第四行

R=P/S*1000; dis("功率因子:"); write12864(R/1000+'0',1); dis("."); write12864(R%1000/100+'0',1);
44

//功率因数

中国民航飞行学院航空工程学院毕业论文

write12864(R%100/10+'0',1); write12864(R%10/1+'0',1); } } } main() { lcd_rst=1; ds1302_init(); /*DS302 初始化函数*/ init12864(); //初始化 LCD DelayMs(15); //延时用于稳定功能 relay=0; while(1) { kay_sacn(); if(state==0) { disptime(); //液晶显示时间信息 } mer(); } }

45


相关文章:
单相、三相交流电路功率计算公式
公 式 单 位 说 明 有功功率 单相电路 视在功率 无功功率 功率因数 有功功率 视在功率 无功功率 三相对称电路 功率因数 线电压、线电流 相电压、相电流 ...
单相、三相交流电路功率计算公式
单相三相交流电路功率计算公式_物理_自然科学_专业资料。公式 单相单相三相交流电路功率计算公式项 目有功功率 单相电路 视在功率 无功功率 功率因数 有功...
更多相关标签: