微机原理课程设计报告_学生成绩排序名次

时间:2024.4.21

 


姓名:    窦龙华

班级:   电科0901

学号:  3090504012

                

                                                                                                                                                                                                                                                                                                      

目的:

      结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。学会使用屏幕编辑程序——EDIT,弄懂汇编程序的上级过程以及如何运用DEBUG软件进行汇编程序的调试。

内容与要求:

1.字符串匹配设计

为掌握提示信息的设置方法及读取键入信息的方法,编写程序实现两个字符串比较,如相同则显示“MATCH”,否则显示“NO MATCH”。

2.从键盘输入数据并显示的设计

为掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为ASCII码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数显示。

3.响铃设计

为掌握响铃的使用方法,编写程序,从键盘接受输入字符,如是数字N则响铃N此,如不是数字则不响。

4.将键盘输入的小写字母转换成大写字母的设计

为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换,编写程序,接受键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏幕上。

5.学生成绩名次表设计

为进一步熟悉排序方法,编写程序,将100以内的30个成绩存入首址为1000H的存储区中。1000H+i表示学号为i的学生成绩。编写程序使得在2000H开始的区域排出名次表,2000H+i为学号i的学生的名次。

流程图程序代码

1.字符串匹配设计

     

下面着重介绍程序5——学生成绩名次表设计:

流程图:

  主程序流程图                SCAN子函数程序流程图

程序代码及注释:

CRLF  MACRO                    ;宏定义,回车换行

      MOV  AH,02H

      MOV  DL,0DH

      INT  21H

      MOV  AH,02H

      MOV  DL,0AH

      INT  21H

ENDM

DATA    SEGMENT

STUNUM  EQU  30             ;学生数

MESS1   DB   'Please input 30 score',0DH,0AH,'$'  ;提示信息

ERROR   DB   'Input error,try again',0DH,0AH,'$'  ;报错信息

MESS2   DB   'The order is:',0DH,0AH,'$'

EMARK   DB   ?              ;报错标志

        ORG  1000H          ;存放成绩地址

SCORE   DB   30 DUP(?)      ;成绩表

        ORG  2000H          ;存放名次地址

SEQU    DB   30 DUP(?)      ;名次表

DATA    ENDS

STACK   SEGMENT

STA     DW   32 DUP(?)

TOP     DW   ?

STACK   ENDS

CODE    SEGMENT

ASSUME  CS:CODE,DS:DATA,ES:DATA,SS:STACK

START:  MOV   AX,DATA

        MOV   DS,AX

        MOV   ES,AX

        MOV   SP,TOP          

        MOV   AH,09H              ;显示提示信息

        MOV   DX,OFFSET MESS1    

        INT   21H             

        MOV   SI,OFFSET SCORE     ;成绩表首址

        MOV   CX,STUNUM      

        MOV   EMARK,0             ;报错标志清0   

UUU:    CALL  GETNUM              ;调用子函数读取成绩

        CMP   EMARK,01H           ;判断是否出错

        JE    START               ;出错则重新开始

        MOV   [SI],DL             ;没出错则存入成绩

        INC   SI                  ;指向下一个成绩单元地址

        LOOP  UUU                 ;判断30个成绩是否读取完

        MOV   CX,STUNUM       

        MOV   DI,OFFSET SEQU      ;名次表首址

VVV:    CALL  SCAN                ;调用扫描子程序

        MOV   AL,STUNUM           ;学生总数

        SUB   AL,CL               ;计算名次

        INC   AL

        MOV   BX,DX               ;学号

        PUSH  AX                  ;将名次转换成压缩BCD码方便显示

        PUSH  BX

        PUSH  CX

        XOR   AH,AH

        MOV   BH,0AH

        DIV   BH

        MOV   CL,4

        SHL   AL,CL

        ADD   AL,AH

        MOV   DH,AL

        POP   CX

        POP   BX

        POP   AX

        MOV   [DI+BX],DH           ;存入名次    

        LOOP  VVV                  ;判断是否存完

        MOV   AH,09H               ;显示名次提示信息

        LEA   DX,MESS2       

        INT   21H

        MOV   CX,STUNUM       

        MOV   SI,OFFSET SEQU 

WWW:    MOV   AL,[SI]   

        CALL  DISPI                ;调用子函数显示名次   

        PUSH  DX           

        PUSH  AX         

        MOV   AH,02                ;显示空格

        MOV   DL,20H     

        INT   21H

        POP   AX        

        POP   DX           

        INC   SI                   ;指向名次表的下一个地址

        LOOP  WWW                  ;判断是否输出所有名次

        MOV   AH,4CH               ;返回DOS

        INT   21H

            

