基于单片机的电能表设计(Word)_第1页
基于单片机的电能表设计(Word)_第2页
基于单片机的电能表设计(Word)_第3页
基于单片机的电能表设计(Word)_第4页
基于单片机的电能表设计(Word)_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于单片机的电能表设计设计分工:本次电能表设计中,我主要负责电能计量模块、实时时钟模块和IC卡模块的软硬件设计。1.1 设计任务利用单片机和接口技术设计、研制一种新型电能表,可实现峰谷用电量和剩余金额,并用LCD显示。1.2 设计目的(1)进一步了解有关单片机、存储电路、IC卡的应用;(2)掌握信号获取、传输、处理及检测的一般方法;(3)综合运用已有的理论和技术,制定设计方案,掌握用电量的测量方法;(4)学会应用存储电路、IC卡、单片机组建一个实际测量系统,提高设计者的应用能力;(5)通过测量、计算、显示,能运用所学知识并学会查阅有关资料,培养仪器仪表设计的基本技能,为今后的深入学习等奠定基础

2、。1.3 设计要求参考利用存储电路、IC卡、单片机及其接口技术研制出一种新型电能表,设计内容包括:(1)详细了解所选用的存储电路、IC卡、单片机的工作原理和工作特性;(2)设计合理的计算测量电路;(3)用单片机、IC卡、LCD的显示技术实现测量电路,单片机的指令系统开发相关的应用程序,并对程序作详细的分析和解释。(4)列出制作该装置的元器件,搭建试验电路,并进行试验验证调试。(5)撰写详细的设计技术报告。1.4 设计方案与技术分析此电能表主要由计量模块、单片机、IC卡模块、LCD显示、EEPROM存储器、实时时钟电路及电源电路等部分组成。其硬件系统框图如下图1所示。其中,单片机以AT89C51

3、为电能表的核心控制芯片,它是电能表的“大脑”,外围所有的硬件模块都是在它的控制协调下进行工作的。单片机通过控制在其中的各种程序,控制着其它硬件模块的工作状态,由它智能化地形成并可靠地提供电能计算、时段判断、费率切换、IC卡读写、电能量控制及负荷控制等功能。1.4.1 AT89C51单片机简介、89C51单片机的基本组成本电能表的硬件设计原则是在低功耗的前提下,实现多功能目的,该芯片功耗低,特别适用于电能表控制线路多、功能全、功耗低的要求。它能方便地读取IC卡的数据,并控制液晶显示器的工作,同时还可以将电能表的数据存入EEPROM进行永久保存并可通过串口送至表外的数据终端,大大地提高了电能表的智

4、能化功能。在一小块芯片上,集成了一个微型计算机的各个组成部分,即89C51单片机芯片内包括:(1)一个8位的微处理器(CPU)。(2)片内256字节数据存储器RAM/SFR,用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等。(3)片内4KB程序存储器Flash ROM,用以存放程序、一些原始数据和表格。(4)4个8位并行I/O端口P0-P3,每个端口既可以用作输入,也可以用作输出。(5)两个16位的定时器/计数器,每个定时器/计数器都可以设置成计数方式。(6)具有5个中断源、两个中断优先级的中断控制系统。单片机(AT89C51)LCD显示IC卡模块EEPROM存储器电能计

5、量芯片实时时钟电路电源电路图1 硬件系统框图(7)一个全双工UART的串行I/O口,用于实现单片机之间或单片机与PC机之间的串行通信。(8)片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。(9)具有节电工作方式,即休闲方式和掉电方式。以上各个部分通过片内八位数据总线相连接。、89C51单片机引脚及其功能如图2所示为单片机AT89C51的引脚图。 图2 单片机AT89C51的引脚图(1)XTAL1(19脚):振荡器反相放大器及内部时钟发生器的输入端。(2)XTAL2(18脚):振荡器反相放大器的输出端。(3)RST(9脚):复位输入,当振荡器工作时,RST引脚出现两个机器周期以上高电平将

