倒计时牌 (1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息科学与技术学院

微机原理与接口技术

课程设计报告

题目名称:倒计时牌

学生姓名:冉婷婷

学号: 2009082244 专业年级:计科09级2班

指导教师:张更新

时间: 2012-01

目录

1.课程设计题目及要求 (1)

1.1课程设计的题目: (1)

1.2课程设计的要求 (1)

2.功能设计 (2)

2.1功能模块. (2)

2.2功能图 (2)

3.详细设计. (3)

3.1设计方法. (3)

3.2各功能模块及流程图 (3)

4.运行结果 (7)

5. 课程设计总结 (8)

6参考书目. (8)

附录. (10)

1、课程设计题目及要求

1.1课程设计的题目:倒计时牌

1.2课程设计的要求:

1.能实现日历功能

2.能实现倒计时功能(显示天、时、分、秒)

扩展功能:实现倒计时的时间人为设定

2、功能设计

2.1、功能模块:

宏定义:

置光标位置(setf)————定义光标定位宏

清屏(clearscreen)————用于将屏幕清成指定的前景背景色输入(input)————定义输入宏

程序:

主程序模块:根据选择显示日历的时间,或倒计时时间

初始化窗口模块:给出操作提示。

系统时间子程序:取得时间,并将时间存于数据段的。

系统日期子程序:取得日期星期,并将日期星期信息存于数据。

转换子程序:将阳历转换成阴历,将阴历信息存于。

显示子程序:通过数据段的shuzi,将时间显示成数码管的形式。

延时子程序:通过检测61h端口,实现延时一秒。

减一秒子程序:执行延时程序后,时间减少一秒。

减一天子程序:若时间00:00:01减少一秒,则执行减一天的操作。

输出子程序————输出指定的字符串。

2.2、功能图:

Y

开始

操作提示

能日

是否有字符输入?

显示时间、操作提示

退出

3、详细设计:

3.1、设计方法:

定义clearscreen宏,使用BIOS的06号功能---清屏或上卷;定义setf宏,使用BIOS的02号功能---制光标位置;定义input宏,使用BIOS的01号功能---输入字符。

显示系统当前时间与日期,使用DOS的2A号功能取系统日期和2C号功能取系统时间。定义数据段Disptime存放系统时间,Dispdata存放系统日期。年存在ch中,月存在dh中,日存在dl中。将年份除以10,得到它的每一位,每一位加30h,求取它的ASCII码,并将其送到指定的存储位置中。求取时间的方法与日期相同。

在代码段中主函数通过调用各子程序来执行相应的功能。Disp子程序取得disptime内的数字并乘以16确定该数字在shuzi段的位置,之后置光标显示该字符。Delay子程序通过监听61h端口实现硬件延时,消除由于cpu速率导致的延时不精确。

3.2、各功能模块及流程图

取得日期、星期的getdata 模块 延时程序模块

n

y

n

y

n

y

开始

设置循环次数75d

设置循环次数6632d

al ==0 ?

bl ==0 ?

结束

监听61端口,直到第四位发生改变

开始

mov bx,10

取系统年份放入并放入ax

mov cx,4

dx 清0,存余数 商送ax,余数送dx

将余数加30h

将余数放指定位置

pop dx

结束

push dx

div bx

cx==0 ?

时间减少一秒dec_1s模块

mov al,[Disptime+7]

dec al

mov [Disptime+7],al

Y

mov [Disptime+7],09h

mov al,[Disptime+6]

dec al

mov [Disptime+6],al

同理,判断是否导致

分、时减1

return

N Cmp al,10

取得时间的gettime模块将数字显示成数管的形式的disp子程序

调用21h的2ch号中

断,取得时间

从ch中取得时,并除以10,分别将商和余数存于代码段的两个字节,将时的2位分别存储

从cl中取得时,并除以10,分别将商和余数存于代码段的两个字节,将分的2位分别存储

从cl中取得时,并除以10,分别将商和余数存于代码段的两个字节,将分的2位分别存储取disptime中的时的十位至al

将取得数字乘以16得到其对应在shuzi段的对应显示

显示字符串

置光标位置

Dx加06

置光标,并显示字符串

Dx加06

置光标,并显示字符串

重复上述过程,将时分秒全部显示

相关文档
最新文档