西电微机原理实验报告.docx

上传人:b****6 文档编号:8433270 上传时间:2023-01-31 格式:DOCX 页数:34 大小:254.81KB
下载 相关 举报
西电微机原理实验报告.docx_第1页
第1页 / 共34页
西电微机原理实验报告.docx_第2页
第2页 / 共34页
西电微机原理实验报告.docx_第3页
第3页 / 共34页
西电微机原理实验报告.docx_第4页
第4页 / 共34页
西电微机原理实验报告.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

西电微机原理实验报告.docx

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

西电微机原理实验报告.docx

西电微机原理实验报告

微机系统实验报告

 

班级:

031214

学号:

03121370

姓名:

孔玲玲

地点:

E-II-312

时间:

第二批

实验一汇编语言编程实验

一、实验目的

(1)掌握汇编语言的编程方法

(2)掌握DOS功能调用的使用方法

(3)掌握汇编语言程序的调试运行过程

二、实验设备

PC机一台。

三、实验内容

(1)将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示。

(2)在屏幕上显示自己的学号姓名信息。

(3)循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输入“Q”或“q”时结束。

(4)自主设计输入显示信息,完成编程与调试,演示实验结果。

考核方式:

完成实验内容

(1)

(2)(3)通过,

完成实验内容(4)优秀。

 

实验中使用的DOS功能调用:

INT21H

表3-1-1显示实验中可使用DOS功能调用

AH值

功能

调用参数

结果

1

键盘输入并回显

AL=输出字符

2

显示单个字符(带Ctrl+Break检查)

DL=输出字符

光标在字符后面

6

显示单个字符(无Ctrl+Break检查)

DL=输出字符

光标在字符后面

8

从键盘上读一个字符

AL=字符的ASCII码

9

显示字符串

DS:

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

光标跟在串后面

4CH

返回DOS系统

AL=返回码

 

四、实验步骤

(1)运行QTHPCI软件,根据实验内容编写程序,参考程序流程如图3-1-1所示。

(2)使用“项目”菜单中的“编译”或“编译连接”命令对实验程序进行编译、连接。

(3)“调试”菜单中的“进行调试”命令进入Debug调试,观察调试过程中数据传输指令执行后各寄存器及数据区的内容。

按F9连续运行。

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

五、实验程序

DATASEGMENT

BUFFERDB'03121370konglingling:

',0AH,0DH,'$'

BUFFER2DB'aAbBcC','$'

BUFFER3DB0AH,0DH,'$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

movah,09h

movDX,OFFSETBUFFER

int21h

MOVSI,OFFSETBUFFER2

lab1:

cmpBYTEPTR[SI],'$'

jelab2

MOVAL,DS:

[SI]

ANDAL,0F0H;取高4位

MOVCL,4

SHRAL,CL

CMPAL,0AH;是否是A以上的数

JBC2

ADDAL,07H

C2:

ADDAL,30H

MOVDL,AL;showcharacter

MOVAH,02H

INT21H

MOVAL,DS:

[SI]

ANDAL,0FH;取低4位

CMPAL,0AH

JBC3

ADDAL,07H

C3:

ADDAL,30H

MOVDL,AL;showcharacter

MOVAH,02H

INT21H

addSI,1

jmplab1

lab2:

movah,09h

movDX,OFFSETBUFFER3

int21h

movah,01h

int21h

cmpal,'q'

jelab3

movBL,AL

ANDAL,0F0H;取高4位

MOVCL,4

SHRAL,CL

CMPAL,0AH;是否是A以上的数

JBC4

ADDAL,07H

C4:

ADDAL,30H

MOVDL,AL;showcharacter

MOVAH,02H

INT21H

MOVAL,BL

ANDAL,0FH;取低4位

CMPAL,0AH

JBC5

ADDAL,07H

C5:

ADDAL,30H

MOVDL,AL;showcharacter

MOVAH,02H

INT21H

jmplab2

lab3:

movah,4ch

int21h

CODEENDS

endSTART

