025 电子信息工程-汇编设计 电表自动分时计费控制器的设计
                    联系方式 Email: lw510@qq.com      QQ: 497053418       MSN: lw510@qq.com
以下仅为该设计的基本说明介绍,若需要完整的设计和论文,建议您购买本设计.
025 电子信息工程-汇编设计 电表自动分时计费控制器的设计样本
(样本只提供该系统的基本情况介绍,若需要完整的设计和论文,建议您购买本系统,凡是购买本站系统的,本站均根据您的要求,把系统上的开发信息,题目等修改成符合您的要求)
 

本系统开发工具:单片机/汇编
本设计包含内容:源代码+毕业论文+开题报告+答辩稿
论文大概:
 
 
 
 

摘 要
倡导节能的今天,如何提高电能计量的准确度是一项首要任务。随着微处理技术的推广应用,使电能计量的自动化程度有了很大的提高。智能化数字电度表在进行数据传输、交换以及计算电费方面有明显的优势,目前它正在迅速取代传统的机电式电度表。本文提出了一种以AT89C52为核心的电量计量系统。系统采用了AD7751专用电能测量集成电路,可以很好的检测窃电、旁路操作等一系列意外活动。系统采用专用的时钟芯片X1288,提供精度很高的参考时钟。采用PS2键盘作为数据输入接口,可以在一定程度上防止电表的改装和泄密
关键词:单片机,AD7751,X1288,PS2键盘
 
 

 
Abstract
How to improve Energy Measurement accuracy is a primary task, toady. With the popularization and application of micro-processing technology, Energy Measurement of the degree of automation has been greatly improved. Intelligent digital power meter during data transmission and exchange of tariff has obvious advantages. Currently, it is rapidly replacing the traditional electromechanical meter. This paper presents a core of the AT89C52 for electricity metering system. The system uses AD7751, dedicated power measurement integrated circuits, can pilfer good detection, bypass operation activities of a series of accidents. System uses a clock chip X1288 provides high precision reference clock. PS2 keyboard used as a data input interface, in a certain extent, prevent the conversion and meter leaks
Keywords: MCU, AD7751, X1288, PS2 Keybord

目  录
第一章 引言 5
1.1 设计背景 5
1.2 任务和要求 5
第二章 系统设计 6
2.1. 系统分析 6
2.1.1 系统要求 6
2.1.2 系统难点分析 6
2.2 系统设计 6
2.2.1 数据采集单元 7
2.2.1.1 方案一:采用打孔光电检测 7
2.2.1.2 方案二:选用AD7751专用电能计量芯片 7
2.2.1.4 最终数据采集单元方案确定 7
2.2.2 单片机选择 7
2.2.3 时钟单元设计 9
2.2.3.1 方案一:用单片机自身定时器完成 9
2.2.3.2 方案二:选用专用时钟芯片 10
2.2.3.3 最终时钟单元方案的确定 10
2.2.4 显示单元设计 10
2.2.4.1 方案一:LED显示 10
2.2.4.2 方案二:LCD显示 10
2.2.4.3 最终显示单元方案的确定 11
2.2.5数据单元输入方案设计 11
2.2.5.1 方案一:普通键盘 11
2.2.5.2 方案二:PS2键盘 11
第三章 硬件电路设计 12
3.1 选定芯片 12
3.1.1 80C52单片机 12
3.1.2 AD7751 单相全电子防窃电电度表专用芯片简介 15
3.1.2.1 内部结构与工作原理 16
3.1.2.2 AD7751电路连接图 17
3.1.3 时钟芯片X1288 17
3.1.3.1  X1288内部结构框图及引脚图 18
3.1.3.2  X1288工作原理 19
3.1.4 LCM1602液晶模块简介 21
3.1.5 存储芯片24C64简介 23
3.1.6 PS2键盘接口设计 23
3.2 芯片引脚资源分配文档 23
3.3 电路图 24
第四章 软件设计 25
4.1 主程序流程设计 25
4.2 子程序流程图及程序设计 26
4.2.1 系统初始化程序流程图 26
4.2.1.1 键盘输入子程序 27
4.2.1.2 X1288初始化 28
4.2.1.3 费率调整子程序 32
4.2.1.4 更新报警时间子程序 34
4.2.2 测量计费子程序 39
4.2.2.1 功率测量的原理 39
4.2.2.2 测量计费子程序流程图 40
4.2.2.3 测量计费子程序设计 40
4.2.3 显示子程序 41
4.2.3.1 显示子程序流程图 41
4.2.3.2 显示子程序设计 42
第五章 PCB电路设计与实现 45
5.1 PRTEL99 SE 45
5.2 本系统的PCB设计 46
第六章 系统测试与扩展 47
6.1 系统测试 47
6.2 系统扩展 50
第七章 结束语 51
参考文献 52
致  谢 53
附 录 54
 
