微机接口实验Word格式.docx

上传人:b****4 文档编号:6998098 上传时间:2023-05-07 格式:DOCX 页数:34 大小:731.79KB
下载 相关 举报
微机接口实验Word格式.docx_第1页
第1页 / 共34页
微机接口实验Word格式.docx_第2页
第2页 / 共34页
微机接口实验Word格式.docx_第3页
第3页 / 共34页
微机接口实验Word格式.docx_第4页
第4页 / 共34页
微机接口实验Word格式.docx_第5页
第5页 / 共34页
微机接口实验Word格式.docx_第6页
第6页 / 共34页
微机接口实验Word格式.docx_第7页
第7页 / 共34页
微机接口实验Word格式.docx_第8页
第8页 / 共34页
微机接口实验Word格式.docx_第9页
第9页 / 共34页
微机接口实验Word格式.docx_第10页
第10页 / 共34页
微机接口实验Word格式.docx_第11页
第11页 / 共34页
微机接口实验Word格式.docx_第12页
第12页 / 共34页
微机接口实验Word格式.docx_第13页
第13页 / 共34页
微机接口实验Word格式.docx_第14页
第14页 / 共34页
微机接口实验Word格式.docx_第15页
第15页 / 共34页
微机接口实验Word格式.docx_第16页
第16页 / 共34页
微机接口实验Word格式.docx_第17页
第17页 / 共34页
微机接口实验Word格式.docx_第18页
第18页 / 共34页
微机接口实验Word格式.docx_第19页
第19页 / 共34页
微机接口实验Word格式.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机接口实验Word格式.docx

《微机接口实验Word格式.docx》由会员分享,可在线阅读,更多相关《微机接口实验Word格式.docx(34页珍藏版)》请在冰点文库上搜索。

微机接口实验Word格式.docx

①将计数器0设置为方式3,计数器初值为4,用手动逐个输入单脉冲,用LED灯观察OUT0电平变化。

将代码中划横线的局部填上相应的代码,并在实验报告中对所填代码做原理分析。

②如果令计数器0工作在方式0,其实验现象有什么不同,在报告中进展分析说明。

〔2〕实验2-2:

自设计实验

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

以LED灯作为输出显示。

经过实际验证后,在报告中画出接线图,并给出源代码。

〔1〕实验3-1:

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

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

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

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

〔2〕实验3-2:

自设计试验

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

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

二、实验设备〔环境〕及要求

Windows7系统下的HQFC集成开发环境,CZ-CIUS微机接口实验系统。

三、实验容与步骤

实验1-1

〔1〕实验容

PC机中断实验。

使用单次脉冲模拟中断产生。

验证中断处理程序,在显示器屏幕上显示一行预设定的字符串。

〔2〕主要步骤

①按接线图连好接线,调用程序源代码8259-1.asm,观察实验现象。

考虑PC机中断级联的方式,参看前面的原理说明〕。

接线图:

本实验只需要一根连线,一端接系统总线区的IRQ引脚,一端接到单脉冲单元的引脚上,接线如图1-1所示。

参考流程图:

程序源代码:

(1)

;

数据段

DATASEGMENT

MESSDB'

TPCAinterrupt!

'

0DH,0AH,'

$'

需要显示的数据,以'

完毕,方便系统调用。

0DH,0AH为换行

DATAENDS

代码段

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,CS;

系统调用25是设置中断

MOVDS,AX

MOVDX,OFFSETINT3;

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

MOVAX,250BH;

设置IRQ3对应的中断向量,25是系统调用功能

号,在AL里放中断向量号,0B*4=2C,是中断程序的地址所在位置,DS放中断程序的段

基址,DX放偏移地址

INT21H

中断设置完成

INAL,21H;

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

ANDAL,0F7H;

开放IRQ3中断,允许IRQ3的中断申请

OUT21H,AL;

写OCW1

MOVCX,10;

记中断循环次数为10次

STI;

允许中断发生

WAIT:

JMPWAIT

INT3:

MOVAX,DATA;

中断效劳程序

MOVDX,OFFSETMESS

MOVAH,09

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

DX中存放显示的字符串的地址

MOVAL,20H

