微机原理与接口实验报告Word格式.docx

上传人:b****4 文档编号:6748107 上传时间:2023-05-07 格式:DOCX 页数:27 大小:105.24KB
下载 相关 举报
微机原理与接口实验报告Word格式.docx_第1页
第1页 / 共27页
微机原理与接口实验报告Word格式.docx_第2页
第2页 / 共27页
微机原理与接口实验报告Word格式.docx_第3页
第3页 / 共27页
微机原理与接口实验报告Word格式.docx_第4页
第4页 / 共27页
微机原理与接口实验报告Word格式.docx_第5页
第5页 / 共27页
微机原理与接口实验报告Word格式.docx_第6页
第6页 / 共27页
微机原理与接口实验报告Word格式.docx_第7页
第7页 / 共27页
微机原理与接口实验报告Word格式.docx_第8页
第8页 / 共27页
微机原理与接口实验报告Word格式.docx_第9页
第9页 / 共27页
微机原理与接口实验报告Word格式.docx_第10页
第10页 / 共27页
微机原理与接口实验报告Word格式.docx_第11页
第11页 / 共27页
微机原理与接口实验报告Word格式.docx_第12页
第12页 / 共27页
微机原理与接口实验报告Word格式.docx_第13页
第13页 / 共27页
微机原理与接口实验报告Word格式.docx_第14页
第14页 / 共27页
微机原理与接口实验报告Word格式.docx_第15页
第15页 / 共27页
微机原理与接口实验报告Word格式.docx_第16页
第16页 / 共27页
微机原理与接口实验报告Word格式.docx_第17页
第17页 / 共27页
微机原理与接口实验报告Word格式.docx_第18页
第18页 / 共27页
微机原理与接口实验报告Word格式.docx_第19页
第19页 / 共27页
微机原理与接口实验报告Word格式.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理与接口实验报告Word格式.docx

《微机原理与接口实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《微机原理与接口实验报告Word格式.docx(27页珍藏版)》请在冰点文库上搜索。

微机原理与接口实验报告Word格式.docx

INT21H

Ret

Beginendp

Codeends

Endbegin

5.实验结果:

屏幕上显示‘HelloWorld!

6.上机试题

1)从键盘输入一个2位无符号的16进制数(00H~FFH),然后在显示器上同时以二进制和十进制形式显示出来。

例如:

PleaseinputN(00H-FFH):

9B

N=9Bh=B=155

实验代码:

stacksegmentstack

dw32dup(0)

stackends

datasegment

ENDLDB0DH,0AH,'

$'

;

回车换行

IBUF_HEXDB3,0,3DUP(0)