1 第一章 引言
1.1 1.1 设计背景
随着自动化水平的提高 ,各行各业对用电量的需求也迅猛增加 ,同时加剧了供需矛盾。因此 ,加强电力负荷的监控 ,提高电网负荷率 ,实行多费电价管理将势在必行。目前 ,国内用户使用的电度表多为感应式 ,已明显落后于时代发展。鉴于这种情况 ,设计采用单片机控制的分时计费智能电度表势在必行。
目前市场的产品有些是在原来电度表的基础上 ,仅在表盘上打一个很小的光电检测孔 ,表盘每转一圈给出一个脉冲信号 ,经放大和整形后 ,作为单片机外部计数脉冲的输入信号。这些分时计费电度表不是全电子式的 ,并且不具备防窃电功能 .本文介绍的分时计费电度表是利用 AD7751 单相全电子防窃电电度表专用芯片 ,以及 89C51 单片机来实现的。AD7751 内部的比较电路能监测相线
和零线中流过的电流 ,如相线与零线电流不等。它能按较大电流计量电度 ,以保证正常计量防止窃电。采用单片机使分时计费电度表产品智能化 ,功能便于扩展 . 可以预计 ,它将有广阔的应用前景。
1.2 1.2 任务和要求
本课题需要解决的主要问题是:1.侦测电度表进线上发生的诸如短路、开路、旁路等非正常操作,并且仍能正常计算;2.实现分时计费、显示等功能。3.要做到将电度数按不同的计费期分开,以便各乘以不同的单价求出用户总的电费,必须要有一个绝对的时间标准。以实现停电期间的时间准确,以及电表来电后的正常运行。
拟采用的研究手段:1.采用AD7751单相全电子防窃电电度表专用芯片检测非正常操作,保持正常计算;2.采用AT89C52单片机实现分时计费、显示等功能。AT89C52内置8K字节电擦除可编程EEPROM片内程序存储器和256字节RAM,片内存储器空间能满足本系统程序存储的需要,可省去片外EPROM程序存储器和地址锁存器,使电路结构简单。3.采用高精度的实时时间芯片X1288。
2 第二章 系统设计
2.1 2.1. 系统分析
2.1.1 2.1.1 系统要求
利用89C51系列单片机和AD7751单相全电子防窃电电度表专用芯片设计具有分时计费功能的智能电表,要求具有可对平时、高峰、空闲3大时段的分开计费的功能。系统必须简便可靠,能够在停电维持一定时间的工作。系统的保密性应该到达一定要求,阻止一般的偷电行为和私改电表的行为。
2.1.2 2.1.2 系统难点分析
1、  停电时维持系统工作是本设计最关键的一点,尤其对于停掉相对平凡的区域,这一点直接关系到系统应用的范围和实用价值。
2、 分时计费的时间控制也是设计的关键点之一。分时计费的前提时对时间的正确把握,如果由于某些意外情况(例如上文提到的停电)导致电表时间出现很大的误差将直接破坏整个系统的运行并直接导致产品的实用性大大降低。如果这一隐患未能在安装前解决,很可能直接导致电力公司和用户的冲突,影响公司的声誉。
3、 如何有效的防止窃电集非法改装也是一个很重要的问题。如果电表被轻易改装将导致大量的电费漏交,给电力部门带来重大损失。同时也会让守法用户的正当权益受到侵害,并助长犯罪分子的嚣张气焰。若情况严重还可能引起社会矛盾,激化邻里关系,破坏安定团结的社会局面。
2.2 2.2 系统设计
根据系统分析,系统硬件应包括以下几个部分:
数据采集单元。
主控单元(MCU)。
时钟(记时)单元。
显示单元。
数据输入单元(键盘)。
以下针对各个单元模块可能采用的方案进行对比和探讨,从中选择最佳方案。
2.2.1 2.2.1 数据采集单元
数据采集单元是将测量到的电能转化为某种信号(如电压、频率等)并经过一定的处理传递给单片机。单片机根据传送来的信号,测量电能并计算电价。
2.2.2 2.2.1.1 方案一:采用打孔光电检测
打孔光电检测是在现有的机械式电表的转盘上打孔,利用光电检测的手段记录转盘转动的次数,由此来得到电能数据。
优点:采用此方案可以借用现成的机械式电表的结构,很容易实现电表的改装并迅速投入生产。
缺点:从本质上来说电表依然是机械式的,并不能很好的防止窃电。
2.2.3 2.2.1.2 方案二:选用AD7751专用电能计量芯片
AD7751 是美国 AD 公司生产的单相全电子防窃电电度表专用芯片 ,具有动态范围大 ,精度和功耗低等特点它能侦测出在电度表出进线上发生的诸如短路 ,开路 ,旁路等非正常操作 ,并且仍然能进行正常计量 .
优点:可构造全数字式电表,提高系统的工作精度,可以大大降低整个系统的功耗,并对窃电等行为具有较强的检测和对抗能力。
缺点:整个系统需要全部设计,投入生产慢。
2.2.4 2.2.1.4 最终数据采集单元方案确定
从以上两个方案的对比可以明显的看出AD7751具有很强的优势。全数字电表是未来电表发展的趋势,全数字电表必然会成为未来电表的主流。从这一点来说,选用AD7751的缺点并不是很重要。
2.2.5 2.2.2 单片机选择
AT89C52是ATMEL公司生产的低功耗、高性能8位微控制器,它内部具有8K字节的Flash存储器、256×8Bit RAM、32个可编程输入/输出端口、3个16位定时/计数器、8个中断源、存储器具有1000次可写/擦寿命、可编程串行输入/输出端口、最高工作频率24MHz。由于89C52内部具有2K字节的Flash存储器和256字节的RAM,这就使它无需其它外围芯片,就可构成一个独立的小系统,从而被广泛应用于各种仪表。
主要性能参数:
与MSC——51产品指令和引脚完全兼容
8K字节可重檫写Flash闪速存储器
1000次檫写周期
全静态操作0Hz——24MHz
三级加密程序存储器
256*8字节内部RAM
32个可编程I/O口线
3个16位定时/计数器
8个中断源
可编程串行UART通道
低功耗空闲和掉电模式
 