发出EOI完毕中断到PC主片的地址20H

OUT20H,AL

LOOPNEXT;

LOOP每次跳转CX自动减1

INAL,21H;

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

ORAL,08H;

关闭IRQ3中断

OUT21H,AL;

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

STI;

置中断标志位

MOVAH,4CH;

返回DOS

NEXT:

IRET;

中断返回

CODEENDS

ENDSTART

(2)

DATASEGMENT

MESSDB'

DATAENDS

CODESEGMENT

ASSUMECS:

DATA

START:

MOVAX,CS

MOVDS,AX

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

MOVAX,2572H

INT21H

INAL,21H;

主片

ANDAL,0FBH;

11111011

OUT21H,AL

INAL,0A1H;

从片

OUT0A1H,AL

MOVCX,10;

记中断循环次数为10次

STI;

允许中断发生

WAIT:

JMPWAIT

INT3:

中断效劳程序

MOVDX,OFFSETMESS

MOVAH,09;

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

MOVAL,20H;

发出EOI完毕中断到PC主片的地址20H

OUT20H,AL;

关闭主片

OUT0A0H,AL;

关闭从片

LOOPNEXT

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

ORAL,04H;

关闭IRQ3中断

OUT21H,AL;

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

 

ORAL,04H;

关闭IRQ10中断

OUT0A1H,AL;

置中断标志位

MOVAH,4CH;

返回DOS

NEXT:

IRET;

中断返回

CODEENDS

ENDSTART

实验1-2

PC机中断嵌套实验。

使用单次脉冲模拟两个中断源的中断产生,填写

中断处理程序,体会中断嵌套的过程。

本实验接线图如图1-3所示,从单脉冲单元引出两根导线,一根接到系统总线单元区的IRQ引脚,一根接到USB核心卡的IRQ10端。

CODE,DS:

DATA

.386;

告诉汇编器生成intel80386指令集

CLI;

关中断

MOVAX,CS

设置中断向量表INT10

MOVDS,AX;

将CS段基址给DS

MOVDX,OFFSETINT10;

int10的偏移地址给DX

MOVAX,2572H

INT21H;

系统调用25号设置中断功能,中断号72H

设置完成

设置中断向量表INT3

MOVDX,OFFSETINT3

MOVAX,250BH

INT21H;

系统调用25号设置中断功能,中断号0BH

INAL,21H

ANDAL,0F3H;

11110011

OUT21H,AL;

写OCW1,开放2,3号端口

INAL,0A1H

ANDAL,0FBH;

11111011

OUT0A1H,AL;

写OCW1,开放10号端口

MOVCX,10STI

JMPWAIT;

CPU等待中断

INT10代码

INT10:

CLI;

PUSHAD

PUSHFD;

将各种存放器的值入栈,保存现场

MOVCX,10;

给CX赋值,循环10次

NEXT10_1:

MOVDX,31H

MOVAH,02H

系统调用02功能,DL为显示容ASCII31H:

1

MOVDX,30H

MOVAH,02H;

MOVDX,20H;

系统调用02功能,DL为显示容ASCII20H:

<

空格>

CALLDELAY1;

调用DELAY1子程序

LOOPNEXT10_1;

在CX>

0之前跳转,并使CX=CX-1

换行操作

MOVDX,0DH;

系统调用02功能,DL为显示容ASCII0DH:

归位键>

MOVDX,0AH;

系统调用02功能,DL为显示容ASCII0AH:

换行>

MOVAL,20H

OUT0A0H,AL

OUT20H,AL;

发送OCW2完毕到主片〔偶地址为20H〕和从片〔偶地址为A0H〕

POPFD

POPAD;

将之前入栈的恢复,恢复现场

STI;

开中断

IRET;

INT3代码

PUSHAD;

PUSHFD

NEXT3_1:

MOVDX,33H;

系统调用02功能,DL为显示容ASCII33H:

3

调用DELAY1子程序

LOOPNEXT3_1;

MOVDX,0DH;

MOVDX,0AH;

DELAY1PROC

MOVCX,0FH;

给CX赋值,循环15次

DELAY_LOOP1:

MOVBX,0FFFFH;

