logo资料库

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

第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
资料共17页,剩余部分请下载后查看
目 录 摘要----------------------------------------------------------------------------3 一、 设计任务----------------------------------------------------------------3 二、 设计原理--------------------------------------------------------------3 2.1 原理概述 2.2 延时原理 2.3 显示字符及字符串原理 2.4 压缩 BCD 码转为 ASCII 原理 2.5 动态扫描键盘原理 三、 设计流程图----------------------------------------------------------5 3.1 主程序流程图 3.2 各子程序流程图 四、 源程序及运行结果------------------------------------------------- 8 五、 程序调试-------------------------------------------------------------15 六、 心得体会------------------------------------------------------- 17 七、 参考书目---------------------------------------------------------18
微机原理课程设计 摘 要 本文是微机原理课程设计的理论成果,总结概括了用软件实现实电 子秒表的基本原理和实现过程。用软件实现电子秒表优点是节省硬 件,缺点是 CPU 一直被占用,工作效率低且不够精确,因此在精确 度要求不高的场合仍有广泛应用。本方案在电子秒表基本功能的基础 之上又添加了记忆功能和整分报时功能,整体画面采用苹果形状,增 加了其使用价值和欣赏价值。 关键字:电子秒表 汇编语言 一、 设计任务 1. 具有秒和百分之一秒计时并显示于图案中央 2. 具有启、停功能 3. 具有复位功能 4.具有记忆功能 5.具有整分报时功能 二、 设计原理 2.1 原理概述 通过调用 INT 21H 的 8 号功能实现控制字符的输入,通过调用 延时程序实现百分之一秒的定时,通过调用 INT 10H 的 2 号功能实 现光标定位,调用 INT 21H 的 2 号功能实现字符的输出,通过调用 INT 21H 的 9 号功能实现字符串的输出。 2
微机原理课程设计 2.2 延时原理 本设计利用软件实现延时,即通过可控制的循环来占用 CPU 的 时间来实现延时。延时函数名为 TIME,运用内外两层循环,外循环 由 AX 中的数值来控制,内循环有 CX 中的值来控制。实现不同延时 的控制,通过反复比较调试,确定 AX 的值为 0EFH,CX 的值为 0FFFFH。 2.3 显示字符及字符串原理 整个屏幕可显示 25 行、80 列字符,屏幕左上角字符位置为 0 行 0 列,右下角字符位置为 24 行 79 列,对应于十六进制为:左上角为 (0,0),右下角为(18,4F)。定位光标用 INT 10H 的 2 号功能, DH 中存行号,DL 中存列号,BH 中存页号。显示字符用 INT 21H 的 2 号功能,DL 中存放要显示字符的 ASCII 码。显示字符串用 INT 21H 的 9 号功能,DX 中存要显示的字符串的偏移地址。 2.4 压缩 BCD 转为 ASCII 原理 先将压缩 BCD 码的高 4 位取出,右移四位后,与 30H 相或,存 到相应内存单元;然后将低 4 位取出,与 30H 相或,存到下一内存 单元。 2.5 动态扫描键盘原理 运用 INT 21H 的 8 号功能来实现动态扫描键盘。如果有键按下, 则相应的键值的 ASCII 码被存到 AL 中。判断 AL 中的数值,若不是 控制字符,则继续循环,从而实现动态扫描键盘。 3
微机原理课程设计 三、 程序流程图 3.1 主程序流程图 4
微机原理课程设计 3.2 子程序流程图 5
微机原理课程设计 6
微机原理课程设计 四、源程序及效果图 4.1 源程序 DIS MACRO LOCAT,CODE PUSH DX PUSH BX PUSH AX MOV DX,LOCAT MOV BH,00 MOV AH,02H INT 10H MOV DL,CODE MOV AH,02H INT 21H POP AX POP BX POP DX ENDM ;设置图形显示宏定义 ;设置光标位置 ;输出字符串 ;设置数据段 ;设置功能说明 ;定义代码段 ;定义缓存区 ;定义记忆提示 DAT SEGMENT BUF DB 'INPUT START RESET END CONTINUE $' BUFFER DB 10 DUP(?) TIP DB 'M E M O R Y$' NUM DB 1 LOD EQU 0929H DAT ENDS COD SEGMENT START PROC FAR ASSUME CS:COD,DS:DAT MOV AX,DAT MOV DS,AX MOV DX,OFFSET BUF MOV AH,09H INT 21H CALL DISMER MOV DX,OFFSET TIP MOV AH,09H INT 21H CALL CLR CALL CLRDAT CALL CLRMER DIS 0419H,'<' DIS 0517H,'<' DIS 0715H,'<' DIS 0914H,'<' DIS 0B14H,'<' DIS 060EH,'_' DIS 0710H,'_' DIS 0812H,'_' DIS 0913H,'_' DIS 0A14H,'_' ;图形区清屏并设置颜色 ;秒表数字区清屏并设置颜色 ; 记忆区清屏并设置颜色 ;通过宏调用显示图形 ;输出功能说明 ;记忆区提示符置光标 ;输出记忆提示字符 7
DIS 0915H,'_' DIS 0816H,'_' DIS 0718H,'_' DIS 061AH,'_' DIS 071CH,'*' DIS 081EH,'*' DIS 091FH,'*' DIS 0B20H,'*' DIS 0D21H,'*' DIS 0F21H,'*' DIS 1120H,'*' DIS 131FH,'*' DIS 141EH,'*' DIS 151DH,'*' DIS 161BH,'*' DIS 1719H,'*' DIS 1717H,'_' DIS 1616H,'_' DIS 1514H,'_' DIS 1612H,'_' DIS 1711H,'_' DIS 170EH,'*' DIS 160CH,'*' DIS 150BH,'*' DIS 140AH,'*' DIS 1309H,'*' DIS 1108H,'*' DIS 0F07H,'*' DIS 0D07H,'*' DIS 0B08H,'*' DIS 0909H,'*' DIS 080AH,'*' DIS 070CH,'*' DIS 0C12H,'_' DIS 0C13H,'_' DIS 0C14H,'_' DIS 0C15H,'_' DIS 0C16H,'_' CALL GO LOAD: CALL IOSET CALL HALT MOV DX,0 MOV CH,0 AGAIN: CALL TIME MOV AL,DL ADD AL,1 DAA JC NEXT1 MOV JMP DISPY NEXT1: MOV DL,0 MOV AL,DH ADD AL,1 DAA MOV DH,AL DL,AL 微机原理课程设计 ;设置初植 ;光标定位 ;等待输入 ;调用延时程序 ;百分之一秒加一 ;满一百进位 ;不满一百显示 ;秒位加一 8
分享到:
收藏