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

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

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

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

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

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

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

16位微机原理显示程序设计实验报告

一、实验目的

1.掌握PC机上以十六进制形式显示数据的方法。

2.掌握部分DOS功能调用使用方法。

二、实验设备

PC微机一台、TD-PITD试验系统一套。

三、实验内容及说明

一般来说,有许多程序需要显示输出提示运行的状况和结果,有的还需要将数据区的内容显示在屏幕上,并利用DOS功能调用完成一些提示信息的显示。

通过本实验,初步掌握试验系统配套操作软件的使用。

试验中所使用的DOS功能调用(INT21H)说明如下。

(1)显示单个字符输出

入口:

AH=02H

调用参数:

DL=输出字符

(2)显示字符串

入口:

AH=09H

调用参数:

DS:

DX=串地址,’$’为结束字符

(3)键盘输入并回显

入口:

AH=01H

返回参数:

AL=输出字符

(4)返回DOS系统

入口:

AH=4CH

调用参数:

AL=返回码

从存储区域读出的数据位十六进制数据,本程序设计的难点在于将十六进制的数据转变成ASCII码显示。

数值与ASCII的关系:

0-9转换成ASCII码是指直接在数字上加上30H即可,A-F转换成ASCII码时直接在数值上加上37H。

实验程序如下。

实验程序清单(例程序文件名:

A1.ASM)

stack1segmentstack

