微机原理课程设计

时间:2024.4.2

合肥工业大学

计算机与信息学院

课程设计

    程:微机原理与接口技术设计

专业班级:计算机科学与技术班

    号:2

    名:


一、设计题目及要求:

利用 8259A中断,实现对8253多种计数初值的设定:

1.在中断服务程序中设定8253的计数初值。

2.开关K1用于设定0.5秒方波的计数初值,K2用于设定1秒方波的计数初值,K3用于设定2秒方波的计数初值。

3.用8253的输出信号,控制一个发光二极管,以演示修改效果。

二、设计思想:

整体设计:

①利用8259A芯片设定IR1、IR2、IR3三个中断 ,分别用三个开关的高低电平触发中断。

②在三个终端的中断服务子程序里面为8253芯片通道0设定不同频率的方波计数初值,使得在触发不同中断时8253芯片产生周期为0.5秒、1,秒、2秒的方波。

③将8253的输出端口与发光二极管连接,通过二极管的亮灭显示出8253内部方波的频率。

部分设计:

①8253芯片方式3初值确定:根据分频电路T(n)=T/2*公式以及0.5s、1s、2s方波的频率计算出初值分别为2580H、4B00H、9600H。

②8253芯片和8259芯片的片选方法:设定8259A和8253芯片的端口号分别为0FFE0H 、0FFE1H,以及0FFFCH—0FFFFH,使得在连接138译码器时,A连A2,B连A3,C连A4,T0连接8259A芯片的CS端,T7连接8253芯片的CS端。

③8259A中断向量表写入以及芯片初始化:根据8259A各个中断在中断向量表中的地址,将IR0、IR1、IR2的中断服务程序入口地址写入向量表中;ICW4设定除中断0、1、2外其他位屏蔽。

④手动设置中断结束:为了不影响各个中断之间的交替响应,在每个中断服务程序结束之前写入中断结束方式,将20H输出到8259端口,将当前中断结束响应后再响应下一个中断。

三、功能流程图:

四、结果讨论:

附录:实验代码:(完整的源程序

CODE    SEGMENT

        ASSUME CS:CODE,DS:CODE,ES:CODE

        ORG 3400H

Port0   EQU 0FFE0H       ;8259芯片的端口号

Port1   EQU 0FFE1H

START:

CALL F8259

P0:     CLI

        MOV AX,OFFSET INT0

        MOV BX,0020H

        MOV [BX],AX

        MOV BX,0022H

        MOV AX,0000H

        MOV [BX],AX

        STI

       

P1:     CLI

        MOV AX,OFFSET INT1

        MOV BX,0024H

        MOV [BX],AX

        MOV BX,0026H

        MOV AX,0000H

        MOV [BX],AX

        ;CALL F8259

        STI

P2:     CLI

        MOV AX,OFFSET INT2

        MOV BX,0028H

        MOV [BX],AX

        MOV BX,002AH

        MOV AX,0000H

        MOV [BX],AX

       ; CALL F8259

        STI

P:

        JMP P

;------------------------------------

F8259:  MOV AL,1BH      ;8259的初始化00011011 icw1

        MOV DX,Port0

        OUT DX,AL

        MOV AL,08H      ;00001000 icw2

        MOV DX,Port1

        OUT DX,AL

        MOV AL,01H      ;00000001 icw4

        OUT DX,AL

        MOV AL,00H      ;屏蔽只留IR0,IR1,IR2。OCW1

        OUT DX,AL

        RET

;---------------------------

INT0:   CLI

        CALL FB0

        STI

        MOV DX,Port0

        MOV AL,20H

        OUT DX,AL

        IRET

INT1:   CLI

        CALL FB1

        STI

        MOV DX,Port0

        MOV AL,20H

        OUT DX,AL

        IRET

INT2:   CLI

        CALL FB2

        STI

        MOV DX,Port0

        MOV AL,20H

        OUT DX,AL

        IRET

FB0:     MOV DX,0FFFFH

         MOV AL,00110110B

         OUT DX,AL

         MOV AL,80H

         MOV DX,0FFFCH

         OUT DX,AL

         MOV AL,25H

         OUT DX,AL

         RET

FB1:     MOV DX,0FFFFH

         MOV AL,00110110B

         OUT DX,AL

         MOV AL,00H

         MOV DX,0FFFCH

         OUT DX,AL

         MOV AL,4bH

         OUT DX,AL

         RET

FB2:     MOV DX,0FFFFH

         MOV AL,00110110B

         OUT DX,AL

         MOV AL,00H

         MOV DX,0FFFCH

         OUT DX,AL

         MOV AL,96H

         OUT DX,AL

         RET

;--------------------------

DONE:

CODE    ENDS

        END START


第二篇:微机原理课设实验报告最终修订版


河北科技大学

课程设计报告

学生姓名:  张德正  学号:   120701233

专业班级:电子信息122                 

课程名称:  微型计算机原理及应用技术      

学年学期:  2 0 14 2 0 15   学年第 1 学期

同组人员:  薛小禹、应佳捷、张念琦、张美萍

指导教师:         赵艳           

   2 0 14年 12月

课程设计成绩评定表

目录

一、课程设计目的------------------------------------1

二、课程设计题目------------------------------------1

三、设计任务与要求----------------------------------1

四、汇编语言程序设计的基本步骤----------------------2

五、课程设计原理及方案------------------------------2

六、程序与分析---------------------------------------8

七、实施结果-----------------------------------------9

八、小组成员及贡献 --------------------------------10

九、设计体会---------------------------------------10

十、参考资料----------------------------------------10


一、课程设计目的:

1、掌握汇编语言程序的建立和运行;

2、熟悉DOS环境以及在DOS下会调试编写好的汇编程序;

3、熟悉常用的DOS功能;

4、小组合作完成设计题目。

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

通过课程设计实践,不仅要培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能以图纸和说明书等表达设计思想和结果的能力。培养学生事实求是和严肃认真的工作态度。

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

二、课程设计题目

     加法练习程序

 三、设计任务与要求:

1、设计加法练习程序;

2、程序设计基本要求:

  1)菜单

     内容包括:①输入字符串②程序运行③退出

       2)输入字符串

          随机给出百位数以内的加法算式,并提示输入答案;

       3)程序运行

          若答案正确,则给出正确提示;若答案错误,则给出错误提示,并提示输入答案;

       4)按R键则继续下一题,按Q键则返回DOS系统。

四、汇编语言程序设计的基本步骤

1.分析问题

 首先必须明确求解问题的意义和任务。对题目给出的已知条件和要完成的任务进行详细地了解和分析,将一个实际的问题转化为计算机可以处理的问题。

2.确定算法

所谓算法,简单地说就是计算机能够实现的有限的解题步骤。我们知道,计算机只能进行最基本的算术运算和逻辑运算,要完成较为复杂的运算和控制操作,必须选择合适的算法,这是正确编程的基础。

3.设计流程图

将提出的算法或编程思想用流程图的方式画出

4.根据流程图编写程序

编写程序是采用程序设计语言来实现上面已确定的算法,此过程有些书上称为编码。本书所介绍的是采用汇编语言编写程序。采用汇编语言编写程序应注意以下几个问题:

(1)必须详细了解CPU的编程模型、指令系统、寻址方式及相关伪指令;

(2)必须进行存储空间和工作单元的合理分配;

(3)多次使用的程序段可采用子程序或宏指令;

(4)尽可能用标号或变量来代替绝对地址和常数;

5.程序的检验

程序编写好以后,必须经过书面检查和上机调试,以便说明程序是否正确。检验时,应预先选择典型数据,检查是否可以得到预期结果。

五、课程设计原理及方案

    1、流程图

 

 2、使用的DOS功能:

1) 显示字符串  MOV AH,09H

                    INT 21H     ;入口参数DS:DX=缓冲区

2) 键盘输入一个字符  MOV AH,01H

                         INT 21H     ; AL=输入的字符

3)终止当前程序并返回调用程序  MOV AH,4CH

                                 INT 21H     ;AL=退出码

4)输入字符串  MOV  AH,0AH

                 INT 21H     ;入口参数DS:DX=缓冲区

  5)输出单字符  MOV  AH,2

                 INT 21H     ;DL=要显示字符的ASCII码