SCAN    PROC   NEAR                ;扫面子函数,没调用一遍,找出成绩表

;中最高成绩,记录其学号,并将此成绩

;清0

        PUSH   CX                 

        MOV    CX,STUNUM    

        MOV    AL,00H             

        MOV    BX,OFFSET SCORE

        MOV    SI,BX            

CCC:    CMP    AL,[SI]           

        JAE    JJJ    

        MOV    AL,[SI]           

        MOV    DX,SI            

        SUB    DX,BX            

JJJ:    INC    SI                

        LOOP   CCC          

        ADD    BX,DX          

        MOV    BYTE PTR [BX],00H 

        POP    CX          

        RET

SCAN    ENDP

DISPI   PROC  NEAR                  ;显示子程序

        PUSH  CX

        MOV   BL,AL                 ;显示高4位

        MOV   DL,BL

        MOV   CL,04      

        ROL   DL,CL

        AND   DL,0FH

        CALL  DISPL

        MOV   DL,BL                 ;显示低4位

        AND   DL,0FH   

        CALL  DISPL

        POP   CX

        RET

DISPI   ENDP

DISPL   PROC  NEAR                 ;将名次转换成对应的ASCII码值并显示

        ADD   DL,30H    

        MOV   AH,02H

        INT   21H

        RET

        DISPL ENDP                

     

GETNUM  PROC   NEAR                ;读取成绩子函数

        PUSH   CX             

        XOR    DX,DX               ;清0,用于存放成绩

GGG:    MOV    AH,01H

        INT    21H                 ;键盘字符输入

        CMP    AL,0DH             

        JZ     RRR                 ;如果是回车则结束

        SUB    AL,30H            

        JB     ERR                 ;小于0则报错

        CMP    AL,09H        

        JBE    GETS                ;如果在0—9之间则存成绩至DX

        JMP    ERR                 ;否则报错

GETS:   MOV    CL,04     

        SHL    DX,CL               ;将DX中已有数值左移四位  

        XOR    AH,AH         

        ADD    DX,AX               ;紧接着将数据存在DX中低四位

        JMP    GGG                 ;跳转继续读取数据

ERR:    MOV    AH,09H              ;显示报错信息

        MOV    DX,OFFSET ERROR    

        INT    21H

        MOV    EMARK,01H           ;报错标志置1

RRR:    PUSH   DX

        CRLF                       ;回车换行

        POP    DX

        POP    CX

        RET                

GETNUM  ENDP

CODE    ENDS

        END    START

心得体会

在为期一周的微机原理课程设计中,通过查阅书籍,上网收集资料以及向老师和同学请教,我完成了老师定下的任务。在此次课程设计过程中感受颇深。

这一周,可以说是苦多于甜,但是可以学到很多东西,同时巩固了以前所学过的知识。以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的程序较复杂,画程序方框图是很有必要的。因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。

在设计过程中遇到了不少的麻烦,最典型的是由于程序相对较大,在用JB,JA等条件跳转语句时出项了超出跳转范围的情况,这就给程序设计带来了一些困难。由于之前都没遇到过这样的问题,所以刚开始遇到的时候有点棘手,不知道该从哪下手解决此问题,以至于都有了放弃该课题的想法。但是又觉得不值得,写了这么长的程序就因为这一个小问题而放弃了实在是说不过去,于是就静下新来查阅课本,发现这些条件跳转语句的跳转范围只能在-128B--+127B之间,而无条件跳转指令JMP则不受此约束,于是我添加了一个无条件跳转语句,通过条件跳转语句先跳转到该无条件跳转语句,再通过 JMP跳转到需要的地方,于是问题就迎刃而解。同过这一个小小的问题也暴露出了自身的问题:对课本知识掌握不牢固,只了解指令的基本功能却忽略了它的约束条件。还有一些问题,比如为了显示方便,需把16进制数转化成10进制数显示,在进行ASCII码值转换时也遇到了问题,A—F不能正确显示,通过与同学讨论也是自己的疏忽导致的。

这不是第一次用汇编语言来写程序,平时做了很多实验,写了很多小程序。但这次是一个综合的程序,平时的一些程序稍微改动都可以作为子程序用到,这大大方便了我的设计,为我节省了很多的时间。

在这次课程设计中,我真正体会到了合作的重要性,遇到很多问题时,当我看书查资料不能解决时,去找同学讨论一下,收获很大,可以使很多问题迎刃而解。

