合工大微机原理实验报告全解.docx

上传人:b****7 文档编号:9057238 上传时间:2023-02-03 格式:DOCX 页数:40 大小:3MB
下载 相关 举报
合工大微机原理实验报告全解.docx_第1页
第1页 / 共40页
合工大微机原理实验报告全解.docx_第2页
第2页 / 共40页
合工大微机原理实验报告全解.docx_第3页
第3页 / 共40页
合工大微机原理实验报告全解.docx_第4页
第4页 / 共40页
合工大微机原理实验报告全解.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

合工大微机原理实验报告全解.docx

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

合工大微机原理实验报告全解.docx

合工大微机原理实验报告全解

《微机原理与接口技术》课程实验报告

实验名称

实验一8251可编程通信实验(与微机)

姓名

系院专业

你的专业

班级

你的专业

13-5班

学号

实验日期

2015.5.20

指导教师

成绩

一、实验目的和要求

1、了解8251的内部结构、工作原理;了解8251与8086的接口逻辑;掌握对8251的初始化编程方法,学会使用8251实现设备之间的串行通信。

 

二、实验内容(包括实验步骤和代码)

(一)实验内容

1、编制程序:

实现8251A与PC机的串行通讯,使用8253作分频器提供8251的收发时钟。

2、连接线路,从微机接收一批数据,接收完毕,再将它们回送给微机。

(二)实验步骤

1、连线说明:

C4区:

CS(8253)、A0、A1

——

A3区:

CS2、A0、A1

C4区:

CLK0

——

B2区:

2M

C4区:

GATE

——

C1区的VCC

C4区:

OUT0

——

C3区:

RxCTxC

C3区:

CS(8251)、C/D

——

A3区:

CS4、A0

C3区:

CLK

——

B2区:

4M

C3区:

RXD、TXD

——

D7区:

RXD、TXD

2、运行程序

3、运行“串口助手(ComPort.EXE)”,设置串口(波特率4800,8个数据位,一个停止位,偶校验),打开串口,选择“HEX发送”、“HEX显示”,向8251发送10个字节数据(输入数据之间用空格分隔),是否能接收到10个字节数据,接收到的数据是否与发送数据一致。

4、改变传输数据的数目,重复实验,观察结果。

(三)实验代码

.MODEL

TINY

;使用8253的计数器0,外接2Mhz,经26分频后,送给8251,产生4800bps

CTL_ADDR

EQU

0241H

;控制字或状态字

DATA_ADDR

EQU

0240H

;读写数据

W_8253_T0

EQU

0260H

;计数器0地址

W_8253_C

EQU

0263H

;控制字

.STACK

100

.DATA

Receive_Buffer

DB

10DUP(0)

;接受缓冲器

Send_Buffer

EQU

Receive_Buffer

;发送缓冲器

.CODE

START:

MOV

AX,@DATA

MOV

DS,AX

MOV

ES,AX

NOP

CALL

INIT_8253

CALL

INIT_8251

START1:

MOV

CX,10

CALL

Receive_Group

MOV

CX,10

CALL

Send_Group

JMP

START1

INIT_8253

PROC

NEAR

MOV

DX,W_8253_C

MOV

AL,37H

;定时器0,方式3

OUT

DX,AL

MOV

DX,W_8253_T0

MOV

AL,26H

;BCD码26(2000000/26)=16*4800

OUT

DX,AL

MOV

AL,0

OUT

DX,AL

RET

INIT_8253

ENDP

INIT_8251

PROC

NEAR

CALL

RESET_8251

MOV

DX,CTL_ADDR

MOV

AL,7EH

;波特率系数为16,8个数据位

OUT

DX,AL

;一个停止位,偶校验

CALL

DLTIME

;延时

MOV

AL,15H;允许接收和发送发送数据,清错误标志

OUT

DX,AL

CALL

DLTIME

RET

INIT_8251

ENDP

Reset_8251

PROC

NEAR

MOV

DX,CTL_ADDR

MOV

AL,0

OUT

DX,AL

;向控制口写入"0"

CALL

DLTIME

;延时,等待写操作完成

OUT

DX,AL

;向控制口写入"0"

CALL

DLTIME

;延时

OUT

DX,AL

;向控制口写入"0"

CALL

DLTIME

;延时

MOV

AL,40H

;向控制口写入复位字40H

OUT

DX,AL

CALL

DLTIME

RET

Reset_8251

ENDP

;接受一组数据,CX--接受数目

Receive_Group

PROC

NEAR

LEA

DI,Receive_Buffer

