基于单片机的分时计费智能电表设计学位论文.docx
- 文档编号:10330078
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:44
- 大小:664.93KB
基于单片机的分时计费智能电表设计学位论文.docx
《基于单片机的分时计费智能电表设计学位论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的分时计费智能电表设计学位论文.docx(44页珍藏版)》请在冰豆网上搜索。
基于单片机的分时计费智能电表设计学位论文
1前言
随着我国经济的不断发展,各地对电能的需求也随之迅速增加,电力已经成为国家的最重要能源。
因此我们需要尽可能的节约用电。
但是,当前我国大多数地方对于用电的管理还比较落后,用电收费多年来一直采用先用电、后抄表、再付费的传统方式。
居民用电绝大多数实行“分表制”,即若干集中居住的家庭使用一个总的电表,每户装一个分电表,作为居民交付电费的依据。
加上现在很多电表不能分时计费,这样就进一步增加了电量的不合理消耗。
所以,我们一致决定选择了基于单片机的分时计费智能电表设计。
所谓智能电表,就是应用计算机技术,通讯技术等,形成以智能芯片(如CPU)为核心,具有电功率计量计时、计费、与上位机通讯、用电管理等功能的电度表。
本新型智能电表主要实现分时智能计费。
本次设计主要采用AD7755电能计量芯片和STC89C52单片机为核心,结合电流、电压采集,再通过信号滤波传给AD7755,再经过STC89C52处理,最终在键控的触发下,送到LCD1602显示。
此电表能实现用户所用功率的计算,并根据国家规定的用电高峰和低谷设置阶梯电价计算,并显示出用户各时段所耗功率。
不仅具有传统电表的功能,还能对用户的用电情况进行管理和控制,智能电表利用微机技术,通讯技术等等,减少了能量的消耗,把采集,处理集中于一体,节省成本和人力资源,提高了工作效率,适应了现代用户的需求。
本设计的意义在于能够实现电表的分时段计费功能,这对我国在控制人们合理使用电量上具有深远的影响。
2总体方案设计
本电表采用分时计费原则,将电压,电流等参数进行采集,并通过处理后输入微处理器STC89C52,进行运算,并最终实现对于电能的准确计量和控制显示。
通过查阅大量相关技术资料,在老师的建议下,结合自己的实际知识,我们主要提出了两种技术方案来实现系统功能。
下面将首先对这两种方案的组成框图和实现原理分别进行说明,并分析比较它们的特点,然后阐述最终选择方案的原因。
2.1方案比较
智能电表的设计,是基于对用户电压电流信号进行采集,并通过微处理器进行核心运算,当电压电流信号通过采集以后,通过高精度的AD采样保持,最终输入微处理器,并通过用C语言编写的程序键控控制处理器单片机,并且要求通过功率和电费的计算,进行显示。
对于电力参数的测试,例如电压,电流,有功功率,无功功率等,现在都有成熟的测量计算方法,对于电压有效值的测量,可以利用积分电路来实现,也可以利用时间采样信号,将信号值平方,去均值以后,得到平方根,通过AD,进行采样,有功功率定义为
,
和
为电压和电流的有效值,
为功率因数。
而对于非正弦波形的计算,只有通过积分运算来完成。
2.1.1方案一
在本设计方案中,核心器件为微处理器,这里我们选用是STC89C52单片机,当信号采样后通过AD转换,送入微处理器,进行数据的分析和计算,智能电表的实现必须对用户的功率进行准确的计算,在信号采集模块中,通过电压互感器和电流互感器,对用户的电压和电流信号进行采集,微处理器进行功率和电费的计算,可通过LCD显示,并可以通过键盘对分时电价进行调整,实现显示的转换和调整,并运用单片机内部时钟设计计时系统,以实现分时的控制。
但是此设计有诸多缺陷,首先,在信号采集方面,由于智能电表对于功率的计算,如果单纯的使用单片机,会造成功率计算不准确,如果要提高计算的精度,对于信号的AD转换就必须采用高精度期间,成本费用增加,其次即便使用了高精度的AD,在功率计算,补偿方面的程序也相对繁琐,再则,由于使用分时计费系统,只用单片机内部时钟信号进行粗略的计时,产生的时间误差比较大,长时间的使用下会导致计时不准确,而使得电费的计算出现误差。
软件系统方面,其核心是编写功率计算程序和AD采样程序,并通过键盘扫描实现显示的切换。
方案一如图2.1所示
图2.1
2.1.2方案二
本方案的设计思路与方案一大致相同,选用STC89C52单片机,作为微处理器,通过电压传感器,电流传感器实现对用户的电压电流采集,并在单片机中进行电价的计算,与方案一的不同之处在于,方案二中功率计算部分和AD转换采集部分被一块电能计量芯片AD7755进行代替,该芯片是以一款高准确度的三相电能采集芯片,适用于计量各种三相,单项配置条件下的有功,无功,视在电能,可省去高精度AD的费用的同时,也可以减少单片机内部处理功率的步骤,转由AD7755完成。
同时,由于该智能电表采用分时计费系统,方案二中采用一块时钟芯片以提高对于时间的计时准确程度,以确保该电表可以准确计费,同时,由于时钟芯片本身集成有微型电池,可以在断电的情况下继续运行,保证了在智能电表断电的同时,计时系统不至于停止工作。
在本方案中,由AD7755进行功率的计算并进行校准,在该芯片中,通过有功增益寄存器写入数据,可对输出产生的平均功率进行改变,该芯片中在每个相位集成了一个有功偏移寄存器,该寄存器为12位寄存器,用以对有功功率进行校准,由于实际电路的工作环境的复杂和多变,以及芯片本身制造工艺和各通道之间进行的干扰,都会造成误差的产生,有功功率寄存器的一个LSB相当于有功功率乘法器输出的LSB的1/16。
在满刻度输出时,如果乘法器的输出为XCCCCS(838861d),LPF2输出端的1个LSB相当于在电流通道满刻度-60dB计量误差的
0.0075%。
在满刻度时,-60dB(输入信号级别为满刻度信号输入的1/1000),
LPF2的平均数值为838.861(838,861/1,000)。
LSB=1/838.861/16×100%=测量值
的0.0075%。
有功功率偏移寄存器修正分辨率为0.0075%(−60dB)。
方案二如图2.2所示
图2.2
另外AD7755的各相拥有一个空载阀值,如果有功功率的测量值低于满刻度的0.005%,则该值不会被累加,有效的避免了电表的浅动。
AD7755通过41个电能寄存器连续累加有功功率以实现对信号的积分作用,这种离散的累加作用就相当于连续时间的积分作用,平均有功功率的计算时,是有符号运算的,负电能将会在有功功率寄存器中被扣除。
当有功功率为正,且达到最大值时,有功功率的数值将反转到达满刻度的负值0X800,并继续增加,当有功功率为负值,且持续减小到达最小时,会自动转为正的对大刻度0X7FFF,并继续降低。
2.2方案比较及选择
虽然两种方案都能实现本次设计。
但是在软件系统上,方案二与方案一的区别重点在对于AD7755和DS1302两块芯片的程序的书写,在硬件的搭建上降低了难度,但是在程序书写上难度有所增加。
而且方案二增加了时钟芯片,这样增加了STC89C52的精确度和灵敏度,增强了系统的实时性,时效性。
通过对以上两种方案的具体描述,对他们各自的优缺点有了一定的了解。
考虑到控制精度,操作习惯和美观以及成本等因素,要完成对于电费的准确计算,并综合本次课程设计成本进行考虑,最终选择了方案二为本次设计的最终设计方案。
3单元模块设计
本系统主要包括以下部分:
电源模块电路、信号采集电路、计量模块电路、时钟及LCD显示模块电路。
辅助元件有电阻、电容、晶振、电源、按键等。
先对各模块分别作具体介绍:
3.1各单元模块功能介绍及电路设计
3.1.1电源模块电路
电源模块电路从电网220V电压作为输入,通过该电路后,输出端输出大小为5V的电压,作为单片机及其他芯片的VCC电源,具体的电路图如图3.1所示:
图3.1电源模块接线图
图3.1为电压模块的电路图,该模块以电网220交流电作为输入,通过整流桥整流后,再经过滤波,最后通过一块78L05稳压芯片进行稳压,得到一个稳定的5V电源,78L05的输出电流可达到100mA,无需外接元件,内部本身带有热过载保护,内部短路电流限制。
通过Proteus软件仿真可以看到,通过该电源模块可以很好的工作,并最终得到一个稳定的5V的电源。
然后此5V的电压就可以供给STC89C52和时钟芯片DS1302。
3.1.2计量模块电路
计量模块的核心是通过一块AD7755芯片来完成,通过信号采集电路,将变换后的电压电流信号输入到该芯片,AD7755是一款高准确度的三相电能计量芯片,带有两路脉冲输出功能和一个串行接口。
AD7755集成了二
阶Σ-D模数转换器,数字积分器,基准电路,温度传感器,以及所有进行有
功,无功和视在电能计量以及有效值计量所需的信号处理元件。
图3.2计量模块电路接线图
图3.2为芯片AD7755的具体接线图,AD7755作为一款适用范围极广且功能强大的电能计量芯片在本次设计中担任了重要的角色,通过CF管脚直接与单片机连接,与单片机实现数据之间相互通信,从而实现功率的计算,其中CF管脚与单片机P3.5连接。
3.1.3时钟及LCD显示模块
本次设计中,该电表要实现分时计费,既必须引入时钟系统,该时钟系统必须准确,且在电表短时间断电之内,不会停止工作,因此,该模块采用了一块时钟芯片DS1302,该芯片为一款使用很广泛的时钟芯片,具体电路图如图3.3所示:
图3.3DS1302接线图
图3.3为时钟芯片DS1302的连线图,其中SCLK与单片机P1.2口连接,RST与单片机P1.3口连接,IO与单片机P1.2口连接。
通过该芯片可以提供比较精确的万年历。
同时智能电表的显示模块选用LCD显示,下图为LCD1602显示电路:
图3.4LCD1602接线图
通过该LCD液晶显示器,显示我们需要的一些信息。
上述两个模块通过与STC89C52单片机进行连接,可以实现万年历的功能,且可以保证,在智能电表短时间断电的情况下,时钟不会停止运行,继而使智能电表的分时计费系统可以准确的运行,我们用Proteus仿真,电路图如图3.5所示:
图3.5LCD显示电路仿真图
图3.5为LCD1602显示模块,上图中可以通过按键对LCD显示进行调整,可以显示,分时电价,余额等信息。
3.1.4信号采集电路模块
本次设计为智能电表,所以要对用户的电压和电流都进行采样,再通过AD7755芯片来得到一个较为准确的功率值并输入单片机中,因此电压电流的采集电路如图3.6所示:
图3.6信号采集电路
图3.6为电流电压采集电路,在电流采集电路中,通过将电流互感器TA32BM串联到用户电路中,以采集用户的电流信息,TA32BM额定输入输出为5A/2.5mA,通过电流互感器将大电流转换到AD7755可以接受的小电流范围内,然后通过滤波降低信号的干扰,最终输入芯片,在电压采集电路中,通过将电压互感器TV31B-02并联到用户的负载上,采集用户的电压信息,TV31B-02是一款电流型电压互感器,额定电流是2mA/2mA,所以要在电压互感器的缘边串联一个51K的电阻以降低互感器原边电流值到可承受的范围,最后通过RC电路滤波后,得到一个近似0.5V的电压以输入到AD7755芯片,和前面的电流值一起,计算出用户的功率。
电压互感器相当于一个内阻很小的电压源,正常运行时它的负载阻抗会很大,相当于开路状态,二次侧只有很小的电流,当二次侧短路时,负载阻抗为零,将产生很大的短路电流,会将电压互感器烧坏。
因此,电压互感器二次侧严禁短路。
电流互感器在正常运行时,二次电流产生的磁通势对一次电流产生的磁通
势起去磁作用,励磁电流很小,铁芯中的总磁通就很小,二次绕组的感应电动势不会超过几十伏。
如果二次侧开路,二次电流的去磁作用消失,其一次电流完全变为励磁电流,会引起铁芯内磁通剧增,铁芯处于高度饱和状态,加之二次绕组的匝数很多,就会在二次绕组两端产生很高(甚至可达数千伏)的电压,不但可能损坏二次绕组的绝缘,再者,由于磁感应强度剧增,使铁芯损耗增大,严重发热,甚至烧坏绝缘。
3.2电路参数的计算元器件的选择
因为我们要测量的范围是,负载电压不超过25V,电流不超过2A,而单片机能够接受的电压小于5V,所以我们电压采样时,用
和
电阻分压的方式,这样就算电压得到25V时,我们所采的电压也只有2.447V,单片机也能正常工作,电压采样后经过一个电压跟随器,降低输出阻抗,电流采样时,通过电压间接采样,因为我们所串联的电阻很小,并联一个
的电阻得到一个小电压,然后再放大,得到送入单片机。
3.3特殊器件介绍
3.3.1AD7755介绍
AD7755是一种高准确度电能测量集成电路,其技术指标超过了IEC1036准确度的指标要求。
ADS只在ADC和基准源中使用模拟电路,所有其它信号处理都是用数字电路。
这使AD7755在恶劣的环境下然能保持极高的准确度和长期稳定性。
AD7755内部包含一个对电源引脚的监控电路,内部相对匹配电路使电压和电流通道的相位始终是匹配的,无论通道1内的高通滤波器是接通的还是断开的。
内部的空载伐值特性保证AD7755在空载时没有潜动。
AD7755有24脚DIF和SSOP两张封装。
两个ADC对来自电流和电压传感器的电压信号进行数字化,这两个ADC都是16二阶模拟转换器。
过采样速率达900KHZ。
AD7755的模拟输入结构具有宽动态范围,大大简化了传感器接口,也简化了传感器接口,电流通道中的HPF滤掉电流信号中的直流分量,从而消除了由于电压或电流失调造成的有功功率计算上的误差。
有功功率是从瞬时功率信号计算出来的,是用电流和电压信号直接相乘得到的。
为了等到有功功率分量,只要对瞬时功率信号进行低通滤波就行。
AD7755的管脚图如图3.7所示:
图3.7AD7755管脚图
3.3.2STC89C52单片机介绍
STC89C52是一款高速度,高密度,低功耗的单片机,内置8位中央处理单元,256字节片内数据RAM,8K片内程序ROM,32个双向I/O口,还包含3个定时/计数器,拥有PDIP(40pin)和PLCC(44pin)两种封装形式,本次设计中采用40管脚双列直插封装,功能强大,可以适用于较为复杂的工作环境,STC89C52单片机管脚图如图3.8所示:
图3.8STC89C52管脚图
3.3.3DS1302时钟芯片介绍
DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。
实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。
工作电压宽达2.5~5.5V。
采用双电源供电(主电源和备用电源),可设置备用
电源充电方式,提供了对后背电源进行涓细电流充电的能力。
DS1302的外部引
脚分配如图1所示及内部结构如图2所示。
DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。
DS1302引脚脚图如图3.9:
图3.9DS12887管脚图
3.3.4LCD1602液晶显示屏介绍
LCD1602是一款工业字符型液晶显示屏,能够同时显示32个字符,内部带有80*8为的内部RAM缓冲区,可显示阿拉伯数字,引文字母大小写,常用符号和日文片假名等,每一个字符都有一个固定的代码,在本次设计中,可以通过LCD显示万年历,分时电价,剩余金额等数据信息,可以通过键盘来切换显示。
部分主要指令说明如下:
表3.1LCD1602指令码
指令码
功能
00111000
设置16*2显示,5*7点阵,8位数据接口
00001DCB
D=1开显示;D=0关显示
C=1显示光标;C=0不显示光标
B=1光标闪烁;B=0光标不闪烁
000000NS
N=1当读或写一个字符后地址加一,光标加一
N=0当读或写一个字符后地址减一,光标减一
S=1时写一个字符,整屏显示左移(N=1)或右移(N=0),以得到屏幕移动光标不移动的效果
S=0时写一个字符,整屏显示不移动
80H+地址码
设置地址数据指针
01H
显示清屏:
所有指针清零,所有显示清零
02H
显示回车:
数据指针清零
LCD1602读写时序图如图3.10、3.11所示:
图3.10LCD1602写时序图
图3.11LCD1602读时序图
4软件设计
本设计中,以STC89C52作为微处理器,采用C语言进行编程,配合硬件电
路,共同构成了本次设计的核心部分。
4.1软件设计原理及设计
本次设计采用C语言,C语言具有简洁明了的特点,在本次设计中,按照各芯片的读写操作时序,以SPI总线操作方式,分别对DS1302时钟芯片,AD7755电能计量芯片进行读写操作,即可基本完成本次设计的主要功能。
DS1302控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写(除充电寄存器外)所有寄存器内容。
DS1302与RAM相关的寄存器分为两类:
一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
而AD7755本身就是一款处理器,不要编写代码,内部已经一体化了。
本次设计的另一个重点就是显示程序,1602的显示程序同样按照其读写时序图完成,不同的是,1602的显示,需要在主程序的开始写一个初始化函数用以设定1602的显示方式,光标等等,在本次设计中,只涉及到1602的写程序,写数据时,同样需要先写入地址,写地址时,先将RS,EN置低,延迟后再将EN拉高,赋予地址,最后将EN拉低,写数据与读不同之处在于要将RS拉高其余同写地址时一样。
4.2设计软件介绍
本次设计采用KeiluVision2作为编程工具,用Proteus进行实物制作前的仿真,Keil作为现在主流的单片机编程工作具有操作简单,快捷的优点,同时可以与Proteus联动方便调节和仿真,另用STC-ISP-15XX将程序下载至单片机上运行。
下面对涉及到的软件作进一步的介绍。
4.2.1Proteus软件介绍
Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件。
Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源代码的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等。
Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。
4.2.2KEIL8051开发工具
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
4.3软件结构图
软件设计的主要功能是完成分时计费,程序流程图如图4.1所示:
图4.1主程序流程图
4.3.1电压电流采集子程序
电压电流采集子程序主要实现对电压电流信号的同步采样,其程序流程图如图4.2所示:
图4.2电压电流子程序图
4.3.2AD转换子程序
AD转换子程序主要是实现将采集的电压电流信号进行AD转换,得到单片机能处理的数据,并计算出直流功率大小,然后锁存功率,电流,电压数据,以供显示。
其程序流程图如图4.3所示:
图4.3AD转换子程序图
5系统调试
随着各种智能电表的应用与普及,这一技术在科学研究,生产过程等领域中发挥着越来越重要的作用。
在科技社会的今天,人们对电表的计精度、稳定性以及综合利用等要求愈来愈高。
因此,对电路的精确调试是必不可少的一步,为保证设计的质量,我们小组对本次设计中的软硬件进行了分块调试。
5.1单片机及LCD1602显示部分
在按照原理图将单片机的最小系统焊接完成后,我们用STC-ISP软件对其进行下载程序的调试,如图5.1所示:
图5.1程序烧写
LCD1602显示部分,在Proteus软件中进行了仿真,运行结果如图5.2所示,在确认仿真可行后,我们调用单独的显示程序,能正常显示。
图5.21602仿真图
5.2万用板电路部分调试
由于焊接的问题,首先需要检测电路是否导通,连接是否通畅。
万用板电
路主要分成三块:
电流互感器TA32B-M、电压互感器TV31作为信号转换,将
220V转换为电能处理芯片需要的信号,时钟芯片DS1302进行计时,电能处理芯片AD7755对转换后的电流电压信号进行处理,计算出负载消耗的有功、无功、视在功率,并将所得信号进行存储。
调试过程中,首先应对电流、电压互感器的输出端信号进行检测,包括信号的大小(是否符合AD7755所需信号)、波形是否符合要求,另外则应注意检查电流电压互感器与AD7755的连接是否正确。
在确定电流、电压互感器能正常工作后,就要开始调试芯片AD7755,首先,应用万用表对各个引脚进行测试。
其次,应该注意检查连线过程中的接触问题,开始时没有注意,结果发生了干扰,对于这一问题,就是将各个引脚的连线接牢。
对于时钟芯片DS1302,这款芯片的管脚需要特别加以注意,认真阅读芯片资料,否则容易将控制信号线和数据线的位置连接错误,硬件电路的调试主要使用万用表、示波器完成,主要需要注意防止短路,保证各元件在正常上电时的安全。
在本次设计中,硬件部分的调试比较顺利,软件部分就相对较难。
分时计费功能在软件部分的程序中实现较为容易,主要是分清各个时间段的收费标准,在按键的设计上,采用了复用的思想,在程序中运用了矩阵键盘扫描,但按键数量有点多,对于程序编写感到十分困难。
在软件的调试过程中,出现了一些问题,由于程序较长,有好几个全局变量比较混乱,我们对于程序的理解和把握还不是很熟悉。
以后还需要多加练习。
6系统功能、指标参数
由于时间、条件和我们自身知识上的限制,我们设计的智能电表只是简略的实现其功能,在实物的构架中,利用一块单片机开发板,并自己利用万用板搭建了其他的外围电路,因此该硬件总共分为三大部分:
电源部分,采集部分,核心处理部分。
6.1系统能实现的功能
本系统实现的功能是分时段计费。
主要实现以下功能:
(1)用户在220V电压下所用功率的计算。
(2)显示用户各时段所耗功率。
(3)具有应用LED实时显示各时段费用及总费用功能。
6.2系统指标参数分析
电源部分使用220V交流电,通过变压
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 分时 计费 智能 电表 设计 学位 论文