六、实验结果

实验二数码转换实验

一、实验目的

(1)掌握不同进制数及编码相互转换的程序设计方法。

(2)掌握运算类指令编程及调试方法。

(3)掌握循环程序的设计方法。

二、实验设备

PC机一台。

三、实验内容及说明

(1)重复从键盘输入不超过5位的十进制数,按回车键结束输入;

(2)将该十进制数转换成二进制数;结果以2进制数的形式显示在屏幕上;

(3)如果输入非数字字符,则报告出错信息,重新输入;

(4)直到输入“Q”或‘q’时程序运行结束。

(5)键盘输入一字符串,以空格结束,统计其中数字字符的个数,并在屏幕显示。

考核方式:

完成实验内容

(1)

(2)(3)(4)通过,

完成实验内容(5)优秀。

转换过程参考流程如图3-2-2所示。

十进制数可以表示为:

Dn*10n+Dn-1*10n-1+…+D0*100=Di*10i

其中Di代表十进制数1、2、3、…、9、0。

上式可以转换为:

Di*10i=(((Dn*10+Dn-1)*10+Dn-2)*10+…+D1)*10+D0

由上式可归纳出十进制数转换为二进制数的方法:

从二进制数的最高位Dn开始做乘10加次位的操作。

依此类推,则可求出二进制数结果。

表3-3-1数码转换对应关系

十六进制

BCD码

二进制机器码

ASCII码

七段码

共阳

共阴

0

0000

0000

30H

40H

3FH

1

0001

0001

31H

79H

06H

2

0010

0010

32H

24H

5BH

3

0011

0011

33H

30H

4FH

4

0100

0100

34H

19H

66H

5

0101

0101

35H

12H

6DH

6

0110

0110

36H

02H

7DH

7

0111

0111

37H

78H

07H

8

1000

1000

38H

00H

7FH

9

1001

1001

39H

18H

67H

A

101

41H

08H

77H

B

1011

42H

03H

7CH

C

1100

43H

46H

39H

D

1101

44H

21H

5EH

E

1110

45H

06H

79H

F

1111

46H

0EH

71H

 

四、实验程序

;PAGE60,132

;本实验将输入的ASCII码转换为二进制,要求输入位数小于5

DATASEGMENT

MESDB0AH,0DH,'TheAsciicodeofDecimalcodeare:

$'

MSG1DB0AH,0DH,0AH,0DH,0AH,0DH,'PleaseInput(Exit:

q/Q):

$'

MSG2DB0AH,0DH,'Input:

$'

MSG3DB0AH,0DH,'InputError,Pleaseinputagain!

',0AH,0DH,'$'

;BINDB2DUP(0)

BUFDB30H,30H,30H,31H,35H

DB10HDUP(0)

NDW0

DATAENDS

 

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVDI,OFFSETBUF

CLC

MOVDX,OFFSETMSG1

MOVAH,09H;显示字符串

INT21H

MOVDX,OFFSETMSG2

MOVAH,09H

INT21H

A1:

MOVAH,01H;接收键盘输入

INT21H

CMPAL,'Q'

JZEXIT

CMPAL,'q'

JZEXIT

CMPAL,39H

JAERROR

INCN

STOSB;将输入数据存放在BUF缓冲区中

CMPAL,13

JNEA1

MOVCX,N

DECCX

MOVBX,000AH

MOVSI,OFFSETBUF

MOVAH,0

MOVDX,0

LODSB

CMPCX,1

JEA3

SUBAL,30H;将BUF中数据转换为二——十进制数

DECCX

A2:

IMULBX

MOVDX,AX

LODSB

MOVAH,0

A3:

SUBAL,30H

ADDAX,DX

LOOPA2

MOV[SI],AX

MOVDX,OFFSETMES

MOVAH,09H

INT21H

INCSI;显示高字节

CALLSHOW

DECSI;显示低字节

CALLSHOW

MOVN,0

LOOPSTART

SHOWPROCNEAR

MOVAL,DS:

[SI]

ANDAL,0F0H;取高4位

MOVCL,4

SHRAL,CL

CMPAL,0AH;是否是A以上的数

JBC2

ADDAL,07H

C2:

ADDAL,30H

MOVDL,AL;showcharacter

MOVAH,06H

INT21H

MOVAL,DS:

[SI]

ANDAL,0FH;取低4位

CMPAL,0AH

JBC3

ADDAL,07H

C3:

ADDAL,30H

MOVDL,AL;showcharacter

MOVAH,06H

INT21H

RET

SHOWENDP

EXIT:

MOVAX,4C00H

INT21H

ERROR:

MOVDX,OFFSETMSG3

MOVAH,09H

INT21H

JMPSTART

CODEENDS

ENDSTART

五、实验结果

 

实验三基本IO口扩展实验

一、实验目的

了解TTL芯片扩展简单I/O口的方法,掌握数据输入输出程序编制的方法。

二、实验内容说明

74LS244是一种三态输出的8总线缓冲驱动器,无锁存功能,当G为低电平时,Ai信号传送到Yi,当为高电平时,Yi处于禁止高阻状态。

其引脚图如下:

 

 

74LS273是一种带清除功能的8D触发器,1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。

其引脚图如下:

 

 

本实验要求用74LS244作为输入口,读取开关状态,并将此状态通过74LS273连接到发光二极管显示。

具体实验内容如下:

(1)当开关Yi为低电平时对应的发光二极管点亮,Yi为高电平时对应的发光二极管灭。

(2)当开关Yi全为高电平时,发光二极管Qi从左至右轮流点亮。

(3)当开关Yi全为低电平时,发光二极管Qi从右至左轮流点亮。

(4)自主设计控制及显示模式,完成编程调试,演示实验结果。

编程方法见IO(样例程序).txt.(在编译环境下程序名后缀为.asm且不能含有汉字)

考核方式:

完成实验内容

(1)

(2)(3)通过。

完成实验内容(4)优秀

三、实验原理图

图3-2-174LS244与74LS273扩展I/O口原理图

实验连线图:

图3-2-2扩展I/O口连线图

四、实验步骤

(1)实验连线:

Ø244的CS——ISA总线接口模块的0000H,Y7—Y0——开关K1—K8。

Ø273的CS——ISA总线接口模块的0020H,Q7—Q0——发光二极管L1—L8。

Ø该模块的WR、RD分别连到ISA总线接口模块的IOWR、IORD。

Ø该模块的数据(AD0~AD7)连到ISA总线接口模块的数据(LD0~LD7)。

(2)编写实验程序,编译链接,运行程序

(3)拨动开关,观察发光二极管的变化。

五、实验程序

1、笨方法实现(主要代码):

START:

MOVAX,MY_DATA

MOVDS,AX

MOVAX,MY_STACK

MOVSS,AX

LOP:

MOVDX,0DF00H

INAL,DX

CMPAL,00H

JEC0

CMPAL,0FFH

JEC3

;JEEXIT

MOVDX,0DF20H

OUTDX,AL

JMPLOP

C0:

MOVAL,0FEH

JMPC1

C3:

MOVAL,07FH

JMPC2

C1:

;ROLAL,1

;MOVDX,0DF20H

;OUTDX,AL

;CALLDELAY

;CALLBREAK

;JEC1

;CMPAL,0FEH

;JEEXIT

;JMPC1

;MOVAL,0FCH

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0FDH

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0FBH

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0F7H

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0EFH

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0DFH

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0BFH

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,07FH

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0FFH

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

CALLDELAY

CALLBREAK

JMPLOP

;CALLDELAY

;CALLBREAK

INAL,DX

CMPAL,080H

JMPEXIT

C2:

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0BFH

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0DFH

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0EFH

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0F7H

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0FBH

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0FDH

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0FEH

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

MOVAL,0FFH

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

CALLBREAK

CALLDELAY

CALLBREAK

JMPLOP

INAL,DX

CMPAL,080H