6、使单片机复位。(4)P0口(3932脚):P0口是一个漏极开路的8位准双向I/O端口。作为漏极开路的输出端口,每位能驱动8个LS型TTL负载。当P0口作为输入口使用时,应先向口锁存器写入全1,此时P0口的全部引脚浮空,可作为高阻抗输入。(5)P3口(1017脚):P3口是一组带有内部上拉电阻的8位双向I/O多功能口。P3口输出缓冲器可驱动4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口,此时,被外部拉低的P3口将用上拉电阻输出电流。当CPU不对P3口进行SFR寻址访问时,即用作第二功能输出/输入线时,由内部硬件使锁存器Q置1。整个PEROM阵列和三个锁定位的电

7、擦除可通过正确的控制信号组合,并保持ALE管脚处低电平10ms来完成。在芯片擦除操作中,代码陈列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 1.4.2 电能计量芯片模块采用现在比较流行的电能计量芯片CS5460A实现对电能等电量的采集和测量。CS5460A 是Crystal 公司推出的用于测电流、电压、功率等的芯片, 是CS5460 的增强

8、版, 精度高、性能强且成本低。CS5460A 包含两个模-数转换器(ADC)、高速电能计算功能和一个串行接口的高度集成的 模-数转换器。它可以精确测量和计算有功电能、瞬时功率、IRMS 和VRMS ,用于研制开发单相2 线或3 线电表。CS5460A可以使用低成本的分流器或互感器测量电流,使用分压电阻或电压互感器测量电压。CS5460A具有与微控制器通讯的双向串口,芯片的脉冲输出频率与有功能量成正比。CS5460A 具有方便的片上AC/DC 系统校准功能。“自引导”的特点使CS5460A 能独自工作,在系统上电后自动初始化。在自引导模式中,CS5460A 从一个外部EEPROM 中读取校准数据

9、和启动指令。使用该模式时,CS5460A 工作时不需要外加微控制器,因此当电表用于大批量住宅电能测量时,可降低电表的成本。并且本芯片集成度较高便于编程控制,故本设计采用此方案。CS5460A概述、基本结构及功能图3 CS5460内部结构图CS5460A的内部机构图如上图3所示,其组成模块如下: 一个电流通道可编程增益放大器其增益为10和50可选一个电压通道固定增益放大器,其增益为10两个同时采样的AD模数转换器两个高速数字滤波器两个可选用的高通滤波器一个功率计算引擎一个片内电压基准一个可以检测电力不足或电源故障的电源监视器 一个持续监视串口通讯的看门狗 一个可选的内部时钟发生器 一个双向串行接

10、口 一个电能、脉冲变换器 一个校准用SRAM、主要特性(1)在片计算和处理功能;(2)可以从串行E2PROM 智能“自引导”,不需要微控制器,具有电能-脉冲转换功能;(3)具有AC或DC系统校准功能;(4)具有简单的三线数字串行接口,可以方便地进行读写;(5)看门狗定时器;(6)片上 2.5 V 基准(6010-6/OC),单电源 +5 V 或双向 2.5V10电源;(7)具有功率方向输出指示;(8)能够测量瞬时电压、瞬时电流、瞬时功率、电能、电压有效值和电流有效值,能完成电能/脉冲转换;(9)电能测量精度:0.1%;(10)具有相位补偿和系统校准功能;(11)具有机械计度器/步进电机驱动器;

11、(12)内带电源监视器;(13)电能数据线性度:在1000 :1 动态范围内线性度为 0.1%;(14)功率消耗12mW;(15)电源配置: VA+=+5V,VA-=0V;VD+=+3V至+5V或VA+=2.5V,VA-=-2.5V;VD+=+3V1、控制命令字CS5460A 包含一系列控制命令,对CS5460A 写入指定的控制字,即可完成相应的操作。这些控制命令包括:(1)、启动转换命令(Oxe8)只要对CS5460A 写OXE8 控制命令,CS5460A 即开始进行AD 转换,并输出计算结果,这个命令一般在CS5460A 复位操作完成后输入,以使CS5460A 进入正常工作状态。(2)、同

