微机实验报告Word格式文档下载.docx

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

微机实验报告Word格式文档下载.docx

《微机实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机实验报告Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。

微机实验报告Word格式文档下载.docx

实验系统中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端口地址

msg1db0dh,0ah,'

DVCCpcicardInterrupt'

0dh,0ah,'

$'

msg2db0dh,0ah,'

Pressanykeytoexit!

'

msg3db0dh,0ah,'

IR1okandexit!

msg4db0dh,0ah,'

IR3okandexit!

dataends

stackssegment

db100dup(?

stacksends

codesegment

assumecs:

code,ds:

data,ss:

stacks,es:

data

start:

EnableLocalInterruptInput

movax,data

movds,ax

moves,ax

movax,stacks

movss,ax

movdx,offsetmsg1

movah,09h

int21h

movdx,offsetmsg2

MOVDX,MY8259_ICW1;

初始化实验系统中8259的ICW1

MOVAL,13H;

边沿触发、单片8259、需要ICW4

OUTDX,AL

MOVDX,MY8259_ICW2;

初始化实验系统中8259的ICW2

MOVAL,08H

MOVDX,MY8259_ICW4;

初始化实验系统中8259的ICW4

MOVAL,01H;

非自动结束EOI

MOVDX,MY8259_OCW1;

初始化实验系统中8259的OCW1

MOVAL,0F5H;

打开IR1和IR3的屏蔽位

QUERY:

MOVDX,MY8259_OCW3;

向8259的OCW3发送查询命令

MOVAL,0CH

NOP

MOVDX,MY8259_OCW3

INAL,DX;

读出查询字

TESTAL,80H;

判断中断是否已响应

JZQUERY;

没有响应则继续查询

ANDAL,07H

CMPAL,01H

JEIR1ISR;

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

CMPAL,03H

JEIR3ISR;

JMPEOI

IR1ISR:

movdx,offsetmsg3;

IR1处理,显示字符串'

IR1okandexit'

JMPEOI

IR3ISR:

movdx,offsetmsg4;

IR3okandexit'

int21h

EOI:

MOVDX,MY8259_OCW2;

向实验系统中8259发送中断结束命令

MOVAL,20H

OUTDX,AL

jmpstart

codeends

endstart

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

五、实验程序

六、实验结果

当SP1脉冲中断源给一个脉冲时,屏幕上显示字符串'

当SP2脉冲中断源给一个脉冲时,屏幕上显示字符串'

这样每当给不同的中断信号,就会有不同的输出结果。

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”。

8255的D0~D7跟PC/XT的D0~D7连接,同时8255的D0~D7跟PC/XT的D0~D7连接,RD、WR分别与IOR、IOW连接,中断源SP1、SP2与8259的IR1、IR3连接,8255的CS片选信号与PC/XT的Y1相连。

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

1、B口逻辑开关输入入,C口输出到LED灯显示效果

io8255aequioport+288h

io8255bequioport+289h

io8255cequioport+28ah

io8255equioport+28bh

movss,ax

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

movdx,io8255;

设8255为B口输入,C口输出

moval,82h

outdx,al

inout:

movdx,io8255b;

从B口输入一数据

inal,dx

movdx,io8255c;

从C口输出刚才自C口

outdx,al;

所输入的数据

movdl,0ffh;

判断是否有按键

movah,06h

jzinout;

若无,则继续自B口输入,C口输出

movah,4ch;

否则返回

2、8255与8259的结合程序

movah,09h

int21h

OUTDX,AL

movdx,io8255;

设8255为C口输入,A口输出

moval,8bh

moval,0f0h

movdx,io8255a;

从A口输出刚才自C口

所输入的数据

6、实验结果

1)当程序运行时,可以通过控制逻辑开关控制LED灯的变化,因为逻辑开关是C口输入,所以当改变逻辑开关的选通或者截止的时候,LED灯显示亮或者灭。

完成程序要求。

2)理应实现:

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

因为自己做实验的IR1中断源有问题,所以这里程序只实现了当响应IR1中断时候,发光二极管的高四位灭(或亮),同时屏幕显示“IR1okandexit”。

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

实验三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

三、实验步骤

图3-1连接:

在实验板上将8253的D0~D7跟PC/XT的D0~D7连接,将8253CS信号线与Y0连接,RD、WR分别与IOR、IOW连接,中断源SP1与8253的CLK0连接,同时将OUT0接到LED灯的L0上面。

图3-2:

在实验板上将8253的D0~D7跟PC/XT的D0~D7连接,将8253CS信号线与Y0连接,RD、WR分别与IOR、IOW连接,8253的CLK0接1MHZ的中断源,采用级联方式,将OUT0与CLK1连接,同时将OUT1输出接到LED灯的L0上面。

四、参考程序

1、

ioportequ0ff00H-0280h

io8253kequioport+283h

io8253aequioport+280h

code

moval,10h;

设置8253通道0为工作方式0,二进制计数

movdx,io8253k

movdx,io8253a;

送计数初值为08H

moval,08h

lll:

inal,dx;

读计数初值

calldisp;

调显示子程序

pushdx

movah,06h

movdl,0ffh

popdx

jzlll

movah,4ch;

退出

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;

显示

movdl,0dh;

加回车符

movdl,0ah;

加换行符

ret;

子程序返回

dispendp

codeends

endstart

2、

ioportequ0C400H-0280h

io8253bequioport+281h

movdx,io8253k;

向8253写控制字

moval,36h;

使0通道为工作方式3

movax,1000;

写入循环计数初值1000

movdx,io8253a

outdx,al;

先写入低字节

moval,ah

后写入高字节

moval,76h;

设8253通道1工作方式3

movdx,io8253b

先写低字节

后写高字节

movah,4ch;

程序退出

5、实验结果

图3-1结果:

手动逐个输入单脉冲,计数值在屏幕上显示,同时用L0或逻辑笔观察OUT0电平变化,初始时OUT0为高电平,当输入4个脉冲时,OUT0变为低电平,当输入5个脉冲后OUT0变高电平,如此循环。

图3-2结果:

采用级联方式,计数初值设为1000*1000,用电平指示灯L0或逻辑笔观察OUT1输出电平的变化,实验结果是每过一秒,LED灯的显示由亮到灭,由灭到亮,然后反复循环亮灭交替变化。

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

 

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

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

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

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