OBUF_BINDB10DUP('

OBUF_BCDDB4DUP('

STR_IN_HEXDB'

PleaseinputN(00H~FFH):

STR_OUT1DB'

N=$'

STR_OUT2DB'

=$'

dataends

codesegment

beginprocfar

assumess:

stack,cs:

code,ds:

data

pushds

subax,ax

pushax;

保存psp地址

movax,data

movds,ax

MOVDX,OFFSETSTR_IN_HEX;

提示用户输入十六进制数,如9B

MOVAH,9

INT21H

MOVDX,OFFSETIBUF_HEX;

接收输入的十六进制数

MOVAH,10

INT21H

MOVDX,OFFSETENDL;

INT21H

MOVDX,OFFSETSTR_OUT1;

输出'

N='

INT21H

MOVSI,OFFSETIBUF_HEX+2

MOVCL,IBUF_HEX+1

MOVCH,0

PUSHSI;

保存字符串的首地址

ADDSI,CX

MOVBYTEPTR[SI],'

;

在输入的字符串末尾加上结束符

POPSI

MOVDX,SI;

输出输入的十六进制数,如9BH

MOVDL,'

H'

MOVAH,2

MOVDX,OFFSETSTR_OUT2;

='

CALL;

调用子函数,将输入的十六进制数转为二进制值

PUSHAX;

AL压栈,留给指令CALLbcdout使用

CALLbinout;

把AL二进制值按二进制格式输出

MOVDX,OFFSETSTR_OUT2;

POPAX

CALLbcdout;

把AL二进制值按十进制格式输出

MOVDX,OFFSETENDL

INT21H;

ret

beginendp

;

十六进制数--->

二进制数

如:

输入:

FF处理:

AL=FFH

proc

MOVCL,IBUF_HEX+1;

保存输入字符个数

MOVAX,0

_AGAIN:

MOVDL,16;

乘数为16

MULDL乘积保存在AX中

MOVBL,[SI]

CMPBL,'

A'

JB_SMALLER

SUBBL,07H

_SMALLER:

SUBBL,30H

ADDAL,BL

INCSI

LOOP_AGAIN

ret

endp

binoutproc;

  ;

二进制数--->

二进制格式输出

MOVBYTEPTROBUF_BIN+8,'

B'

MOVDI,OFFSETOBUF_BIN

MOVAH,0

MOVCX,8;

设置LOOP循环次数

binout_NEXT:

MOVDL,0

SHLAL,1

ADCDL,30H;

将每一位转为ASCII码

MOV[DI],DL;

保存转换后的ASCII码

INCDI

LOOPbinout_NEXT;

cx值为8,循环8次

MOVDX,OFFSETOBUF_BIN;

输出处理结果

ret;

返回调用

binoutendp

bcdoutproc;

十进制数输出

MOVDI,OFFSETOBUF_BCD+2

MOVCX,10

bcdout_AGAIN:

MOVDX,0;

无符号数16位扩展为32位

DIVCX;

余数DX,商AX

ADDDL,30H

MOV[DI],DL

DECDI

ORAX,AX

JNEbcdout_AGAIN

MOVDX,DI

INT21H

bcdoutendp

codeends

    endbegin

2)输入一个十进制的个位数,求出这个数的平方值,显示其十进制结果,要求有如下

提示信息。

Pleaseinputanumber:

Theresultis:

例如pleaseinputanumber:

8

theresultis:

64

实验代码:

stacksegmentstack;

定义堆栈段

dw32dup(0);

分配64字节栈空间

datasegment;

定义数据段

ENDLDB0DH,0AH,'

;

IBUFDB2,0,2DUP(0);

定义输入缓冲区

STR_INDB'

Pleaseinputanumber(0-9):

$'

STR_OUTDB'

Theresultis:

SQUARE_TABLEDB'

0$1$4$9$16$25$36$49$64$81$'

定义平方表

dataends

codesegment;

定义代码段

beginprocfar

assumess:

stck,cs:

code,ds:

pushds

subax,ax

pushax;

movax,data

movds,ax

RUNTEST:

MOVDX,OFFSETSTR_IN;

提示用户输入

MOVAH,9

INT21H

MOVDX,OFFSETIBUF;

接收用户输入

MOVAH,10

MOVDX,OFFSETENDL;

MOVAL,IBUF+2

SUBAL,30H;

得到实际数值

MOVCL,3

MULCL

MOVDI,OFFSETSQUARE_TABLE;

指向自定义的平方表

ADDDI,AX

PUSHAX

MOVDX,OFFSETSTR_OUT

POPAX

CMPAX,12JBNEXT

MOVDL,20H

MOVAH,2

NEXT:

MOVDX,DI

JMPRUNTEST;

不限次数测试

ret;

beginendp

endbegin;

程序主函数入口

7.Hello.exe实验运行过程中的内存映像图如下:

……

PSP(100HB)

堆栈段(40HB)

数据段(10HB)

代码段(20HB)

DS0b540h

SS0b640h

SP0b680h

CS:

IP0B690h

堆栈段SS=DS+100H10H

数据段DS=SS+堆栈段长度10H

代码段CS=用户DS+数据段长度10H

使用debug可以进行调试

Debugprocfar

assumess:

pushds

subax,ax

  pushax

Ag:

movdx,0e008h送端口地址

  Inal,dx

  Moval,0fh

  Outdx,al

  Movah,0bh

  Int21h

  Cmpal,0

  Jzag

  Ret

codeends

endbegin

1.注意事项:

每台机器所分配的端口地址有所不同,要根据实际情况选通端口,

所以需要查看各自的IO地址,查看IO地址方法:

D:

CHECK

当时做这个实验时,查看本机得到:

IOYO:

E000-E03F

I0Y1:

E040-E07F

IOY2:

E080-E0BF

I0Y3:

E0C0-E0FF

当我们检查IOYO、I0Y1、IOY2、I0Y3是否能够正常工作时,秩序

选通其中的一个端口,例如在上面的源程序中我选通的端口是0e008h,

就是在检测IOYO的输出是不是正常的。

还需要检测IOW、IOR、

XD0-XD7主要检测在示波器中是否有负脉冲输出

实验四基本输入输出混合接口

1)掌握基本输入接口的设计方法。

2)掌握基本输出接口的设计方法。

3)掌握IO地址译码的方法

2.实验原理:

当用74LS244、74LS273组成一个IO接口电路时,输入端口地址和输出

端口地址可以为同一个地址。

为了区别数据时输入还是输出,可以用

IOR、IOW和IOY3信号共同控制。

由IOY3和IOR产生读选通信号,

有IOY3和IOW产生写选通信号。

3.实验内容:

要求编制一个循环程序,用74LS244和74LS273设计一个输入输出接口,

将从74LS244的输入数据从74LS273的输出发光二极管上对应显示出来。

改变输入,输出立即跟着改变,按下键盘上的任一键,立即停止输入和输出。

4.实验电路图:

5.实验代码:

stacksegmentstack'

stack'

dw32dup(0)

stackends

stack,cs:

pushax

AGAIN:

MOVDX,0d800H

INAL,DX

Movdx,0d801h

Outdx,al

Movah,0bh

Int21h

Cmpal,0

JzAGAIN

Ret

Beginendp

6.实验结果和总结:

改变开关状态,发光二极管会作出相应的亮灭,实验正确。

实验过程中,若Y0-Y7所有端口均无选通信号,一般可能是74LS138译码器电源未接好,或不符合译码器使能条件,或是74LS138损坏。

若选通信号与Y0、Y1端口不对应,则是C、B、A端输入地址线错接或开路、或短路。

C、B、A三端输入地址线应有脉冲信号输出,

若全为0或全为1,则不正常。

实验五模数转换器ADC0809

掌握模数转换的原理及接口设计

掌握8为AD转换芯片ADC08080809的使用方法。

掌握延时、查询和中断数据传送方式。

  

 各种型号的ADC芯片都具有数据输出信号,启动AD转换信号和转换结束信号。

首先,计算机启动AD转换;

待转换结束后,ADC送出转换结束信号通知计算机;

计算机用输出指令从ADC的数据输出引线读取转换数据。

   由于ADC08080809芯片内部集成了数据锁存三态缓冲器,其数据输出线D7~D0可以直接和计算机的数据总线相连,所以ADC08080809与微机的接口的设计主要是对模拟通道的选择、转换启动的控制和读转换结果的控制等方面的设计。

ADC08080809于微机的接口可分为三种方式:

延时方式、中断方式、查询方式。

   本次实验只用到延时方式:

启动转换后等待100us(ADC08080809转换时间),再读取转换结果。

用延时的方式分别采集+5V、0V各点的电压数据,并将采集的数据(FFH、00H)送显示器显示。

5.

6.实验代码:

stacksegmentstack'

dw32dup(0)

OBUFDB2DUP(0),'

'

codesegment

subax,ax

pushax

movds,ax

LOP:

MOVDX,0e060H送端口号地址

OUTDX,AL

MOVBX,1000H调整BX的赋值可调整延时时间长短

MOVCX,0

Callag

INal,dx

Movah,0bh;

1号功能调用,检测键盘上有无输入,如果

有输入,就中断程序

JzLOP

RET

AGproc

LOOP$

DECBX

JNZAG

MOVBX,OFFSETOBUF

MOVCL,4

MOVAH,0

SHLAX,CL

SHRAL,CL

CMPAH,0AH

JBSD

ADDAH,7

SD:

ADDAH,30H

MOV[BX],AH

INCBX

CMPAL,0AH

JBLNADD7

ADDAL,7

LNADD7:

ADDAL,30H

MOV[BX],AL

MOVDX,OFFSETOBUF

MOVAH,9

7.实验结果和总结:

 实验现象:

当IN0接高电平时,运行程序,CRT显示FFH,当IN0接低电平时,运行程序,CRT显示00H,实验正确。

 连ADC0809芯片引脚接线时一定要注意REF-与GND接地,REF+与ACC接电源。

Start和ALE引脚要接到一起,实验书上给的图有错误。

我们没有发74LS02或非门,可以用74LS32或门加非门代替,实验效果一样。

 实验中注意等待时间的选取,书中给出CLK时钟输入的最高频率为640KHz,且ADC0809启动转换后延时时间为100us。

故等待时间需选择大于100us,可以选择500us左右。

实验六数模转换器DAC0832

掌握AD转换原理。

熟悉AD芯片接口设计方法。

掌握DAC0832芯片的使用方法。

  DAC0832是具有20条引线的双列直插式CMOS器件,内部具有两级数据寄存器,可完成8为DA转换,电流输出。

其结构和引脚入下图所示。

  由于DAC0832内部有输入寄存器和DAC寄存器,所以它不需要外加其他电路便可以与微机的数据总线直接相连。

根据DAC0832的5个控制信号的不同连接方式,可知它有三种工作方式:

直通工作方式、单缓冲工作方式、双缓冲工作方式。

   本次实验只用到单缓冲工作方式:

令其中一个寄存器工作在直通方式,另一个处于受控锁存状态。

用DAC0832设计一个DA转换接口电路,采用单缓冲工作方式,产生锯齿波(方波和三角波类似故未写出)。

4.实验原理图:

MOVDX,0D860H

INCAL

PUSHAX

MOVAH,0BH

CMPAL,0

JZAGAIN

beginendp

endbegin

 实验现象:

从示波器上观察,可看到相应的波形。

  程序每循环一次DAC0832的输入数字量增1.,因此实际上锯齿波的上升是由256个小阶梯构成的,但由于小阶梯很小,所以宏观上看就是线性增长的锯齿波。

  可通过循环程序段的机器周期计算出锯齿波的周期。

并可根据需要,通过延时的办法来改变锯齿波的周期。

当延时时间较短时,可用指令LOOP$来实现:

当延时较长时,可以使用一个延时子程序,也可以使用定时器来定时。

程序中的数字量的变化范围是从0-255,因此得到的锯齿波是满幅的。

如果要得到非满幅的锯齿波,可通过计算求得的数字量的初值和终值,然后在程序中通过置初值潘终值的办法即可实现。

实验七PCI中断实验

掌握PCI中断的设计方法。

掌握可编程中断控制器8259A的使用方法。

本实验使用TD-PIT实验装置提供的中断请求信号IRQ(下降沿有效),用KK1的负脉冲作为中断源,在进入中断前、中断过程中和完成中断后分别在屏幕上显示不同的提示字符串。

使用实验装置提供的IRQ信号,除了要操作PC的可编程中断控制器8259A外,还需要操作实验装置PCI扩展卡上的与PCI中断有关的寄存器。

通过操作上述寄存器,才可以实现中断的初始化和中断清楚等。

用KK1的负脉冲作为中断源,经过十次中断后结束程序,每次中断都应在显示器上显示。

Satcksegmentstack‘stack’;

注意单引号在DOS环境下可能会是乱码。

Dw32dup(?

Satckends

Hhdb0dh,0ah,’$’

Icdb‘interruptcount=’,’$’

Sdb2dup(‘$’)

Obufdb‘waitint’,0dh,0ah,’$’

Dataends

Codesegment

Assumess:

stck,ds:

Cli

Pushds

Subax,ax

Pushax

Moves,ax

Movax,data

Movds,ax

Movdx,0e438h

Moval,00h

Outdx,al

Movdx,0e439h

Moval,1fh

Movdx,0e43ah

Moval,3fh

Movdx,0e43bh

Movax,offsetadc_int

Moves:

02ch,ax

Movax,segadc_int

02eh,ax

Inal,021h

Andal,0f7h

Out021h,al

Movdx,offsetobuf

Movah,9

Int21h

Sti

Movcx,0

Again:

cmpcx,10

Jneagain

Oral,8

Ret

Beginendp

Adc_intprocnear

Movdx,offset

Addcx,07h

Agn:

addcx,30h

Movs[0],cl

Popcx

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2