12、步命令0(OXFE)及同步命令1(OXFF)这两个命令主要用在一连串的读写命令之前,复位串行通信接口。(3)Power_up/Halt Control(OXAO)这个命令主要用在系统校准之前,以中断CS5460A 正在执行的操作,而执行系统校准命令。(4)系统校准命令字:1 1 0 V I R G O这个命令完成指定的某项系统校准。V、I、R、G、O 的说明如下:VI : 00-不允许出现0001- 电流通道选择10-电压通道选择11-电压电流通道同时选择R: 0-DC 校准1-AC 校准G: 0-正常操作1-执行增益校准O: 0-正常操作执行偏置校准2、控制寄存器(1)、Config Reg

13、ister(OX00)Default:=0x000001PC6 PC5 PC4 PC3 PC2 PC1 PC0 GIEWA PH1 PH0 SI1 SI0 EOD DL1 DL0RS VHPF IHPF ICPU K3 K2 K1 K0K3:0: 指示将主频MCLK 分频作为CS5460A 内部时钟DCLK:有效值分别为1、2、4。0001:DCLK=MCLK/10010:DCLK=MCLK/20100:DCLK=MCLK/4IHPF: 电流通道高通滤波器控制位0=禁止高通滤波器,1=使用所有的滤波器VHPF: 电压通道高通滤波器控制位0=禁止高通滤波器,1=使用所有的滤波器RS: CS546

14、0A 复位控制位,当RS=1,CS5460A 复位,复位周期至少10 个机器周期DCO: 当EOD=1,EDIR 作为通用输出口,其输出电平由DC0 决定。DC1: 当EOD=1,EOUT 作为通用输出口,其输出电平由DC1 决定。EOD: EOUT,EDIR 允许控制位。0:允许EOUT/EDIR 输出(DEFAULT)1:用户定义的控制输出端SI1:0: 中断信号输出控制00:低电平有效(DEFAULT)。01:高电平有效。10:下降沿有效。11:上升沿有效。EWA: 允许多片CS5460A 的EOUT 和EDIR 连接在一起(DEFAULT=0)。GI: 电流增益控制0=增益为10;1=

15、增益为50;PC6:0: 相位补偿,CS5460A 没有自动相位补偿功能,通过调整PC6:0值可以实现-2.8度到+2.8 度的相位补偿。(2)CYCLE COUNT REGISTER(0X05)Bit23 bit22 bit0这个寄存器的值决定每秒钟完成计算的次数,其计算方法请参见后面的例子。(3)、PULSE RATE REGISTER(0X06)Bit18 bit17 bit-5这个寄存器的值决定在某一功率时CS5460A 每秒钟输出的脉冲数。其值的设置请参见后面的计算方法。(4)、STATUS REGISTERDRDY EOUT EDIR CRDY MATH RES IOR VORPW

16、OR IROR VROR EOR EOOR RES ID3 ID2ID1 ID0 WDT VOD IOD LSD O /IC状态寄存器指示CS5460A 的状态,在正常操作模式下,写一个“1”到任一bit 都会使该bit 位置0,写0 将保持该寄存器原态,利用这个特征,用户将读回的值重新写回到该寄存器,即可清掉置1 的位。/IC: 数据无效指示。读状态寄存器时判断该位可以确定该寄存器的值是否有效。LSD: 低电压指示,当PFMON 相对于VA-电平值低于2.5V 时,该位置1。IOD: 电流超界指示位,当输入电流值大于指定的满度电流时,该位置1。VOD: 电压超界指示位,当输入电压值大于指定的

17、满度电压时,该位置1。WDT: 看门狗标识位,当MCLK=4.096MHZ,K=1 时,如果超过五秒钟没有读能量寄存器,该位置1。ID3:0 版本标识。EOR: 当计算出的能量值太大或太小超出范围时,该位置1。EOOR: 当EOUT 设置的输出频率太小,而在测量低能耗时,该位置一会指示EOUT 输出超界。VROR: 电压超界。IROR: 电流超界。PWOR: 功率校准超界。VOR: 电压校准超界。IOR: 电流校准超界。MATH: 计算错误(譬如被0 除)。CRDY: 转换完成。EDIR: 当累加能量小于0 时该位置1。EOUT: EOUT 输出超界。DRDY: 数据准备好或控制操作完成。(5

18、)、CONTROL REGISTER(0X1C)RES RES RES RES RES RES RES RESRES RES RES RES RES RES RES STOPRES MECH RES INTL SYNC NCPU NOSC STEPSTOP: 1=结束EEPROM BOOT 模式。RES: 保留。MECH: 加宽EOUT 和EDIR 的输出脉宽。INTL: 设置/INT 引脚为开漏方式。SYNC: 使CS5460A 内部AD 转换脉冲与转换命令同步。NOOSC: 停止振荡器振荡。STEP: 允许EOUT 和EDIR 输出作为步进马达驱动信号。、操作时序CS5460A串行口包括4

