北京理工大学自动化专业微机原理硬件软件实验.docx

上传人:b****7 文档编号:11389365 上传时间:2023-02-28 格式:DOCX 页数:38 大小:81.60KB
下载 相关 举报
北京理工大学自动化专业微机原理硬件软件实验.docx_第1页
第1页 / 共38页
北京理工大学自动化专业微机原理硬件软件实验.docx_第2页
第2页 / 共38页
北京理工大学自动化专业微机原理硬件软件实验.docx_第3页
第3页 / 共38页
北京理工大学自动化专业微机原理硬件软件实验.docx_第4页
第4页 / 共38页
北京理工大学自动化专业微机原理硬件软件实验.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

北京理工大学自动化专业微机原理硬件软件实验.docx

《北京理工大学自动化专业微机原理硬件软件实验.docx》由会员分享,可在线阅读,更多相关《北京理工大学自动化专业微机原理硬件软件实验.docx(38页珍藏版)》请在冰豆网上搜索。

北京理工大学自动化专业微机原理硬件软件实验.docx

北京理工大学自动化专业微机原理硬件软件实验

微机原理与接口技术

硬件实验报告

 

班级:

:

学号:

 

实验一:

8259中断控制器实验

一、实验目的

1.掌握8259的工作原理。

2.掌握编写中断服务程序的方法。

3.掌握初始化中断向量的方法。

二、实验容

用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。

三、实验设备

微机实验教学系统实验箱、8086CPU模块

四、连线

①单脉冲发生器输出P+与8259的IR0相连

②8259的片选CS8259与CS0相连

③8259的INT与8086的INT相连

④8259的INTA与8086的INTA相连

⑤CS273与CS1相连

⑥00与LED1相连

其它线均已连好如下图:

五、实验步骤

(1)连线。

(2)编辑程序,编译后,调试程序。

(3)调试通过后,在中断服务程序设置断点,运行程序,当接收到中断请求后,程序停在中断服务程序的断点处。

(4)撰写实验报告。

六、实验源程序

CODESEGMENTPUBLIC

ASSUMECS:

CODE

ORG100H

START:

MOVDX,4A0H;写ICW1

MOVAX,13H

OUTDX,AX

MOVDX,4A2H;写ICW2

MOVAX,80H;IR0的中断向量码为80H

OUTDX,AX

MOVAX,01

OUTDX,AX;一般嵌套,非缓冲,非自动EOI

MOVAX,0;写OCW1

OUTDX,AX;允许中断

;中断向量存放在(0000H:

0200H)开始的四个单元里

MOVAX,0

MOVDS,AX

MOVSI,200H;中断类型号为80H

MOVAX,OFFSETHINT;中断服务程序的入口地址

MOVDS:

[SI],AX

ADDSI,2

MOVAX,CS

MOVDS:

[SI],AX

STI;开中断,设置IF=1

JMP$;原地跳转

HINT:

;中断服务程序

XORCX,0FFH;CX取反

MOVDX,4B0H;CS273接口的地址,与8个LED灯相连

MOVAX,CX;输出高低电平控制LED灯的亮灭

OUTDX,AX

MOVDX,4A0H;OCW2的地址

MOVAX,20H;一般EOI命令,全嵌套方式

OUTDX,AX

IRET;中断返回

CODEENDS

ENDSTART

七、实验思考题

1.将P+连线连接到IR1—IR7任意一个;重新编写程序。

将P+接到IR1,在原程序的基础上,把写ICW2的控制字改为81H,再把中断向量的入口地址改为0204H即可。

程序如下:

CODESEGMENTPUBLIC

ASSUMECS:

CODE

ORG100H

START:

MOVDX,4A0H;写ICW1

MOVAX,13H

OUTDX,AX

MOVDX,4A2H;写ICW2

MOVAX,81H;IR0的中断向量码为81H

OUTDX,AX

MOVAX,01

OUTDX,AX;一般嵌套,非缓冲,非自动EOI

MOVAX,0;写OCW1

OUTDX,AX;允许中断

;中断向量存放在(0000H:

0200H)开始的四个单元里

MOVAX,0

MOVDS,AX

MOVSI,204H;中断类型号为81H

MOVAX,OFFSETHINT;中断服务程序的入口地址

MOVDS:

[SI],AX

ADDSI,2

