课程设计报告
( 20##—20## 年度第 一 学期)
课 程: 微机原理及应用
题 目: 动画显示 显示三角形并倒置
院 系: 控制与计算机工程学院
班 级: 自动化1004
姓名学号:
指导教师:
设计周数: 一周
成 绩:
日期:20##年 1 月 11 日
《微机原理及应用》课程设计
任 务 书
一、 目的与要求
1. 通过对微机系统分析和具体设计,使学生加深对所学课程的理解。
2. 掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法。
3. 培养学生分析问题、解决问题的能力。
4. 培养学生对微型计算机应用系统的基本设计能力。
5. 提高学生的实践动手能力和创新能力。
二、 主要内容
1. 动画显示及显示三角形并倒置。
2. 针对所选择的设计题目进行硬件设计,合理选用所需元器件,绘制系统结构框图、硬件接线图,并在实验系统上完成电路的连接和调试。
3. 根据所选题目的要求对微机系统进行程序设计,绘制程序总体流程图并编写源程序上机调试。
4. 写出课程设计报告,对整个设计过程进行归纳和综合,对设计中所存在的问题和不足进行分析和总结,提出解决的方法、措施、建议和对这次设计实践的认识和收获。
三、 进度计划
四、 设计成果要求
1. 系统硬件设计合理,软件编程达到设计要求。
2. 系统硬件结构图和软件流程图绘制清楚规范。
3. 设计报告完整规范。
五、 考核方式
根据设计任务的完成情况、课程设计报告撰写情况及演示答辩情况采用五级记分制评定成绩。
学生姓名:
指导教师:
一、课程设计目的与要求
1. 通过对微机系统分析和具体设计,使学生加深对所学课程的理解。
2. 掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法。
3. 培养学生分析问题、解决问题的能力。
4. 培养学生对微型计算机应用系统的基本设计能力。
5. 提高学生的实践动手能力和创新能力
二、课程设计正文
1. 设计要求
(1)动画显示:用字符组成汽车图形,在屏幕显示从左向右开动的汽车;
(2)显示三角形并倒置:用 * 绘制一个七层等腰三角形,点击空格键则三角形倒置一次,再次点击则再次倒置。
2. 设计思路
(1)动画显示
在屏幕上显示动画的效果可以按照以下五步进行:
1)在屏幕上显示图形
2)延迟一个时间周期,这样图像更清晰
3)清除图形
4)改变图形的列坐标
5)返回第一步,重复上述操作
(2)显示三角形并倒置
1) 在屏幕上输出一个正三角形
2)输入一个字符
3)判断是否为空格。是则倒置;否则返回DOS,继续第二步。
三、课程设计总结
1.实验遇到的问题以及解决方式
1.1 移动汽车实验中的问题
使用bios系统功能中10H中断的06号功能进行清屏,在wave6000中执行没有任何效果,一度怀疑自己对该功能的理解不够,翻阅了不少资料,单步调试了很多次也不得其解。无奈之下考虑到三角形实验中出现的bug,所以换用了其他的汇编环境进行实验,问题得以解决。
开始使用的是BX计数,程序显得有点混乱由于bios功能调用中的参数涉及到BX计数器,后来采用了内存中的COU进行计数,显得清晰。也省去了堆栈的PUSH,POP操作。
实验过程中由于粗心少写H也引发了不少错误,在DEBUG的结果中才发现,由于新的环境必须用命令行进行调试,检查问题相对复杂。
实验的效果是从左上向右下运动,不理想,于是进行改进,改变光标位置,也可以从特定的位置开始,这样更美观。
1.2 在显示三角形并倒置实验中,判断输入空格的次数是奇数,还是偶数的时候,我们开始采用的是AND SI ,0001H,单步调试的时候发现并未执行与的操作。我们尝试用与AND类似的操作指令TEST,TEST SI,0001H,实现了我们期待的功能。同时,我们还尝试了右移位移位,通过判断CF是否等于零来判断奇偶数,然后再左移一位回来,虽然麻烦,但也达到想要的效果。
2.心得体会
这周的课程设计算是对微机原理课程的一个在学习的过程,让我更加深刻地认识到微机原理的奥妙所在,真可谓博大精深,奇妙无穷。微机原理课程设计,作为微机原理的课程的一种延伸,是对学生对微机原理的主干内容用汇编语言进行程序设计的掌握情况的一次考查。通过本次课程设计,我们加深了对《微机原理及应用》这一课程的理解,进一步掌握了汇编语言程序设计的基本方法。
本次课程设计为期4天,其中,编写程序、上机调试占用三天时间,整合讨论和论文撰写占用一天时间。在此过程中,小组成员们共同讨论问题,相互学习帮助,分析问题、解决问题的能力都得到了很大的提高,增强了组织能力和协作能力;同时,也发现了各自的不足,在今后的学习中,我们将总结经验吸取教训,将所学的基础知识更多、更好地运用到理论研究和科学实践中去。
我感觉到要真正做出一个程序并不很容易,真的很难,但只要用心去做,总会有收获,特别是当我们遇到一个问题,想办法去解决,最后终于找到方法时,心里的那份喜悦之情真是难以形容。编写程序中遇到问题再所难免,应耐心探究其中的原因,从出现问题的地方起,并联系前后程序,仔细推敲,逐个排查,直到最终搞清为止。这样才能达到本次课程设计的目的,提高了分工协作和分析问题、解决问题的能力。在一定的程度上,对自己的微机编程能力,合同学团队合作的能力得到了很大的提升。
感谢老师悉心的指导和帮助!
四、参考文献
[1] 马平, 姚万业. 《微机原理及应用》. 中国电力出版社. 第一版. 20##年4月
[2] 南京伟福实业有限公司. 伟福Lab6000系列单片机仿真实验系统说明书 [DB/CD]
附录(设计流程图、程序、表格、数据等)
1. 软件流程图
(1) 动画显示
(2) 显示三角形并倒置
2. 源程序
(1)动画显示
DATA SEGMENT;汽车字符
PP1 DB '--------',0AH,0DH,'$'
PP2 DB '1 1',0AH,0DH,'$'
PP3 DB '--------',0AH,0DH,'$'
PP4 DB '0 0',0AH,0DH,'$'
COU DW 1
DATA ENDS
CLEAR MACRO A,B,C,D ;清屏宏定义
MOV AH,6
MOV AL,0
MOV CH,A
MOV CL,B
MOV DH,C
MOV DL,D
MOV BH,7
INT 10H
ENDM
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV DX,DATA
MOV DS,DX
L2: MOV AH,2
MOV DH,8
MOV DL,0
MOV BH,0
INT 10H
MOV CX,COU
L1: MOV DL,' '
MOV AH,2
INT 21H
LOOP L1;循环输出空格
LEA DX, PP1
MOV AH,09
INT 21H;输出第一行字符
MOV CX,COU
L3: MOV DL,' '
MOV AH,02H
INT 21H
LOOP L3
LEA DX,PP2
MOV AH,09
INT 21H;输出第二行
MOV CX,COU
L4: MOV DL,' '
MOV AH,02H
INT 21H
LOOP L4
LEA DX,PP3
MOV AH,09
INT 21H;输出第三行
MOV CX,COU
L5: MOV DL,' '
MOV AH,02H
INT 21H
LOOP L5
LEA DX,PP4
MOV AH,09
INT 21H;输出第四行
MOV CX,0FFFFH
MOV DX,3000
DELAY1: LOOP DELAY1
MOV CX,0FFFFH
DEC DX
CMP DX,0
JNZ DELAY1;延迟
INC COU
CMP COU,72
JZ EXIT;出屏返回DOS
JMP L2
EXIT: MOV AH,4CH
INT 21H
CODE ENDS
END START
(2)显示三角形并倒置
DATA SEGMENT
PASITIVE DB' *',0DH,0AH
DB' ***',0DH,0AH
DB' *****',0DH,0AH
DB' *******',0DH,0AH
DB' *********',0DH,0AH
DB' ***********',0DH,0AH
DB'*************',0DH,0AH,'$';正三角形字符
NEGTIVE DB'*************',0DH,0AH
DB' ***********',0DH,0AH
DB' *********',0DH,0AH
DB' *******',0DH,0AH
DB' *****',0DH,0AH
DB' ***',0DH,0AH
DB' *',0DH,0AH,'$';倒三角形字符
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START: MOV AX,DATA
MOV DS,AX
MOV SI,0;初始化SI,用于记录输入空格个数
LEA BX,PASITIVE
LEA CX,NEGTIVE
P1: MOV DX,BX;正三角形
P2: MOV AH,9
INT 21H;输出相应的三角形
MOV AH,1
INT 21H;输入字符
CMP AL,' ';空格三角形倒置
JNE EXIT;非空格键跳出
MOV DL,0AH
MOV AH,02H
INT 21H;换行
INC SI
TEST SI,0001H
JZ P1;偶数正置三角形
MOV DX,CX;奇数倒置三角形
JMP P2
EXIT: MOV AH,4CH
INT 21H;返回dos
CODE ENDS
END START
3. 程序运行结果
(1)动画显示
移动一段时间后的小汽车
移动到最右端停止的小汽车
(2)显示三角形并倒置
初始化显示正三角形
输入空格进行三角形的倒置显示,正置,倒置交替显示
第四次显示,显示倒三角形。但是屏幕不能看到前几次的输出
如果输入字符不是空格则返回dos