不可否认,程序任然存在不少缺点和不足,但通过这次课程设计的却找出了自己在学习上的不足,对以后的工作也有指导作用。我相信在以后的学习中会克服这些不足,达到熟练掌握汇编语言的目的!

参考文献:

1.张荣标,机械工业出版社,《微型计算机原理与接口技术 第二版》

2.张荣标,《微型计算机原理课程设计指导书》

3.李干林,李升等,北京大学出版社《微机原理及接口技术试验指导书》


第二篇:微机原理课程设计指导书


微机原理课程设计

南通大学计算机科学与技术学院计算机科学与技术系

二零一二年五月

目 录

1 课程设计的目的和任务 ....................................... 1

2 课程设计指导及要求 ........................................... 1

3 课程设计的主要步骤 ........................................... 2

3.1 总体设计 ............................................................................................. 2

3.2 硬件设计 ............................................................................................. 2

3.3 软件设计 ............................................................................................. 2

3.4 软、硬件联调..................................................................................... 2

4 课程设计报告内容及格式要求........................... 2

5 进度安排 ................................................................ 3

6 课程设计的考核方法及成绩评定 ...................... 3

7 课程设计题目 .......................................................... 4

8 主要参考资料 .......................................................... 6

1 课程设计的目的和任务

课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。

通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。

通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。

2 课程设计指导及要求

在课程设计时,2~3名同学组成1个设计小组,分别完成项目的功能设计、电路编辑及调试、编码及调试和课程设计报告编写工作。同批次同学中选择同一题的不超过3组。在教师指导下,可以相互讨论。每设计小组提交1份设计报告,设计报告由设计小组同学独立完成,不得互相抄袭。教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而不应处处被动地依赖指导老师。同学应积极主动的提出问题、解决问题、讨论问题,互相帮助和启发。

学生在设计中可以引用所需的参考资料,避免重复工作,加快设计进程,但必须和题目的要求相符合,保证设计的正确。指导教师要引导学生学会掌握和使用各种已有的技术资料,不能盲目地、机械地抄袭资料,必须具体分析,使设计质量和设计能力都获得提高。学生要在老师的指导下制定好自己各环节的详细设计进程计划,按给定的时间计划保质保量的完成个阶段的设计任务。设计中可边设计,边修改,软件设计与硬件设计可交替进行,问题答疑与调试和方案修改相结合,提高设计的效率,保证按时完成设计工作并交出合格的设计报告。

1

3 课程设计的主要步骤

课程设计分为硬件设计和软件设计两个部分,其设计过程可以归纳为以下所述的四个步骤:

3.1 总体设计

本阶段的任务是通过调查研究,查阅资料来初步确定系统结构的总体方案,其中主要涉及到硬件和软件的功能划分。

应用系统中硬件和软件具有一定的互换性,即某些功能既可以用硬件实现也可以用软件实现。一般说来,用硬件实现的优点是可以提高系统的工作速度,但会增加电路的复杂性和硬件成本;而用软件代替某些硬件的功能可以使电路简化,便于修改设计,降低硬件成本,但软件工作量增大。

总体设计时,必须在硬件和软件之间权衡,分工明确,然后分头开始设计。

3.2 硬件设计

在Proteus环境下,结合课程设计题目,设计硬件原理图,搭建硬件电路。

3.3 软件设计

1、采用模块化程序结构设计软件,可将整个软件分成若干功能模块。

2、画出程序流程图。

3、根据流程图,编写源程序。

3.4 软、硬件联调

在Proteus环境下,仿真调试程序。

4 课程设计报告内容及格式要求

【课程设计报告内容】

1、设计题目(在封面注明)

2、设计内容(在此部分详细说明所做题目的基本内容和主要功能)

3、设计原理及方案(含电路原理图、硬件连接示意图、系统功能框图、程序流程图等)

4、汇编源程序代码(关键代码要加必要注释)

5、实施结果(可给出程序运行界面、实验箱运行结果照片等)

6、课程设计体会

7、参考文献

2

【格式要求】

1、课程设计报告要求

(1)总体要求

课程设计报告应排版工整、内容完整、结论正确。要在报告封面上注明学院、班级、姓名、学号、指导教师、提交时间等完整信息。要求用计算机打印,纸张大小为A4。

(2)格式要求

? 目录:用四号字,其中每章题目中,中文用宋体,英文用Times New Roman,并注

明各章节起始页码,题目和页码之间用“??”相连。