BX给成FFFFH,每次减一到0跳出循环以此来到达延时的效果

DELAY_LOOP2:

DECBX

NOP

JNZDELAY_LOOP2

LOOPDELAY_LOOP1

POPAD;

恢复现场

RET

DELAY1ENDP

实验1-3

扩展多中断源查询方式应用实验。

利用实验平台上8259控制器作为中断

扩展源,编写程序对8259控制器的中断请求进展处理。

接线图如图1-5所示,以逻辑电平开关模拟单次脉冲,开关置高电平,代表一次脉冲,8259模块相应管脚分别与系统总线、I/O地址单元和+5V相连。

源程序代码:

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

8259中断查询方式应用实验

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

I8259_1EQU2B0H;

8259的ICW1端口地址

I8259_2EQU2B1H;

8259的ICW2端口地址

I8259_3EQU2B1H;

8259的ICW3端口地址〔奇地址〕

I8259_4EQU2B1H;

8259的ICW4端口地址〔奇地址〕

O8259_1EQU2B1H;

8259的OCW1端口地址〔奇地址〕

O8259_2EQU2B0H;

8259的OCW2端口地址〔偶地址〕

O8259_3EQU2B0H;

8259的OCW3端口地址〔偶地址〕

DATASEGMENT

MES1DB'

YOUCANPLAYAKEYONTHEKEYBOARD!

'

0DH,0AH,24H

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*!

DATAENDS

STACKSSEGMENT

DB100DUP(?

STACKSENDS

STACK1SEGMENTSTACK

DW256DUP(?

STACK1ENDS

CODESEGMENT

DATA,SS:

STACKS,ES:

.386

MOVAX,DATA

MOVDS,AX

MOVES,AX;

DS,ES段基址都设为DATA

MOVAX,STACKS

MOVSS,AX;

SS段基址都设为STACKS

MOVDX,I8259_1;

初始化8259的ICW1

MOVAL,13H;

0001:

ICW10011:

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

00010011〔IR7-3=000:

无意义;

IR4=1:

ICW1标识位;

IR3=0:

边沿;

IR2=0:

IR1=1:

单片8259;

IR0=1:

需要ICW4〕

OUTDX,AL

MOVDX,I8259_2;

初始化8259的ICW2

MOVAL,0B0H;

10110000

MOVAL,03H;

ICW400000011

MOVDX,O8259_1;

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

MOVAL,00H;

翻开屏蔽位

写OCW1,翻开屏蔽位

QUERY:

MOVAH,1;

判断是否有按键按下

INT16H

JNZQUIT;

有按键那么退出

MOVDX,O8259_3;

向8259发送查询命令

MOVAL,0CH;

00001100

先向8259发送一个OCW3,其中查询位P为1,那么下一条指令中可以从同样的地址中取得一个查询字,得到的查询字中最高位〔D7〕为1代表有中断请求,第三位为请求的来源。

INAL,DX;

读出查询字

TESTAL,80H;

判断中断是否已响应

假设最高位为1,那么有中断请求

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:

MOVDS,AX

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发送中断完毕命令

向8259发OCW2,D5位为EOI中断完毕命令位,20H表示去除当前中断效劳存放器的ISn位,在非自动完毕中断方式中使用。

MOVAL,20H

OUTDX,AL

JMPQUERY

QUIT:

MOVAX,4C00H;

完毕程序退出

CODEENDS

实验2-1

(1)实验容

计数应用实验。

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

(2)主要步骤

运行源程序8254.asm,按接线图接线,实现计数器功能。

IO8254_MODEEQU283H;

8254控制存放器端口地址

IO8254_COUNT0EQU280H;

8254计数器0端口地址

DW256DUP(?

CODE

MOVDX,IO8254_MODE;

初始化8254工作方式

MOVAL,17H;

计数器0,方式300010111;

方式000010001:

11H

OUTDX,AL;

01只写低8位

MOVDX,IO8254_COUNT0;

装入计数初值

MOVAL,04H

返回到DOS

实验2-2

自设计实验。

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

以LED灯作为输出显示。

在实验2-1的根底上改写代码,重新设计电路,运行并观察验证结果正确性。

8254控制存放器端

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2