19、条控制线:串行时钟(SCLK)、串行数据输入(SDI)、串行数据输出(SDO)和片选(CS),器读写时序如图4所示:图4 CS5460A操作时序图CS5460A的串行接口部分集成了一个带有发送/接收缓冲器的状态机,状态机在SCLK的上升沿解释8位命令字。根据对命令的解码,状态机将执行相应的操作,或者为被寻址的寄存器的数据传输做准备。读操作需将被寻址的内部寄存器的数据传送到发送缓存区,写操作在数据传输前要等24个SCLK周期。内部寄存器用于控制ADC的功能,所有寄存器都是24位。上电复位后,串行状态机初始化为命令模式,等待接收有效的命令(输入串口的前8为数据)。在完成对有效命令的接收和解码后,状

20、态机将指示转换器执行系统操作或从内部寄存器输入输出数据。当启动了读命令,串口将在下8个、16个或24个SCLK周期启动SDO脚上的寄存器内容的转移(从高位开始)。寄存器读指令可以终止在8 位的边界上(例如,读出时可只读8,16或24位)。同样,数据寄存器读出允许采用“命令链”。 因此读寄存器时,微控制器可同时发送新指令,新指令将被立即执行,并可能终止读操作。例如,命令字送入状态机读取某一输出寄存器,进行了16 个连续的读数据串行时钟脉冲后,执行写命令字(如状态寄存器清零命令),数据从SDI 引脚输入,同时剩下的8 位读出数据被传送到SDO 引脚。又如,用户仅需从读操作中获取16位有效位时,可在

21、SDO读出8位数据后从SDI输入第二个读命令。在读周期,当从SDO 引脚输出数据时,必须用SYNC0指令(NOP )使SDI 引脚处于选通态。如图5所示计量模块。图5 CS5460A与AT89C51的硬件连接1.4.3 EEPROM存储器模块、AT24C01简介 AT24C01是美国ATMEL公司的低功耗CMOS串行EEPROM,它内含2568位存储空间,具有工作电压宽(2.55.5V)、擦写次数多(大于10 000次)、写入速度快(小于10ms)等特点。AT24C01中带有片内寻址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的操作。所有字节都以单一操作方式

22、读取。为降低总的写入时间,一次操作可写入多达8字节的数据。图6为AT24C01的引脚图。各引脚功能如下:图6 AT24C01的引脚图SCL:串行时钟。在该引脚的上升沿时,系统将数据输入到每个EEPROM器件,在下降沿时输出。SDA:串行数据。该引脚为开漏极驱动,可双向传送数据。A0A2:器件/页面寻址。为器件地址输入端。Wp:硬件写保护。当该引脚为高电平时禁止写入,为低电平时可正常读/写数据。Vcc:电源。一般输入+5V电压。Vss:接地。、硬件原理图记忆单元硬件原理图如图7所示。利用单片机AT89C51与24C01进行I2C通信,实现对某一地址内数据的读/写校验操作。图7 记忆单元硬件原理图

23、1.4.4 LCD 显示模块为现实多费率下对相应多项参数的显示,目前大多数相应电能表都采用液晶显示器LCD或发光二极管显示器LED。LCD的优点是一屏可以显示许多字符,工作电流小,供电系统停电时可利用电池或大容量电容器为显示各项参数提供能量,并且比较美观。液晶显示模块选用图形液晶显示模块GXM12864,它内含KS0108B/HD61202控制器,是一种采用低功耗CMOS技术实现的点阵图形LCD模块,有8位的微处理器接口,通过内部的12864位映射DDRAM实现128点64点大小的平板显示。该液晶显示模块使用KS0108B作为列驱动器,同时使用KS0107B作为行驱动器。KS0107B不与CP

