微机原理与接口技术实验报告.docx

上传人:b****3 文档编号:4973740 上传时间:2022-12-12 格式:DOCX 页数:12 大小:18.80KB
下载 相关 举报
微机原理与接口技术实验报告.docx_第1页
第1页 / 共12页
微机原理与接口技术实验报告.docx_第2页
第2页 / 共12页
微机原理与接口技术实验报告.docx_第3页
第3页 / 共12页
微机原理与接口技术实验报告.docx_第4页
第4页 / 共12页
微机原理与接口技术实验报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

微机原理与接口技术实验报告.docx

《微机原理与接口技术实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验报告.docx(12页珍藏版)》请在冰豆网上搜索。

微机原理与接口技术实验报告.docx

微机原理与接口技术实验报告

微机原理与接口技术实验报告

 

6、装入程序

四实验结果

1、编译成功:

2、链接成功:

3、装入程序成功:

第46页共87页

46

第47页共87页47

4、实验运行结果截图

五思考与总结:

通过此次试验,我了解INT10H各功能块的作用及用法并掌握了字符方式下PC机显示器显示控制,对其有了初步的了解。

在实验当中虽然遇到很多的问题但是老师都一一为我解答了,让我顺利完成了实验。

在以后的学习过程中还需要注意此类问题,真正的掌握这些知识点,做到灵活运用自己所掌握的知识。

第48页共87页48

实验九中断特性及8259应用编程实验

一实验目的

1.认识TDN86/51系统的中断特性2.掌握8259中断控制器的工作原理3.掌握8259可编程中断控制器的应用编程

二实验设备

1.TDN86/51或TDN86/88教学实验系统一台2.排线、导线一根

三实验内容及步骤实验1

1编写源代码:

STACKSEGMENTSTACKDW64DUP(?

)STACKENDSCODESEGMENT

ASSUMECS:

CODE

START:

PUSHDS;保存数据段

MOVAX,0000H;将AX清零,将0000传给AX

MOVDS,AX;数据段清零,将AX内容传给DS,所以DS清零MOVAX,OFFSETIRQ7;取中断程序入口地址(相对地址)ADDAX,2000H;加装载时IP=2000地址(绝对地址)

MOVSI,003CH;填8259中断7中断矢量,把003CH内容传给SIMOV[SI],AX;填偏移量矢量,将AX地址传给SIMOVAX,0000H;地址段CS=0000HMOVSI,003EH;将003E传给SI

MOV[SI],AX;填地址段矢量,将AX地址传给SICLI;关中断POPDS;弹栈

INAL,21H;读8259中断屏蔽字,把21H端口内容给ALANDAL,7FH;开8259中断7

OUT21H,AL;将AL内容回传给21H

第49页共87页

49

MOVCX,000AH;循环10次

A1:

CMPCX,0000H;判断是否完成循环JNZA2;跳转

INAL,21H;读8259中断屏蔽字,把21H端口内容给ALORAL,80H;关8259中断7

OUT21H,AL;将AL内容回传给21HSTIHLTA2:

STI

JMPA1;无条件跳转至A1

IRQ7:

MOVAX,0137H;中断程序入口

INT10H;返回操作程序,结束程序运行MOVAX,0120H;中断程序出口

INT10H;返回操作程序,结束程序运行DECCX;CX自减1MOVAL,20H;将20传给ALOUT20H,AL;将AL回传给20CLIIRETCODEENDSENDSTART

2.编译、连接、装载3.G=0000:

2000运行程序

4.重复按KK2微动开关,显示屏上应用“7”来响应,直到按10次后,系统处于停机状态。

实验2

1编写源代码:

STACKSEGMENTSTACKDW64DUP(?

)STACKENDSCODESEGMENT

ASSUMECS:

CODE

START:

PUSHDS;保存数据段

MOVAX,0000H;将AX清零,将0000传给AX

MOVDS,AX;数据段清零,将AX内容传给DS,所以DS清零MOVAX,OFFSETIRQ6;取中断程序入口地址(相对地址)ADDAX,2000H;加装载时IP=2000地址(绝对地址)

MOVSI,0038H;填8259中断6中断矢量,把0038H内容传给SI

第50页共87页50

实验报告

课程名称微机原理与接口技术

专业计科班级五班姓名胡益学号10030507指导教师朱红伟实验成绩

第1页共87页1