3、使用的BIOS功能:

1)  MOV AL,0AH;在光标位置显示字符

      INT 10H

2)  MOV AH,0;从键盘读字符

INT 16H

  3) MOV AX,0E20H;空一格 

      INT 10H

3、使用工具和软件:

   计算机和MASM汇编软件

                           

六、程序与分析

OUTPUT MACRO X

LEA  DX,X

MOV  AH,9

INT 21H

ENDM

CODE SEGMENT

ASSUME CS:CODE,DS:CODE

START:

PUSH CS

POP DS

OUTPUT TIPS

AGAIN:

MOV AX,0E20H

INT 10H

CALL  JIAFA

OUTPUT  MSG

KEY:

MOV AH,0

INT  16H;                         无回显接收一键

CMP  AH,13H ;'R'

JZ  AGAIN

CMP AH,10H ;'Q'

JNZ  KEY

OUTPUT  EXIT

MOV  AH,1

INT  21H             ;           输入字符

MOV AH,4CH  

INT  21H              ;         返回DOS

JIAFA:

CALL  RANDOM

MOV  SUM,AX

CALL  SHOW

MOV  DL,'+'

MOV  AH,2

INT   21H

CALL  RANDOM

ADD   SUM,AX

CALL  SHOW

NEXT:

MOV AX  0E20H                    串间空格隔开

INT   10H

MOV  DL,'='

MOV  AH,2

INT  21H                        输出=

CALL  INPUT

CMP  BP,SUM

JZ  DONE

OUTPUT  NO

JMP   NEXT

DONE:

OUTPUT  YES

RET;                             功能:产生一个百位以内的随机数存于AX中

   RANDOM:

 XOR  AX,AX                       AX清零

 OUT  43H,AL

 IN   AL,40H

 MOV   AH,AL

 IN   AL,40H

 XCHG  AL,AH

 XOR  DX,DX

 MOV  BX,99

 DIV  BX

 MOV  AX,DX ;                       余数为随机数

RET                               返回断点处

SHOW:

MOV AX ,AX

AAM

OR  AX,3030H

XCHG  AH,AL

MOV DX,AX

MOV  AH,2

INT  21H

MOV DL,DH

INT 21H

RET

INPUT:

XOR BP,BP

MOV  CX,3

GET:

MOV  AH,0

INT  16H

CMP  AL,0DH

JZ  OK

CMP  AL ,'0'

JB  GET

CMP  AL,'9'

JA  GET

MOV  AH,0EH

INT  10H

AND  AX ,0FH

XCHG  BP,AX

MOV  BX,10

MUL  BX

ADD  BP,AX

LOOP  GET

OK:

CMP  CX,3

JNZ  OK 1

MOV  AX,0E30H

INT  10H

OK 1: RET

TIPS  DB  9,9,'JIA  FA  LIAN  XI',0DH,0AH,'$'

YES  DB' Correct!$'

NO  DB ' Error!',0DH,0AH,'$'

MSG  DB  DH,0AH,' Continue(R) or Exit(Q)?',0DH,0AH'$'

EXIT  DB  0DH ,0AH,' Press any key to quit...$'

SUM  DW 0

CODE ENDS

  END START

七、实施结果

     程序运行之后,随机给出百位数以内的加法算式,并提示输入答案;若答案正确,则给出正确提示;若答案错误,则给出错误提示,并提示输入答案;按R键则继续下一题,按Q键则返回DOS系统。

八、小组成员及贡献

小组成员:薛小禹、应佳捷、张德正、张美萍、张念琦

我(张德正)主要负责用RANDOM的随机种子的子程式,其实是伪随机过程,指定一个算法,根据该子程式输出的结果来产生随机的加法算式。产生一个被加数N1,产生一个加数N2。

RANDOM:

 XOR  AX,AX               AX清零

 OUT  43H,AL

 IN   AL,40H

 MOV   AH,AL

 IN   AL,40H

 XCHG  AL,AH

 XOR  DX,DX

 MOV  BX,99

 DIV  BX

 MOV  AX,DX ;             余数为随机数

 RET                     返回断点处

