单相电子式预付费电度表单片机期末课程设计.docx

上传人:b****8 文档编号:9535261 上传时间:2023-02-05 格式:DOCX 页数:30 大小:268.57KB
下载 相关 举报
单相电子式预付费电度表单片机期末课程设计.docx_第1页
第1页 / 共30页
单相电子式预付费电度表单片机期末课程设计.docx_第2页
第2页 / 共30页
单相电子式预付费电度表单片机期末课程设计.docx_第3页
第3页 / 共30页
单相电子式预付费电度表单片机期末课程设计.docx_第4页
第4页 / 共30页
单相电子式预付费电度表单片机期末课程设计.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

单相电子式预付费电度表单片机期末课程设计.docx

《单相电子式预付费电度表单片机期末课程设计.docx》由会员分享,可在线阅读,更多相关《单相电子式预付费电度表单片机期末课程设计.docx(30页珍藏版)》请在冰豆网上搜索。

单相电子式预付费电度表单片机期末课程设计.docx

单相电子式预付费电度表单片机期末课程设计

单相电子式预付费电度表

第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卡的保密性高,可以显示剩余电能值,已用电能值,当电能不足时会提醒用户及时购电,具有电保护等,本设计的功能已经在前面讲过了,所以该设计一定能得到广泛的传播,应用领域会越来越多。

虽然本设计有很多优点,但是本设计还有一些不足之处:

众所周知系统失效和硬件损坏

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1