Receive_Group1:

CALL

Receive_Byte

STOSB

LOOP

Receive_Group1

RET

Receive_Group

ENDP

;接受一个字节

Receive_Byte

PROC

NEAR

MOV

DX,CTL_ADDR

Receive_Byte1:

IN

AL,DX

;读入状态

TEST

AL,2

JZ

Receive_Byte1

;有数据吗?

MOV

DX,DATA_ADDR

;有

IN

AL,DX

RET

Receive_Byte

ENDP

;发送一组数据,CX--发送数目

Send_Group

PROC

NEAR

LEA

SI,Send_Buffer

Send_Group1:

LODSB

CALL

SendByte

LOOP

Send_Group1

RET

Send_Group

ENDP

;发送一个字节

Sendbyte

PROC

NEAR

PUSH

AX

MOV

DX,CTL_ADDR

;读入状态

Sendbyte1:

IN

AL,DX

TEST

AL,1

JZ

Sendbyte1

;允许数据发送吗?

POP

AX

;发送

MOV

DX,DATA_ADDR

OUT

DX,AL

RET

Sendbyte

ENDP

;延时

DLTIME

PROC

NEAR

MOV

CX,10

LOOP

$

RET

DLTIME

ENDP

END

START

 

三、实验结果及其分析

(一)实验结果

由图1.1可知,使用串口助手每发送十个字节的十六进制数便可以接收到这十个字节的十六进制数。

图1.1

(二)实验扩展及思考

1、请读者思考,如何修改程序实现8251的自发自收功能?

答:

将8251的TxD与RxD相连接,由TxD逐个发送字符,并用RxD逐个接收。

2、8251与8250有何区别?

答:

8250是异步收发器UART,8251是同步异步收发器USART,在PC机中带的串行口是8250

实验名称

实验二8255控制交通灯实验

姓名

系院专业

你的专业

班级

你的专业

13-5班

学号

实验日期

2015.6.8

指导教师

成绩

一、实验目的和要求

1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。

学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。

2、熟悉8255内部结构和与8086的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。

 

二、实验内容(包括实验步骤和代码)

(一)实验内容

1、编写程序:

使用8255的PA0..2、PA4..6控制LED指示灯,实现交通灯功能。

2、连接线路验证8255的功能,熟悉它的使用方法。

(二)实验步骤

1、连线说明:

D3区:

CS、A0、A1

——

A3区:

CS1、A0、A1

D3区:

JP23(PA口)

——

F4区:

JP18

2、观察实验结果,是否能看到模拟的交通灯控制过程。

(三)实验代码

.MODEL

TINY

COM_ADD

EQU

0273H

PA_ADD

EQU

0270H

PB_ADD

EQU

0271H

PC_ADD

EQU

0272H

.STACK

100

.DATA

LED_Data

DB

10111110B

;东西绿灯,南北红灯

DB

10111111B

;东西绿灯闪烁,南北红灯

DB

10111101B

;东西黄灯亮,南北红灯

DB

11101011B

;东西红灯,南北绿灯

DB

11111011B

;东西红灯,南北绿灯闪烁

DB

11011011B

;东西红灯,南北黄灯亮

.CODE

START:

MOV

AX,@DATA

MOV

DS,AX

NOP

MOV

DX,COM_ADD

MOV

AL,80H

;PA、PB、PC为基本输出模式

OUT

DX,AL

MOV

DX,PA_ADD

;灯全熄灭

MOV

AL,0FFH

OUT

DX,AL

LEA

BX,LED_Data

START1:

MOV

AL,0

XLAT

OUT

DX,AL

;东西绿灯,南北红灯

CALL

DL5S

MOV

CX,6

START2:

MOVAL,1

XLAT

OUT

DX,AL

;东西绿灯闪烁,南北红灯

CALL

DL500ms

MOV

AL,0

XLAT

OUT

DX,AL

CALL

DL500ms

LOOP

START2

MOV

AL,2

;东西黄灯亮,南北红灯

XLAT

OUT

DX,AL

CALL

DL3S

MOV

AL,3

;东西红灯,南北绿灯

XLAT

OUT

DX,AL

CALL

DL5S

MOV

CX,6

START3:

MOV

AL,4

;东西红灯,南北绿灯闪烁

XLAT

OUT

DX,AL

CALL

DL500ms

MOV

AL,3

XLAT

OUT

DX,AL

CALL

DL500ms

LOOP

START3

MOV

AL,5

;东西红灯,南北黄灯亮

XLAT

OUT

DX,AL

CALL

DL3S

