微机原理与接口技术 实验报告Word文档格式.docx

上传人:b****6 文档编号:19332307 上传时间:2023-01-05 格式:DOCX 页数:22 大小:432.82KB
下载 相关 举报
微机原理与接口技术 实验报告Word文档格式.docx_第1页
第1页 / 共22页
微机原理与接口技术 实验报告Word文档格式.docx_第2页
第2页 / 共22页
微机原理与接口技术 实验报告Word文档格式.docx_第3页
第3页 / 共22页
微机原理与接口技术 实验报告Word文档格式.docx_第4页
第4页 / 共22页
微机原理与接口技术 实验报告Word文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

微机原理与接口技术 实验报告Word文档格式.docx

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

微机原理与接口技术 实验报告Word文档格式.docx

MOVAX,CS

MOVDS,AX

MOVDX,OFFSETINT10

MOVAX,2572H;

设置IRQ10对应的中断向量

INT21H

INAL,21H;

读取中断屏蔽寄存器

ANDAL,0F3H;

开放IRQ3中断和从片

OUT21H,AL

INAL,0A1H;

从片的中断屏蔽寄存器

ANDAL,0FBH;

开放IRQ10中断

OUT0A1H,AL

MOVCX,10

STI

WAIT:

JMPWAIT

INT10:

MOVAX,DATA;

中断服务程序

MOVDS,AX

MOVDX,OFFSETMESS

MOVAH,09;

在屏幕上显示每次中断的提示信息

INT21H

MOVAL,20H;

发出EOI结束中断到PC内主片的地址20H

OUT20H,AL

LOOPNEXT

INAL,21H;

读中断屏蔽寄存器,获取中断屏蔽字

ORAL,08H;

关闭IRQ3中断

OUT21H,AL;

将中断屏蔽字送到中断屏蔽寄存器

STI;

置中断标志位

MOVAH,4CH;

返回DOS

NEXT:

IRET;

中断返回

CODEENDS

ENDSTART

调用程序代码,观察实验现象,屏幕显示截图如下:

2.实验1-2:

PC机内中断嵌套实验

实验要求:

(1)按接线图连好接线,调用程序源代码8259-2.asm,做如下操作,观察屏幕显示结果并分析产生该现象的原因:

A.按下连接IRQ的单次脉冲按键,屏幕上会显示10个3,在屏幕上10次显示未结束之前,按下连接IRQ10的单次脉冲按键,观察现象;

按下IRQ时屏幕上会显示10个3,此时按下IRQ10,会直接在屏幕上显示10个10,然后结束后再显示剩余的3B.按下连接IRQ10的单次脉冲按键,屏幕上会显示10个10,在屏幕上10次显示未结束之前,按下连接IRQ3的单次脉冲按键,观察现象。

在屏幕上显示10个10的过程中按下IRQ无反应,等到10个10全部显示完毕后才再显示10个3

出现这种现象的原因是IRQ10的中断优先级高于IRQ3

屏幕截图:

(2)程序所有代码及注释:

CODE,DS:

.386

CLI

MOVAX,CS

MOVDS,AX

MOVDX,OFFSETINT10;

采用间接修改法,设置中断向量

MOVDX,OFFSETINT3;

MOVAX,250BH;

设置IRQ3对应的中断向量

INAL,21H;

读中断屏蔽寄存器,21H是该寄存器的端口号

ANDAL,0F3H;

开放中断,允许从片和IRQ3

读中断屏蔽寄存器,0A1H是该寄存器的端口

ANDAL,0FBH;

开放中断IRQ10

MOVCX,10;

记中断循环次数为10次

CLI;

PUSHAD

PUSHFD

NEXT10_1:

MOVDX,31H

MOVAH,02H;

输出DL

MOVDX,30H

MOVAH,02H;

MOVDX,20H;

发出EOI结束中断到PC内主片的地址20H

输出DL,3

CALLDELAY1;

等待

LOOPNEXT10_1

MOVDX,0DH

输出DL,‘’

MOVDX,0AH;

发出EOI结束中断到PC内从片占用的是0A0H端口

输出DL,发生中断后输出10

MOVAL,20H;

OUT0A0H,AL;

从片

OUT20H,AL;

主片

POPFD;

关中断,出栈,返回

POPAD

IRET

INT3:

PUSHAD

PUSHFD

NEXT3_1:

MOVDX,33H

LOOPNEXT3_1

MOVDX,0DH

发生中断输出DL,10

MOVAL,20H

OUT0A0H,AL

出栈,关中断,返回

DELAY1PROC;

控制等待部分

MOVCX,0FH

DELAY_LOOP1:

MOVBX,0FFFFH