24、U发生联系,只要提供电源就能产生行驱动信号和各种同步信号,比较简单。液晶显示模块GXM12864的工作原理图如图8所示。图8 LCD显示模块GXM12864的工作原理图电位器R15的作用是调节提供给驱动器的供压,从而调节液晶显示的对比度。RST是复位脚,接高电平Vout1。数据线DB0DB7和单片机的P0口相连,控制线D/I、R/W和片选线/CSA、/CSB分别与单片机P2口的6、5、1、0脚相连,使能线与P2.3相连。在进行液晶显示模块的硬件调试时务必注意正确的接线,尤其是正负电源的接线不能有错,否则会烧坏电路上的芯片。为避免液晶模块的损坏,在加液晶驱动电压V0/VEE时需要比加逻辑电压VD

25、D滞后50ms;在关电时,液晶驱动电压V0/VEE需要比逻辑电压VDD提前50ms关断。GXM12864的引脚定义如表1所示。表1 GXM12864的引脚定义引脚名称引脚定义/CSA、/CSB片选1、2VSS数字地VDD逻辑电源+5VV0对比度调节D/I指令数据通道R/W读/写选择E使能信号、高电平有效DB0-DB78位数据线RST复位信号VEE液晶驱动电源A、K背光正电源端、背光接地端1.4.5 电源电路模块在一般情况下,液晶器件的驱动需要两种不同的电源电压,一种是+5V(工作电压),另一种是-10V(背景光对比度调节电压)。所以,使用液晶模块时,需要设计专门的液晶电源电路。液晶电源电路的作

26、用就是将电压转换成这两种电压信号输出,为液晶显示模块提供工作电压。本设计中系统采用电池供电,其输入电压为+3V,所以电源部分的设计要求为+3V输入,+5V和-10V双电压输出。MAX1677是双电压输出升压DC-DC变换器,它是一种专门为LCD提供电源的芯片,可以产生两种可调电压输出。其输入电压范围(0.7-5.5V)较大,可以依据不同系统提供的安装电池的空间和所需的不同电池电压与容量,灵活的选择电池的种类。电源模块电路如图9所示。图中,MAX1677的输入电压Vin=3V,输出两路电压Vout1和Vout2,分别是+5V和-10V,+5V为系统电源,而-10V作为液晶显示模块的背光电源。图9

27、 直流电源的设计电路中的其他器件说明如下。L1、L2为CoilCraft的DO1608C-103表贴磁芯电感,电感值为10Uh。D1、D2是反相耐压大于16V的肖特基二极管,也可选用具有相同耐压参数的其他型号二极管。电阻R11和R12的比值决定了主输出电压值Vout(对应图中的Vout1)需满足下面的公式: R11=R12*Vout/1.25-1 (R12的取值范围为10-200千欧姆)电阻R14和R13的比值决定了LCD对比度输出的电压值VLCD(对应图中的Vout2)需满足下面的公式: R14=R13*|VLCD|/1.25(V) (R14的取值范围为500-2000千欧姆)电阻R8和R7

28、的比值决定了系统欠电压监测的门槛电压值VTRIP需满足下面的公式:R8=R7*VTRIP/0.614-1 (R7130千欧姆)当电池正常时,电池电压过低,输出引脚LBO输出保持高电平;一旦电池电压低于门槛电压,LBO引脚输出为低电平。如果不是用欠电压监测的话,只需要将第三引脚(LBI)接地即可。在原理图中,Vin为电源电路的输入端,连接两节1.5V的电池形成便携式仪表的电源;Vout1连接MAX1677的第16引脚,输出+5V的电压,作为系统的电源电压;Vout2连接MAX1677的10引脚,输出-10V的电压,作为液晶显示模块的背光电源电压。前端电路调理模块的设计1、电压调理部分对于系统的前

29、端电压调理部分,我们采用变比为2mA/2mA的电流互感器和高精度电阻作为输入电路部分电路如图10所示。系统设计采用220V的市电电压输入,首先外接Rx=110k电阻得到2mA的电流,然后通过变比为2mA/2mA的互感器,然后在二次侧连接1个125的定值电阻得到所需的输入电压,可以为CS5460A提供电压信号,不超出芯片的测量范围。当然电阻R2值可以根据不同的电压来调整。并加入RC滤波网络对信号初步滤波,并加入放抖动电容保护芯片。2、电流调理部分电流调理部分采用变比2000:1 的电流互感器,然后经一精密电阻将电流信号转变成电压信号。并加入RC滤波网络对信号初步滤波,并加入放抖动电容保护芯片。经

