第三节程序框图和程序说明.docx

上传人:b****6 文档编号:5257428 上传时间:2022-12-14 格式:DOCX 页数:13 大小:25.27KB
下载 相关 举报
第三节程序框图和程序说明.docx_第1页
第1页 / 共13页
第三节程序框图和程序说明.docx_第2页
第2页 / 共13页
第三节程序框图和程序说明.docx_第3页
第3页 / 共13页
第三节程序框图和程序说明.docx_第4页
第4页 / 共13页
第三节程序框图和程序说明.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

第三节程序框图和程序说明.docx

《第三节程序框图和程序说明.docx》由会员分享,可在线阅读,更多相关《第三节程序框图和程序说明.docx(13页珍藏版)》请在冰豆网上搜索。

第三节程序框图和程序说明.docx

第三节程序框图和程序说明

第三节程序框图和程序说明

一.内部资源分配

接的中断信号

,初始化程序设置为每秒钟产生一次中断,在

的中断服务程序中读时钟信息,根据时钟信息去处理显示程序。

在初始化后开中断,在校时,校闹铃开始后关中断,校时,校利率结束后再开中断。

接收遥控器的输入信号。

用作位定时器,在主板接收到校时或校利率的信号后启动,工作时每产生一次中断,中断次处理一次被校位的送黑或送亮,使被校位给人一个闪耀的感觉。

这里的被校位的送黑或送亮系指被校位全黑或显示数字。

中所定义的存储单元功能如表所示。

表中所定义的存储单元功能

地址

字符名称

功能

遥控器输入键值编码的存放单元,经的中断服务程序译码后,存放在此单元。

健植被主程序取走后送无效码。

校时(闹)标志:

正在校;,当前未校。

存放闪耀标志的单元:

,被校时位送黑,,被校时位送亮。

中断暂存单元之

中断暂存单元之

中断暂存单元之

中断暂存单元之

中断暂存单元之

中断暂存单元之

时钟秒存放单元

时钟分存放单元

时钟时存放单元

日历的星期存放单元

日历的日存放单元

日历的月存放单元

日历的年低位存放单元

日历的年高位存放单元

用于存放中暂存缓冲区字节数,初始化时设定为。

在中,每产生一次中断向此字节移位输入一个或,在次中断间的间隔是则移入,间隔是则移入。

遥控器输入的识别码存储单元。

数据在中存放的起始位(闹铃)地址指针

数据暂存单元,用来存放被校闹铃序号

记录中断次数的存储单元。

键值存储单元,主程序从中取出键值的编码后将键值存放在此单元。

校时钟和校闹铃的标志:

校时,,校闹铃。

用于存放中暂存缓冲区每个字节所含位数,初始化时设定为。

闹铃时间存储地址在从开始的存储区,每一个闹铃信息占用个字节:

第一字节说明该地址开始的个单元闹的性质(“”,星期,日不闹,闹;“”星期和星期,日都闹;,星期日都不闹)。

第字节为分,第字节为小时。

表中的地址存储在的“”单元。

表闹铃存储地址表

序号

起始地址

分地址

小时地址

在日期显示闹铃序号

不显示

在分显示

在小时显示

二.软件设计思路

使用遥控器的电子日历的软件按功能除了初始化程序外,主要有两部分:

.正常的显示功能。

.修改时钟或闹铃的数据。

在下文中我们称之为校时或校闹。

正常的显示功能由

的中断服务程序完成。

在初始化程序中设定时钟芯片每一秒钟产生一次中断,在

中断服务程序中读取时间信号(即调用子程序),判断时、分是否到闹铃的时间,以便决定是否送闹铃响(即调用子程序),并送显示时间数据(即调用)。

修改时钟或闹铃的数据在程序中占了主要的篇幅。

校时或校闹的基本思路是怎样确定的呢?

首先考虑怎样使用遥控器修改数据。

我们想确定个按键,分别为校时和校闹键。

第一次按校时键时开始校时,第二次按校时键时结束校时;按校闹键时开始校闹,按闹铃或闹铃时将输入的闹时间送入相应单元,并结束校闹。

其他的按键为上下(校闹的序号)左右(被校时日历、时钟或被校闹时钟的位数)移动功能键或数字键。

按照上面的思路,在内部设立两个软开关:

①标志着程序在校时,标志着程序在校闹。

②,当前程序在校时或校闹,,当前程序未校时或校闹。

按遥控器的按键时,