DELAY_LOOP2:

DECBX

NOP

JNZDELAY_LOOP2

LOOPDELAY_LOOP1

POPFD

RET

DELAY1ENDP

3.实验1-3:

扩展多中断应用实验

调用程序源码文件8259-3.asm,在程序源代码中划横线的位置,请按照所学8259工作原理填写并验证,然后将所填内容写在实验报告中,并分析所填数据的形成原理。

程序代码及与案例说明:

;

*****************************************************************

8259中断查询方式应用实验

请根据所学原理推断横线处需填写的源代码

I8259_1EQU2B0H;

8259的ICW1端口地址

I8259_2EQU2B1H;

8259的ICW2端口地址

I8259_3EQU2B1H;

8259的ICW3端口地址,ICW3,ICW4,OCW1都写入奇地址中

I8259_4EQU2B1H;

8259的ICW4端口地址

O8259_1EQU2B1H;

8259的OCW1端口地址

O8259_2EQU2B0H;

8259的OCW2端口地址,OCW2,OCW3写入偶地址

O8259_3EQU2B0H;

8259的OCW3端口地址

MES1DB'

YOUCANPLAYAKEYONTHEKEYBOARD!

'

0DH,0AH,24H

MES2DDMES1

MESS1DB'

HELLO!

THISISINTERRUPT*0*!

0DH,0AH,'

MESS2DB'

THISISINTERRUPT*1*!

MESS3DB'

THISISINTERRUPT*2*!

MESS4DB'

THISISINTERRUPT*3*!

MESS5DB'

THISISINTERRUPT*4*!

MESS6DB'

THISISINTERRUPT*5*!

MESS7DB'

THISISINTERRUPT*6*!

MESS8DB'

THISISINTERRUPT*7*!

STACKSSEGMENT