30、变换后的补测信号以差模电压的形式接到CS5460A的模拟信号输入端。由于互感器角差的影响,可能造成输入信号的相移,使功率测量的误差增大。而CS5460A 具有相位补偿功能(可进行-2.4至+2.5的相位补偿,步进0.34),可以大大减小互感器角差的影响。图10 前端调理电路1.4.6 实时时钟电路模块分时计费电度表中利用单片机内部定时器作为时钟基准,无需附加外部元件,通过软件编程和单片机内部的中断就可实现实时时钟功能。但是这种做法有很多缺点。由于受到单片机主晶振以及与其相连电容的影响较大,无法做到很高的精度,累计误差大。主电源掉电时为了维持时钟不停,必须要有外接电池给整个单片机供电,导致仪表本

31、身功耗增大。外接专用实时时钟是一种专门用于产生同期时钟信息的集成电路芯片,它可以独立于单片机而工作,不受MCU主晶振及其电容的影响,计时精确,月累积误差一般小于lOs。芯片还具有主电源掉电情况下的时钟保护电路和备份电源自动切换控制电路,可以保证在主电源掉电和其他一些恶劣环境下系统实时实钟的定时准确性。实时时钟芯片内部集成有一定容量,具有掉电保护特性的静态RAM,可用于保存一些重要数据。由于芯片可独立工作,主电源掉电时备份电源只需为该时钟芯片供电,可有效降低仪表功耗。实时时钟芯片与单片机的接口根据其数据传送方式可分为两种:一种是以并行方式与MCU接口,其数据传送速度较快,但接口扩展电路较复杂,需

32、要考虑接口扩展时的驱动能力,而且并行接口芯片本身占用较大的印制版空间,连线多,不利于缩小仪表体积。另一种是以串行方式与MCU接口,这种芯片通常为8脚DIP封装,占用空间小,连线简单,一般只需占用CPU的2至3条IO口线,可有效减小仪表体积,提高工作可靠性。本设计中采用DSl302芯片,它是美国DALLAS公司推出的串行接口专用实时时钟芯片。芯片内部具有可编程日历时钟和31个字节的静态RAM,日历时钟可自动进行闰年补偿,计时准确,接口简单,工作电压范围(25V至55V),功耗低芯片自身还具有对备份电池进行涓流充电的功能,有效延长了备用电池的使用寿命。时钟芯片DSl302的接口电路如图11所示。图

33、11 时钟芯片DSl302的接口电路采用三线串行通讯方式,/RST为通信允许信号,/RST=l,允许通信,/RST=0禁止通信。SCLK为串行数据的位同步脉冲信号。为双向串行数据传送信号。AT89C51单片机通过控制/RST,SCLK和IO信号实现两芯片的数据传送。DSl302芯片的X1和X2端外接32768KHz的石英晶振,VCCl和VCC2是电源引脚,单电源供电时接VCCl脚,双电源供电时主电源接VCC2脚,采用可充电电池,启用内部涓流充电器在主电压正常时向电池充电,以延长电池使用时间。备份电池也可以使用1微法以上的超容量电容代替,需要注意的是备份电池电压应略低于主电源工作电压。数据传送是

34、以AT89C51单片机为主控芯片进行的,每次传送时由AT89C51向DSl302写入一个命令字节开始。命令字节格式如图12所示:图12 命令字节格式命令字节的最高位必须为l,RAMCK位为RAM时钟选择位,RAMCK=l选择RAM操作,RAMCK=0选择时钟操作。A4至A0为片内日历时钟寄存器或RAM地址选择位。选择时钟操作时A4至A0为00H至06H对应日历时钟寄存器地址,分别存放秒,分,时,日,月,星期,和年等信息。秒寄存器的最高位为时钟暂停控制位,该位为0时时钟振荡器暂停,DSl302进入低功耗状态,该位为1时启动时钟。地址07H为写保护寄存器,用以控制对片内日历时钟寄存器的写允许,地址