图 2-1 AT89C52内部原理图
2.2.6 2.2.3 时钟单元设计
2.2.7 2.2.3.1 方案一:用单片机自身定时器完成
AT89C52自身带有3个16位定时器/计数器,根据设置可完成定时/计数功能。
优点:可以减少外围电路的规模,减少元器件个数,有助于降低成本。
缺点:大大增加了单片机自身的任务,占用了大量的资源,降低了单片机对任务本身的处理能力。同时由于任务繁杂,如果单片机要自身完成,计时功能将一定程度上影响时钟的精确度。为了提高时钟精确度,则必然采用比较复杂的程序及算法来完成系统的软件设计,增加软件的复杂度,降低了可维护性。
2.2.8 2.2.3.2 方案二:选用专用时钟芯片
专用时钟芯片是专门完成记时任务的芯片。芯片可根据单片机发送的信息设置定时的长度,记时的初始时间等等。它可以分担单片机的记时任务,并提供和精确的参考时钟,在很多场合可以作为看门狗使用。
优点:减少了单片机自身的任务,降低了软件复杂度,大大提高了时钟精度和系统的可靠性。有利于软件的维护和系统的进一步开发。
缺点:增加了外围电路的规模,增加了产品成本。
2.2.9 2.2.3.3 最终时钟单元方案的确定
在本设计中,系统的稳定性和精确度占有至关重要的地位。因此适当的增加系统的复杂度,以增加一个芯片及其外围电路和适当的印刷电路板面积来换取整个系统性能的提升是值得的。因此可采用专用的时钟芯片来完成计时。
2.2.10 2.2.4 显示单元设计
2.2.11 2.2.4.1 方案一:LED显示
LED显示是较常见的显示方式,还可分为静态送显和动态送显2种方式。
优点:便宜,亮度高,容易设计。
缺点:可显示的信息有限,显示过于简单,如果要显示较多信息需要增加LED数码管的数量,同时制作较大的面板并在面板上印刷相应的文字。
2.2.12 2.2.4.2 方案二:LCD显示
采用LCD显示方案需要购买LCD显示模块,模块集成度高,操作简单设计方便。
优点:可显示的信息丰富。由于可以显示汉字,可以告知用户现在属于哪一个时段,单位电价等信息,和用户沟通方便。
缺点:显示亮度低,价格偏贵。
2.2.13 2.2.4.3 最终显示单元方案的确定
由于分时电表需要提供的信息很多,简单的LED显示模式显然无法提供相关信息,因此采用 LCD显示方案是必然的选择。
2.2.14 2.2.5数据单元输入方案设计
数据输入设备是对内部数据进行设置、修改的的接口。数据输入单元既要有很强的灵活性,又要求具有一定的保密性,防止他人利用数据输入单元修改或窃取电表内部数据。
2.2.15 2.2.5.1 方案一:普通键盘
普通键盘是和单片机一起做在电路板上的键盘,在多数单片机系统中都采用的此种键盘。又可分为矩阵键盘和线性键盘,矩阵键盘节约口线但程序设计稍微复杂,线性键盘程序设计简单但浪费资源。
优点:常见的数据输入方式,实现起来相对简单。
缺点:占用电路板面积,不利于保密,不法分子可以很方便的利用现成的键盘修改电表数据。
2.2.16 2.2.5.2 方案二:PS2键盘
PS2键盘是PC机上常用的7针键盘,在USB键盘/鼠标没有诞生以前PS键盘/鼠标一直是PC机的标准配置。
优点:通过专门设计的接口和外接PS2键盘相连接,只需要占用2根口线就数据的输入,节约I/O资源。在完成数据设置后,可以讲接口加封或者损坏以避免被不法分子利用。可输入的数据多,操作相对灵活。
缺点:编程难度要高于普通键盘,实现较为麻烦。
 
3 第三章 硬件电路设计
3.1 3.1 选定芯片
3.1.1 3.1.1 80C52单片机
AT89C52是ATMEL公司生产的低功耗、高性能8位微控制器,它内部具有8K字节的Flash存储器、256×8Bit RAM、32个可编程输入/输出端口、3个16位定时/计数器、8个中断源、存储器具有1000次可写/擦寿命、可编程串行输入/输出端口、最高工作频率24MHz。由于89C52内部具有2K字节的Flash存储器和256字节的RAM,这就使它无需其它外围芯片,就可构成一个独立的小系统,从而被广泛应用于各种仪表。
AT89C52与标准的 MSC51指令和8052引脚完全兼容
其引脚图如图3-1所示:
 
图3-1 AT89C52引脚图
引脚简单说明如下:
一、I/O端口
    8051共有4 I/O端口,为P0,P1,P2,P3;4个I/O口都是双向的,且每个口都具有锁存器。每个端口有8条线,共计32条I/O线。[1]
P0口:P0.0~P0.7;
P1口:P1.0~P1.7;
P2口:P2.0~P2.7;
P3口:P3.0~P3.7
1.P0 有三个功能
(1)外部扩充存储器时,作数据总线(D0~D7)
(2)外部扩充存储器时,作地址总线(A0~A7)
(3)不扩充时,作一般I/O使用,内部无上拉电阻,作为输出/输入使用时应加上拉电阻
2.P1只作I/O口使用,有内部上拉电阻。
3.P2有两个功能
(1)扩充外部存储器时,作地址总线(A8~A15)使用。
(2)作一般I/O口使用,有内部上拉电阻。
3.P3有两个功能
    除作为I/O口(有内部上拉电阻)外,还有一些特殊功能,由特殊寄存器来设置。P3口的第二功能如下所示:
P30:RXD(串行输入口)
P31:TXD(串行输出口)
P32:/INT0(外部中断)
P33:/INT1(外部中断)
P34:T0(TMER0的外部输入脚)
P35:T1(TMER1的外部输入脚)
P36:/WR(外部数据存储器的写入控制信号)
P37:/RD(外部数据存储器的读取控制信号)
    端口1,2,3有内部上拉电阻,作为输入时,其电位被拉高,若输入为低电平可提供电流源;作为输出时可驱动4个LS TTL。而端0作输入时,具有较大的负载能力,其输出缓冲器可驱动8个LS TTL(需外加上拉电阻)。