的中断服务程序将键值的编码送到键值编码存储单元中,主程序将中的内容翻译成相应的键值,送到键值存储单元。

如果键值是校时或校闹,就设置校时或校闹标志,并启动“校”功能,即开中断,启动计时,关中断。

在的中断服务程序中将中的数值送到中的对应单元。

的中断服务程序还处理被校位的闪耀送显示功能,即每一秒钟使被校位亮暗各一次,让用户很清楚的看到那一位是被校位。

其中在校闹时,要显示闹铃序号,用显示日期的显示闹铃序号,时、分单元显示闹铃的时和分。

校时或校闹结束后,再按校时或闹铃、闹铃功能键,取消校时或校闹标志,关闭中断,开启

中断。

因为在校时的过程中是把被校位的数据存放在的中,所以在结束校时功能时要先将中的数据送到中相应地址单元。

根据上面的设想,需要编制的程序主要有下面几部分。

.初始化程序和主程序。

程序框图如图所示。

初始化程序用于完成中各特殊功能寄存器的设置,启动并设置。

主程序用于检测是否有遥控器按键输入,即检测中的数值是无效码还是有效的键值,对键值进行相应的处理。

要处理的按键有校时、校闹、被校位的移动,被校闹序号的加减和数字键。

校闹的结束和数据的存储在的中断服务程序中完成。

主程序还包括启动校功能和结束校功能程序。

中断服务程序。

这部分程序包括读时钟程序,读取新的时钟数据后要根据新的时钟数据处理闹铃程序和时钟送显示程序。

.中断服务程序。

在这部分程序中完成校时数据处理,校闹数据处理和数据的送闪耀显示。

中断服务程序。

该程序将遥控器的键值送到中。

(程序说明见第一章)

下面分别介绍各部分程序。

三.各部分程序介绍

.初始化程序和主程序

语句之前是初始化程序和主程序。

初始化程序设定时钟芯片每一秒钟产生一次中断,和开中断,关中断,串口设置为工作方式。

在初始化程序结束后,主程序开始检测是否有键值输入,没有键值输入则总在等待键值输入。

如果有键值输入,依次判断是不是校时键,校闹键,移位键和数字键。

如果是校时键,先送,如果,表示目前不是处于校时、校闹状态,则调用子程序子程序“”,启动校功能。

如果,表示目前是处于校时、校闹状态,则调用子程序“”,结束“校”功能。

校闹键的处理方式和校时相似,只是送,调用子程序。

主程序框图如图所示。

 

开始

初始化

 

?

调用

调用

?

调用

是数字减吗?

吗?

数字送

?

处理合法性

?

处理合法性

?

?

图主程序框图

语句是数字键处理程序,就是将键值暂存单元的数值翻译成键值代表的数字送到键值存储单元。

语句是闹铃移位键处理程序,他们的功能就是根据键的上下左右功能,把校闹的序号减,加,把移位单元的数据减,加。

语句是”启动校时程序”和”取消校时”的程序。

图和图分别是”启动校时程序”框图和”取消校时”的程序框图。

 

 

?

?

调用

调用

启动关

启动关中断

返回

返回

图程序框图

图程序框图

子程序框图如图所示,子程序框图如图所示。

中断服务程序

语句是

中断服务程序,程序框图如图所示。

的中断服务程序中语句调用读取数据子程序“”。

语句调用送时间显示子程序“”。

语句调用闹铃处理子程序“”。

然后判断年低位是否大于或等于,如果是大于或等于,年高位送,否则年高位送,因为本程

保护现场

保护现场

调用读时钟子程序

读的寄存器

依次读秒,分,时,星期

日,月,年低位,送

调用闹铃处理子程序

处理年高位数据

恢复现场

中断返回

调用显示子程序

恢复现场中断返回

图中断服务程序框图图读时钟子程序框图

序是在年编制的,年低位小于的年高位必然是在。

然后调用送显示程序,恢复现场,返回。

读取数据,即读时钟子程序的程序框图如图所示。

语句读取的数据,是为了清中断标志,为下一次中断做好准备。

读取数据是将种的数据送到中相对应的单元。

入口

保护现场

关显示()

依次发送年高位,低位

月,日分别将高位为变黑,送显示

星期如果是变,送显示

依次发送时分秒,并将数据的高位的

变(送显示黑)

开显示(),恢复现场

返回

图程序框图

图是送显示子程序框图。

在子程序中,先关显示,以避免在传送过程中的闪耀现象存在。