35、08H为涓 流充电控制寄存器,控制内部涓流充电过程及充电电路的连接方式。 选择片内RAM操作时A4至AO用于表示片内RAM单元地址,地址范围为 00H1EH,RDW位为读写控制位,RDW=1为读操作,表示DSl302接受完命令字节后,按指定的选择对象及寄存器(或RAM)地址,读取数据并通过IO线传送给单片机AT89C51,RDW=0为写操作,表示DSl302接受完命令字节后,紧跟着再接收来自于单片机AT89C51数据字节并写入到DSl302相应的寄存器或RAM单元中。DSl302与AT89C51之间通过I0线传送串行数据,SCLK为串行通信时的位同步时钟,一个SCLK脉冲传送一位数据。每次数据

36、传送时都以字节为单位,低位在前,高位在后,传送一个字节数据需要8个SCLK脉冲。字节传送时序如图13所示:图13 字节传送时序1.4.7 IC卡模块1、Mifare 1射频IC卡Mifare 1射频IC卡的核心是Philips公司制造的Mifare 1 IC S50系列微晶片,其内部包括1KB高速EEPROM、数字控制模块和一个高效率射频天线模块。卡片本身不带电池供电,工作时将卡片放在读写器的有效工作区域,卡片读写器的天线发送无线电载波信号耦合到卡片上的天线提供电源能量,其电压可达2V以上,足以满足卡片上的IC电路供电需要。在信道保证和数据完整性方面,Mifare 1标准还提供了信道检测、存储

37、数据冗余校验、三次传递认证以及防冲突机制等功能,保证了数据交换过程的安全。Mifare 1射频IC卡的主要性能指标如下。(1)1KB的EEPROM,分为16个扇区,每个扇区分为4块,每块16B,以块为存取单位。(2)每个扇区有独立的一组(2个)密码及存取权限设置。(3)每张卡有唯一的32位序列号。(4)具有防冲突机制、支持多卡操作。(5)无电源,自带天线,内含加密控制逻辑和通信逻辑电路。(6)数据可保存10年,可反复写10万次。(7)工作频率为13.56MHZ。(8)106kbps 的快速数据传输速率。(9)读写距离最大可达10cm(取决于天线设计)。(10)工作温度范围:-20- +50。C

38、。Mifare 1射频卡包含了两个部分:RF射频接口电路和数字电路部分。2、H6152读写模块图14 H6152基本结构示意图H6152的基本结构如图14所示。图中,对外通信的接口为J3和J4。J3口共有7针,包括RS-232/422的接口引脚和读写器模块的电源端,接地端,J4口为4针接口,提供电源和操作状态的LED灯指示信号,H6152读写模块操作简单方便,读写过程稳定有效。它集成了PCB板载天线电路和RS-232/422接口的集成读写模块,还提供了RS-232/422接口与TTL接口的转换电路。H6152需外界+5V电源供电。主要性能指标如下:(1)工作频率:13.56MHz。(2)串行通

39、信波特率:9600bps、19200bps、38400bps和57600bps4种可选。(3)接口:RS-232/422/485。(4)天线输出阻抗:50K欧姆。(5)天线尺寸:45mm70mm。(6)电源电压:+5V。(7)电流供应:80mA。(8)工作温度:-40+85.(9)最大读写距离:50mm。3、IC卡读写电路的原理及说明IC卡应用系统的硬件设计结构框图如图15所示。单片机AT89C51是本设计的核心器件,它主要完成了对射频卡(MIFARE 1卡)的读写操作。H6152读写器对射频卡进行读写后通过串口电平转换电路将RS232电平转换为单片机所识别的TTL电平,从而达到了使用AT89

40、C51单片机来控制射频卡的读写过程。单片机AT89C51串口电平转换电路IC卡读写器报警电路IC卡图15 硬件设计结构框图硬件电路由单片机模块、串口电平转换模块和H6152读写模块3部分电路组成,其工作原理分别如图16、图17、图18所示。图16 单片机模块图17 串口电平转换模块图18 H6152读写模块U1为单片机芯片AT89C51,其P1.0脚为单片机对H6152的控制输出,它控制H6152的工作状态,该引脚为高电平时,H6152停止工作;P1.1脚为单片机对蜂鸣器的控制输出,为低电平时,蜂鸣器发出蜂鸣声。XTAL0 和 XTAL1 分别为反向放大器的输入和输出。该反向放大器可以配置为片

