复费率智能电表的单片机软件设计(5)

2019-03-22 17:27

(8) 键处理程序:

键分析时程序分为两个状态: 编程态和非编态。 在不同的状态下同一个键功能不同, 程序也按不同功能状态聚簇, 在不同的状态下分析到同一个键也执行不同的程序。

(9) 编程态数据闪烁的实现:

程序设了一个闪烁指示字BLINK, 一个闪烁标志位BLINK_F, 进入编程态时置位BLINK_F, 当秒计数最后一位为 1时, DISPLAY程序就不打开BLINK 所指示的对应数码管, 当秒计数最后一位为0时, DISPLAY程序正常显示所有有值的数码管。 这样就得到了闪烁的效果。

§4.5 关键技术分析

为了程序较好的可读性, 在软件的编制中许多地方使用了类似高级语言的结构化技术, 并使用了类似 C语言中SWITCH机构的结构。具体实践中主要就是严格按功能划分程序模块, 使得各模块之间功能相对独立, 接口定义清晰, 参数传递尽量简单,以减少可能出现的失误, 避免引起系统功能紊乱。 设计过程中还严格按照软件工程学的要求,先行设计出了伪代码程序, 这也给软件由抽象的设计思想到具体的汇编程序的编制带来了很大的方便。 这使得程序代码段功能分配明确, 控制转移十分清楚, 给程序的编制和调试带来了很大方便。 突出例证就是程序在编码完成后, 仅用了五天就基本上调通了近3000行汇编程序。 而且, 可以预见, 它还将给以后的维护工作带来极大的便利。

由于程序数据量较大, 8951的128字节RAM不能满足要求, 再加上下电时数据要在PCF8583中保存, 如何实现没有I2C接口的 AT8C951和只靠I2C接口和外部联系的PCF8583之间的有效通讯, 便成为设计能否成功的关键。这个问题将在第五章中予以详细讨论。

作为智能仪器的单片机系统是要和外部有联系的。这其中的主要手段之一就是键盘。当然这里所说的键盘可能只有很少几个按钮组成。而且常常出现同一键在不同状态下按下具有不同的意义, 如何编制出高质量的键盘监控程序就成了一个需要好好研究的问题。我们将在第六章重点研究这个问题。

由于电能表使用的环境比较复杂, 各种干扰可能很大,而且还会因用户的误操作给系统带来难以预料的不良影响, 所以如何提高系统的可靠性就也成为了一个至关重要的事情。第七章将会有这方面的详细说明。

对于以上的几个问题系统都给予了较好的解决。

第五章 软件模拟 I2C通讯

§5.1 I2C总线规约

(1) I2C总线概念:

I2C串行总线是器件与器件(IC与IC简称为I2C)之间的通讯总线, 使用两根线( 时钟线 SCL和数据线 SDA) 就可以实现器件之间的串行通讯。飞利浦的很多单片机具有I2C总线接口,同时还生产配置I2C接口的外围电路(RAM,I/O口,AD,DA 等), 它为系统的扩展提供了很方便的手段。

I2C的硬件逻辑提供了开始和结束信号检测。 从器件地址识别、总线的竞争与同步、定时和控制等功能。 这里我们主要关心有关软件模拟方面的特性。

I2C 总线根据地址识别每个器件。根据器件的功能可以工作于发送或接收

方式。 另外, 对于发送器或接收器来说, 在进行数据传送时可以认为是主器件或从器件。 一个主器件是启动在总线上传送数据并产生时钟以允许传送的器件, 这时任何被寻址的器件认为是从器件。

数据有效性:

在时钟高电平期间SDA上的数据必须稳定(见下图),只有在时钟线SCL低电平期间SDA线上高电平后低电平状态才能发生变化。

开始和结束信号:

开始信号: SCL为高时, SDA由高到低跳变; 结束信号: SCL为高时, SDA由低到高跳变;

(2) 数据传送: .1. 字节格式

送到SDA线上的每个字节必须为 8位长度, 每次传送的字节数是不受限制的, 每个字节后面必须跟一个响应位。 数据在传送时先传送最高位(详见下图)。

.2. 响应(认可)

确认数据是必须的, 认可位相对于主器件产生的 1 个时钟,在这个时钟内发送器释放SDA线。

接收器件在这个时钟内必须将SDA拉成低电平,使SDA 在该时钟的高电平期间为稳定的低电平(见下图)。 当然也应考虑置位和保持的时间(详见后面的定时说明)。

(3) 数据格式:

数据传送遵循下图所示的格式。 在开始信号后送出一个器件从地址,地址为7位, 第八位为方向位(R/W), \表示发送(写), \表示请求数据(读)。 一次数据传送总是由主器件产生的结束信号而终止的。 主接收方式中, 在 第一个响应位时主发送器变成主接收器, 从接收器变成从发送器, 但该认可位仍由从器件产生。 结束信号仍由主器件产生。

(4) 寻址:

开始信号后第一个字 节确定主器件所选择的从器件。该字节前七位组成从器件地址, 最后位确定信息的方向。 其格式如下:

最后位为\时表示主器件把信息写到所选择的从器件, 为\表示主器件将从从器件读信息。

信号开始后, 系统中各器件把自己的地址和主器件送到总线


复费率智能电表的单片机软件设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:觉性是所有疑惑的解答

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: