软硬件实验报告微机原理与接口技术上机实验.docx

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

软硬件实验报告微机原理与接口技术上机实验.docx

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

软硬件实验报告微机原理与接口技术上机实验.docx

软硬件实验报告微机原理与接口技术上机实验

实验一实验环境熟悉与简单程序设计

实验目的

(1)掌握DEBUG调试程序的使用方法。

(2)掌握简单程序的设计方法。

实验容

编程将BH中的数分成高半字节和低半字节两局部,把其中的高半字节放到DH中的低4位〔高4位补零〕,把其中的低半字节放到DL中的低4位〔高4位补零〕。

如:

BH=10110010B

则运行程序后

DH=00001011B

DL=00000010B

实验准备

(1)熟练掌握所学过的指令。

(2)根据实验容,要求预先编好程序。

实验步骤

(1)利用DEBUG程序输入、调试程序。

(2)按下表要求不断地修改BH的容,然后记录下D*的容。

BH

10011101

11011001

00111111

DH

DL

实验报告

(1)给出程序清单。

(2)详细说明程序调试过程。

程序:

CODESEGMENT

START:

MOVBH,00111111B

MOVAL,BH

MOVCL,4

SHRAL,CL

MOVDH,AL

MOVAL,BH

ANDAL,00001111B

MOVDL,AL

MOVCL,0

CODEENDS

ENDSTART

实验二简单程序设计

实验目的

(3)掌握DEBUG调试程序的使用方法。

(4)掌握简单程序的设计方法。

实验容

试编写一个汇编语言程序,要现功能:

在屏幕上显示:

Helloworld

MynameisLiJianguo

参考程序如下:

〔有错〕

datasegment

out1db'Helloworld'

a*db'MynameisLiJianguo'

dataens

codesegment

assumecs:

code;ds:

data

lead*,out1

movah,2

int21h

movdl,0ah

movah,2

int21h

movdl,0dh

mooah,2

int21h

lead*,a*

movah,

int21h

codeends

实验步骤

(3)利用IDE86程序输入、调试程序。

实验报告

(3)给出正确的程序清单。

(4)详细说明程序调试过程。

程序:

DATASSEGMENT

STRING1DB13,10,'HelloWorld!

',13,10,'$';13为回车,10为换行,$为完毕符

STRING2DB13,10,'MynameisLIJianguo',13,10,'$'

DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS

START:

MOVA*,DATAS

MOVDS,A*

LEAD*,STRING1

MOVAH,9

INT21H

LEAD*,STRING2

MOVAH,9

INT21H

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

实验三循环程序设计

实验目的

(1)掌握在PC机上建立、连接、调试和运行8086汇编语言程序的过程。

(2)掌握数据传送和算术运算指令的使用方法。

(3)了解局部DOS系统调用的使用方法。

实验容

将两个5位十进制数相加。

要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首地址的5个存单元中〔低位在前〕,结果送回DATA1处。

另外,程序利用DOS的9号调用功能完成将被加数、加数和最后的和在显示器上的显示。

参考程序如下:

datasegment

data1db32h,38h,30h,36h,37h,'$'

data2db33h,35h,33h,38h,32h,'$'

dataends

stacsegment