? 标题:中文采用四号黑体,英文用Times New Roman。

? 正文:中文采用小四号宋体,英文用Times New Roman。段落为:1.5倍行距,段前、

段后均为0磅。

? 页面设置:单面打印:上2cm,下2cm,左2.5 cm,右1.5 cm,装订线0.5cm,页眉

1.2cm,页脚1.5cm。页眉以小五号宋体字键入“接口技术课程设计”,居左。页脚插入页码,居中。

? 参考文献的编写格式:

期刊文献格式:[序号]作者.文目[J].期刊名,年,卷号(期数):起止页码

图书文献格式:[序号]作者.书名[M].出版地:出版者,年份,起止页码

5 进度安排

课程设计任务在课程设计开始之前布置。学生可以在课余时间提前熟悉设计任务,查阅相关资料,确定总体方案,软、硬件功能划分,硬件接口原理图设计,程序设计等工作,为课程设计提前做好准备工作。

课程设计时间为1周。具体安排如下:

周一至周四学生完成设计课题的软硬件联调工作;

周五指导教师检查本周设计任务的完成情况,学生完成课程设计报告的撰写。

6 课程设计的考核方法及成绩评定

? 考核方法:现场验收(占50%),课程设计报告(占50%)。

? 考核内容:学习态度(出勤情况,平时表现等)、方案合理性、程序编制质量、演

示效果、答辩情况及设计报告质量。

? 成绩评定:优,良,中,及格,不及格。

3

? 特别说明:

(1)如发现抄袭,按照不及格处理。

(2)若出现2组以上设计方案完全相同,视同抄袭。

7 课程设计题目

【选题说明】

(1)一组一题,不得重复。可从下列题目中任选1题,也可自拟题目。

(2)下列题目仅提出了合格要求,各位同学需要在基本要求的基础上增加功能并实现。指导教师根据各位同学完成课题的质量评分。

题目1 交通灯控制系统

利用8253定时器、8255等接口,设计一电路,模拟十字路口交通灯控制。要求自行设计控制方式。

题目2 利用DAC设计波形发生器

利用DAC设计一个波形发生器,能分别产生三角波、正弦波、锯齿波和方波,要求自行设计波形输出的切换方式。

题目3 利用DAC设计幅值可变的波形发生器

利用DAC设计一个幅值可变的波形发生器,要求自行设计控制方式。

题目4 电子万年历

参考市场上的电子万年历的功能,利用所学接口芯片设计一电子万年历。要求至少能显示日期值、星期值,并可通过键盘修改日期。

题目5 电子秒表

利用8253等接口设计电子秒表,要求完成开始计时、停止计时及计时复位等功能,计时时间精确到毫秒,控制方式自行设计。

题目6 编程控制步进电机的转向

查找资料,了解步进电机的性能及原理,编程控制步进电机的正转或反转。

题目7 直流电机调速系统

了解直流电机闭环调速的方法,实现直流电机的调速功能。

题目8 数字钟

利用LED七段数码管设计数字钟电路,要求自行设计数字钟的显示格式和数值调整控制方式。

4

题目9 花式跑马灯

自行设计电路,实现具有5种以上工作方式的跑马灯,要求设计两种以上的切换方式。 题目10 篮球比赛电子记分牌

根据篮球比赛规则,设计电子记分牌。

题目11 定时器

利用8253等接口芯片设计计时器,要求设计定时时间输入方式和一种以上的报警方式。 题目12 篮球比赛计时器

根据篮球比赛规则,设计篮球比赛计时器。

题目13 电子密码锁

设计一个电子密码锁,利用器件的状态(如:发光二极管的亮与灭)模拟锁的开、闭。要求设计恰当的初始密码设定方式,并能根据密码开锁。

题目14 计算器

设计一计算器,要求至少能完成2位数的加减运算。

题目15 点阵广告牌

利用点阵屏器件(如MATRIX-8X8-RED)设计能显示字符或图案的点阵广告牌。

题目16 音乐播放器

利用8253驱动扬声器发声,实现乐曲播放,音调频率请自行查找参考资料,如参考文献[4]。

题目17 电子琴

本程序将键盘变成钢琴键盘,选择键盘上7个按键,作为“哆来咪?”音的按钮。通过此程序驱动扬声器发出不同的音调。

题目18 电压报警器

设计一个电压报警器,要求利用Proteus ISIS提供的POT-HG(POT-LIN)元件模拟电压变化,利用ADC0808实现电压监控,当输入电压在设定值以内,显示电压值。当输入电压超过设定值,报警。显示方式、报警方式自行设计。