MOVAX,CS

MOVDS:

[SI],AX

STI;开中断,设置IF=1

JMP$;原地跳转

HINT:

;中断服务程序

XORCX,0FFH;CX取反

MOVDX,4B0H;CS273接口的地址,与8个LED灯相连

MOVAX,CX;输出高低电平控制LED灯的亮灭

OUTDX,AX

MOVDX,4A0H;OCW2的地址

MOVAX,20H;一般EOI命令,全嵌套方式

OUTDX,AX

IRET;中断返回

CODEENDS

ENDSTART

实验现象:

运行程序,触发脉冲发生器产生中断请求,相应二极管点亮。

2.设置OCW1,屏蔽某个中断请求,运行程序观察现象。

将IR0重新接入LED0,设置OWC1为01H,屏蔽中断IR0,则IR0的中断无法得到响应。

程序如下:

CODESEGMENTPUBLIC

ASSUMECS:

CODE

ORG100H

START:

MOVDX,4A0H;ICW1的地址,写初始化命令字ICW1

MOVAX,13H;上升沿触发单片8259,要写ICW4

OUTDX,AX

MOVDX,4A2H;ICW2的地址,写中断向量码ICW2

MOVAX,80H;IR0的中断向量码为80H

OUTDX,AX

MOVAX,01;写中断结束控制字ICW4

OUTDX,AX;一般嵌套,非缓冲,非自动EOI

MOVAX,01H;写中断屏蔽字OCW1

OUTDX,AX;屏蔽IR0中断

;中断向量存放在(0000H:

0200H)开始的四个单元里

MOVAX,0

MOVDS,AX

MOVSI,200H;中断类型号为80H

MOVAX,OFFSETHINT;中断服务程序的入口地址

MOVDS:

[SI],AX

ADDSI,2

MOVAX,CS

MOVDS:

[SI],AX

STI;开中断,设置IF=1

JMP$;原地跳转

HINT:

;中断服务程序

XORCX,0FFH;CX取反

MOVDX,4B0H;CS273接口的地址,与8个LED灯相连

MOVAX,CX;输出高低电平控制LED灯的亮灭

OUTDX,AX

MOVDX,4A0H;OCW2的地址

MOVAX,20H;一般EOI命令,全嵌套方式

OUTDX,AX

IRET;中断返回

CODEENDS

ENDSTART

实验现象:

每按单脉冲发生器一次产生一次中断申请,但连接的发光二极管一直不亮。

3.设置OCW2,了解中断结束方式与设置优先权。

将IR0和IR1都连接到P+上,分别连接LED0和LED1到00和01。

一般EOI命令,将IR0设置为最低中断优先级。

程序如下:

CODESEGMENTPUBLIC

ASSUMECS:

CODE

ORG100H

START:

MOVDX,4A0H;ICW1的地址

MOVAX,13H;上升沿触发,单片8259,要写ICW4

OUTDX,AX

MOVDX,4A2H;ICW2的地址

MOVAX,80H;IRO的中断向量码为80H,第三位自动写入

OUTDX,AX

MOVAX,01;写ICW4

OUTDX,AX;一般嵌套,非缓冲,非自动EOI

MOVAX,0;写OCW1

OUTDX,AX;允许中断

;IR0的中断向量存放在(0000H:

0200H)开始的四个单元里

MOVAX,0

MOVDS,AX

MOVSI,200H

MOVAX,OFFSETHINT

MOVDS:

[SI],AX

ADDSI,2

MOVAX,CS

MOVDS:

[SI],AX

STI;开中断,设置IF=1

;IR1的中断向量存放在(0000H:

0204H)开始的四个单元里

MOVAX,0

MOVDS,AX

MOVSI,204H

MOVAX,OFFSETHINT2

MOVDS:

[SI],AX

ADDSI,2

MOVAX,CS

MOVDS:

[SI],AX

JMP$;原地跳转

HINT1:

;中断服务程序1

XORCX,0F0H;CX高四位取反

MOVDX,4B0H;CS273接口的地址,与8个LED灯相连

MOVAX,CX;输出高低电平控制LED灯的亮灭

OUTDX,AX

MOVDX,4A0H;OCW2的地址

MOVAX,E0H;一般EOI命令,IR0优先级最低

OUTDX,AX

IRET;中断返回

HINT2:

;中断服务程序2

XORCX,00FH;CX低四位取反

MOVDX,4B0H;CS273接口的地址,与8个LED灯相连

MOVAX,CX;输出高低电平控制LED灯的亮灭

OUTDX,AX

MOVDX,4A0H;OCW2的地址

MOVAX,E0H;一般EOI命令,IR0优先级最低

OUTDX,AX

IRET;中断返回

CODEENDS

ENDSTART

实验现象:

CS273的00与LED0相连,01与LED1相连,02与LED2相连,依次下去,直至07与LED7相连。

每按单脉冲发生器一次产生一次中断申请,由于IR0的优先级比IR1低,故先响应IR1,后响应IR0,观察到第四位的LED灯先点亮或熄灭,高四位的LED灯后点亮或熄灭。

八、实验心得

本次实验让我熟悉了8086硬件实验系统的使用,对8259的部寄存器的功能也有了更加深入的认识,掌握了8259的初始化步骤和工作方式的选择,以及中断服务程序的编写。

使用实验箱和编译软件对学习容的掌握的理解有很大帮助,让我更透彻地学习了知识。

实验二8255并行接口实验

一、实验容

8255的A口作为输入口,与逻辑电平开关相连。

8255的B口作为输出口,与发光二极管相连。

编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。

二、实验目的

掌握8255的编程原理

三、实验设备

微机实验教学系统实验箱、8086CPU模块

四、连线

1.8255的PA0—PA7分别与逻辑电平开关的K1—K8相连。

2.PB0—PB7分别与发光二极管电路的LED1—LED8相连。

3.CS0与8255的片选CS8255相连。

4.其它线路均已连好。

 

五、实验步骤

(1)连线。

(2)编辑程序,编译后,单步运行,调试程序。

(3)调试通过后,全速运行,观察实验结果。

(4)撰写实验报告。

六、实验源程序

CODESEGMENTPUBLIC

ASSUMECS:

CODE

ORG100H

START:

MOVDX,04A6H

MOVAX,90H

OUTDX,AX

START1:

MOVDX,04A0H

INAX,DX

MOVDX,04A2H

OUTDX,AX

JMPSTART1

CODEENDS

ENDSTART

七、思考题

1.将片选线接到CS1—CS7;重新编写程序。

将片选线接到CS1上。

在原程序的基础上,将控制口的地址改成04B6H,将A口的地址改成04B0H,将B口的地址改成04B2H。

程序如下:

CODESEGMENTPUBLIC

ASSUMECS:

CODE

ORG100H

START:

MOVDX,04B6H

MOVAX,90H

OUTDX,AX

START1:

MOVDX,04B0H

INAX,DX

MOVDX,04B2H

OUTDX,AX

JMPSTART1

CODEENDS

ENDSTART

实验现象:

实验将刚才的实验地址CS0换成了CS2。

这里CS0的地址为04A0H,CS1->04B0H,CS2->04C0H,CS3->04D0H,CS4->04E0H,CS5->04F0H。

这里我们将CS0换成了CS2。

实验现象和上一个程序的实验现象相同。

2.交换AB接线,A口输出、B口输入;重新编写程序。

将A口接LED,B口接开关。

原程序中,将方式控制字90H改成82H,START1中A、B口地址互换。

程序如下:

CODESEGMENTPUBLIC

ASSUMECS:

CODE

ORG100H

START:

MOVDX,04A6H

MOVAX,82H

OUTDX,AX

START1:

MOVDX,04A2H

INAX,DX

MOVDX,04A0H

OUTDX,AX

JMPSTART1

CODEENDS

ENDSTART

实验现象:

PB口的逻辑电平开关对应PA口的LED灯,对应的PB口开关给高电平,LED灯亮,对应的PB口开关给低电平,LED灯灭

3.C口4位接LED;4位接开关;重新编写程序。

将C口的高四位接开关,低四位接LED灯。

在原程序的基础上,方式控制字改成88H,加逻辑右移语句。

程序如下:

CODESEGMENTPUBLIC

ASSUMECS:

CODE

ORG100H

START:

MOVDX,04A6H

MOVAX,88H

OUTDX,AX

START1:

MOVDX,04A4H

INAX,DX

MOVCL,4

RORAX,CL

MOVDX,04A4H

OUTDX,AX