九、设计体会

  总的来说,在整个设计的过程中,对文件的知识有了相当程度的了解掌握,基本上学会了对图的操作等。在对文件的自学过程中也认识 ,在学习的过程中要灵活的把所学的知识运用到实践当中,并且还要巩固练习和运用,这样才可以牢牢的记住。试验也对数据结构的知识进行了复习,尤其是结构体的定义、地址与引用的合理使用以及记录指针的使用也认识到数据结构在实践运用中的重要性,在对程序不断的修改和逐步改进提升的过程中,积累了不少经验,为在以后的学习和实践应用奠定了一定的基础。

做过很多课程设计,但完成了微机原理的课程设计后,我才感觉这门还是真正需要些技术含量的。需要我们同学深入的去思考,去学习查资料,我在这一周的时间里收获也是很大的,对汇编语言由略知皮毛到能运用它独立做一些小程序。这种技能都是课堂上学不到的,但对未来却有很大的帮助。当我面对一个难题,从一筹莫展到逐渐清晰明朗,调试调试再调试,而后最终完成任务。只有亲身经历过,才能感受其中的艰辛与快乐。更重要的是我们对汇编有了更进一步的理解。有了实际应用的体会,知识更加的融会贯通了。不管是从知识上还是从思维方式上,我们都得到了很大的进步。

第一天的任务便是熟悉编程环境,掌握编程的步骤,然后编写一个范例小程序。当天便遇到了问题,怎样正确运用DOS的各个功能调用,因为课堂上讲的关于这方面的知识都很不系统,只是勉强记住其对应的功能而却不知道实际运用的方法。然后我就对照着书上的例子和指导书上的范例程序,把各个功能都调试运行了一遍。并且着重学习了一下经常用到的几个功能,像09号功能、0A号功能等。其中我发现了以前编程只知道往上写却不知道起作用的语句都在调试的过程中慢慢清晰了。

接下来的几次实验,我们针对平时讲课比较抽象的内容进行测试,当然,一开始总是会出现或多或少、或大或小的问题,但经过努力,终于可以克服这些困难,能够独立的设计程序。而且我们平时遇到的困难,如果不能独立解决,首先我会先从书中寻找答案,如果找不到再问同学或者老师求解,或者从网上寻找答案,最后通过这个困难学到了之前不懂的东西,并进行运用和掌握。

在最后的课程设计中,老师给我们规定了题目,然后我们在组内进行了分工,每个人负责一个部分,最后在汇总调试。虽然设计的程序中有些许差错,最终经过修正,可以完成了最初的实验目的。

十、参考资料

    朱金钧、麻新旗:《微型计算机原理及应用技术》 机械工业出版社

    张弥左、王兆月、邢立军:《微型计算机接口技术》机械工业出版社

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

微机原理课程设计设计报告姓名朱文斋班级学号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...

微机原理课程设计报告

微机原理课程设计报告时间11月22日至12月3日学院自动化学院专业班级自1103姓名高云峰学号41151092合作者指导教师董洁成绩20xx年12月微机原理课程设计报告高云峰学号41151092摘要通过对霍尔电...

微机原理课程设计报告

大连海事大学课程设计报告课程名称微机原理课程设计成员学号姓名成绩设计时间20年月日至月日微机原理课程设计报告目录设计任务与要求2设计题目2设计目的2要求2组织与实施3设计方案4总体设计4设计原理4采用的新技术5...

微机原理课程设计报告

课程设计报告20xx20xx年度第一学期课程微机原理及应用题目秒表设计院系自动化系班级学号学生姓名指导教师设计周数一周成绩日期20xx年1月10一课程设计目的与要求1通过对微机系统分析和具体设计使学生加深对所学...

微机原理课程设计报告

合肥工业大学计算机与信息学院课程设计课程微机原理与接口技术设计专业班级计算机科学与技术111班学号20xx2446姓名朱明明用8255和8253使发光二极管按一定规律轮流点亮一设计题目及要求发光二极管点亮方式将...

微机原理课程设计报告

中南大学微机原理课程设计报告微机应用系统设计与综合实验课程设计报告学院信息科学与工程学院班级自动化1106学号0909113126姓名张甜甜指导老师李志民瞿年清20xx1230中南大学微机原理课程设计报告目录目...

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