二、RESET复位引脚
    为高电平时(约2个机器周期),可将CPU复位,CPU复位后累加器及寄存器的二进制初值如下所示:
ACC:00000000
B:00000000
PSW:00000000
SP:00000111
P0/P1/P2/P3:11111111
IP:XXX00000
IE:0XX00000
TMOD:00000000
TCON:00000000
三.ALE/PROG地址使能信号端
    有三种功能:
(1)8051外接RAM/ROM时,ALE接地址器(8282)的STB脚,(74373)的EN脚,当CPU对外部存储器进行存取时,用以锁住地址的低位地址。
(2)8051未外接RAM/ROM时,ALE脚会有1/6晶体振荡频率,可作为外部时钟。
(3)在烧写EPROM时,ALE作为烧写时钟的输入端。
四、PSEN 程序储存使能端
(1)内部程序存储器读取,不动作。
(2)外部程序存储器读取(ROM),在每个机器周期会动作两次。
(3)外部数据存储器读取(RAM),两个/PSEN脉冲被跳过不会输出。
(4)外接ROM时,与ROM的/OE脚连接。
五、EA/VPP
(1)接高电平时:
CPU读取内部程序存储器(ROM)。
扩充外部ROM,当读取内部程序存储器超过0FFFH(8051)、1FFFH(8052)时,自动读取外部ROM。
(2)接低电平时:
    CPU读取外部程序存储器(ROM)。
(3)8751烧写内部EPROM时,利用此脚21V的烧写电压。
六.XTAL1 、XTAL2 接晶体振荡器引脚
机器周期=晶体×12;如12MHz晶体/12=1微秒
3.1.2 3.1.2 AD7751 单相全电子防窃电电度表专用芯片简介
AD7751是一种用于双线配电系统的高精度容错电能mill集成电路(IC).它采用了新顺的故哮检侧方案报告故降,并且使AD7751能在故雌条件下连续准确计费.部分技术指标超过了IEC1036标准中所列的精度要求;在AD7751上使用的模拟电路仅用在模/数转换(ADC)和参考旅电路中.所有的其他信号处理(例如乘法和撼波)都是以数字域来完成的。利用这种方法,对极端环境条件和对时间变化,都能提供超移定性和超格度。
AD7751摇件的主要性能指标:
1)精度高,在500至1的动态范围内误差小于0.3%
2)连续监侧相线和零线电流,可在双线配电系统中进行故康检测,
3)采用了两个电流中较大的一个来进行计算甚至在故障条件下也可以进行;
4)可直接驭动机电计数器和双相步进电机;
5)在电源遇到断路情况时.可自动计时复位;
6)AD7751的高频辐出CF可用于校准和提供瞬时实际功率数据。
3.1.3 3.1.2.1 内部结构与工作原理
AD7751 的内部结构如图3-2所示。
 
图3-2 AD7751内部结构图
AD7751采用DIP-24塑料封装或SSOP-24小型封装,其内部框图如图2所示。各引脚的功能如下:DVDD、DGND、 AVDD、AGND分别为数字电源端、数字地、模拟电源端、模拟地。在电源与地之间需接l0uF电解电容和0.luF陶瓷电容并联而成的退耦电容。AC/ DC为高通滤波器(HPF)的选通端,固定接高电平时电流通道中的HPF一直被选通。U1a、U1b为电流通道( CH1)的正、负模拟信号输入端,接差分模拟输入信号U1。U1n为电流通道差分输入电压的公共端,根据实际情况,此脚可直接与AGND短接,亦可经RC退耦电路接AGND。U2p、U2n为电压通道(CH2)的正、负模拟信号输入端,接差分模拟输入信号U2。/R为复位端,外接RC定时元件,能在上电或断电时将AD7751定时复位,不用时要经过上拉电阻接DVDD。UREF(I/ O)为内部2.5V基准电压源的输入或输出端,该端需经0.1uF陶瓷电容接AGND。SCF为校验频率选择端,配合S1、S0端来设定校验频率CF的最大值。CLKi、CLKo分别为时钟输入、时钟输出,外接3.579545 MHz石英晶体和两只33pF陶瓷电容,构成电容三点式晶振电路。FAULT为故障输出端。当U1a与U1b相差12.5%以上时,此端输出高电平,故障排除后,该端自动复位。REVP为正、负功率标志端,检测到负功率(即u与i之间有1800相位差)时为高电平,检测到正功率时恢复成低电平。
AD7751由模拟输入电路、模数转换电路ADC和信号处理电路组成。模拟输入电路由两个模拟输入通道组成,CH1用来测量电流信号,同时检测相线和零线的电流,通过比较器以较大的那个信号进行电能计量。CH2用来测量电压信号。每个通道均采用差动输入,通过电流互感器、电压互感器或分流器、分压器等外围电路与电网连接。为使输入信号满足AD7751的要求,电流通道采用增益可编程放大器 (PGA)。AD7751将两个输入模拟信号电压与电流相乘积并转换成与其成正比的输出频率,即直接数字化,用于功率计算极为方便。
3.1.4 3.1.2.2 AD7751电路连接图
AD7751数据手册推荐标准连接图如图3-3
 
 
 
 

图3-3 AD7751推荐连接图
3.1.5 3.1.3 时钟芯片X1288
X1288是Xicor公司最新推出的高精度多功能时间芯片。除了提供高精度的时间外,还提供了片内的32K×8位的EEPROM、看门狗、2个警告和备和电源的自动切换、频率输出等大量实用的功能。由于它使用的外部晶振可以选用低价格的32.768kHz晶体振荡器,所以芯片的价格便宜。它提供的时间分辨率为1/100s,以及小于5×10 -6的年变化率,使得它得以在手机、POS设备、智能仪表、控制装置及其它电子领域中得以广泛的应用,而且还可以作为低精度仪表的时间校准。
3.1.6 3.1.3.1  X1288内部结构框图及引脚图
图3-4为X1288的内部结构框图:
 
图3-4 X1288内部结构框图
图3-5为X1288引脚封装图
 
