微机原理课程设计(秒表+).doc

微机原理课程设计(秒表+).doc

ID:52208475

大小:111.50 KB

页数:14页

时间:2020-03-24

微机原理课程设计(秒表+).doc_第1页
微机原理课程设计(秒表+).doc_第2页
微机原理课程设计(秒表+).doc_第3页
微机原理课程设计(秒表+).doc_第4页
微机原理课程设计(秒表+).doc_第5页
资源描述:

《微机原理课程设计(秒表+).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、微机原理课程设计目录一、设计任务-------------------------------------------------------------3二、设计原理-------------------------------------------------------------32.1原理概述2.2延时原理2.3显示字符及字符串原理2.4压缩BCD码转为ASCII原理2.5动态扫描键盘原理三、设计流程图----------------------------------------------------------43.1主程序流程图3.2各子程

2、序流程图四、源程序运行结果----------------------------------------------------7五、程序调试--------------------------------------------------------------8六、心得体会--------------------------------------------------------------9七、参考书目--------------------------------------------------------------9八、附录(源程序代码

3、)-----------------------------------------------1014微机原理课程设计一、设计任务1.具有秒和百分之一秒计时并显示于图案中央2.具有启、停功能3.具有复位功能4.具有记忆功能5.具有整分报时功能二、设计原理2.1原理概述通过调用INT21H的8号功能实现控制字符的输入,通过调用延时程序实现百分之一秒的定时,通过调用INT10H的2号功能实现光标定位,调用INT21H的2号功能实现字符的输出,通过调用INT21H的9号功能实现字符串的输出。2.2延时原理本设计利用软件实现延时,即通过可控制的循环来占用CPU的时间

4、来实现延时。延时函数名为TIME,运用内外两层循环,外循环由AX中的数值来控制,内循环有CX中的值来控制。实现不同延时的控制,通过反复比较调试,确定AX的值为0EFH,CX的值为0FFFFH。2.3显示字符及字符串原理整个屏幕可显示25行、80列字符,屏幕左上角字符位置为0行0列,右下角字符位置为24行79列,对应于十六进制为:左上角为(0,0),右下角为(18,4F)。定位光标用INT10H的2号功能,DH中存行号,DL中存列号,BH中存页号。显示字符用INT21H的2号功能,DL中存放要显示字符的ASCII码。显示字符串用INT21H的9号功能,DX中存要

5、显示的字符串的偏移地址。2.4压缩BCD转为ASCII原理先将压缩BCD码的高4位取出,右移四位后,与30H相或,存到相应内存单元;然后将低4位取出,与30H相或,存到下一内存单元。2.5动态扫描键盘原理运用INT21H的8号功能来实现动态扫描键盘。如果有键按下,则相应的键值的ASCII码被存到AL中。判断AL中的数值,若不是控制字符,则继续循环,从而实现动态扫描键盘。14微机原理课程设计一、程序流程图3.1主程序流程图14微机原理课程设计3.2子程序流程图14微机原理课程设计14微机原理课程设计四、源程序运行结果图4.1程序执行效果图14微机原理课程设计五、

6、程序调试1、主程序的调试本方案的设计思路是先写好各子程序再写主程序,因此必须明确何时调用子程序,否则会出现逻辑错误。何种寄存器需要保护,取决于子程序在主程序中的位置以及该寄存器在主程序中的作用,要尽量少用堆栈操作以提高效率。主程序调试的另一重要内容是如何实现控制字符的各种功能。我们组使用DOS系统功能调用的8号功能,该功能将键盘输入存入AL寄存器,通过判断寄存器中是否为控制字符来判断是否有字符输入,若AL中为随机数则无输入。主程序的控制字符为大写字符,一开始我们没有用大写字母锁定,按什么键都不能启动,以为程序有问题,几经修改,浪费了很多时间。主程序使用压缩BC

7、D码做的加法,再用DAA进行调整,这时要注意DAA只能对AL中的结果进行调整,因此只能用AL做加法,再将数据传送过去。2、延时子程序的调试延时程序的时间并没有经过精确计算,因此只能用试探法逐渐增加或减小AX值。我们组是每十秒与标准时间(手机秒表)比较一次,程序走的比较快因此应逐渐增加AX值,最终选定AX=0EFH。当然了人总有一定的反应时间,不可能做到十分精准,但是在误差允许范围之内就可以了。3、图形显示程序的调试我们组的图形显示使用了宏调用,主要因为它可以方便的传递参数,图形显示需要大量重复性程序使用宏定义可以节约编程时间,又可以让程序更简洁。调试的主要任务

8、是使图形更美观,通过数出各点的行数列数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。