题目19 投票统计器

设计一个投票统计器,完成投票、计票统计和票数显示等功能。

题目20 多路数字抢答器

设计一个多路数字抢答器,要求自行设计有关功能。

题目21 自行拟定的题目

5

各位同学可以结合所学知识,自行拟定本次课程设计题目。自拟的题目须得到指导教师的认可。

8 主要参考资料

1.周明德.微型计算机系统原理及应用.北京:清华大学出版社

2.张弥左,王兆月,邢立军等.微型计算机接口技术.北京:机械工业出版社

3.戴梅萼,史嘉权.微型计算机技术及应用.北京:清华大学出版社

4.沈美明,温冬婵.IBM-PC汇编语言程序设计.北京:清华大学出版社

6

更多相关推荐:
微机原理课程设计报告

微机原理课程设计设计报告姓名朱文斋班级学号30905020xx教师张荣标20xx年1月5日微机原理课程设计一目的结合微型计算机原理课程的学习进一步巩固已学的知识同时针对计算机原理知识的具体应用学会对系统中DOS...

微机原理课程设计实验报告

河北科技大学课程设计报告学生姓名学号专业班级课程名称学年学期指导教师年月课程设计成绩评定表目录一课程设计的目的1二设计题目1三设计内容要求2四设计成员及分工2五课程设计的主要步骤2六课程设计原理及方案3七实现方...

数字钟_接口课设报告_8086微机原理与接口技术课程设计

接口技术基础实验报告学院计算机科学与技术学院班级计091学号09130220xx姓名曹恒楼指导老师顾晖时间20xx616接口技术课程设计目录数字钟的设计31设计需求分析与解决方案311设计需求分析3111题目要...

微机原理课程设计报告

微机原理课程设计报告设计名称:LED七段数码管数字钟学院:电子信息学院班级:电科091提交时间:20##年6月15日一:设计内容设计的电路功能是实现时钟的24进制计时并显示在数码管上,通过按键可对时钟的时、分、…

微机原理课程设计总结

南京航空航天大学微机原理课程设计数据采集系统中断法微机原理课程设计数据采集系统中断法南京航空航天大学微机原理课程设计数据采集系统中断法一课设目的进一步掌握微机原理知识了解微机在实时采集数据的应用学习掌握编程和程...

微机原理课程设计报告

课程设计报告纸数据采集系统三中断法一实验目的进一步掌握微机原理知识了解微机在实时采集过程中的应用学习掌握编程和程序调试方法二实验内容1用中断法将ADC0809通道0外接05V电压转换成数字量后在七段LED数码管...

微机原理课程设计报告(电子时钟)

微机原理课程设计报告1设计目的培养和锻炼在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力通过课程设计要求熟悉和掌握微机系统的软件硬件设计的方法设计步骤得到微机开发应用方面的初步训练掌握825...

微机课程设设论文-基于微机原理交通灯的设计

华夏学院微机原理与接口技术课程设计题目交通灯系统设计学院系信息工程系年级专业自动化1073学号10212407309学生姓名李华坤指导教师周立群武汉理工大学华夏学院微机原理与接口技术课程设计课程设计任务书学生姓...

微机原理课程设计报告li

江苏大学微机原理课程设计报告学院电气学院班级姓名学号指导老师时间20xx年1月15日一课程设计目的1结合微型计算机原理课程的学习进一步巩固已学的知识同时针对计算机原理知识的具体应用学会对系统中DOS和BIOS的...

微机原理与汇编技术课程设计报告模板

辽宁工业大学微机原理与汇编技术课程设计论文题目处理字符串程序设计院系电子与信息工程学院专业班级计算机科学与技术学号100401020学生姓名海米提江乃买提指导教师教师职称副教授起止时间130701至130605...

微机原理课程设计报告交通灯控制

课程设计报告书课程名称微机原理课程设计班级机电系电信专业0702班学号20xx1216姓名高祖涵指导教师胡全玉二零一零年六月二日目录前言1第一章交通灯设计的课题简介2第二章交通灯的设计方案4第三章交通灯的具体设...

微机原理课程设计报告-北京科技大学

微机原理课程设计报告时间20xx12学院自动化专业班级姓名学号合作者指导教师成绩北京科技大学自动化学院微机原理课程设计摘要8086是Intel公司设计生产的CPU是计算机发展史上的里程碑通过学习8086CPU的...

微机原理课程设计报告(35篇)