41、内振荡器,石晶振荡和陶瓷均可采用。如采用外部时钟源驱动器件,则XTAL1不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。本设计的外部时钟电路是将XTAL0(18脚)和XTAL1(19)脚分别对接外部晶体和微调电容的两端所构成。另外单片机中还带有复位端,为了安全方便,单片机采用了上电自动复位和手动复位两种。串口电平转换电路采用Maxim公司的MAX3232实现。MAX3232将单片机的TTL电平转为RS-232,然后与H6152的RS-232接口直接相连。RS-232C是数据终端设备(DTE)和数据通信设备(DCE)之间

42、的接口标准,是在微机接口应用中常用的一种串行通信总线标准,全称为EIA-RS-232C标准(Electoronic Industrial Associate Recommended Standard-232C)。RS-232C标准的信号线共25根,其中只定义了22根。这22根信号线又分为主、辅两个信道,大多数微机串行通信系统中都只使用主信道的信号线。在通信中,即便是只使用主信道,也并非主信道的所有信号都要连接,一般情况下只需使用其中的9根信号线,这就是为什么在微机的机箱上串行通信接口(如COM1、COM2)只有9根的原因。RS-232C串行通信接口标准中,对于发送端,规定5V15V表示逻辑“1

43、”(MARK信号),用5V15V表示逻辑“0”(SPACE信号),内阻为几百欧姆,可以带2500pF的电容负载。负载开路时电压不得超过25V。对于接收端,电压低于3V表示逻辑“1”,高于3V表示逻辑“0”。1.4.8 电能表程序设计如图19所示为电能表主流程图:电能采集实时时钟开始是峰电?峰电加数据存储LCD显示IC卡5断电谷电加图19 主流程图程序如下:#include#include#include sbit SDA=P13;sbit SCL=P14;#define uchar unsigned char #define lcd P0sbit rw = P25 sbit rs = P22

44、sbit e= P23 sbit busy=ACC7unsigned char count unsigned char timer /峰谷时钟unsigned countA unsigned countBunsigned count1 /峰值电量unsigned count2 /谷值电量unsigned count unsigned decount countA=0;void main() /主函数程序countB=Read Memory(); /读电量计数模块值decount=countB-countA; /判读前后两次读入的值是否一样,一样则重新循环,不一样则开始计数;while(deco

45、unt=0)count+;while(count12)count1+ ; else count2+ ;Remain=total-count1*0.5-count2*0.6; /计算剩余的金额 write(count1);/向卡内分别写入峰值电量、谷值电量、剩余金额write(count2);write(Remain);if(remian0;j-) SCL=0;sendbyte = 1; /* 使CY=sendbyte7; */SDA=CY; /* CY 进位标志位 */SCL=1;SCL=0;/* * * * * * * * * 从IIC总线上读数据子程序 * * * * */unsigned

46、 char Receive(void) register receivebyte,i=8;SCL=0;while(i-) SCL=1;receivebyte = (receivebyte 1 ) | SDA;SCL=0;return(receivebyte);/* * * * * * * * 一个简单延时程序 * * * * * * * * * * * * */void Delay(unsigned char DelayCount) while(DelayCount-);void lcd_mwcode(uchar i) /LCD液晶显示,rw=1;rs=0;lcd=0;e=1;doACC=lc

47、d; /是否忙 e=0; while(busy);rw=0;lcd=i;e=1;e=0;void lcd_mwdata(uchar i) /输入数据, rw=1;rs=0;lcd=0;e=1;doACC=lcd;e=0;while(busy); rw=0;rs=1;lcd=i;e=1;e=0;void setpos(uchar row , uchar col) /选择行,列, lcd_mwcode(0xb8+row); lcd_mwcode(0x40+col); void lcd_init(void) /初始化lcd_mwcode(0xc0);lcd_mwcode(0x3f);void disp1(uchar code *hz) /显示汉字上半区,uchar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论