stadb100dup(?

stacends

codesegment

assumecs:

code,ds:

data,ss:

stac,es:

data

startprocfar

pushds

*ora*,a*

pusha*

mova*,data

movds,a*

moves,a*

movah,9

movd*,offsetdata1

int21h

movah,2

movdl,'+'

int21h

movah,9

movd*,offsetdata2

int21h

movsi,offsetdata1

movdi,offsetdata2

movb*,5

pushb*

pushsi

conv1:

andbyteptr[si+b*-1],0fh

andbyteptr[di+b*-1],0fh

decb*

jnzconv1

movc*,5

*ora*,a*

add1:

moval,[si+4]

movbl,[di+4]

adcal,bl

aaa

mov[si+4],al

decsi

decdi

loopadd1

popsi

popb*

conv2:

orbyteptr[si+b*-1],30h

decb*

jnzconv2

movah,2

movdl,'='

int21h

movah,9

movd*,si

int21h

ret

startendp

codeends

endstart

实验准备

〔1〕仔细阅读本书第一章,掌握源程序的编辑、汇编、连接和调试方法。

〔2〕阅读教材,熟练掌握数据传送和算术运算指令的使用方法。

〔3〕阅读有关DOS系统调用的参考书,掌握1号调用、2号调用、7号调用、8号调用和9号调调用的使用方法。

(4)仔细阅读参考程序。

实验步骤

(1)首先用IDE86软件输入汇编语言源程序,然后对此源程序进展汇编,再用LINK程序进展连接,最后执行。

如果程序运行结果不正确:

1重复以上过程,并记录下修改经过,直至程序正确运行为止。

2在步骤〔1〕中,如果程序运行结果不正确,可使用DEBUG程序进展动态调试,直到程序正确运行为止。

(2)利用DEBUG程序修改被加数和加数,运行程序,并记录下程序运行结果。

将被加数修改为:

31H,32H,33H,34H,35H

将加数修改为:

35H,34H,33H,38H,39H

程序运行后,请照实写出屏幕显示结果。

(3)修改你编写的或前面给出的参考程序。

利用DOS系统功能完成5位被加数和加数的键盘输入,程序完成加法后,输出相加的和,记录下程序运行过程及结果。

实验四子程序及分支构造程序设计

实验目的

(1)掌握分支程序及子程序设计的方法。

(2)进一步熟悉汇编语言源程序的上机过程。

实验容

设有10个学生的成绩分别为:

76、69、84、90、73、88、99、63、100、80,试编制一个程序统计60到69、70到79、80到89、90到99和100分的人数,分别放到五个存储单元中,然后在屏幕上显示。

统计局部和显示局部要求用子程序实现。

要求用堆栈进展参量传递。

实验准备

(1)认真阅读教材,掌握分支程序的编程方法。

(2)绘制程序流程图,编写程序。

实验步骤

(1)完成汇编语言源程序的编辑和连接过程。

(2)利用DEBUG进展程序调试和运行。

(3)撰写实验报告。

DATASSEGMENT

SCOREdb76,69,84,90,73,88,99,63,100,80

STR1db'THENUMBEROF100IS:

','$'

STR2db'THENUMBEROF90-100IS:

','$'

STR3db'THENUMBEROF80-90IS:

','$'

STR4db'THENUMBEROF70-80IS:

','$'

STR5db'THENUMBEROF60-70IS:

','$'

COUNTEQU10

GRADEAdb?

GRADEBdb?

GRADECdb?

GRADEDdb?

GRADEEdb?

DATASENDS

STACKSSEGMENT

STACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVA*,DATAS

MOVDS,A*

LEAB*,SCORE

MOVC*,COUNT

A1:

MOVAL,[B*]

CALLPARE

INCB*

LOOPA1

CALLOUTPUT

MOVAH,4CH

INT21H

PAREPROC

PUSHB*

CMPAL,100

JEL1

CMPAL,90

JAEL2

CMPAL,80

JAEL3

CMPAL,70

JAEL4

CMPAL,60

JAEL5

L1:

INCGRADEA

JMPDONE

L2:

INCGRADEB

JMPDONE

L3:

INCGRADEC

JMPDONE

L4:

INCGRADED

JMPDONE

L5:

INCGRADEE

JMPDONE

DONE:

POPB*

RET

PAREENDP

OUTPUTPROC

LEAD*,STR1

MOVAH,9

INT21H

ADDGRADEA,30H

MOVDL,GRADEA

MOVAH,2

INT21H

MOVDL,0AH

MOVAH,2

INT21H

MOVDL,0DH

MOVAH,2

INT21H

LEAD*,STR2

MOVAH,9

INT21H

ADDGRADEB,30H

MOVDL,GRADEB

MOVAH,2

INT21H

MOVDL,0AH

MOVAH,2

INT21H

MOVDL,0DH

MOVAH,2

INT21H

LEAD*,STR3

MOVAH,9

INT21H

ADDGRADEC,30H

MOVDL,GRADEC

MOVAH,2

INT21H

MOVDL,0AH

MOVAH,2

INT21H

MOVDL,0DH

MOVAH,2

INT21H

LEAD*,STR4

MOVAH,9

INT21H

ADDGRADED,30H

MOVAH,2

MOVDL,GRADED

INT21H

MOVDL,0AH

MOVAH,2

INT21H

MOVDL,0DH

MOVAH,2

INT21H

LEAD*,STR5

MOVAH,9

INT21H

ADDGRADEE,30H

MOVDL,GRADEE

MOVAH,2

INT21H

MOVDL,0AH

MOVAH,2

INT21H

RET

OUTPUTENDP

CODESENDS

ENDSTART

实验五简单I/O口扩展实验

一、实验目的

1、利用74LS273,74LS244扩展I/0。

2、掌握用锁存器、三态门扩展简单的并行输入、输出口的方法。

二、实验容

1.熟悉74LS273,74LS244的应用接口方法。

2.掌握用锁存器(74LS273)、三态门扩展简单的并行输入。

3.扩展的方法:

a.逻辑电平开关〔CZ1〕作为74LS244〔U10〕的输入。

b.发光二极管〔CZ2〕作为74LS273的输出,

c.编写程序,使得逻辑电平开关的输入状态从发光二极管上显示出来。

三、实验原理图:

四、实验步骤

1、连线:

a.将74LS244(IC25)的输入SI0~SI7分别与逻辑电平开关电路的K1~K8相连。

b.从I/O地址片选信号CS0\~CS7\中任选一个与74LS244的片选信号相连。

〔例如CS0\〕。

c.将74LS273〔IC24〕的输出S00\~S07分别与发光二极管电路的L1~L8相连。

d.从I/O地址片选信号CS0\~CS7\中任选一个与74LS273的片选信号(CSU8\)相连。

〔如CS1\〕。

2、翻开计算机上已安装的DB86软件,参照.软件的使用

a.编写程序。

b.编译连接。

c.调试程序。

d.单步运行。

e.如果调试通过后,全速运行,观察实验结果。

3、全速运行后拔动开关,其变化反响的到发光二极管上。

当作为信号输入量的开关任意位拔上时,对应的发光二极管点亮、拔下时熄灭。

4.编写实验报告

五、实验说明

用逻辑电平开关〔CZ1〕作为74LS244(IC25)的输入,用发光二极管〔CZ2〕作为74LS273(IC24)的输出。

编写程序,使得逻辑电平开关的输入状态从发光二极管上显示出来。

逻辑电平开关拔上时为5V,拔下时为0V。

发光二极管输入‘1’为亮、‘0’为灭。

从74LS244读入的数据后从输出口输出。

在8086CPU中有四个16位通用数字存放器,其中仅A*(AH,AL)有输入输出功能。

本实验通过输入语句(IN),将开关量输入存到AL中,在通过输出语句(OUT)将AL值输出到发光二极管,从而实现开关控制发光二极管。

当开关量换作其他形式控制输入,发光二极管换作其他形式控制对象,输入数据后对输入量做一定的运算处理再输出时,就实现了计算机控制,同时这些输入输出点均为I/O扩展口,当输入输出点较多时,这种扩展十分必要

六、程序框图

实验六8255并行口实验

一、实验目的

利用8255A实现并行接口实验

二、实验容

1.掌握8255A的编程原理。

2.熟悉计算机并行接口的使用方法

三、实验原理图:

四、实验步骤:

1.连线:

a.8255A(IC37)的PA0—PA7分别与逻辑电平开关电路的K1--K8相连。

b.PB0—PB7分别与发光二极管电路的L1—L8相连。

c.从CS0\—CS7\中任选一个与8255A的片选(CS8255)端相连。

〔如CS0\〕其他线路均已连好。

2.软件:

与实验一一样

3.编写实验程序。

五、实验说明:

逻辑电平开关拨上时5V,拨下时0V;发光二极管输入为1时亮,输入为0时灭。

拨动开关,观察发光二极管〔CZ2〕的变化。

当开关〔CZ1〕*位拨上时,对应的发光二极管点亮,拨下时熄灭。

8255A是并行接口电路中比较常用的一种芯片,8255A有三个8位的输入输出端口,由于部电路原因,通常将A端口〔PA0—PA7〕作输入用,B端口〔PB0—PB7〕作输出用,C端口作辅助控制用,本实验也是如此。

本实验中,输入输出都比较简单,控制相对简单,因此可选择在根本输入输出方式〔方式0,即输入输出设置与上一样〕下工作。

在设计程序时,先设置8255的工作方式〔控制端口地址为04A6H〕,然后循环读PA端口开关状态〔地址为04A0H〕,输出至PB端口发光二极管〔地址为04A2H〕。

A_portEQU04A0H

B_portEQU04A2H

C_portEQU04A4H

ctrc_portEQU04A6H

CODESSEGMENT

ASSUMECS:

CODES

org100h

START:

movd*,ctrc_port

moval,90h

outd*,al

add1:

movd*,04a0h

inal,d*

movd*,B_port

outd*,al

jmpadd1

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

六、程序框图

实验七8253定时器/计数器接口实验

一、实验目的

掌握8253定时器的编程原理,用示波器观察不同模式下的输出波形。

二、实验容

编程将计数器0,1,2设置为模式2〔分频方式〕,并观察其输出波形。

三、实验原理图

四、实验步骤

1、连线:

a.从CS0\~CS7\中任选一个〔如CS0\〕与8253的片选信号〔CS8253〕相连,8253的OUT0与CLK2相连,

b.OUT2与发光二极管L1相连,

c.OUT1接示波器,其他未提信号均已接好或无需连接。

2.软件:

同实验一。

3.编写实验报告。

五、实验说明

8253的时钟端CLK0,CLK1均为1/8M。

CLK2的时钟由OUT0来控制。

8253位8086系统中常用的可编程定时器/计数器,部有三个相互独立的计数器,发别称为计数器0,计数器1、计数器2。

8253有多种工作模式,其中模式2为方波方式。

当给定初值后,自动将所设周期平分为两个局部,前一局部保持为高电平“1〞,后一局部保持为低电平“0〞,输出为一方波。

CLK0、CLK1的频率均为1M/8,设计数器0的初值为0F24H〔十进制为62500〕时,方波周期为0.5s。

在计数器2中设置不同的初值2n时,可的周期n×0.5s的方波,n的最大值为7FFFH〔十进制为32767〕时,周期最长为16383.5s(4小时33分3.5秒),此时的初值为7FFEH。

因此,采用两级计数叠加后,输出周期围可大幅度提高。

如能合理设置初值,这种广域围的周期设定在实际控制中非常有用。

CODESSEGMENT

ASSUMECS:

CODES

ORG100H

START:

MOVAL,00110110B

MOVD*,04A6H

OUTD*,AL

MOVA*,750

MOVD*,04A0H

OUTD*,AL

MOVAL,AH

OUTD*,AL

MOVAL,10110110B

MOVD*,04A6H

OUTD*,AL

MOVA*,1000

MOVD*,04A4H

OUTD*,AL

MOVAL,AH

OUTD*,AL

MOVAL,01110110B

MOVD*,04A6H

OUTD*,AL

MOVA*,750

MOVD*,04A2H

OUTD*,AL

MOVAL,AH

OUTD*,AL

CODESENDS

ENDSTART

六、程序框图

实验八A/D实验

一、实验目的

熟悉A/D转换的根本原理,掌握ADC0809的使用方法。

二、实验容

按查询方式采样三路A/D转换数据,用简单输入口〔U10〕查询EOC信号。

每循环一次0,1,2通道各采样一次。

采样结果是0通道放入C*中,CL有效,1通道放入B*中,BL有效,2通道放入A*中AL有效。

三、实验原理图

三、实验步骤

1、连线:

a.将可变电位器KB1,KB2,KB3分别与ADC0809的IN0、IN1、IN2相连。

b.从CS0\…CS3\中任选一个〔如CS1\〕与ADC0809的片选端相连。

c.将ADC0809的EOC与IC25〔74LS244〕的SI0相连。

d.从CS0\…CS7\中任选一个〔如CS1\〕与U10的片选端相连。

2、软件:

同实验一。

3、编写实验报告。

四、实验说明

1、实验电路中启动信号START与地址锁存信号相连,所以启动A/D转换的方法为:

MOVD*,PADC;PADC是ADC0809的端口地址

OUTAL,D*;发片选及IOW信号,这是0通道

;启动1通道时,D*应加1

程序:

CODESEGMENT

ASSUMECS:

CODE

ORG100H

START:

MOVD*,04A0H

OUTD*,AL

*ORAH,AH

DAC:

MOVD*,04B0H

INAL,D*

TESTAL,01H

JZDAC

MOVD*,04A0H

INAL,D*

MOVCL,AL

JMPDAC

CODEENDS

ENDSTART

五、程序框图

实验九D\A实验

一、实验目的

熟悉数模转换的根本原理,掌握DAC0832的使用方法。

二、实验容

看懂接口电路后连好硬件线路,并编制程序以产生以下两种波形并用示波器。

1、锯齿波形

2、三角波

三、实验原理图

四、实验方法

1、连线:

a.从CS0\…CS7\中任选一个〔如CS0\〕与DAC0832的片选端相连。

b.将示波器接至DAC0832的输出端OUT相连。

2、进展调零〔KB5〕和调满偏〔KB4〕。

3、软件:

同实验一。

4、编写实验报告。

五、实验说明

DAC0832在图所示的接口电路中,KB6调节参考电压VREF,KB5调节DA的零点,KB4调节DA的满偏。

工作在双缓冲接口方式下。

当A1=0时可锁存输入数据,当A1=1时,可起动转换输出。

所以要进展D\A转换,需分二步进展,方法如下:

MOVD*,DACPORT;DAC0832片选信号偶地址

MOVAL,DACPORT

OUTDL,AL;锁存数据

ADDD*,2

OUTD*,AL;启动转换

锯齿波:

CODESSEGMENT

ASSUMECS:

CODES

org100h

START:

*ORA*,A*

Y1:

MOVD*,04A0H

OUTD*,AL

ADDD*,2

OUTD*,AL

INCAL

CMPAL,0FFH

JNZYI

JMPSTART

CODESENDS

ENDSTART

三角波:

CODESSEGMENT

ASSUMECS:

CODES

org100h

START:

*ORA*,A*

*1:

MOVD*,04A0H

OUTD*,AL

ADDD*,2

OUTD*,AL

INCAL

CMPAL,0FFH

JNZ*1

*2:

OUTD*,AL

ADDD*,2

OUTD*,AL

DECAL

CMPAL,0

JNZ*2

JMPSTART

CODESENDS

ENDSTART

六、程序框图

锁存数据A*

启动转换

B*减一

开场

B*清零

B*—?

A*

锁存数据A*

启动转换

B*加一

B*—?

A*

B*=FFH.

B*=0?

N

Y

N

图二产生三角波流程图

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

当前位置:首页 > 高等教育 > 军事

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

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