JMPSTART1

CODEENDS

ENDSTART

实验现象:

设置PC口低4位输入,高4位为输出。

低四位接逻辑电平开关,高四位接LED灯。

将8255控制字修改为将PC口低四位设置为输入,高四位设置为输出。

PC口低四位的逻辑电平开关对应PC口高四位的LED灯,对应的PC口低四位开关给高电平,LED灯亮,对应的PC口低四位开关给低电平,LED灯灭。

实验三8253可编程定时器

一、实验目的

掌握8253定时/计数器的编程原理。

二、实验容

8253计数器0,1,2工作于方波方式,观察其输出。

三、实验设备

微机实验教学系统实验箱、8086CPU模块。

四、连线

1.CS0与8253的片选CS8253相连

2.CLK3(750KHz)与8253CLK0相连

3.8253的OUT0与8253CLK2相连

4.OUT2与发光二极管LED1相连

其它线均已连好。

五、实验步骤

1.连线。

2.编辑程序,编译后,跟踪运行,调试程序。

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

4.撰写实验报告。

六、实验源程序

CODESEGMENTPUBLIC

ASSUMECS:

CODE

ORG100H

START:

MOVDX,04A6H

MOVAX,36H

OUTDX,AX

MOVDX,04A0H

MOVAX,7CH

OUTDX,AX

MOVAX,92H

OUTDX,AX

MOVDX,04A6H

MOVAX,0B6H

OUTDX,AX

MOVDX,04A4H

MOVAX,4

OUTDX,AX

MOVAX,0

OUTDX,AX

JMP$

CODEENDS

ENDSTART

实验现象:

LED灯一亮一灭时间频率一样。

七、思考题

1.定时器2计数值改为20H;观察其现象。

实验程序:

CODESEGMENTPUBLIC

ASSUMECS:

CODE

ORG100H

START:

MOVDX,04A6H

MOVAX,36H

OUTDX,AX

MOVDX,04A0H

MOVAX,7CH

OUTDX,AX

MOVAX,92H

OUTDX,AX

MOVDX,04A6H

MOVAX,0B6H

OUTDX,AX

MOVDX,04A4H

MOVAX,20H

OUTDX,AX

MOVAX,0

OUTDX,AX

JMP$

CODEENDS

ENDSTART

实验现象:

LED灯一亮一灭,灭的时间比亮的时间长一些。

2.将定时器2改为方式2分频器方式;观察其现象。

实验程序:

CODESEGMENTPUBLIC

ASSUMECS:

CODE

ORG100H

START:

MOVDX,04A6H

MOVAX,36H

OUTDX,AX

MOVDX,04A0H

MOVAX,7CH

OUTDX,AX

MOVAX,92H

OUTDX,AX

MOVDX,04A6H

MOVAX,0B4H

OUTDX,AX

MOVDX,04A4H

MOVAX,20H

OUTDX,AX

MOVAX,0

OUTDX,AX

JMP$

CODEENDS

ENDSTART

实验现象:

LED灯在开始一段时间后亮灭一次就不再有现象

3.将GATE2接到开关上;观察其现象。

实验程序:

CODESEGMENTPUBLIC

ASSUMECS:

CODE

ORG100H

START:

MOVDX,04A6H

MOVAX,34H

OUTDX,AX

MOVDX,04A0H

MOVAX,7CH

OUTDX,AX

MOVAX,92H

OUTDX,AX

MOVDX,04A6H

MOVAX,0B4H

OUTDX,AX

MOVDX,04A4H

MOVAX,20H

OUTDX,AX

MOVAX,0

OUTDX,AX

JMP$

CODEENDS

ENDSTART

实验现象:

将GATE2接到逻辑电平开关上,GATE2高电平时,LED亮灭有序,GATE2低电平时,LED不会有现象。

4.将GATE2接到PULP+开关上,计数器2改为方式1;观察其现象。

实验程序:

CODESEGMENTPUBLIC

ASSUMECS:

CODE

ORG100H

START:

MOVDX,04A6H

MOVAX,36H

OUTDX,AX

MOVDX,04A0H

MOVAX,7CH

OUTDX,AX

MOVAX,92H

OUTDX,AX

MOVDX,04A6H

MOVAX,0B2H

OUTDX,AX

MOVDX,04A4H

MOVAX,4