实验一系统认识实验.............................................................................................................3实验二数码转换编程及程序调试.......................................................................................8实验三运算类编程实验.....................................................................................................12实验四分支程序设计实验...............................................................................................17实验五分支程序设计实验2..............................................................................................23实验六循环程序设计.........................................................................................................31实验七子程序设计.............................................................................................................39实验八显示程序实验.........................................................................................................45实验九中断特性及8259应用编程实验.............................................................................49实验十8255并行接口应用实验..........................................................................................55实验十一8253定时/计数器应用实验...............................................................................60实验十二8253定时器应用实验........................................................................................66实验十三A/D转换实验.......................................................................................................72实验十四D/A转换实验.....................................................................................................77实验十五8255键盘及显示接口实验................................................................................81实验十六步进电机实验.....................................................................................................85

共3页:

上一页123下一页

 

第2页共87页2

实验一系统认识实验

一实验目的

掌握TDN86/51或TDN86、88教学系统的基本操作。

二实验设备

TDN86/51或TDN86、88教学实验系统一台

三实验内容及步骤

1.使用串行通讯电缆将实验系统与PC微机相连。

2.打开实验环境WMD86.3.输入源代码:

STACKSEGMENTSTACK;DW64DUP(?

);STACKENDS

CODESEGMENT;ASSUMECS:

CODESTART:

MOVDI,3500H;MOVCX,0010H;MOVAX,0000HA1:

MOV[DI],AL;INCDI;LOOPA1;A2:

JMPA2CODEENDS;ENDSTART;

4.进行端口测试。

5.进行汇编、链接。

6.调试无误,并载入程序。

四实验结果

1.输入U2000命令进行反汇编,检查程序是否正确装入。

如图(4-1)

第3页共87页3

图(4-1)检查程序是否正确装入

2.当发现源程序输入错误或需调试,输入指令A来修改,如修改2000句MOVDI,3500。

如图(4-2)

图(4-2)修改2000句

3.对程序进行连续运行。

结果如图(4-3)

第4页共87页

4

图(4-3)连续运行

第5页共87页5

A1:

MOVAL,BLINT10HINCBLPUSHCX

MOVCX,0FFFFHA2:

LOOPA2POPCXDECCXJNZA1INT03HCODEENDS

ENDSTART

2编译、连接、装载3运行程序并观察结果

四实验结果

1.查看程序是否在如成功,结果如图(4-1)所示:

图4-1数据载入成功

第41页共87页

41

2.输入数据,如图(4-2)所示:

图4-2输入数据

3.运行程序并查看数组1和数组2的结果,如图(4-3)所示:

图4-3程序结果数组1和数组2

实验2(结果)

1.载入程序,如图(4-4)

第42页共87页

42

2.运行程序,如图(4-5)

第43页共87页

43

五思考与总结

本次实验我们做得是子程序设计实验。

主要掌握子程序的结构和分支程序的设计、调试方法。

这次实验,我有一些不懂的地方,但是通过老师给的课件将所有的程序都加以注释,这样使我对整个实验的代码都了解了,加深了我对分支实验各方面知识点的理解。

第44页共87页44

实验八显示程序实验

一实验目的

1.了解INT10H各功能快的作用及用法。

2.掌握字符方式下PC机显示器显示控制。

二实验设备

TDN86/51或TDN86/88教学实验系统一台

三实验内容及步骤

1、连接试验箱2、打开实验环境

3、输入源代码流程图(如下)

STACKSEGMENTSTACK;堆栈段定义DW64DUP(?

);重复64次STACKENDS;段定义结束

CODESEGMENT;存放在堆空间中的代码段ASSUMECS:

CODE;段分配语句(伪指令)

START:

MOVCX,001AH;显示字符个数(26)送入CXMOVBL,41H;显示字符‘A’MOVAH,01H;显示一个字符A1:

MOVAL,BLINT10H

INCBL;显示下一个字符PUSHCX

MOVCX,0FFFFHA2:

LOOPA2POPCXDECCXJNZA1INT03HCODEENDS

ENDSTART4.

5、连接

第45页共87页

45

实验六循环程序设计

一实验目的

1.加深对循环结构的理解2.掌握循环结构程序设计的方法。

3.熟练掌握调试循环程序的方法。

二实验设备

TDN86/51或TDN86/88教学实验系统一台

第31页共87页

31

三实验内容及步骤

1.流程图:

实验一:

1DX2BL[BL]AL[BL]+1AL[AL]*[BL]AX[DX]+[AX]DXN[AX]>200结束程序源代码:

STACKSEGMENT

DW64DUP(?

)STACKENDSCODESEGMENT

ASSUMECS:

CODE

START:

MOVDX,0001H;将0001H传送给DX,DX=0001HMOVBL,02H;将02H传送给BL,BL=02HA1:

MOVAL,BL;将BL传送给AL

INCBL;对BL进行加一在传送给BL

MULBL;将AL与BL相乘并将结果传送给AXADDDX,AX;AX与DX相加并将结果传给DX

第32页共87页32

