山东大学8086单片机课程设计--秒表

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

微机原理课程设计

设计项目:电子秒表

院系:山东大学电气工程学院

班级:09级2班

姓名:蔡健存20090019

王其凯200900191135

指导教师:秦安文

设计日期:2011年12月

目录

一、设计任务-------------------------------------------------------------3

二、相关功能的介绍----------------------------------------------------3

三、设计原理-------------------------------------------------------------3

1. 原理概述

2. 延时程序

3. 光标定位子程序原理

4. 清屏原理

5. 字符及字符串显示原理

6. 动态扫描键盘原理

四、程序流程图----------------------------------------------------------4

1.主程序流程图

2.各子程序流程图

五、程序代码-------------------------------------------------------------5

六、程序运行结果------------------------------------------------------14

七、程序调试中的问题及解决方法---------------------------------15

八、心得收获------------------------------------------------------------15

九、参考资料------------------------------------------------------------16

一、设计任务

1.具有分、秒和0.01秒计时,并显示在屏幕中央

2.具有启(Start)、停(End)功能

3.具有暂停(Pause)、继续(Continue)功能

4.具有复位(Clear)功能

二、相关功能的介绍

该秒表计数功能的实现是通过调用延时程序实现的(为纯软件实现,不能达到准确计数)。具有启、停、继续、复位、同时多组计数等功能。

该秒表软件界面友好,即使对汇编语言一无所知的人也能轻松运行EXE程序,通过软件的提示输入S、ESC、P、C来实现秒表计数,易于操作。

通过DOS系统9号功能的调用,实现字符串的输出,展现出一个比较漂亮的秒表计数界面。

三、设计原理

1. 原理概述

通过调用DOS系统的8号功能实现控制字符的输入,通过调用DOS系统的0BH号功能实现程序运行时对控制字符输入的检查,通过调用延时程序实现百分之一秒的定时,通过调用INT 10H 的2号功能实现光标定位,调用INT 10H的6号功能实现清屏,调用DOS系统的2号功能实现字符的输出,通过调用DOS系统的9号功能实现字符串的输出。

2.延时程序

本设计利用软件实现延时(不是很精确),调用TIME实现延时。其原理:通过可控制的循环来占用CPU的时间来实现延时,分为内外两层循环,外循环由CX中的数值来控制,内循环有BX 中的值来控制。

3. 光标定位子程序原理

DOS显示屏为25行、80列,左上角为(0,0),右下角(18,4F)

设置光标,可调用BIOS系统,用汇编语句调用中断INT10H。入口信息为

(AH)=2 要设置光标;

(BH)=0 页号;

(DH,DL)=光标的行号、列号

4. 清屏原理

开始执行程序时为保证有一个洁净的屏幕,可使显示屏做上滚动作,使屏幕留下一片空白。要使屏幕上滚,可用汇编语句INT 10H ,入口信息为

(AH )=6 使屏幕上滚

(AL)=00上滚行数

(CH,CL)=滚动区域左上角的行、列号

(DH,DL)=滚动区域右下角的行、列号

(BG)=00 颜色的设置

5. 字符及字符串显示原理

通过调用DOS系统模块2仅能显示DL中的一个字符。为了实现字符串的显示,调用其9号模块功能,其入口信息为

(AH)=9 显示字符串的功能模块

(DS:DX)指向字符串的首地址,要求字符串以字符‘$’结尾。

6. 动态扫描键盘原理

运用INT 21H的0BH号功能来实现动态扫描键盘,通过INT 21H的8号功能实现控制字符的输入。如果有键按下,则相应的键值的ASCII码被存到AL中。判断AL中的数值,若不是控制字符,则继续循环,从而实现动态扫描键盘。

7. 计时原理

在PAUSE中插入新的光标设置程序IOSET1和显示程序,IOSET1每调用一次则光标加一行,所以每次暂停会在秒表和记录栏中显示同样的时间,每次暂停记录一次时间。

四、程序流程图

1.主程序流程图

BRGIN

START

A1

N

Y

N Y

N N

Y Y

N

Y

N

N

Y

N

开始 清除屏幕(IOCLR)

光标定义(IOSET ) 屏幕显示(SHOW) 键盘输入字符 将值赋给AL

AL=’S /s’? 跳至 START1 开始计时 AL=’ESC ’?

结 束

调用实践延时程

序(TIME )

MSE2

加 1 等于10?

MSE2 被回零 MSE1 加1 等于10? MSE1 被回零 SEC2 加 1 等于10?

SEC2 回零 SEC1加1

SEC1 回零 MIN2 加 1 等于10?

MIN2 回零 MIN1 加 1

等于 6? MIN1 回零

1 1

1 1

1

2

3

相关文档
最新文档