微机原理实验报告资料.docx

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

微机原理实验报告资料.docx

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

微机原理实验报告资料.docx

微机原理实验报告资料

实验一8259中断实验

一、实验目的

1.掌握PC机中断处理系统的基本原理。

2.掌握外部扩展中断源的设计方法。

3.学会编写中断服务程序。

二、实验原理

PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。

中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。

三、实验内容

实验要求实现8259控制器的IR1、IR3两路中断都可以通过IRQ向PC机发起中断请求,用SP1、SP2单次脉冲模拟两个中断源。

IR1中断时,在它的中断服务程序中编程显示“IR1OKANDEXIT!

”;IR3中断时,在它的中断服务程序中编程显示“IR3OKANDEXIT!

”。

采用查询方式完成。

图1-1扩展中断电路

四、实验步骤

1、连接线路

IR1与sp1用导线连接,IR2与sp2用导线连接,8259CS与Y0用导线连接。

2、编写程序

3、汇编、编译、连接及运行

五、实验程序

datasegment

MY8259_ICW1EQUioport+280H;实验系统中8259的ICW1端口地址

MY8259_ICW2EQUioport+281H;实验系统中8259的ICW2端口地址

MY8259_ICW3EQUioport+281H;实验系统中8259的ICW3端口地址

MY8259_ICW4EQUioport+281H;实验系统中8259的ICW4端口地址

MY8259_OCW1EQUioport+281H;实验系统中8259的OCW1端口地址

MY8259_OCW2EQUioport+280H;实验系统中8259的OCW2端口地址

MY8259_OCW3EQUioport+280H;实验系统中8259的OCW3端口地址

csregdw?

ipregdw?

;旧中断向量保存空间

irq_timesdw00h;中断计数

msg1db0dh,0ah,'DVCCpcicardInterrupt',0dh,0ah,'$'

msg2db0dh,0ah,'Pressanykeytoexit!

',0dh,0ah,'$'

msg3db0dh,0ah,'IR1okandexit!

',0dh,0ah,'$'

msg4db0dh,0ah,'IR3okandexit!

',0dh,0ah,'$'

dataends

stackssegment

db100dup(?

stacksends

codesegment

assumecs:

code,ds:

data,ss:

stacks,es:

data

start:

;EnableLocalInterruptInput.386

cli

movax,data

movds,ax

moves,ax

movax,stacks

movss,ax

movdx,ioport_cent+68h;设置DVCC卡中9054芯片io口,使能中断

inax,dx

orax,0900h

outdx,ax

moval,int_vect;保存原中断向量

movah,35h

int21h

movax,es

movcsreg,ax

movipreg,bx

movax,cs;设置新中断向量

movds,ax

movdx,offsetint_proc

moval,int_vect

movah,25h

int21h

inal,21h;设置中断掩码

andal,irq_mask_2_7

out21h,al

inal,0a1h

andal,irq_mask_9_15

out0a1h,al

movax,data

movds,ax

movdx,offsetmsg1

movah,09h

int21h

movdx,offsetmsg2

movah,09h

int21h

MOVDX,MY8259_ICW1;初始化实验系统中8259的ICW1

MOVAL,13H;边沿触发、单片8259、需要ICW4

OUTDX,AL

MOVDX,MY8259_ICW2;初始化实验系统中8259的ICW2

MOVAL,08H

OUTDX,AL

MOVDX,MY8259_ICW4;初始化实验系统中8259的ICW4

MOVAL,01H;非自动结束EOI

OUTDX,AL

MOVDX,MY8259_OCW1;初始化实验系统中8259的OCW1

MOVAL,0F5H;打开IR1和IR3的屏蔽位

OUTDX,AL

sti

loop1:

movah,1;等待中断

int16h

jnzexit;按任意键退出

jmploop1

exit:

cli

movbl,irq_mask_2_7;恢复中断掩码

notbl

inal,21h

oral,bl

out21h,al

movbl,irq_mask_9_15

notbl

inal,0a1h

oral,bl

out0a1h,al

movdx,ipreg;恢复原中断向量

movax,csreg

movds,ax

movah,25h

moval,int_vect

int21h

movdx,ioport_cent+68h;设置DVCC卡中9054芯片io口,关闭中断

inax,dx

andax,0f7ffh

outdx,ax

movax,4c00h

int21h

int_procprocfar

cli

pushax

pushdx

pushds

QUERY:

MOVDX,MY8259_OCW3;向8259的OCW3发送查询命令

MOVAL,0CH

OUTDX,AL

NOP

NOP

NOP

MOVDX,MY8259_OCW3

INAL,DX;读出查询字

TESTAL,80H;判断中断是否已响应

JZQUERY;没有响应则继续查询

ANDAL,07H

CMPAL,01H

JEIR1ISR;若为IR1请求,跳到IR1处理程序

CMPAL,03H

JEIR3ISR;若为IR3请求,跳到IR3处理程序

JMPEOI

IR1ISR:

movdx,offsetmsg3;IR1处理,显示字符串'IR1okandexit'

movah,09h

int21h

JMPEOI

IR3ISR:

movdx,offsetmsg4;IR3处理,显示字符串'IR3okandexit'

movah,09h

int21h

EOI:

MOVDX,MY8259_OCW2;向实验系统中8259发送中断结束命令

MOVAL,20H

OUTDX,AL

moval,20h;SendEOI

out0a0h,al

out20h,al

popds

popdx

popax

sti

iret

int_procendp

codeends

endstart

6、实验结果

运行后显示屏上显示:

DVCCpcicardInterrupt

Pressanykeytoexit!

当IR1中断时,显示屏上显示:

IR1OKANDEXIT!

Pressanykeytoexit!

当IR3中断时,显示屏上显示:

IR3OKANDEXIT!

Pressanykeytoexit!

7、实验中遇到的问题及解决方法

做实验时多连了几根线导致实验结果出不了,删掉后,实验得以正常进行。

实验二8255及综合

一、实验目的

掌握8255方式0的工作原理及使用方法。

二、实验原理

实验电路如图,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。

图2-1

三、实验内容

1.1)编程从8255C口输入数据,再从A口输出;

