基于单片机的数字电能表设计

/ 2

基于单片机的数字电能表设计

杜俊生赵淑萍

山东协和学院  工学院,山东  济南  250109

1系统总体设计方案

数字化电能表机是由多个硬件模块组成的,它们各自具有各自的功能,在电能表机的硬件体系中起到了重要的作用。利用MCU将模块与模块之间统一地联系在一起,最终构成了一个具有强大功能的智能电表系统,整体设计框图具体如下:

硬件模块的详细信息:

1.MCU:用于数据处理,运算,显示,通讯等的中央处理单元。

2.时钟:为电能计在不同的时间段和不同的速率下,给出准确的时间信息,以进行电能计量。

3.在显示方面,利用液晶显示器对累积的电量或其他信息进行显示。

4.内存:当 MCU中的 RAM断电时,会失去即时的资料,所以在外部插入一块内存,用以储存在各个时间点上的电能。

5.供电:利用电力转换对主网络中220伏 AC进行降压和整流,使其成为5伏 DC。在停电时,也有专门的后备电池提供电力,以保证电量计的正常工作。

6.A/D变换:其基本功能是将所述模拟电气数据变换为能够被所述 MCU读出和工作的所述数字电气数据。将 AC高电平信号变换为可由 MCU处理的低压电平信号的电流、电压取样模块。

系统硬件设计

2.1  AT89C51单片机系统

AT89C51单片机已从最初的 MCU控制器发展成为具有强大外部扩展功能的产品,其内部的4 K字节 FLASH存储器可以进行在线的电擦除、电写入以及利用编程器对其进行重复编程[5]

除此之外,AT89C51系列的单片机还可以实现动态下载程序代码,还可以进行反复编程,因此受到了开发商和消费者的青睐。

2.2 ADC0832芯片

ADC0832是一个8比特分辨率的双通道 A/D变换器,它采用了ADC0832芯片。它小巧、兼容度高、价格比高。

ADC0832单片机的分辨率达到了256个量级,能够实现普通的模拟信号的变换。本发明所提供之模拟输出电压范围为0至5V,刚好满足电能表所需之供电需求。该芯片的变换过程只有32微秒,变换速率高,稳定性好。采用了单独的晶片支持输入方式,使得多设备的挂起及微机的控制更为便捷[7]。利用DI的数据输入,可以很容易地进行信道函数的选取。

2.3  电源模块

本文所研究的电度表适用于家庭用电,其价格的控制是电度表走向市场的重要环节。为了节省投资,可以直接使用定压的输出线路。由于电量计是一个连续工作的测量设备,所以本文的重点就放在了供电线路上。功率回路主要是为每一个组件提供电力,以确保整体电能表计的工作。

所需的硬件组件包括:

(1)一种+5 V的 DC供电,用于ADC0832芯片。

(2)一种+5 V的 DC供电,供诸如 MCU之类的数据处理装置电路使用。

在没有电力供应的情况下,它是一种用于提供实时钟表的备用电源,它是一种由3.6 V锂电池构成的备用电池。

所有的功率转换电路都使用的是交流变压器的直接降压整流,然后通过线性稳压,最终得到+5 V的 DC电压[8]

2.4电流电压采样模块

为了节约成本完成电流电压的采样,直接采用电阻获取电压和电流信号,电压、电流采集通道实现将交流高电平信号转化为单片机能够处理的低电平信号。

将被测量的交流电压通过电阻分压器进行分压,然后进行 A/D变换,将被测量的交流电压变换成数字,并在显示器上进行显示。

系统软件设计

3.1编程语言和语言的特点及选择

该设计采用了硬件电路与软件程序两种方式,因此对语言的选用是很关键的一步。在设计 MCU应用系统时,经常使用的是汇编语言与 C语言。汇编语言具有较小的存储单位和较高的运行效率。但是,这种方法对电脑的硬件要求很高,而且对程序的可读性和噪音的抑制能力都很低。而 C语言的执行效率虽然没有汇编语言那么高,但是它的语言非常简洁,使用方便、更灵活,它的运算非常丰富,数据结构类型也非常丰富,程序设计自由度很大,拥有很好的可重用性,可移植性等特点。因为目前的单片数发展到了一个很高的程度,所以里面的各种资源都比较丰富,处理的速度也很快。用 C语言对单片机进行控制,是一种很好的方法。因此,在该系统中使用了 C语言编写了该系统的软件程序。

