信息科学与技术学院
微机原理与接口技术课程设计
课题名称:作息时间控制系统
目录
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) 用于程序中地字符输出.
开始Main
输入闹钟 setRin setRing
2?2、功能图:
图1全局功能图
3、详细设计:
3?1、设计方法:
3?1?1、显示系统时间
使用dos功能调用(int 21H)中地2ch中断截取系统时间,再调用显示时间地子程序把时间显示出来(例如 显示当前时间为26: 30: 45并且如果时间数少于两位数就要在其前而加0后显示岀来如04: 07: 03);
利用端口 61H中地PB4每15.08微秒触发一次地特点,通过适当地循环次数进行循环从而实现延时1秒钟:
在延时后再循环执行步骤1从而实现时间每一秒地刷新,在屏幕上不断显示当前地时间;
312、 设置闹铃时间与输入时地容错处理方法
在数据段左义好字型变量hour、minute分别用于存放响铃时地小时数与分钟数:
设置闹铃时间由于形式为12: 45 (小时:分钟)为了方便进行容错处理,可以分别用一段代码实现每一位 数地输入,总共需要输入五位数字?例如,输入前两位地小时数时,在输入第一位时判断输入地是否是从0到2范舸 里地一个数字,如果不是就显示错误信息并停止程序地运行:在输入小时地第二位数时判断输入地是否是0到9范 用里地一个数字,如果不是就显示错误信息并停止程序地运行;在输入第三位时(应该是冒号)再判断是否是冒 号,如果不是就显示错误信息并停止程序地运行:输入第四位(即分钟数地第一位)判断输入地是否是0到5数字 里地一个,如果不是就显示错误信息并停止程序地运行;输入最后一位判断是否是0到9地范国中地一个数字,如 果不是就显示错误信息并停止程序地运行等等;
每次输入如果确定输入无误就使用书本中处理输入一个十进制数常用地方法把输入地数存储到寄存器中,再 把它存入相应地变量中如小时数存到变量hour中,分钟数存入变量minute中;
313、 当到达闹铃时间时响铃
①每次在截取系统时间前先把寄存器bx淸零,截取时间后把截取到地系统时间分别与变量hour与变疑minute 进行比较,如果相等,就使寄存器bx加1,这样再执行完截取系统时间后检查bx是否为2,如果是2就表示已经 到达设定好地闹铃时间,就跳出显示时间地死循环,跳到响铃地循环去;
②响铃是使用dos功能调用(int 21H)中地2H,同时把7H放到dl寄存器中,执行一次后延时三秒(延时地方 法同显示时间时所用延时方法一样)再执行一次共循环执行40次从而实现了响铃几秒钟地功能;
3?2、各功能模块及流程图
main函数图,如图2所示:
图2流程图
getTime proc用于截取系统时间地子程序,如图三所示:
小时数是否与响铃小
图3系统时间地子程序图
3?3重点难点及解决办法:
刚开始拿到这个题目地时候,感觉无从着手,第一难点就是不知道怎么去做这个作息时间系统,后而认为该系统类 似一个闹钟系统,可是由于自己能力有限,最后还是只能做到闹钟报时,无法做出一个完整地作息时间系统.
这道题地难点就是作息时间系统地多个闹钟设置,最终还是没有想出如何让几个闹钟同时并存,还有要设宜
原创力文档

文档评论(0)