2)编程从8255A口输入数据,再从B口输出;

3)编程从8255B口输入数据,再从A口输出。

2.将8255与8259结合起来。

当程序响应IR1中断时候,发光二极管的高四位灭(或亮),同时屏幕显示“IR1okandexit”,当程序响应IR3中断时候,发光二极管的低四位灭(或亮),同时屏幕显示“IR13okandexit”。

四、实验步骤

1、连接线路

8255的PA0~PA7与发光二极管的L0~L7用导线连接,C口的PC0~PC7与K0~K7用导线连接,D0~D7与JD1的D0~D7用导线连接,8255的CS与Y1用单线连接。

2、编写程序

3、汇编、编译、连接及运行

五、实验程序

1、

C口入,A口出

ioportequ0ff00h-0280h

ls273equioport+2a8h

codesegment

assumecs:

code

start:

movah,2;回车符

movdl,0dh

int21h

movah,1;等待键盘输入

int21h

cmpal,27;判断是否为ESC键

jeexit;若是则退出

movdx,ls273;若不是,从2A8H输出其ASCII码

outdx,al

jmpstart;转start

exit:

movah,4ch;返回DOS

int21h

codeends

endstart

2、8255与8259的结合程序

datasegment

ioportequ0ff00h-0280h

io8255aequioport+288h;a

io8255bequioport+289h;b

io8255cequioport+28ah;c

io8255equioport+28bh;K

MY8259_ICW1EQUioport+280H;实验系统中8259的ICW1端口地址

MY8259_ICW2EQUioport+281H;实验系统中8259的ICW2端口地址

MY8259_ICW3EQUioport+281H;实验系统中8259的ICW3端口地址

MY8259_ICW4EQUioport+281H;实验系统中8259的ICW4端口地址

MY8259_OCW1EQUioport+281H;实验系统中8259的OCW1端口地址

MY8259_OCW2EQUioport+280H;实验系统中8259的OCW2端口地址

MY8259_OCW3EQUioport+280H;实验系统中8259的OCW3端口地址

irq_timesdw00h;中断计数

msg1db0dh,0ah,'DVCCpcicardInterrupt',0dh,0ah,'$'

msg2db0dh,0ah,'Pressanykeytoexit!

',0dh,0ah,'$'

msg3db0dh,0ah,'IR1okandexit!

',0dh,0ah,'$'

msg4db0dh,0ah,'IR3okandexit!

',0dh,0ah,'$'

dataends

stackssegment