然后依次送年高位、年低位、月、日、星期、时、分、秒。

除了年和星期之外,月、日、时、分、秒都是位数字。

在显示时如果第一位是,将显示,显然不好看,应将前面的“”送黑,即不显示。

为此,在传送月、日、时、分、秒时,先调用子程序“”。

子程序“”的功能是将即将传送的数据的高位的“”变成“”,因为数据发送到后,高位要送到去译码,而译码是将大于的数译码成黑,段数码管全不亮。

图是送“”子程序框图

入口

中断开否

高位?

高位变

返回

图子程序框图

当校时结束时,要将修改的数据从中写入的相应单元,这要调用“”子程序。

“”子程序框图如图所示。

入口

保护现场

处理数据合法性

 

源地址送的

目的地址送的

 

依次送秒、分、时、

星期、日、月、年

 

恢复现场,返回

图恢复子程序框图

.中断服务程序。

语句是中断服务程序。

中断服务程序框图如图所示。

这部分程序主要分三大块:

校时处理,校闹铃处理,送闪耀显示。

入口

重新启动

?

送送

被校闹数值送单

处理的合法性元

处理的合法性

?

?

暂存到送

 

调用

调用

送、送闹单元

被校闹序号送

 

被校闹序号变十进制送显示

键值?

所指单元

键值?

所指单元

键值?

所指单元

?

开,关

调用

中断返回

图中断服务程序框图

当时是校时,这时移位值应在之间,秒单元不校。

大于改为,小于改为。

处理完的合法性后调用子程序将键值送入相应的存储单元。

以后是把中断次数()加,当调用送闪耀显示子程序。

当时是校闹,这时移位值应在之间。

为了送闪耀显示,我们希望被修改的数字亮半秒,暗半秒,给人以闪耀的感觉。

半秒的时间可以由的中断完成,使产生一个毫秒的中断,在中断服务程序中记录中断的次数,当记录到次时就是半秒,去处理送闪耀位的数字。

同时,在的中断服务程序中进行校时和校闹处理。

在使用晶体时延时毫秒的时间常数计算如下:

(×/×-)—

中断服务程序的开始,先给送时间常数,送,送,然后启动并根据标志位去判断是校时还是校闹铃。

在校时或校闹结束后,把中断次数()加,当时调用送闪耀显示子程序,小于就中断返回。

送闪耀显示子程序的程序框图如图所示。

送闪耀显示子程序入口

 

?

闪耀显示位送()

(正常)

闪耀显示位送(黑)送回

并保存闪耀显示位

 

(送显示)

恢复闪耀显示位

 

结束返回

图送闪耀显示子程序框图

语句是读取被显示位数据子程序,将被校位送的低位。

语句是写被显示位数据子程序,将中的被校位写回原地址。

语句是送闪耀显示子程序,将被校位送的低位,保存到,送显示。

语句是中断服务程序,其功能介绍见第一章******页。

为了读者阅读方便,现将各有关程序的语句行号和程序标号列表于表。

表各子程序功能说明和行号

程序名称

开始语句行号

结束语句行号

功能说明

初始化

初始化

主程序

主程序

读取时间信息送相应单元

启动校功能

结束校功能

送显示子程序

送显示位高位是变黑

外中断中断服务程序

判断当前时间是否等于闹铃时间并处理

校结束后将中时间送

延时毫秒子程序

中断服务子程序

读取被校位数据到的低位

将中低位数据写入被校位

送闪耀显示子程序

外中断中断服务程序

第四节本章编后语

一.可适用于不同规格的电子日历

笔者用此电路做过的电子日历曾经使用的数码管从英寸到英寸,除了焊接数码管的线路板之外,其他软件硬件均不用改变。

当数码管使用大于英寸或小于英寸时,硬件电路要相应改变。

当使用数码管小于英寸时,可以采用图()所示电路做显示电路,成本可以低于图所示电路。

因为超过英寸时数码管的一段要由段或段以上的,这就要求数码管的阳极电压高于,常用的是。

而英寸的数码管是段组成,可以由驱动。

电路改变后软件要改变。

显示子程序,送闪耀显示子程序,读写子程序,等要修改。

如果做的量小,显然是不合算的。

当使用数码管大于英寸时,可以采用图()所示电路做显示电路

二.没有年高位数据,如果换成,就有年高位数据(在单元),可以省略年高位处理程序,但单元不能作为闹铃存储单元。

缺少图()()

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

当前位置:首页 > 高等教育 > 艺术

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

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