OUTDX,AX

MOVAX,0

OUTDX,AX

JMP$

CODEENDS

ENDSTART

实验现象:

为了使实验更加准确,我们先测试了一下PULP+在没有按下时的电平状态为高电平。

在改为该题的要求后,测试结果是,在没有按下PULP+时,LED灯没有任何现象。

在按下PULP+时,按下后,灯亮灭一次就不再有变化。

说明是下降沿使能。

5.将GATE2接到PULP+开关上,计数器2改为方式5;观察其现象。

实验程序:

CODESEGMENTPUBLIC

ASSUMECS:

CODE

ORG100H

START:

MOVDX,04A6H

MOVAX,36H

OUTDX,AX

MOVDX,04A0H

MOVAX,7CH

OUTDX,AX

MOVAX,92H

OUTDX,AX

MOVDX,04A6H

MOVAX,0BAH

OUTDX,AX

MOVDX,04A4H

MOVAX,20H

OUTDX,AX

MOVAX,0

OUTDX,AX

JMP$

CODEENDS

ENDSTART

实验现象:

在没有按下PULP+时,LED灯没有任何现象。

在按下PULP+时,按下后松手的瞬间开始,灯亮灭一次就不再有变化。

说明是上升沿使能。

八、心得体会:

计数器方式等知识在理论课上并没有能够理解其用处,在调整计数器方式和分频器方式的过程中慢慢得到了了解。

实验四8250串行接口实验

一、实验目的

在实验箱与PC机(上位机)之间实现串行通信,主机每下传一个字符,若通讯正确,则下位机返回一个同样的字符;若不正确,则无返回值或者返回值不同。

二、实验容

1.熟悉串行通信的一般原理和8250的工作原理。

2.了解RS—232串行接口标准及连接方法。

3.掌握8250芯片的编程方法。

三、实验设备

微机实验教学系统实验箱、8086CPU模块

四、连线

 

五、实验步骤

(1)无须连线,部已经连好。

8250的端口地址为0480H起始的偶地址单元。

(2)编写下位机程序,编译后,全速运行。

(3)退出“8086实验系统”,运行“串口调试助手”上位机程序。

(4)将“串口调试助手”程序输入和输出都调整为16进制格式,发送一个16进制数,观察返回的是否是同样一个16进制数。

六、实验源程序

CODESEGMENTPUBLIC

ASSUMECS:

CODE

ORG100H

START:

MOVDX,486H

MOVAX,80H

OUTDX,AX

MOVDX,480H

MOVAX,12

OUTDX,AX

MOVDX,482H

MOVAX,0

OUTDX,AX

MOVDX,486H

MOVAX,3

OUTDX,AX

MOVDX,482H

MOVAX,0

OUTDX,AX

MOVDX,48AH

INAX,DX

MOVDX,480H

INAX,DX

LOOP1:

CALLRECV

CALLSEND

JMPLOOP1

SEND:

PUSHAX

MOVDX,48AH

INAX,DX

TESTAX,20H

JNZSEND2

POPAX

JMPSEND

SEND2:

POPAX

MOVDX,480H

OUTDX,AX

RET

RECV:

MOVDX,48AH

INAX,DX

TESTAX,1

JZRECV

MOVDX,480H

INAX,DX

RET

CODEENDS

ENDSTART

七、思考题

1.连接8255,将接收到的16进制数;驱动8个彩灯;观察其现象。

硬件将CS0与CS8255片选端相连,将PB0~PB7与LED1~LED8依次相连。

程序如下:

CODESEGMENTPUBLIC

ASSUMECS:

CODE

ORG100H

START:

MOVDX,486H

MOVAX,80H

OUTDX,AX

MOVDX,480H

MOVAX,12

OUTDX,AX

MOVDX,482H

MOVAX,0

OUTDX,AX

MOVDX,486H

MOVAX,3

OUTDX,AX

MOVDX,482H

MOVAX,0

OUTDX,AX

MOVDX,48AH

INAX,DX

MOVDX,480H

INAX,DX

MOVDX,04A6H;设置8255的控制字

MOVAX,80H

OUTDX,AX

 

LOOP1:

CALLRECV

CALLSEND

MOVDX,04A2H;设置A口为输出口

OU

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

当前位置:首页 > 人文社科 > 视频讲堂

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

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