作息时间控制系统毕业设计.docx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
 PAGE \* MERGEFORMAT 20 信息科学与技术学院 微机原理与接口技术课程设计 课 题 名 称: 作息时间控制系统 目录  TOC \o 1-3 \h \z \u 1、题目及要求: 1 1.1题目:作息时间控制系统 1 1.2要求: 1 2、功能设计 1 2.1、功能模块: 1 2.2、功能图: 1 3、详细设计 1 3.1、设计方法: 1 3.1.1、显示系统时间 1 3.1.2、设置闹铃时间与输入时的容错处理方法 1 3.1.3、当到达闹铃时间时响铃 1 3.2、各功能模块及流程图 1 3.3重点难点及解决办法: 1 4、总结 1 5、参考文献 1 6、附录 1  1、题目及要求: 1.1题目:作息时间控制系统 1.2要求: ①能显示时间(时、分、秒) ②并在规定的作息时间给出闹钟信号 ③并可以手动输入作息时间表 2、功能设计: 2.1、功能模块: 主程序模块main ———主要包括调用其他函数和主窗口的实现 ??钟模块setRingTime ——— 简单初始界面,要求用户输入所设定的作息时间。 调用系统时间模块(GetTime)————使用dos功能调用(int 21H)中的2ch中断截取系统时间,再调用显示时间的子程序把时间显示出来(例如显示当前时间为 16:30:45 并且如果时间数少于两位数就要在其前面加0后显示出来如 04:07:03); 延时模块(aSecond)————利用端口61H中的PB4每15.08微秒触发一次的特点,通过适当的循环次数进行循环从而实现延时1秒钟; 刷新模块(TIME)————在延时后再循环执行步骤1从而实现时间每一秒的刷新,在屏幕上不断显示当前的时间 宏的作用: 清屏(Clear)———— 用于按要求清理屏幕。(不同颜色) 定位(Dingwei)———— 用于移动光标位置,以便按要求输出。 输出(Xianshi)———— 用于程序中的字符输出。 输入闹钟setRin setRing 清屏 得到当前时间 刷新 Y 提醒作息时间 是否为闹钟时间 结束 开始Main N 2.2、功能图: 图1 全局功能图 3、详细设计: 3.1、设计方法: 3.1.1、显示系统时间 ①使用dos功能调用(int 21H)中的2ch中断截取系统时间,再调用显示时间的子程序把时间显示出来(例如显示当前时间为 16:30:45 并且如果时间数少于两位数就要在其前面加0后显示出来如 04:07:03); ②利用端口61H中的PB4每15.08微秒触发一次的特点,通过适当的循环次数进行循环从而实现延时1秒钟; ③在延时后再循环执行步骤1从而实现时间每一秒的刷新,在屏幕上不断显示当前的时间; 3.1.2、设置闹铃时间与输入时的容错处理方法 ①在数据段定义好字型变量hour、minute分别用于存放响铃时的小时数与分钟数; ②设置闹铃时间由于形式为 12:45(小时:分钟) 为了方便进行容错处理,可以分别用一段代码实现每一位数的输入,总共需要输入五位数字。例如,输入前两位的小时数时,在输入第一位时判断输入的是否是从0到2范围里的一个数字,如果不是就显示错误信息并停止程序的运行;在输入小时的第二位数时判断输入的是否是0到9范围里的一个数字,如果不是就显示错误信息并停止程序的运行;在输入第三位时(应该是冒号)再判断是否是冒号,如果不是就显示错误信息并停止程序的运行;输入第四位(即分钟数的第一位)判断输入的是否是0到5数字里的一个,如果不是就显示错误信息并停止程序的运行;输入最后一位判断是否是0到9的范围中的一个数字,如果不是就显示错误信息并停止程序的运行等等; ③每次输入如果确定输入无误就使用书本中处理输入一个十进制数常用的方法把输入的数存储到寄存器中,再把它存入相应的变量中如小时数存到变量hour中,分钟数存入变量minute中; 3.1.3、当到达闹铃时间时响铃 ①每次在截取系统时间前先把寄存器bx清零,截取时间后把截取到的系统时间分别与变量hour与变量minute进行比较,如果相等,就使寄存器bx加1,这样再执行完截取系统时间后检查bx是否为2,如果是2就表示已经到达设定好的闹铃时间,就跳出显示时间的死循环,跳到响铃的循环去; ②响铃是使用dos功能调用(int 21H)中的2H, 同时把7H放到dl寄存器中,执行一次后延时三秒(延时的方法同显示时间时所用延时方法一样)再执行一次共循环执行40次从而实现了响铃几秒钟的功能; 3.2、各功能模块及流程图 main 函

文档评论(0)

we556 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年03月21日上传了教师资格证

1亿VIP精品文档

相关文档