资源描述
河北科技大学
课程设计报告
学生姓名 张 青 学 号:09L0704216
专业班级: 电科L092
课程名称: 字符串动态显示
学年学期: 2 0 1 1—2 0 1 2学年第1学期
指导教师: 张永强 赵艳
2 0 11年 12月
课程设计成绩评定表
学生姓名
张青
学 号
09L0704216
成绩
专业班级
电科L092
起止时间
2011-12-24 至 2011-12-28
设计题目
字符串动画显示
指
导
教
师
评
语
指导教师:
年 月 日
一、课程设计的目的和任务
课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力的重要教学环节,它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。
《微机原理及应用》是一门应用性、综合性、实践性较强的课程,没有实际的有针对性的设计环节,学生就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。所以通过有针对性的课程设计,使学生学会系统地综合运用所学的理论知识,提高学生在微机应用方面的开发与设计本领,系统的掌握微机硬软件设计方法。
通过课程设计实践,不仅要培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能用设计报告表达设计思想和结果的能力。培养学生事实求是和严肃认真的工作态度。
通过设计过程,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。
一.设计题目
字符串动画显示
二.设计内容要求
1、菜单
内容包括:①输入字符串;②字符串动画显示;③退出。
2、输入字符串
选择该项后,可以输入一个字符串。该字符串即为动画显示时所显示的字符串。
3、字符串动画显示
所显示字符串从无到有,从中间向两边伸展,直至出来完整的字符串。当按下R键后重复移动的动作,直到按下Q键,停止字符串动画显示返回到主菜单。
4、在主菜单中选择退出项,则结束程序返回DOS。
三、课程设计的主要步骤
课程设计可以分为硬件设计和软件设计两个部分,其设计过程可以归纳为以下所述的四个步骤: 1.总体设计
本阶段的任务是通过调查研究,查阅资料来初步确定系统结构的总体方案,其中主要涉及到硬件和软件的功能划分。
应用系统中硬件和软件具有一定的互换性,即某些功能既可以用硬件实现也可以用软件实现。一般说来,用硬件实现的优点是可以提高系统的工作速度,但会增加电路的复杂性和硬件成本;而用软件代替某些硬件的功能可以使电路简化,便于修改设计,降低硬件成本,但软件工作量增大。
总体设计时,必须在硬件和软件之间权衡,分工明确,然后分头开始设计。
2.硬件设计过程
利用实验箱的硬件资源,结合课程设计题目,设计硬件原理图,搭建硬件电路。
3.软件设计过程
(1)采用模块化程序结构设计软件,可将整个软件分成若干功能模块。
(2)画出程序流程图。
(3)根据流程图,编写源程序。
(4)上机调试程序。
4.软、硬件联调。
三.设计原理及方案
主程序流程图
Y
段地址初始化
进入DOS窗口
输出提示信息
输入字符串
字符串动态显示
数码管数据输出
开始
按Q键
结束
R
四.实现方法
程序:
初始化程序:
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
START: MOV AX,CODE
MOV DS,AX
MOV AX,0B800H
MOV ES,AX
CLD
AGAIN: MOV AX,3
INT 10H
LEA DX,MENU ;主菜单
MOV AH,9
INT 21H
INPUT:
MOV AH,0
INT 16H
CMP AL,'1'
JNZ CP2
CALL SUB01 ;输入一个字符串
JMP INPUT
CP2:CMP AL,'2'
JNZ CP3
CALL SUB02 ;字符串左右移动
JMP AGAIN ;返回到主菜单
CP3:CMP AL,'3' ;返回DOS
JNZ INPUT
LEA DX,MESG
MOV AH,9
INT 21H
MOV AH,1
INT 21H
MOV AH,4CH
INT 21H
DELAY PROC ;1秒延时
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,2
INT 1AH
MOV BL,DH
@T:
MOV AH,2
INT 1AH
CMP DH,BL
JZ @T
POP DX
POP CX
POP BX
POP AX
RET
DELAY ENDP
SUB01:
LEA DX,TIPS
MOV AH,9
INT 21H
LEA DX,STR0
MOV AH,0AH
INT 21H ;输入一个字符串
MOV AX,0E0AH
INT 10H
RET
SUB02:
CMP STR0+1,2
JNB Y2
JMP QUIT
Y2:
CALL LINE ;画矩形框
CALL ASDF
@INPUT:
MOV AH,0
INT 16H
CMP AH,10H ;'Q'
JZ SSS
CMP AH,13H ;'R'
JNZ @INPUT
JMP Y2
SSS:MOV STR0+1,0
MOV FLAG,0
QUIT:
XOR DI,DI
MOV CX,80*25
MOV AX,720H
REP STOSW ;清全屏
RET
LINE: ;矩形框
MOV DI,(18*80+10)*2
MOV AL,201 ;左上角
MOV AH,4
STOSW
MOV CX,60-2
MOV AL,205 ;横框
REP STOSW
MOV AL,187 ;右上角
STOSW
ADD DI,20*2
MOV AL,186 ;竖框
STOSW
MOV LEFT,DI
MOV CX,60-2
MOV AL,20H ;空格
REP STOSW
;MOV RIGHT,DI
MOV AL,186 ;竖框
STOSW
ADD DI,20*2
MOV AL,200 ;左下角
STOSW
MOV CX,60-2
MOV AL,205 ;横框
REP STOSW
MOV AL,188 ;右下角
STOSW
RET
ASDF:
MOV DI,LEFT
ADD DI,60-2 ;指向起始显示位置
MOV POSI,DI
MOV AL,STR0+1
CBW
TEST AX,1
JZ OUSHU
MOV FLAG,1
OUSHU:
MOV BP,AX ;串长
DEC BP
INC AX
SHR AX,1
LEA DX,BUF ;待显示串首址
ADD BP,DX ;指向末字符
MOV BX,AX ;需显示次数
@REP:
MOV AH,70H ;颜色
MOV CX,TIMES ;每次显示字符数
MOV SI,DX
MOV DI,POSI
@1: LODSB ;前半字符
STOSW
LOOP @1
CALL DELAY
CMP BX,1
JNZ CONT
CMP FLAG,0
JNZ YYY
CONT:
MOV SI,BP
MOV CX,TIMES ;每次显示字符数
@2: LODSB ;后半字符
STOSW
LOOP @2
CALL DELAY
YYY:
DEC BX
JZ DONE
INC TIMES
SUB POSI,2
DEC BP
JMP @REP
DONE:
MOV TIMES,1
RET
TIMES DW 1 ;每次显示字符数
FLAG DB 0
POSI DW 0
MENU DB 5 DUP(0AH)
DB 31 DUP(' '),'MAIN MENU',0DH,0AH
DB 25 DUP(' '),201,21 DUP(205),187,0DH,0AH
DB 25 DUP(' '),186,' 1.INPUT A STRING ...',186,0DH,0AH
DB 25 DUP(' '),186,' 2.DISPLAY MODEL ... ',186,0DH,0AH
DB 25 DUP(' '),186,' 3.RETURN TO DOS ... ',186,0DH,0AH
DB 25 DUP(' '),200,21 DUP(205),188,0DH,0AH
DB 28 DUP(' '),'CHOICE(1,2,3):$'
TIPS DB 0DH,0AH,9,'INPUT A STRING ...',0DH,0AH,9,'$'
MESG DB 0DH,0AH,0DH,0AH,9,'PRESS ANY KEY TO EXIT ...$'
LEFT DW 0
STR0 DB 50
DB 0
BUF DB 50 DUP(0)
CODE ENDS
END START
五.实施结果
选择输入字符串后,可以输入一个字符串。该字符串即为动画显示时所显示的字符串。字符串从无到有,从中间向两边伸展,直至出来完整的字符串。当按下R键后重复移动的动作,直到按下Q键,停止字符串动画显示返回到主菜单。
六.设计总结和心得体会
在这次课程设计中,通过实践操作,加深了对汇编语言的了解,增强了汇编语言的使用能力,有了整体 的了解和把握。汇编语言虽然是门低级语言,解决问题的难度有限,但是它与计算机硬件的紧密关系使它有着独特的优点。汇编语言的学习和我们以往的所学习的高级语言程序设计又有相通之处:算法是程序设计的灵魂,而计算机的硬件条件又决定了程序设计的环境。因此在实践程序设计过程中,要坚持软件与硬件相结合的原则,多探究计算机内部的构造,及执行相应程序的原理。
展开阅读全文