JMP

START1

DL500ms

PROC

NEAR

PUSH

CX

MOV

CX,60000

DL500ms1:

LOOP

DL500ms1

POP

CX

RET

DL500ms

ENDP

DL3S

PROC

NEAR

PUSH

CX

MOV

CX,6

DL3S1:

CALL

DL500ms

LOOP

DL3S1

POP

CX

RET

ENDP

DL5S

PROC

NEAR

PUSH

CX

MOV

CX,10

DL5S1:

CALL

DL500ms

LOOP

DL5S1

POP

CX

RET

ENDP

END

START

 

三、实验结果及其分析

(一)实验结果

全速运行程序,实验结果如图所示。

(二)实验扩展及思考

1、如何对8255的PC口进行位操作?

答:

8255控制字D7=1时,D6~D0为口模式控制,D7=0时控制字为PC口的位操作模式,如控制字=00H,PC0复位;控制字=01H,PC0置位;控制字=0EH,PC7复位;控制字=0FH,PC7置位;其中D6~D4没定义,D3~D1从000B~111B分别指定PC0~PC7脚,D0位为相应的电平高低,0为低电平,1为高电平。

实验名称

实验三静态存贮器(16位)读写实验

姓名

姓名

系院专业

你的专业

班级

你的专业

13-5班

学号

实验日期

2015.6.13

指导教师

成绩

一、实验目的和要求

1、了解静态存贮器的特性、扩展方法,掌握存贮器的读写时序。

2、掌握CPU对16位静态存贮器的访问方法

3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。

 

二、实验内容(包括实验步骤和代码)

(一)实验内容

1、说明:

实验仪选用常用的静态存贮器芯片62256(32K×8位),二片组成32K×16位,共64K字节。

实验仪具有16位数据总线D0..D15、20位地址线A0..A19、BLE(低电平有效,选择低8位存贮器芯片)、BHE(低电平有效,选择高8位存贮器芯片);BLE、BHE同时有效,对存贮器字方式读写,BLE或BHE有效,对存贮器字节方式读写。

扩展16位存贮器时,不使用地址线A0。

2、编写程序:

将B4区的静态存贮器3000H-30FFH单元中数据复制到6000H-60FFH的单元中,并校验,检测写入的数据是否正确。

3、连接线路验证功能,熟悉它的使用方法。

(二)实验步骤

1、连线说明:

B4(RAM)区:

CS、BLE、BHE

——

A3区:

mCS0、BLE、BHE

B4(RAM)区:

RD、WR

——

A3区:

MEMR、MEMW

B4(RAM)区:

JP49(A0..A7)

——

A3区:

JP29(A1..A8)

B4(RAM)区:

JP38(A8..A15)

——

A3区:

JP33(A9..A16)

B4(RAM)区:

JP57(D0..D7)

——

A3区:

JP42(D0..D7)

B4(RAM)区:

JP56(D8..D15)

——

A3区:

JP40(D8..D15)

2、通过星研软件的存贮器窗、寄存器窗等,观察运行结果。

(三)实验代码

;数据块移动(16位存贮器实验)

.MODEL

TINY

.STACK

100

.CODE

START:

MOV

AX,8000H

;存贮器扩展空间段地址

MOV

DS,AX

MOV

ES,AX

NOP

MOV

CX,100H

MOV

SI,3000H

MOV

DI,6000H

CALL

Move

MOV

CX,100H

MOV

SI,3000H

MOV

DI,6000H

CLD

REPE

CMPSB

JNE

ERROR

TRUE:

JMP

$

ERROR:

JMP

$

Move

PROC

NEAR

CLD

CMP

SI,DI

JZ

Return

JNB

Move1

ADD

SI,CX

DEC

SI

ADD

DI,CX

DEC

DI

STD

Move1:

REP

MOVSB

Return:

RET

Move

ENDP

END

START

 

三、实验结果及其分析

(一)实验结果

3000H-30FFH单元中数据如图3.1所示。

当执行完程序后,3000H-30FFH单元中数据被复制到6000H-60FF单元中,如图3.2所示。

程序最终停留在JMP$。

图3.1

图3.2

(二)实验扩展及思考

1、子程序Move中为什么比较SI、DI?

答:

源数据块与目标范围有可能部分重叠,需要考虑从第一个字节开始复制(顺序复制),还是从最后一个字节开始复制(倒序复制)。

 

实验名称

实验四8259A

(1)中断控制器实验

姓名

姓名

系院专业

你的专业

班级

你的专业

13-5班

学号

实验日期

2015.6.13