CMPAX,00C8H;用目的操作数减去源操作数,AX减去00C8H,比较AX数是否大

于00C8H

JNAA1;当CF=1或ZF=1时进行跳转,如跳转则进行A1,如不跳转则进行

A2

A2:

INT03H;对操作数加1CODEENDS

ENDSTART

第33页共87页33

开始数据区首址D1数据个数CLCH、BL置0DI增1数据首位=1?

NYBL+1BLDI增1NCX=0存结果结束第34页共87页

34

实验二:

流程图:

1.程序源代码:

STACKSEGMENTSTACKDW64DUP(?

)STACKENDSCODESEGMENT

ASSUMECS:

CODE

START:

MOVDI,3000H;设数据区首址,将3000H传给DI,DI=3000HMOVCL,[DI];送数据个数,将DI的值传给CLXORCH,CH;CH清0MOVBL,CH;BL清0

INCDI;指针指向第一个数据

A1:

MOVAL,[DI];将DI的值传给ALTESTAL,80H;判断数据首位是否为1

JEA2;判断,当ZF=1时跳转到A2,如不是则顺序执行INCBL;负数个数累加

A2:

INCDI;指针指向第一个数据LOOPA1;循环指令,循环执行A1MOV[DI],BL;将BL数据传给DIINT03H;对操作数进行加1CODEENDS

共3页:

上一页123下一页

 

ENDSTART

2.输入程序并检查无误,经汇编、连接后装入系统3.E3000↙输入数据如下:

3000=06(数据个数)3001=12、88、82、90、22、334.G=0000:

2000↙,运行实验程序。

5.D=3007↙,显示结果03

第35页共87页

35

四实验结果

1.实验一结果如图(4-1)所示:

图4-1实验结果为045FH

实验二(结果):

1.输入数据,结果如图(4-2)所示:

图4-2数据输入

第36页共87页

36

2.运行程序,查看结果如图(4-3)所示:

第37页共87页37

五思考与总结

这次实验我们做得时关于循环程序的实验:

S=1+2*3+3*4+4*5+?

+N(N+1),直到N*(N+1)项大于200为止。

本次实验我通过观察流程图来自己设计有关程序,这样使我对循环结构有了更深的了解,加深了我对乘法指令和加法指令的理解。

掌握了循环结构程序设计的方法,知道如何对循环程序进行调试。

在实验过程中也遇到了不少的困难,使实验无法继续进行下去,不过在老师的帮助下解决了困难,顺利完成了实验,使我受益匪浅。

第38页共87页38

实验七子程序设计

一实验目的

1.学习子程序的定义和调用方法2.掌握子程序的结构

3.熟练掌握子程序的程序设计、编制及调用二实验设备

TDN86/51或TDN86/88教学实验系统一台

三实验内容及步骤实验1

1编写源代码:

DATASEGMENT

ARY1DW3DUP(?

)SUM1DW?

ARY2DW3DUP(?

)SUM2DW?

DATAENDS

STACKSEGMENTSTACK

SADW50DUP(?

)TOPEQULENGTHSASTACKENDSCODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACKMAINPROCFARSTART:

MOVAX,DATA;数据段数据设置

MOVDS,AX;将AX中的内容传送给DSMOVAX,STACK

MOVSS,AX;将AX中的内容传送给SSMOVSP,TOP

LEASI,ARY1;数组1首地址,入口参数MOVCX,LENGTHARY1;数组1长度,入口参数CALLSUM;调用求和子程序

第39页共87页

39

LEASI,ARY2;数组2首地址,入口参数MOVCX,LENGTHARY2;数组2长度,入口参数CALLSUM;调用求和子程序RET;无参数段内返回MAINENDP

SUMPROCNEAR;子程序XORAX,AX;AX清0

L1:

ADDAX,WORDPTR[SI];加数组元素INCSI;对SI进行加1INCSI;对SI进行加1LOOPL1;结束L1

MOVWORDPTR[SI],AX;数组和送入SUMMOVAH,4CH;准备结束程序INT21H;中断程序运行RET;无参数段内返回SUMENDP;终止求和子程序CODEENDSENDSTART

2编译、连接、装载3u2000查看是否装载成功

4E****:

0000,输入三个字数据(数组1的数据)5E****:

0008,输入三个字数据(数组2的数据)6运行程序

7查看结果,结果存放在****:

0006(数组1的累加和)和****:

000E单元(数组2的累加和)

实验2

1编写源代码:

STACKSEGMENTSTACKDW64DUP(?

)STACKENDSCODESEGMENT

ASSUMECS:

CODESTART:

MOVCX,001AHMOVBL,41HMOVAH,01H

第40页共87页40

 

共3页:

上一页123下一页

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 动态背景

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1