JMPEXIT

EXIT:

MOVAH,4CH

INT21H

 

2、循环左移右移实现:

主要代码:

(1)右移:

LOP:

MOVDX,0DF00H

INAL,DX

CMPAL,0FFH

JEC0

;JEEXIT

MOVDX,0DF20H

OUTDX,AL

JMPLOP

C0:

MOVAL,07FH

JMPC1

C1:

RORAL,1

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

callbreak

;CMPAL,0FEH

;JEEXIT

JMPC1

INAL,DX

CMPAL,080H

JMPEXIT

(2)循环左移:

LOP:

MOVDX,0DF00H

INAL,DX

CMPAL,00H

JEC0

;JEEXIT

MOVDX,0DF20H

OUTDX,AL

JMPLOP

C0:

MOVAL,0FEH

JMPC1

C1:

ROlAL,1

MOVDX,0DF20H

OUTDX,AL

CALLDELAY

callbreak

;CMPAL,0FEH

;JEEXIT

JMPC1

INAL,DX

CMPAL,080H

JMPEXIT

实验四可编程并行接口8255实验

一、实验目的

了解可编程并行接口芯片8255的内部结构、工作方式、初始化编程及应用。

二、实验内容

(1)流水灯实验:

利用8255的A口、B口循环点亮发光二极管。

(2)交通灯实验:

利用8255的A口模拟交通信号灯。

(3)I/O输入输出实验:

利用8255的A口读取开关状态,8255的B口把状态送发光二极管显示。

(4)通过开关控制交通红绿灯的亮灭。

(5)通过开关控制流水灯的循环方向和循环方式。

考核方式:

完成实验内容

(1)

(2)(3)其中之一通过,完成实验内容(4)或(5)优秀。

三、实验说明

1、8255A的内部结构

(1)数据总线缓冲器:

这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。

输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。

(2)三个端口A,B和C:

A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。

B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。

C端口包含一个8位数据输出锁存器及缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。

(3)A组和B组控制电路:

这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。

方式控制字的高5位决定A组工作方式,低3位决定B组的工作方式。

对C口按位复位命令字可对C口的每一位实现置位或复位。

A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。

(4)读写控制逻辑:

用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。

2、8255A的工作方式

方式0—基本输入输出方式;方式1—选通输入输出方式;方式2—双向选通输入输出方式。

3、8255A的状态字

4、8255A的控制字

表6-3-38255A方式控制字

1

D6

D5

D4

D3

D2

D1

D0

A组方式

00=方式001=方式1

1X=方式2

A口

0=输出

1=输入

C口高4位

0=输出

1=输入

B组方式

0=方式0

1=方式1

B口

0=输出

1=输入

C口低4位

0=输出

1=输入

表6-3-4按位置位/复位控制字

0

D6

D5

D4

D3

D2

D1

D0

特征位

不用

位选择

000=C口0位……111=C口7位

0=复位

1=置位

 

四、实验原理图

图6-3-5可编程并行接口8255电路

五、实验步骤

1、流水灯实验

(1)实验连线

Ø该模块的WR、RD分别连到ISA总线接口模块的IOWR、IORD。

Ø该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到ISA总线接口模块的数据(LD0~LD7)、地址线(LA0~LA7)。

Ø8255模块选通线CE连到ISA总线接口模块的0000H。

Ø8255的PA0~PA7连到发光二极管的L0~L7;8255的PB0~PB7连到发光二极管的L8~L15。

(2)运行程序,观察发光二极管。

2、交通灯实验

(1)实验连线:

Ø该模块的WR、RD分别连到ISA总线接口模块的IOWR、IORD。

Ø该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到ISA总线接口模块的数据(LD0~LD7)、地址线(LA0~LA7)。

Ø8255模块选通线CE连到ISA总线接口模块的0000H。

Ø8255的PA0-L7、PA1-L6、PA2-L5、PA3-L3、PA4-L2、PA5-L1。

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

当前位置:首页 > 高等教育 > 工学

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

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