图3-6 X1288引脚封装图
引脚功能说明如下:
X1,X2:外接32.768kHz晶振的引脚。
RESET:复位信号输出,作为看门狗时使用。
Vss:数字地。
SDA:用于串行传输数据的输入与输出双向引脚。引脚为开漏输出,因此需要接上拉电阻,线上的传输速度最高达400kHz。
SCL:串行时钟输入脚。
PHZ/IRQ:多功能复用引脚。
功能1——可编程的频率输出。可以输出32.768kHz、100Hz、1Hz或不激活四种状态。
功能2——中断输出。提醒上位机一个定时警告已产生,低电平表示激活。
VBACK:后备支撑电源引脚输入端。
Vcc:主电源。
NC:无内部连接。
3.1.7 3.1.3.2  X1288工作原理
X1288内部共有可用的寄存器64个,其中0x00~0x37和0x3f已经使用。分别为状态寄存器、时间寄存器、控制寄存器、报警寄存器0、报警寄存器1。
主要寄存器介绍
状态寄存器(SR)是易失性的,其地址是03H,命令格式如下:
图3-7 X1288状态寄存器
BAT:后备电源标志。BAT为“1”,表明器件在使用后备电源。
AL1、AL0:报警选择位。X1288中有两个报警寄存器。若其中的某一报警时间与实时时钟相同时,相应的AL1和AL0位将变为“1”;当读取SR的值后,该位又变为“0”。
RWEL:时钟/控制寄存器写入控制位。对控制寄存器进行写操作时,必须先使该位为“1”。
WEL:控制寄存器和内部的EEPROM的写入控制位。在对它们进行写操作时,必须先使该位为“1”。但是要对它进行写,先要写RWE1位为“1”,即先写“02H”到状态寄存器,再写“06H”到状态寄存器才可以。
RTCF:掉电标志位。当全部电源包括Vcc和VBACK失效后,该位变为“1”;而在系统再次上电后,如果要对RTC进行第一次有效写操作,则应首先使该位为“0”。
实时时钟(RTC)
实时时钟寄存器的地址0030h~0037h分别对应秒、分、时、日、月、年、星期和百分秒,并采用BCD码表示。通过启动一条读命令并确定相应的地址,即可读取时间信息。因为时钟是连续运行的,而每次读操作都需要一定的时间,这就有可能在读操作过程中使时间发生改变。本器件是由读命令将时间锁存在分立的锁存器中,因而可以避免读操作过程中时间发生变化。当一次读出并不是由读操作引起时,系统将发出报警。
可以通过向RTC寄存器中写入数据来设定时间和日期。通过一次不完全连续的写操作可避免改变当前时间,在RTC数据输入字节之前的ACK位时,时钟的下降沿会将当前的时间值装载到分立的缓冲器中,以使时钟继续运行。而此时新的串行输入数据将取代缓冲器的值。当有效的写操作结束后,系统产生停止位时,这个新值才被装载到RTC寄存器中。向RTC写入单个字节并不对其它字节的数据产生影响。
当X1288在VCC和VBACK都失效以后,即使再次上电后,其时钟也将停止增加,直到在时钟寄存器中进行至少一个字节的写操作以后。
读出和设定时钟应注意:百分秒寄存器(SSEC)是只读的;小时寄存器(HR)中的MIL位是12/24时制选择位“1”为24时制,“0”为12时制,H21位是AM/PM标志位“1”代表PM,“0”代表AM;星期中的七天只用三位(DY0~2)来计数,其值在0~6之间循环,数字所代表星期中的哪一天可由设计者决定,缺省值为0。
控制寄存器
表2所示是4个控制寄存器的命令字列表,其中的DTR是数字化微调寄存器,它的作用是调整每秒的计数值和ppm误差,以便在长时间内获得更好的计时精度。DTR2是符号位,“1”为正补偿,“0”为负补偿;DTR1、DTR0可分别提供10ppm、20ppm的补偿。由DTR0~DTR2三位可表示-30ppm~+30ppm的补偿范围。

 
表3-1 控制寄存器
报警寄存器
X1288有两个报警寄存器,地址分别在0000h~0007h和0008h~000Fh,通过这两个报警寄存器可设置两个报警时间。报警寄存器的内容与RTC很类似,不同之处在于其最高位被设置为使能位,而取消了HR中的12/24时制控制位。使能位规定了哪些寄存器可用来与实时时钟寄存器作比较。通过设置EMOn位并结合其它使能位和特定的报警时间,用户可以建立在每年的同一时间(精确到秒)触发一次报警。用户可以通过轮询AL0和AL1软标志来确定一次报警的发生,或者使能IRQ输出作为一个硬件报警标志。当所有的使能位都被设置成“0”时,整个系统无报警。
计时精度调节原理
为了实现高精度的定时,X1288主要通过芯片内部的晶振补偿单元的数字微调寄存器和模拟微调寄存器来实现。这两个寄存器为非易失性的,掉电之后数据也不会丢失。数字微调寄存器(DTR)应用3位DTR2、DTR1、DTR0来调节每秒的计算次数和平均错误,获得更好的精度。其中DTR2为符号位:DTR2=0,频率补偿为正;DTR2=1,频率补偿为负。DTR1、DTR0是数值位,DTR1提供10×10 -6的调整范围。DTR0提供20×10 -6的调节范围。三个位组合起来提供-30×10 -6~+30×10 -6的调节。模拟微调寄存器(ATR)共有ATR5~ATR0的6个模拟微调位,用于调节芯片内加载电容的大小。加载电容的大小为3.25pF~18.75pF。内部电容大小的计算公式如下:
CATR=(ATR value×0.25pF)+11.0pF
典型可调节的晶振频率范围上下偏差为+116×10 -6~-37×10 -6。两个微调寄存器相结合,最大可调节+146×10 -6,实现高精度的定时微调。
3.1.8 3.1.4 LCM1602液晶模块简介
LCM1602是一种使用非常广泛的液晶模块,她支持5*7点阵和2行*16字符2两种模式,背光亮度和显示对比度可调,是一种功能较建议,价格较便宜的液晶显示器件。它由显示屏和驱动器两部分组成,单片机可通过写控制字的方式访问驱动器来实现对显示屏的控制。
其具体封装如图3-8:
 