DB100DUP(?

STACKSENDS

STACK1SEGMENTSTACK

DW256DUP(?

STACK1ENDS

DATA,SS:

STACKS,ES:

MOVAX,DATA

MOVES,AX

MOVAX,STACKS

MOVSS,AX

MOVDX,I8259_1;

初始化8259的ICW1

MOVAL,13H;

边沿触发、单片8259、需要ICW4,查表得到控制字

OUTDX,AL

MOVDX,I8259_2;

初始化8259的ICW2

MOVAL,0B0H

MOVAL,03H

MOVDX,O8259_1;

初始化8259的中断屏蔽操作命令字

MOVAL,000H;

打开屏蔽位,将全部屏蔽位打开

QUERY:

MOVAH,1;

判断是否有按键按下

INT16H

JNZQUIT;

有按键则退出

MOVDX,O8259_3;

向8259发送查询命令

MOVAL,6CH;

01101100

INAL,DX;

读出查询字

TESTAL,80H;

判断中断是否已响应,响应后对应位置0

JZQUERY;

没有响应则继续查询

ANDAL,07H

CMPAL,00H

JEIR0ISR;

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

CMPAL,01H

JEIR1ISR;

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

CMPAL,02H

JEIR2ISR;

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

CMPAL,03H

JEIR3ISR;

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

CMPAL,04H

JEIR4ISR;

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

CMPAL,05H

JEIR5ISR;

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

CMPAL,06H

JEIR6ISR;

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

CMPAL,07H

JEIR7ISR;

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

JMPQUERY

IR0ISR:

MOVDX,OFFSETMESS1;

显示提示信息

MOVAH,09

JMPEOI

IR1ISR:

MOVDX,OFFSETMESS2;

IR2ISR:

MOVDX,OFFSETMESS3;

IR3ISR:

MOVDX,OFFSETMESS4;

IR4ISR:

MOVDX,OFFSETMESS5;

IR5ISR:

MOVDX,OFFSETMESS6;

IR6ISR:

MOVDX,OFFSETMESS7;

IR7ISR:

MOVDX,OFFSETMESS8;

EOI:

MOVDX,O8259_2;

向8259发送中断结束命令

MOVAL,20H;

00100000

OUTDX,AL

QUIT:

MOVAX,4C00H;

结束程序退出

实验二8254定时/计数器应用实验

1.掌握8254的工作方式及应用编程。

2.掌握8254典型应用电路的接法。

1.计数应用实验。

应用8254的计数功能,用开关模拟计数,使每当按照计数初值的次数按动单次脉冲后,观察LED的变化。

2.自设计实验。

参考实验一的程序,编写程序,以1MHz为时钟源,应用8254的定时功能,将其分频为1Hz。

以LED灯作为输出显示。

1.实验2-1:

计数器应用实验

程序代码填补:

IO8254_MODEEQU283H;

8254控制寄存器端口地址

IO8254_COUNT0EQU280H;

8254计数器0端口地址

CODE

MOVDX,IO8254_MODE;

初始化8254工作方式

MOVAL,16H;

计数器0,方式3,填入控制字:

00010110

MOVDX,IO8254_COUNT0;

装入计数初值

MOVAL,04H;

初值为4,04H

返回到DOS

此时按两次后灯亮,再按两次后灯灭。

如果令计数器0工作在方式0,其实验现象为:

按五次后灯变亮,之后不在熄灭。

2.实验2-2:

自设计实验

参考实验一的程序和接线,自行设计接线图以及程序代码,实现,以1MHz为时钟源,应用8254的定时功能,将其分频为1Hz。

使用计数器0和计数器1两个计数器,设置其均工作于方式3,计数初值为1000,通过两个计数器级联,1000*1000=10^6达到分频的目的。

程序代码如下:

IO8254_COUNT1EQU281H;

8254计数器1端口地址

MOVAL,37H;

计数器0,方式300110111

MOVDX,IO8254_COUNT0;

MOVAX,03E8H;

1000D=0000001111101000B=03E8H

MOVAL,03H

OUTDX,AL

MOVAL,AH

OUTDX,AL

MOVDX,IO8254_MODE;

MOVAL,76H;

计数器1,方式301110110

OUTDX,AL

MOVDX,IO8254_COUNT1;

MOVAX,03E8H;

MOVAL,03H

MOVAX,4C00H;

INT21H

接线图如下:

实验三8255并口控制器应用实验

1.掌握8255的工作方式及应用编程。

2.掌握8255典型应用电路的接法。

1.基本输入输出实验。

编写程序,自行设定A、B、C三个口中某一个口为输入,某一个为输出,完成拨动开关到数据灯的数据传输。

要求只要开关拨动,数据灯的显示就改变。

自行设计能实现A口工作在方式一输入,B口工作在方式一输出的电路并完成程序的编制和在实验箱上的验证,要求,利用控制信号控制数据的输入。

三、实验步骤

1.实验3-1:

可编程并行接口8255方式0应用实验

根据原理补全代码中缺失的部分,根据自己的设计,补全接线图,并将代码和对应的接线图写在实验报告中。

说明:

运行源程序8255.asm,按接线图接线,实现并行数据传输功能。

设定B口为输入,接到开关上,A口为输出接到LED灯上。

程序源代码:

IO8255_MODEEQU28BH

IO8255_AEQU288H

IO8255_BEQU289H

IO8255_CEQU28AH

CODE

MOVDX,IO8255_MODE;

8255初始化

MOVAL,90H;

B口输入,A口输出10010000

INOUT:

MOVDX,IO8255_B;

读入数据

INAL,DX

MOVDX,IO8255_A;

输出数据

OUTDX,AL

MOVDL,0FFH;

判断是否有按键

MOVAH,06H

JZINOUT;

若无,则继续

MOVAH,4CH;

否则返回

2.实验3-2:

自设计试验

自行设计完成本实验,要求,8255A口工作在方式一输入,B口工作在方式一输出,利用方式一的控制信号,使数据从输入到输出人为可控。

在实验报告中画出接线图,并说明设计的原理,给出对应的程序代码。

实现方案:

方式一的控制信号即为PC2和PC4,将PC2和PC4分别接到高低电平,控制A输入,观察B输出的改变。

MOVAL,0B4H;

A口方式一输入,B口方式一输出,10110100

MOVDX,IO8255_A;

MOVDX,IO8255_B;

OUTDX,AL

实验结果:

只有PC4和PC2均为低电平时,改变A的输入,B才会有变化。

实验四8251串口控制器应用实验

(1)掌握8251的工作方式及应用。

(2)学习PC机串口的操作方法。

与PC串口通讯应用实验。

编写程序完成PC机串口与实验装置串口的通讯,由PC机串口1发数,实验装置串口接收。

3、实验步骤

从键盘输入一个字符,将其ASCII码加1后发送出去,再接收回来在屏幕上显示,实现自发自收。

1)运行源程序8251.asm,按接线图接线,实现串行数据传输功能。

2)图示电路8251的控制口地址为2B9H,数据口地址为2B8H。

3)8254计数器的计数初值=时钟频率/(波特率×

波特率因子),这里的时钟频率接1MHz,波特率若选1200,波特率因子若选16,则计数器初值为52。

4)收发采用查询方式。

屏幕显示结果截图:

实验六键盘扫描及显示实验(综合)

1.学习按键扫描的原理及电路接法。

2.掌握利用8255完成按键扫描及显示。

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

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

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

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