3.2 显示程序

向LCD1602写入数据有两种模式,第一种为写入指令即初始化设置,令rs=0、rw=0,en下降沿触发写入,本次初始化设置的顺序为0x38设置字形、I/O接口;0x0c设置显示屏开启,关闭光标;0x06显示地址右移;Ox01清屏。

第二种指令为写入显示数据,将待显示的数据写入LCD1602的寄存器中,寄存器地址代表了所显示字符在LCD1602实际的位置,LCD1602将显示对应寄存器存储的待显示内容。

3.3  A/D转换器子程序

ADC0832芯片是用于电压、电流信号的模拟信号转换成数字信号,作为数字电能表中的重要部分,在设计中起到了关键的作用。下面是ADC0832芯片在数字电能表中的子程序设计的一些基本步骤:

(1)设置ADC0832芯片输入口为单端输入。设置转换器的AIN1和AIN0输入引脚对应的端口为输入。

(2)设置ADC0832芯片的转换参数。确定转换时钟频率、输入量程、指定输入端口、转换方式,并指定转换完成后的处理方式(中断或轮询),进行设置和配置。

(3)启动转换。在数字电能表中需要对电压、电流信号进行转换,将转换器的START输入引脚变为高电平,开始进行数据转换。在转换过程中需要进行采样、模拟滤波等处理,以保证转换的精度和准确性。

(4)等待转换完成。在数字电能表中,需要比较精确地判定转换结束时刻,可以使用定时器、中断等方式实现。

(5)读取转换结果。在设计中需要对转换结果进行处理和显示,读取转换结果分为单次读取和自动读取两种方式。在单次读取中,需要在转换结束后立即读取转换结果;在自动读取中,转换结束后结果会保存在一个缓冲区中,程序需要从中读取数据。

总结

基于单片机的数字电能表在电能计量和监测方面非常有用。以下是对数字电能表设计的总结:

(1)硬件设计:数字电能表的硬件设计主要包括电路板设计、电路元件选择和功率供应设计,其中功率供应设计应特别注意,因为它可以影响数字电能表的准确性和稳定性。

(2)系统软件的开发:本系统的开发包括数据采集、数据处理、数据显示三个部分。在采集数据时,要选用高精度的模数变换器,保证高的采样频率,才能准确地反映出电力信号的变化。在数据处理上,要针对不同的负荷类型,选用相应的方法,如积分法、滑动窗法等。最后,应该用一种简单易懂的方式来显示数据,比如LCD显示器。

总之,数字电能表的设计需要综合考虑硬件和软件两个方面,以确保设计的数字电能表具有高精度、高可靠性和易于使用的特点,从而为用户提供高质量的电能计量服务。

本次设计中由于各方面因素加上自己能力问题,使设计的电能表还有不足的地方,比如缺少报警装置,不足需在未来的学习工作中不断改进完善,本次设计为未来的改善提供了实践基础。

 


参考文献

[1]Steven F.Barrett.Danei lJ.Pack.Embedded System[M].北京,电子工业出版社,2020:20-25.

[2]H Mpeitel,P J deitel.C How to progarm,second Edition.蒋才鹏等译 C语言设计教程.北京,机械工业出版社,2021:14-17.

[3]黄丽霞.基于CS5460芯片的便携式数字电能表研制[J].赤峰学院学报(自然科学版),2018,29(07):87-89.

[4]胡淑坤.基于单片机的智能电能表系统设计实践[M].现代企业教育,2019:62-65.

[5]胡伟.单片机c语言程序设计及应用实例[M].北京,人民邮电出版社,2020:24-26.

[6]贺静丹.单相多功能电能表设计[M],2020:12-16.

[7]龚丹,徐晴,赵双双,周超,田正其.基于云计算的分布式电能计量检测系统研究[J].自动化与仪器仪表,2019(06):91-94+98.

论文来源:2023年本科生毕业设计发表论文