图3-8 LCM1602封装图
各引脚的功能分别为:
VSS 电源地;
VDD 电源正极;
V0  显示偏压;
RS  指令/数据选择端(H/L);
R/W 读写选择端(H/L);
E   使能信号;
D0~9 8位数据总线;
LED+ 背光电源正极;
LED- 背光电源负极。
LCM模块内部有缓冲器,地址80~8F对应屏幕第一排,地址C0~CF对应屏幕第二排。
3.1.9 3.1.5 存储芯片24C64简介
24C64是一款基于I2C技术的E2PROM存储芯片,空间大小为64K。
其引脚及封装形式如下:
 
图3-9 24C64封装图
图中A0~2为器件编号。WP为写保护信号,在WP为高时不能对24C64进行写操作。SCL为时钟信号,SDA为数据信号。
3.1.10 3.1.6 PS2键盘接口设计
PS2为7针接口键盘,其中第4针为电源,第3针为地,第1针为数据,第5针为时钟。第5针必须接到外部中断INT中的一个,数据输入方式为串行,类似于I2C。可在电路板上设计4针SIP封装的接口用于PS2键盘转化器的连接。
3.2 3.2 芯片引脚资源分配文档
根据以上各芯片引脚功能及内部工作原理,分配AT89C52引脚资源如表3-2
表3-2单片机引脚分配
AT89C52引脚号 连接的芯片名称 连接引脚名 连接引脚号 功能
P1.0 AT24C64   SDA   5 单片机向AT24C64传输数据与命令
P1.1 ADT24C64   SCL   6 单片机向AT24C64提供时钟信号
P0 LCM1602   D0~7   7~14 向测量端nRF905输入温度数据
P2.0 LCM1602   RS   4 指令/数据选择端
   P2.1 LCM1602 R/W   5 读/写选择端
P2.2 LCM1602 E   6 使能信号
P1.2 AT24C64    WP   7 写保护
P3.0 X1288    SCL   11 时钟信号
P3.1 X1288    SDA   10 向X1288发送/接收
P1.4 PS2   DATA   1 PS2键盘数据
P3.2 PS2  CLK   5 PS2键盘时钟
P3.3 X1288   IRQ   14 定时到向单片机发中断信号
P1.5~1.6 AD7751 G0,G1 16、15 控制放大器增益
P3.4 AD7751 CF 22 AD7751数据输出,用于测量电能
P1.7 AD7751 SCF 11 频率校验
 
3.3 3.3 电路图

图3-10 电路图全图
 
4 第四章 软件设计
4.1 4.1 主程序流程设计
 
 
 
 
 
 
 
图4-1 主程序流程图
 如图4-1所示,主程序主要由系统初始化、时段判断、测量并计算电费、显示计量结果等4部分组成。其中系统初始化是整个软件设计最复杂、最重要的部分。包括了键盘数据输入、费率设置、X1288初始化、24C64的初始化等。

4.2 4.2 子程序流程图及程序设计
4.2.1 4.2.1 系统初始化程序流程图
 
图4-2 系统初始化流程图
4.2.2 4.2.1.1 键盘输入子程序
 
图4-3 键盘输入子程序流程图
键盘输入子程序具体编写如下:
KEYBORD: MOV C,DATA ;将数据送入C中
   RRC A     ;数据右移,先送低位
   MOV R1, A  ; 保存数据到R1
   MOV R2, 20H ;20H保存计数信息
   DJNZ  R2,FINISHKEY
   MOV 50H,R1  ;收齐一帧,保留低8位
   MOV 20H, #0AH  ;重新设置计数信息
  AJMP ENDKEY
FNISHLEY: MOV 20H, R2 ; 保存计数信息
ENDKEY:  RET
根据读到的高8位信息,通过查表可以判断出PS2键盘发送的信息。相关表的信息见附录。
4.2.3 4
025 电子信息工程-汇编设计 电表自动分时计费控制器的设计
 

关闭窗口

与本站联系的时候,为了提高效率,请告诉本站您需要的设计编号与题目。如:001VBAC人事管理系统
编码说明:001VBAC人事管理系统,其中001VBAC 为该毕业设计的编号,VB代表开发语言,AC代表数据库(ACCESS)
版权所有:510计算机论文网:http://www.lw510.com/程序制作:510论文
Email: LW510@QQ.COM  QQ: 497053418   MSN: LW510@QQ.COM