单相电子式预付费电度表单片机期末课程设计.docx
- 文档编号:9535261
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:30
- 大小:268.57KB
单相电子式预付费电度表单片机期末课程设计.docx
《单相电子式预付费电度表单片机期末课程设计.docx》由会员分享,可在线阅读,更多相关《单相电子式预付费电度表单片机期末课程设计.docx(30页珍藏版)》请在冰豆网上搜索。
单相电子式预付费电度表单片机期末课程设计
单相电子式预付费电度表
第1节引言
电度表作为电能计量工具,在国民经济各部门中得到广泛应用.长期以来,使用的都是机械式感应电度表.它具有耗电多、笨重、需要手工抄表、防窃电性能低等缺点。
随着微电子技术的迅猛发展,微控制器(单片机)和大规模集成电路在电能计量领域的广泛应用,使电度表的技术水平和性能得到长足发展。
1.1单相电子式预付费电度表概述
预付费电度表虽然只是普通计量器具,但是由于微控制器引入,对设计者提出了很高的要求。
这是因为由电源等引入的干扰很容易导致程序出错,可能引起不可预测的后果,诸如剩余电能等数据的丢失或改变、电度表死机等情况。
你家用电脑和普通仪器仪表对死机是允许的,通过人工复位、重新设置等手段就可以恢复,但对电度表而言则是致命的。
而且,预付费电度表的工作条件相当恶劣,因此,对其可靠性的要求也相对较高,一般说来主要体现在以下几个方面:
1、常年不间断运行,这要求设备具有高质量和高可靠性。
2、电度表进行校表时要经历最恶劣的慢上下电考验。
所谓慢上电是指电度表的电源电压从零到最大的时间太长,不能使单片机很可靠的复位,致使电度表工作异常;慢下电是指电源断开时,单片机的电源不会马上为零,而需要一段时间,在这段时间中,单片机中的程序指针PC可能会出错,即程序跳出正常轨道,出现混乱,甚至陷入死循环。
3、由于主要面向广大群众,要求成本尽可能低,所以在保证可靠性的前提下,要求硬件电路简单。
4、电能的计量关系到用户缴纳电费的多少,涉及经济的事实不允许出现差错,所以电度表要求对电能计量准确、精度高。
因此,电度表有多少功能并不是最重要的,关键是做到低功耗、高可靠性。
1.2本设计功能介绍和工作过程
预付费电度表具备以下功能:
1、用户将存有电能的IC卡插入卡槽,卡中电能被读入表中,同时把IC卡清”0”;
2、专卡专用.当有非本机卡或异物插入卡槽时,能及时发现,切断卡座的供电,并在液晶显示屏上给出相应的汉字提示信息。
3、电度表正常工作时,液晶显示剩余电能值、已用电能值,并随时改写剩余电能和已用的工作是否正常及用电负荷的大小。
4、当表内剩余电能不足20KW.H时,在液晶显示器上显示“请及时购电”以提醒用户余电不多,及时购电。
5、当表内剩余电能为0时,自动断电,这时用户不能用电。
在用户将重新购电的IC卡插入槽中时,表完成上述第一项的功能,恢复供电。
6、有负荷限制功能。
当用户电流大于25A时自动断电,1min后恢复供电。
7、具有掉电保护功能。
掉电时,自动把剩余电能从RAM转储在EEPROM中。
预付费电度表的工作过程如下:
1、上电时,在液晶屏上显示“电子电能表”。
随后将存放在EEPROM中的剩余电能调出到RAM中。
2、当单片机工作正常时,能显示剩余电能和已用电能。
3、当有本机IC卡插入卡槽时,根据有电卡和无电卡(空卡)做出不同的处理。
若为有电卡,则显示“正在读卡,主稍候”。
稍候显示:
“请抽卡”。
这时卡中的电能被写入表中,且将卡清零;若为空卡,则显示“空卡”。
4、当用电时,剩余电能递减,已用电能递增。
5、当插入无效卡时,系统提示“IC卡型号不对,请换卡”。
6、当电用完时,切断电源,并显示:
“电用完,请及时购电”。
第2节系统主要硬件电路设计
2.1有功电能测量的基本原理
本设计采用有功电能测量集成电路SM9903,芯片内部包含了四象限模拟乘法器、积分器、电压/频率转换器VFC、计数器(分频器)及控制逻辑,它能将正弦电压和电流相乘后,转换为频率输出。
只需对输出脉冲累计计数,就可计量出电能。
在正弦稳态情况下,设正弦电压和电流分别为:
(2-1)
(2-2)
式中,u为交流电压瞬时值,i为交流电流瞬时值,U为交流电压有效值,I为交流电流有效值,
为交流电的角频率,
=
u-
i为电压电流的相位差。
经四象限模拟乘法器相乘后的瞬时功率为:
(2-3)
可见,瞬时功率有恒定分量UI
和正弦分量两面三量两面三刀部分,正弦分量的频率是电压(或电流)频率的两倍。
图2-1正弦电流、电压和瞬时功率的波形图
在图2-1中,u是瞬时电压,i是瞬时电流,p是瞬时功率。
瞬时功率p经积分器后,得有功功率P,即
P=
(2-4)
以上分析表明,有功功率P为恒定分量,将正比于P的电压经V/F变换后,输出的是频率随P变化的脉冲,只需将脉冲累计计数,则计数值N即为电能。
2.2预付费电度表电路工作原理
预付费电度表的硬件电路可分为电能计量电路、显示电路、IC卡接口、电能存储器、掉电检测和电源几大模块。
2.2.1电能计量电路
电能计量电路采用了电度表专用集成电路SM9903。
SM9903采用3
m硅栅BICMOS工艺制成。
电路设计先进,内部集成有缓冲放大器、乘法器、V/F型A/D转换器等电路。
本芯片模拟部分和数学部分可分开供电,所以可靠性较高。
封装采用DIP20塑封。
图2-2SM903构成的电能计量电路
2.2.2控制部分
控制部分为整个电度表的心脏,实现电能脉冲、掉电信号、IC卡信号、串行EEPROM数据的采集与读写,完成显示驱动模块的控制和驱动等功能。
单片机的选择是决定电度表性能的关键因素,本设计采用MCS-51系列单片机,其特点是通用强,堆栈丰富和编程容易。
51系列单片机的指令系统中,2-3B的指令很多。
当程序指针PC跳飞至某条指令的中间时,会把操作数当成指令码执行而引起混乱,这一致命的弱点将导致电度表的可靠性下降。
图2-3由AT89C52组成的主控电路
2.2.3显示电路
本系统采用液晶显示器。
其特点是显示内容丰富(可显示汉字),功耗小,可靠性高,电路简单。
器件型号是:
SMG12232B-2,显示容量为122*32点阵。
采用总线方式连接。
图2-4液晶显示接口电路
2.2.4IC卡接口电路
IC卡接口电路采用的是Atmel公司的存储IC卡AT24C01,用于存储由售电管理系统写入的密码、卡号、电度数等,是电管部门与用户连接的桥梁。
为了提高IC卡操作的可靠性,必须有卡上下电控电路、卡插入检测电路、卡短路检测电路等辅助电路,结合软件可以大大提高其读写的准确性和可靠性。
图2-5IC卡接口电路
2.2.5电能存储器
电能存储器由串行EEPROM和上拉电阻组成,在串行时钟和数据端接了上拉电阻R25和R27,分别连接到IC4的P3.0和P3.1端。
串行EEPROM选用AT24C04,AT24C04为低电压(2.5V-5.5V)、长寿命(可擦写10万次以上)器件。
在掉电时存储剩余电度数。
图2-6电能存储电路
2.2.6掉电检测电路
掉电检测电路比较器(运放LM393)、电压基准LM336(2.5V)、R31、R32、R33、R34、R35、R36和二极管VD7组成。
图2-7掉电检测电路
2.2.7磁保持继电器驱电路
磁保持继电器使电器能使电磁线圈中保持上次驱动脉冲所注入的磁场不变,即在正常工作时不需要加驱动电流,只在需要改变触点状态时加上200ms左右的反向脉冲即可。
随后不需要任何驱动。
这就大节省了能量,降低了功耗。
磁保持继电器由AT89C52的P1.0、P1.1发出控制信号,P1.1为高电平时线圈中有正向电流,P1.0为高电平时线圈渡过反向电流。
驱动电路由电阻R21、R45、R46、R47、R48、R49、R50、R51、PNP三极管VT1、VT4,三极管VT5、VT6、VT7、VT8组成。
L为电磁圈。
当P1.1=1、P1.0=0时三极管VT4、VT7、VT8导通,而VT1、VT5、VT6截止。
流经L的电流方向为+12V=>VT4的E极=>VT4的C极=>线圈B端=>线圈A端=>VT7的C极=>VT7的E极=>地,继电器触点接通;当P1.1=0、P1.0=1时三极管VT4、VT7、VT8截止,而VT1、VT5、VT6导通。
流经L的电流方向为+12V=>VT1的E极=>VT1的C极=>线圈A端=>线圈B端=>VT6的C极=>VT6的E极=>地,继电器触点断开。
当P1.1=P1.0=0时,所有三极管均截止,线圈无电流。
P1.1=P1.0=1是不允许的情况,因为这时所有的三极管导能,功耗很大。
图2-8磁保持继电器驱动电路
第3节系统的软件设计
系统软件程序设计主要包括:
主程序设计,IC卡检测及读写程序,外中断0服务程序(掉电保护),定时器0中断服务程序等。
3.1主程序设计流程图以及相应代码
图3-1主程序流程图
ORG0100H
MAIN:
MOVSP,#60H;堆栈设置
LCALLDIRRST;执行显示复位程序
LCALLKEYRST;执行键盘复位程序
LCALLAT24RST;执行E2PROM复位程序
LCALLAT24RSTI;执行IC卡复位程序
LCALLDDJCRST;设置中断
LCALLDLCSRST;设置定时器
MAIN1:
LCALLKEY;执行键扫描程序
MOVA,SEER
CJNEA,SEE,MAIN3
MOVA,#1
CJNEA,SEE,MAIN2
SJMPMAIN4
MAIN2:
MOVA,#2
CJNEA,SEE,MAIN5
SJMPMAIN4
MAIN3:
MOVSEER,SEE
LCALLLCDRESET;执行液晶显示器复位程序
MOVA,#00H
LCALLLCDFILL
MAIN4:
LCALLDIR;执行显示程序
MAIN5:
LCALLICK;执行IC卡检测及读写程序
AJMPMAIN1
3.2IC卡检测及读写程序设计
ICK:
JNBK2,ICK1
SETBVCCI
RET
ICK1:
MOVDEL,#10
LCALLDELY
JNBK2,ICK2
SETBVCCI
RET
ICK2:
CLRVCCI
MOVDEL,#10
LCALLDELY
JBVCCDL,ICK3
SETBVCCI
MOVSEERR,SEE
MOVSEE,#5
MOVSEER,SEE
LCALLLCDRESET;执行液晶显示器复位程序
MOVA,#00H
LCALLLCDFILL
LCALLDIR
MOVDEL,#60
LCALLDELY
MOVSEE,SEERR
RET
ICK3:
MOVMRDI,#00H
MOVNUMBYT,#8
MOVSLA,#0A0H
LCALLRDNBYTI
MOVA,#0AAH
CJNEA,MRD1I,ICK4
CJNEA,MRD2I,ICK4
CJNEA,MRD3I,ICK4
CJNEA,MRD4I,ICK4
CJNEA,MRD5I,ICK4
CJNEA,MRD6I,ICK4
CJNEA,MRD7I,ICK4
CJNEA,MRD8I,ICK4
SJMPICK5
ICK4:
MOVSEERR,SEE
MOVSEE,#4
MOVSEER,SEE
LCALLLCDRESET;执行液晶显示器复位程序
MOVA,#00H
LCALLLCDFILL
LCALLDIR
MOVDEL,#60
LCALLDELY
MOVSEE,SEERR
RET
ICK5:
MOVMRDI,#10H
MOVNUMBYT,#3
MOVSLA,#0A0H
LCALLRDNBYTI
MOVA,#00H
CJNEA,MRD1I,ICK6
CJNEA,MRD2I,ICK6
CJNEA,MRD3I,ICK6
MOVSEERR,SEE
MOVSEE,#7
MOVSEER,SEE
LCALLLCDRESET;执行液晶显示器复位程序
MOVA,#00H
LCALLLCDFILL
LCALLDIR
MOVDEL,#60
LCALLDELY
MOVSEE,SEERR
RET
ICK6:
MOVSEERR,SEE
MOVSEE,#8
MOVSEER,SEE
LCALLLCDRESET;执行液晶显示器复位程序
MOVA,#00H
LCALLLCDFILL
LCALLDIR
MOVMTD1I,#00H
MOVMTD2I,#00H
MOVMTD3I,#00H
MOVMTDI,#10H
MOVNUMBYT,#4
MOVSLA,#0A0H
LCALLWRNBYTI
CLRET0
CLRTR0
MOVA,MRD3I
CLRC
ADDA,SDL3
MOVSDL3,A
MOVA,MRD2I
ADDCA,SDL2
MOVSDL2,A
MOVA,MRD1I
ADDCA,SDL1
MOVSDL1,A
LCALLZHCS
MOVTH0,#0FFH
MOVTL0,#0FEH
SETBET0
SETBTR0
MOVDEL,#60
LCALLDELY
MOVSEE,#12
LCALLLCDRESET;执行液晶显示器复位程序
MOVA,#00H
LCALLLCDFILL
LCALLDIR
ICK7:
JBK2,ICK8
SJMPICK7
ICK8:
SETBVCCI
MOVSEE,#2
RET
3.3外中断0服务程序的流程图以及代码
图3-2外中断0服务程序(掉电保护)流程图
外中断初始化程序-----------
DDJCRST:
SETBIT0
SETBEA
SETBEX0
RET
;外中断服务程序
DDJC:
PUSHA
PUSHB
PUSHDPL
PUSHDPH
PUSH00H
PUSH01H
PUSH02H
PUSH03H
PUSH04H
PUSH05H
PUSH06H
PUSH07H
MOVJWW,C
MOVMTD1,YDL1
MOVMTD2,YDL2
MOVMTD3,YDL3
MOVMTD4,YDL4
MOVMTD5,SDL1
MOVMTD6,SDL2
MOVMTD7,SDL3
MOVMTD,#00H
MOVNUMBYT,#8
MOVSLA,#0A0H
LCALLWRNBYT
MOVC,JWW
POP07H
POP06H
POP05H
POP04H
POP03H
POP02H
POP01H
POP00H
POPDPH
POPDPL
POPB
POPA
RETI
3.4定时器0中断服务程序以及代码
图3-3定时器0中断服务程序流程图
DLCSRST:
MOVTMOD,#05H
MOVTH0,#0FFH
MOVTL0,#0FFH
MOVMRD,#00H
MOVSLA,#0A0H
MOVNUMBYT,#7
LCALLRDNBYT
MOVYDL1,MRD1
MOVYDL2,MRD2
MOVYDL3,MRD3
MOVYDL4,MRD4
MOVSDL1,MRD5
MOVSDL2,MRD6
MOVSDL3,MRD7
LCALLZHCS
MOVA,SDL1
CJNEA,#00H,DLCSRST1
MOVA,SDL2
CJNEA,#00H,DLCSRST1
MOVA,SDL3
CJNEA,#00H,DLCSRST1
SETBDYKG
MOVSEE,#9
RET
DLCSRST1:
CLRDYKG
MOVDEL,#10
LCALLDELY
SETBEA
SETBET0
SETBTR0
RET
DLCS:
PUSHA
PUSHB
PUSHDPL
PUSHDPH
PUSH00H
PUSH01H
PUSH02H
PUSH03H
PUSH04H
PUSH05H
PUSH06H
PUSH07H
MOVJWW,C
MOVA,SDL1
CJNEA,#00H,DLCS1
MOVA,SDL2
CJNEA,#00H,DLCS1
MOVA,SDL3
CJNEA,#00H,DLCS1
SETBDYKG
MOVSEE,#9
CLRET0
CLRTR0
AJMPDLCS3
DLCS1:
CLRDYKG
MOVA,#100
CLRC
ADDA,YDL4
MOVYDL4,A
CLRA
ADDCA,YDL3
MOVYDL3,A
CLRA
ADDCA,YDL2
MOVYDL2,A
CLRA
ADDCA,YDL1
MOVYDL1,A
MOVA,SDL3
CLRC
SUBBA,#100
MOVSDL3,A
MOVA,SDL2
SUBBA,#00H
MOVSDL2,A
MOVA,SDL1
SUBBA,#00H
MOVSDL1,A
LCALLZHCS
MOVA,SDL1
CJNEA,#00H,DLCS2
MOVA,SDL2
CJNEA,#4EH,DLCS2
MOVA,SDL3
CJNEA,#20H,DLCS2
MOVSEERR,SEE
MOVSEE,#13
DLCS2:
MOVTH0,#0FFH
MOVTL0,#0FFH
SETBET0
SETBTR0
DLCS3:
MOVC,JWW
POP07H
POP06H
POP05H
POP04H
POP03H
POP02H
POP01H
POP00H
POPDPH
POPDPL
POPB
POPA
RETI
ZHCS:
MOVZY4,YDL4
MOVZY3,YDL3
MOVZY2,YDL2
MOVZY1,YDL1
MOVZS3,SDL3
MOVZS2,SDL2
MOVZS1,SDL1
MOVR7,#32
CLRA
MOVR2,A
MOVR3,A
MOVR4,A
MOVR5,A
MOVR6,A
YBCDT1:
CLRC
MOVA,ZY4
RLCA
MOVZY4,A
MOVA,ZY3
RLCA
MOVZY3,A
MOVA,ZY2
RLCA
MOVZY2,A
MOVA,ZY1
RLCA
MOVZY1,A
MOVA,R6
ADDCA,R6
DAA
MOVR6,A
MOVA,R5
ADDCA,R5
DAA
MOVR5,A
MOVA,R4
ADDCA,R4
DAA
MOVR4,A
MOVA,R3
ADDCA,R3
DAA
MOVR3,A
MOVA,R2
ADDCA,R2
DAA
MOVR2,A
DJNZR7,YBCDT1
MOVA,R2
ANLA,#0FH
MOVSEE08,A
MOVA,R2
SWAPA
ANLA,#0FH
MOVSEE09,A
MOVA,R3
ANLA,#0FH
MOVSEE06,A
MOVA,R3
SWAPA
ANLA,#0FH
MOVSEE07,A
MOVA,R4
ANLA,#0FH
MOVSEE04,A
MOVA,R4
SWAPA
ANLA,#0FH
MOVSEE05,A
MOVA,R5
ANLA,#0FH
MOVSEE02,A
MOVA,R5
SWAPA
ANLA,#0FH
MOVSEE03,A
MOVA,R6
ANLA,#0FH
MOVSEE00,A
MOVA,R6
SWAPA
ANLA,#0FH
MOVSEE01,A
MOVR7,#24
CLRA
MOVR2,A
MOVR3,A
MOVR4,A
MOVR5,A
SBCDT1:
CLRC
MOVA,ZS3
RLCA
MOVZS3,A
MOVA,ZS2
RLCA
MOVZS2,A
MOVA,ZS1
RLCA
MOVZS1,A
MOVA,R5
ADDCA,R5
DAA
MOVR5,A
MOVA,R4
ADDCA,R4
DAA
MOVR4,A
MOVA,R3
ADDCA,R3
DAA
MOVR3,A
MOVA,R2
ADDCA,R2
DAA
MOVR2,A
DJNZR7,SBCDT1
MOVA,R2
ANLA,#0FH
MOVSEE16,A
MOVA,R2
SWAPA
ANLA,#0FH
MOVSEE17,A
MOVA,R3
ANLA,#0FH
MOVSEE14,A
MOVA,R3
SWAPA
ANLA,#0FH
MOVSEE15,A
MOVA,R4
ANLA,#0FH
MOVSEE12,A
MOVA,R4
SWAPA
ANLA,#0FH
MOVSEE13,A
MOVA,R5
ANLA,#0FH
MOVSEE10,A
MOVA,R5
SWAPA
ANLA,#0FH
MOVSEE11,A
RET;
结束语
通过这次的课程设计让我明白了自己对单片机的整体运用还不太会,虽然在上课的时候觉得好像自己都懂了,但一旦运用到实现中就不会了,这也充分说明了要想把一种知识学会,一定要到实际行动中去。
只有自己动过手才能真正明白自己掌握了多少,什么方面是自己比较陌生的。
不过通过这次的课程设计让我的知识也增长了不少。
以前我不知道课程设计应该怎么写,如今我知道了,这正是从这次课程设计中学会的,更重要的一点是让我对单片机的了解有了更加深刻的了解,刚一开始接触时我不知道应该如果下手,于是查了大量的书籍,在写该课程设计时自己也在不断的学习,在不知不觉中自己已经对单片机的了解进入了更高层次的地步。
本设计有很多优点,比如说电能计量准确,精度高,IC卡的保密性高,可以显示剩余电能值,已用电能值,当电能不足时会提醒用户及时购电,具有电保护等,本设计的功能已经在前面讲过了,所以该设计一定能得到广泛的传播,应用领域会越来越多。
虽然本设计有很多优点,但是本设计还有一些不足之处:
众所周知系统失效和硬件损坏
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单相 电子 预付 电度表 单片机 期末 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)