指导教师

成绩

一、实验目的和要求

1、了解8259A的内部结构、工作原理;了解8259A与8086的接口逻辑;掌握对8259A的初始化编程方法,了解8086是如何响应中断、退出中断的。

 

二、实验内容(包括实验步骤和代码)

(一)实验内容

1、编制程序:

拨动单脉冲开关,“

”送给8259A的IR0,触发中断,8086计数中断次数,显示于F5区的数码管上

(二)实验步骤

1、连线说明:

B3区:

CS、A0

——

A3区:

CS3、A0

B3区:

INT、INTA

——

A3区:

INTR、INTA

B3区:

IR0

——

B2区:

单脉冲

D3区:

CS、A0、A1

——

A3区:

CS1、A0、A1

D3区:

PC0、PC1

——

F5区:

KL1、KL2

D3区:

JP20、B、C

——

F5区:

A、B、C

2、运行程序

3、上下拨动单脉冲开关,拨动二次,产生一个“

”,观察结果,数码管上显示的次数与拨动开关次数是否对应。

(三)实验代码

.MODEL

TINY

EXTRN

InitKeyDisplay:

NEAR,Display8:

NEAR

IO8259_0

EQU

0250H

IO8259_1

EQU

0251H

.STACK

100

.DATA

BUFFER

DB

8DUP(?

Counter

DB

?

ReDisplayFlag

DB

0

.CODE

START:

MOV

AX,@DATA

MOV

DS,AX

MOV

ES,AX

NOP

CALL

InitKeyDisplay

;对键盘、数码管控制器8255初始化

CALL

Init8259

CALL

WriIntver

MOV

Counter,0

;中断次数

MOV

ReDisplayFlag,1

;需要显示

STI

;开中断

START1:

LEA

SI,Buffer

CALL

Display8

CMP

ReDisplayFlag,0

JZ

START1

CALL

LedDisplay

MOV

ReDisplayFlag,0

JMP

START1

Init8259

PROC

NEAR

MOV

DX,IO8259_0

MOV

AL,13H

OUT

DX,AL

MOV

DX,IO8259_1

MOV

AL,08H

OUT

DX,AL

MOV

AL,09H

OUT

DX,AL

MOV

AL,0FEH

OUT

DX,AL

RET

Init8259

ENDP

WriIntver

PROC

NEAR

PUSH

ES

MOV

AX,0

MOV

ES,AX

MOV

DI,20H

LEA

AX,INT_0

STOSW

MOV

AX,CS

STOSW

POP

ES

RET

WriIntver

ENDP

LedDisplay

PROC

NEAR

MOV

AL,Counter

MOV

AH,AL

AND

AL,0FH

MOV

Buffer,AL

AND

AH,0F0H

ROR

AH,4

MOV

Buffer+1,AH

MOV

Buffer+2,10H

;高六位不需要显示

MOV

Buffer+3,10H

MOV

Buffer+4,10H

MOV

Buffer+5,10H

MOV

Buffer+6,10H

MOV

Buffer+7,10H

RET

LedDisplay

ENDP

INT_0:

PUSH

DX

PUSH

AX

MOV

AL,Counter

ADD

AL,1

DAA

MOV

Counter,AL

MOV

ReDisplayFlag,1

MOV

DX,IO8259_0

MOV

AL,20H

OUT

DX,AL

POP

AX

POP

DX

IRET

END

START

 

三、实验结果及其分析

(一)实验结果

每中断一次,便计数一次,中断77次后数码管显示如图4.1所示。

图4.1

 

实验名称

实验五8253方波实验

姓名

姓名

系院专业

你的专业

班级

你的专业

13-5班

学号

实验日期

2015.6.14

指导教师

成绩

一、实验目的和要求

1、了解8253的内部结构、工作原理;了解8253与8086的接口逻辑;熟悉8253的控制寄存器和初始化编程方法,熟悉8253的6种工作模式。

 

二、实验内容(包括实验步骤和代码)

(一)实验内容

1、编写程序:

使用8253的计数器0和计数器1实现对输入时钟频率的两级分频,得到一个周期为1秒的方波,用此方波控制蜂鸣器,发出报警信号,也可以将输入脚接到逻辑笔上来检验程序是否正确。

2、连接线路,验证8253的功能,熟悉它的使用方法。

(二)实验步骤

1、连线说明:

C4区:

CS、A0、A1

——

A3区:

CS2、A0、A1

C4区:

CLK0

——

B2区:

2M

C

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

当前位置:首页 > 法律文书 > 调解书

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

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