dw256dup(?

stack1ends

datasegment

mesdb'pressanykeytoexit!

',0AH,0DH,0AH,0DH,'$'

mes1db'showaashex:

',0AH,0DH,'$'

sddb'a'

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movdx,offsetmes

movah,09H

int21H

movdx,offsetmes1

movah,09H

int21H

movSI,offsetsd

moval,ds:

[SI];

andal,0F0H

movcl,4

shral,cl

cmpal,0AH

jbc2

addal,07H

c2:

addal,30H

movdl,al

movah,02H

int21h

moval,ds:

[si]

andal,0FH

cmpal,0AH

jbc3

addal,07H

c3:

addal,30H

movdl,al

movah,02H

int21H

key:

movah,1

int16H

jzkey

movax,4C00H

int21H

codeends

endstart

四、实验步骤

1.使用MASM5.0实现

(1)编辑源代码

源代码的编辑可在.txt文档中直接编写,程序编写完成后将文件名改成a1.asm,并保存在MASM5.0文件夹所在的目录下MYCODE文件夹中,如:

D:

\MASM5.0\MYCODE。

(2)编辑a1.asm文件

在DOS下打开MASM5.0所在的目录。

方法:

开始→运行输入cmd可进入DOS系统,依次输入E:

回车,进入D盘根目录,然后输入D\>cdmasm5.0回车,可打开D:

\MASM5.0目录。

打开文件目录后输入命令:

D:

\MASM5.0\masm.\MYCODE\a1.asm,之后连续三次回车。

程序无错则在D:

\MASM5.0中增加了文件a1.obj如图所示。

(3)链接a1.obj文件

生成的obj文件并不是一个可执行文件,还需要经过link.exe连接后才能生成a1.exe文件。

在界面输入D:

\MASM5.0>linka1.obj之后连续三次回车,可以生成.exe文件如图所示。

之后可在D:

\MASM5.0目录下发现一个a1.exe文件。

此文件是一个可以执行的文件,如图所示。

本实验的结果就是将ASCII码’a’的十六进制数在屏幕上显示出来。

从屏幕上可以显示结果可知试验完成。

下面执行的程序是在键盘上输入并在屏幕上回显本人学号:

3110644913的后两位14H,程序如下:

stack1segmentstack

dw256dup(?

stack1ends

datasegment

mesdb'pressanykeytoexit!

',0AH,0DH,0AH,0DH,'$'

mes1db'showaashex:

',0AH,0DH,'$'

sddb13H

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movdx,offsetmes

movah,09H

int21H

movdx,offsetmes1

movah,09H

int21H

movSI,offsetsd

moval,ds:

[SI];

andal,0F0H

movcl,4

shral,cl

cmpal,0AH

jbc2

addal,07H

c2:

addal,30H

movdl,al

movah,02H

int21h

moval,ds:

[si]

andal,0FH

cmpal,0AH

jbc3

addal,07H

c3:

addal,30H

movdl,al

movah,02H

int21H

key:

movah,1

int16H

jzkey

movax,4C00H

int21H

codeends

endstart

运行结果如下:

 

实验二数据传送实验

一、实验目的

1.熟悉与试验操作软件的环境和使用方法;

2.掌握与数据有关的不同寻址方式。

二、实验所用设备

1.PC微机一台、TD-PITD试验系统一套。

三、实验内容

将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。

参考实验程序:

DDATASEGMENT;定义源数据段

MSRDB"HELLO,WORLD!

$"

LENEQU$-MSR

DDATAENDS

EXDASEGMENT;定义附加数据段

MSDDBLENDUP(?

EXDAENDS

MYSTACKSEGMENTSTACK;定义堆栈段

DW20DUP(?

MYSTACKENDS

CODESEGMENT;定义代码段

ASSUMECS:

CODE,DS:

DDATA,ES:

EXDA

START:

MOVAX,DDATA

MOVDS,AX;装载数据段寄存器

MOVAX,EXDA

MOVES,AX;装载附加数据段寄存器

MOVSI,OFFSETMSR;设置SI

MOVDI,OFFSETMSD;设置DI

MOVCX,LEN

NEXT:

MOVAL,[SI];开始传输数据

MOVES:

[DI],AL

INCSI

INCDI

DECCX

JNZNEXT

PUSHES

POPDS;将附加段寄存器的段值赋给数据段寄存器

MOVDX,OFFSETMSD

MOVAH,9

INT21H

MOVAX,4C00H;利用DOS功能调用返回DOS状态

INT21H

CODEENDS

ENDSTART

将程序主体部分的寄存器间接寻址方式改为相对寻址方式,则如下所示:

MOVBX,0

MOVCX,LEN

NEXT:

MOVAL,MSR[BX]

MOVES:

MSD[BX],AL

INCBX

LOOPNEXT

四、实验步骤

(1)编辑源代码

源代码的编辑可在.txt文档中直接编写,程序编写完成后将文件名改成a2.asm,并保存在MASM5.0文件夹所在的目录下MYCODE文件夹中,如:

D:

\MASM5.0\MYCODE。

(2)编辑a2.asm文件

在DOS下打开MASM5.0所在的目录。

方法:

开始→运行输入cmd可进入DOS系统,依次输入E:

回车,进入D盘根目录,然后输入D\>cdmasm5.0回车,可打开D:

\MASM5.0目录。

打开文件目录后输入命令:

D:

\MASM5.0\masm.\MYCODE\a2.asm,之后连续三次回车。

程序无错则在D:

\MASM5.0中增加了文件a2.obj。

(3)链接a2.obj文件

生成的obj文件并不是一个可执行文件,还需要经过link.exe连接后才能生成a2.exe文件。

在界面输入D:

\MASM5.0>linka2.obj之后连续三次回车,可以生成.exe文件如图所示。

之后可在D:

\MASM5.0目录下发现一个a2.exe文件。

此文件是一个可以执行的文件,如图所示。

(4)DEBUG调试

输入D:

\MASM5.0>debuga2.exe回车可进入调试系统,首先对a2.exe进行反汇编,如图所示:

从反汇编的程序上可以看出,原字符串存放的段地址为ox13c6,偏移地址为ox0000,复制字符的目的地址为段地址ox13c5,偏移地址为ox0000,字符串的长度为ox0E,下面通过内存查看命令查看源地址和目的地址的数据情况,如图所示。

 

由图可直接看出源地址所存放的数据为“"HELLO,WORLD!

",目的地址存放的数据全为0.现将程序运行至13CA:

001B处,程序到此时,可完成一个字节数据的传输,查看目的地址的内存数据,如图,

 

传输的一个字节后可在目的地址的第一个数据位0x48,其ASCII码为’H’。

同时也可观察AX寄存器的低8位也是0x48。

将程序运行至13CA:

001D处,此时程序已经跳出了数据传送的循环,数据的传输工作已将完成。

查看目的地址的内存数据如图所示:

 

有图可以直接看出数据传送之后目的地址存放的数据与源地址存放的数据一致,说明数据传送完成,程序正确无误。

 

实验三分支程序设计实验

一、实验目的

掌握分支程序的设计方法。

实验设备

PC一台TD-PITD实验系统一套。

二、实验内容及说明

   程序有顺序、循环、分支和子程序四种结构形式,分支结构的示意图如图1所示。

本实验要求通过求无符号字节序列中的最大值和最小值来反映分支程序的结构形式。

图1分支结构的示意图

   实验可以使用BH,BL作为暂存现行的最大值和最小值,且在程序的初始,将BH和BL初始化为首字节的内容,然后进入循环操作。

在循环操作中,依次从字节序列中逐个取出一个字节的内容与BH,BL进行比较,若取出的字节内容比BH的内容大或比BL中的内容小,则修改之。

当循环结束操作时,将BH,BL分别送屏幕显示。

参考实验流程如图2所示。

三、实验步骤

(1)运行Tdpit软件,选择文件菜单编写实验程序;提供8字节的数据:

0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9H。

(2)使用编译菜单中的编译和连接对实验程序进行汇编、连接。

(3)使用编译菜单中的运行,运行程序,观察运行结果。

(4)更改数据区中的数据,考察程序的正确性。

图2实验流程图

4、编写程序如下:

STACK1SEGMENTSTACK

DW256DUP(?

STACK1ENDS

DDATASEGMENT

MES1DB'Theleastnumberis:

$'

MES2DB0AH,0DH,'Thelargestnumberis:

$'

MSRDB0D9H,007H,08BH,0C5H,0EBH,004H,09DH,0F9H

DDATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DDATA

START:

MOVAX,DDATA

MOVDS,AX

MOVSI,OFFSETMSR

MOVCX,0008H

JCXZA4

MOVBH,[SI]

MOVBL,BH

A1:

LODSB;AL=DS:

[SI],SI=SI+1

CMPAL,BH

JBEA2

MOVBH,AL

JMPA3

A2:

CMPAL,BL

JAEA3

MOVBL,AL

A3:

LOOPA1

A4:

MOVDX,OFFSETMES1;showmes1

MOVAH,09H

INT21H

MOVAL,BL;showtheleastnumber

ANDAL,0F0H;getthehighest4bits

MOVCL,4

SHRAL,CL

CMPAL,0AH

JBC2

ADDAL,07H

C2:

ADDAL,30H

MOVDL,AL;showcharacter

MOVAH,02H

INT21H

MOVAL,BL

ANDAL,0FH;getthelowest4bits

CMPAL,0AH

JBC3

ADDAL,07H

C3:

ADDAL,30H

MOVDL,AL;showcharacter

MOVAH,02H

INT21H

MOVDX,OFFSETMES2;showmes2

MOVAH,09H

INT21H

MOVAL,BH;showthelargestnumber

ANDAL,0F0H;getthehighest4bits

MOVCL,4

SHRAL,CL

CMPAL,0AH

JBC22

ADDAL,07H

C22:

ADDAL,30H

MOVDL,AL;showcharacter

MOVAH,02H

INT21H

MOVAL,BH

ANDAL,0FH;getthelowest4bits

CMPAL,0AH

JBC33

ADDAL,07H

C33:

ADDAL,30H

MOVDL,AL;showcharacter

MOVAH,02H

INT21H

WAIT1:

MOVAH,1;判断是否有按键按下

INT16H

JZWAIT1;无按键则跳回继续等待,有则退出

MOVAX,4C00H;gobacktodos

INT21H

CODEENDS

ENDSTART

5、比较七次,每次的比较后调试程序最终结果如图:

实验四:

8255并行接口应用实验报告

【实验目的:

】1.掌握8255的工作方式和应用编程。

2.掌握8255的典型应用电路接法。

【实验设备及器件:

】PC机一台,TD—PIT实验仪器一套。

【实验内容及步骤:

1.基本输入输出实验。

编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。

要求只要开关拨动,数据灯的显示就改变。

2.流水线指示灯的显示实验。

编写程序,使8255的A口和B口均为输出,实现16位数据灯的相对循环显示。

3.键盘及显示实验。

按照实验线路编写实验程序,使按下不同的按键后数码管显示相应的数字。

【实验原理图及程序流程图】

 

1、基本输入/输出实验:

本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。

用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入/输出功能。

8255基本输入/输出实验参考接线图如图所示。

流程图:

程序代码及注释:

CS0EQU3000H;片选CS0对应的端口始地址

MY8255_AEQUCS0+00H;8255的A口地址

MY8255_BEQUCS0+01H;8255的B口地址

MY8255_CEQUCS0+02H;8255的C口地址

MY8255_MODEEQUCS0+03H;8255的控制寄存器地址

STACK1SEGMENTSTACK

DW256DUP(?

STACK1ENDS

CODESEGMENT

ASSUMECS:

CODE

START:

MOVDX,MY8255_MODE;初始化8255工作方式

MOVAL,82H;工作方式0,A口输出,B口输入

OUTDX,AL

LOOP1:

MOVDX,MY8255_B;读B口

INAL,DX

MOVDX,MY8255_A;写A口

OUTDX,AL

MOVAH,1;判断是否有按键按下

INT16H

JZLOOP1;无按键则跳回继续循环,有则退出

QUIT:

MOVAX,4C00H;结束程序退出

INT21H

CODEENDS

ENDSTART

实验步骤

(1).设计实验线路图,将PCI总线扩展卡上总线与仿真ISA总线进行连接。

(2).编写程序。

(3).打开实验箱电源,运行程序,拨动开关组,观察数据灯的显示。

实验现象:

拨动开关,每个开关对应的数据灯随着开关的开与关而亮灭。

2、流水线指示灯显示实验:

首先分别将A口和B口写入7FH和FEH,然后分别将该数右移和左移一位,在送到端口上,这样循环下去,从而实现流水灯的显示。

8255流水灯显示实验参考接线图如图所示。

流程图:

程序代码及注释:

CS0EQU3000H;片选CS0对应的端口始地址

MY8255_AEQUCS0+00H;8255的A口地址

MY8255_BEQUCS0+01H;8255的B口地址

MY8255_CEQUCS0+02H;8255的C口地址

MY8255_MODEEQUCS0+03H;8255的控制寄存器地址

STACK1SEGMENTSTACK

DW256DUP(?

STACK1ENDS

DATASEGMENT

LADB?

;定义数据变量

LBDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVDX,MY8255_MODE;定义8255工作方式

MOVAL,80H;工作方式0,A口和B口为输出

OUTDX,AL

MOVDX,MY8255_A;写A口发出的起始数据

MOVAL,80H

OUTDX,AL

MOVLA,AL

MOVDX,MY8255_B;写B口发出的起始数据

MOVAL,01H

OUTDX,AL

MOVLB,AL

LOOP1:

CALLDALLY

MOVAL,LA;将A口起始数据右移再写入A口

RORAL,1

MOVLA,AL

MOVDX,MY8255_A

OUTDX,AL

MOVAL,LB;将B口起始数据左移再写入B口

ROLAL,1

MOVLB,AL

MOVDX,MY8255_B

OUTDX,AL

MOVAH,1;判断是否有按键按下

INT16H

JZLOOP1;无按键则跳回继续循环,有则退出

QUIT:

MOVAX,4C00H;结束程序退出

INT21H

DALLYPROCNEAR;软件延时子程序

PUSHCX

PUSHAX

MOVCX,0FFFH

D1:

MOVAX,0FFFFH

D2:

DECAX

JNZD2

LOOPD1

POPAX

POPCX

RET

DALLYENDP

CODEENDS

ENDSTART

实验步骤

(1).设计实验线路图,将PCI总线扩展卡上总线与仿真ISA总线进行连接。

(2).编写程序。

(3).打开实验箱电源,运行程序,观察数据灯的显示。

 

实验现象:

数据灯从右向左依次亮成流线型,并始终保持在同一时间只有一个灯亮着。

走马灯的设计与实现

一实验目的

通过走马灯的设计与制作,深入了解与掌握利用可编程8255A进行开关量控制的原

理与方法。

二实验要求

1.产生8种彩灯(8位LED)的走马灯花样;

2.键控(或拨码开关控制)发光实验。

键控是在键盘上定义8个数字键(0~7),每按1个数字键,使LED的1位发光,按Q或q键,停止发光。

拨码开关控制,是通过改变各位开关,来进行控制,使LED的1位发光,按Q或q键,停止发光。

三实验内容

1.进行走马灯的系统电路硬件设计,画出电路原理图;

2.安装或焊接元器件;

3.进行走马灯的控制程序设计(采用ASM语言);

4.系统联调,提交一个符合上述3种要求的走马灯的作品。

四实验原理

8255A是一种通过可编程并行I/O接口芯片。

广泛用于几乎所有系列的微机系统中,8255A具有三个带锁存或缓冲的数据端口,可与外设并行进行数据交换,8255A有多种操作方式,通用性较强,可为CPU与外设之间提供输入/输出通道。

8255A和各端口内具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换,使用条件传输方式时可用“联络”线进行控制。

在实验中,我们运用8255为CPU与外设之间提供输入输出输出通道来实现对走马灯花样变换的控制。

走马灯驱动模块电路原理如图1所示。

模块包括8个LED彩灯、两个74LS04、和两个个排阻。

用LED可以观测在不同按键输入下,走马灯花样的变化效果。

如图1所示我们利用软件输入信号,通过8255端口扩展芯片和74LS04芯片,调节输出端口的电平变化,来控制共阳极的LED灯的亮与灭,实现走马灯花样变化。

图1走马灯驱动模块电路原理图

五试验设备

1.PC兼容机

2.Windows98以上

3.MFID多功能微机实验平台(含PCI总线驱动板)

4.MFPCI98集成开发环境

5.面包板或外设功能模块板

6.安装或焊接工具

六元器件清单

 

元器件清单如表1所示。

序号

名称

数量

1

74LS04

2片

2

RESPACK3排阻8×150Ω

2只

3

LED

8只

4

拨码开关

1只

5

面包板

1个

6

T型转接板

1个

7

导线

若干

表1实验元器件清单

七实验步骤

7.1硬件连线

根据图1的实验原电路图,走马灯电路结构电路接线如图2所示。

图2走马灯电路结构电路接线图

接线说明:

8255A共有三个8位端口A口、B口和

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

当前位置:首页 > 小学教育 > 英语

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

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