db100dup(?

stacksends

codesegment

assumecs:

code,ds:

data,ss:

stacks,es:

data

start:

movax,data

movds,ax

moves,ax

movax,stacks

movss,ax

movax,data

movds,ax

movdx,offsetmsg1

movah,09h

int21h

movdx,offsetmsg2

movah,09h

int21h

MOVDX,MY8259_ICW1;初始化实验系统中8259的ICW1

MOVAL,13H;边沿触发、单片8259、需要ICW4

OUTDX,AL

MOVDX,MY8259_ICW2;初始化实验系统中8259的ICW2

MOVAL,08H

OUTDX,AL

MOVDX,MY8259_ICW4;初始化实验系统中8259的ICW4

MOVAL,01H;非自动结束EOI

OUTDX,AL

MOVDX,MY8259_OCW1;初始化实验系统中8259的OCW1

MOVAL,0F5H;打开IR1和IR3的屏蔽位

OUTDX,AL

QUERY:

MOVDX,MY8259_OCW3;向8259的OCW3发送查询命令

MOVAL,0CH

OUTDX,AL

NOP

NOP

NOP

MOVDX,MY8259_OCW3

INAL,DX;读出查询字

TESTAL,80H;判断中断是否已响应

JZQUERY;没有响应则继续查询

ANDAL,07H

CMPAL,01H

JEIR1ISR;若为IR1请求,跳到IR1处理程序

CMPAL,03H

JEIR3ISR;若为IR1请求,跳到IR1处理程序

JMPEOI

IR1ISR:

movdx,offsetmsg3;IR1处理,显示字符串'IR1okandexit'

movah,09h

int21h

movcx,0ffffh

jmpIR1ISR

JMPEOI

IR3ISR:

movdx,offsetmsg4;IR1处理,显示字符串'IR3okandexit'

movah,09h

int21h

movcx,0ffffh

jmpIR3ISR

movdx,io8255;设8255为C口输入,A口输出

moval,99h

outdx,al

inout:

movdx,io8255a;从C口输入一数据

inal,dx

movdx,io8255b;从A口输出刚才自C口

outdx,al;所输入的数据

movdl,0ffh;判断是否有按键

movah,06h

int21h

jzinout;若无,则继续自C口输入,A口输出

movah,4ch;否则返回

int21h

EOI:

MOVDX,MY8259_OCW2;向实验系统中8259发送中断结束命令

MOVAL,20H

OUTDX,AL

JMPstart

codeends

endstart

6、实验结果

当程序响应IR1中断时候,发光二极管的高四位亮了又灭,同时屏幕显示“IR1okandexit”;

当程序响应IR3中断时候,发光二极管的高四位亮了又灭,同时屏幕显示“IR3okandexit”。

7、实验中遇到的问题及解决方法

开始时输入的程序有误,发光二极管全灭了,改正后,实验结果与预测的结果一致。

实验三8253

一、实验目的

掌握8253的基本工作原理和编程方法。

二、实验原理及内容

1.图3-1是本实验程序的接线图,将计数器0设置为方式0,计数器初值为N(N≤0FH,本程序中为0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用L0或逻辑笔观察OUT0电平变化,初始时OUT0为高电平,当输入N个脉冲时,OUT0变为低电平,当输入N+1个脉冲后OUT0变高电平)。

2.按图3-2连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用电平指示灯L0或逻辑笔观察OUT1输出电平的变化,要求输出频率1HZ的分频信号。

图3-1

图3-2

三、实验步骤

1、连接线路

实验1中,将OUT0与L0连接,CLK0与SP1连接,

8253CS与Y0连接,D0~D7分别与JD1的D0~D7连接;

实验2中,将OUT0与CLK1连接,CLK0连接1MHZ,OUT1

连接L0,8253CS连接Y0。

2、编写程序

3、汇编、编译、连接及运行

四、参考程序

1、ioportequ0ff00H-0280h

io8253kequioport+283h

io8253aequioport+280h

codesegment

assumecs:

code

start:

moval,14h;设置8253通道0为工作方式2,二进制计数

movdx,io8253k

outdx,al

movdx,io8253a;送计数初值为08H

moval,08h

outdx,al

lll:

inal,dx;读计数初值

calldisp;调显示子程序

pushdx

movah,06h

movdl,0ffh

int21h

popdx

jzlll

movah,4ch;退出

int21h

dispprocnear;显示子程序

pushdx

andal,0fh;首先取低四位

movdl,al

cmpdl,9;判断是否<=9

jlenum;若是则为'0'-'9',ASCII码加30H

adddl,7;否则为'A'-'F',ASCII码加37H

num:

adddl,30h

movah,02h;显示

int21h

movdl,0dh;加回车符

int21h

movdl,0ah;加换行符

int21h

popdx

ret;子程序返回

dispendp

codeends

endstart

2、ioportequ0ff00H-0280h

io8253aequioport+280h

io8253bequioport+281h

io8253kequioport+283h

codesegment

assumecs:

code

start:

movdx,io8253k;向8253写控制字

moval,36h;使0通道为工作方式3

outdx,al

movax,1000;写入循环计数初值1000

movdx,io8253a

outdx,al;先写入低字节

moval,ah

outdx,al;后写入高字节

movdx,io8253k

moval,76h;设8253通道1工作方式3

outdx,al

movax,1000;写入循环计数初值1000

movdx,io8253b

outdx,al;先写低字节

moval,ah

outdx,al;后写高字节

movah,4ch;程序退出

int21h

codeends

endstart

5、实验结果

1、计数器初值为8,手动逐个输入单脉冲,计数值在屏幕上显示,初始时OUT0为高电平,所以二极管亮,当输入8个脉冲时,OUT0变为低电平,所以二极管灭。

当输入第9个脉冲后OUT0变高电平,即二极管又亮了。

2、计数器0、计数器1设置在方式3,计数初值为1000,电平指示灯L0显示OUT1输出电平的变化,输出频率1HZ的分频信号。

6、实验中遇到的问题及解决方法

实验时,导线连接错误,重新连接后,得到预想的实验结果。

 

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

当前位置:首页 > PPT模板 > 其它模板

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

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