华北电力大学 接口实验参考程序.docx

上传人:b****1 文档编号:14575929 上传时间:2023-06-24 格式:DOCX 页数:22 大小:50.90KB
下载 相关 举报
华北电力大学 接口实验参考程序.docx_第1页
第1页 / 共22页
华北电力大学 接口实验参考程序.docx_第2页
第2页 / 共22页
华北电力大学 接口实验参考程序.docx_第3页
第3页 / 共22页
华北电力大学 接口实验参考程序.docx_第4页
第4页 / 共22页
华北电力大学 接口实验参考程序.docx_第5页
第5页 / 共22页
华北电力大学 接口实验参考程序.docx_第6页
第6页 / 共22页
华北电力大学 接口实验参考程序.docx_第7页
第7页 / 共22页
华北电力大学 接口实验参考程序.docx_第8页
第8页 / 共22页
华北电力大学 接口实验参考程序.docx_第9页
第9页 / 共22页
华北电力大学 接口实验参考程序.docx_第10页
第10页 / 共22页
华北电力大学 接口实验参考程序.docx_第11页
第11页 / 共22页
华北电力大学 接口实验参考程序.docx_第12页
第12页 / 共22页
华北电力大学 接口实验参考程序.docx_第13页
第13页 / 共22页
华北电力大学 接口实验参考程序.docx_第14页
第14页 / 共22页
华北电力大学 接口实验参考程序.docx_第15页
第15页 / 共22页
华北电力大学 接口实验参考程序.docx_第16页
第16页 / 共22页
华北电力大学 接口实验参考程序.docx_第17页
第17页 / 共22页
华北电力大学 接口实验参考程序.docx_第18页
第18页 / 共22页
华北电力大学 接口实验参考程序.docx_第19页
第19页 / 共22页
华北电力大学 接口实验参考程序.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

华北电力大学 接口实验参考程序.docx

《华北电力大学 接口实验参考程序.docx》由会员分享,可在线阅读,更多相关《华北电力大学 接口实验参考程序.docx(22页珍藏版)》请在冰点文库上搜索。

华北电力大学 接口实验参考程序.docx

华北电力大学接口实验参考程序

4.38259A中断控制实验

表1中断类型码及中断向量地址

主片中断类型码和中断向量地址

中断序号

IR0

IR1

IR2

IR3

IR4

IR5

IR6

(MIR6)

IR7(MIR7)

中断类型码

08H

09H

0AH

0BH

0CH

0DH

0EH

0FH

矢量地址

0020H~0023H

0024H~0027H

0028H~002BH

002CH~002FH

0030H~0033H

0034H~0037H

0038H~003BH

003CH~003FH

说明

未开放

未开放

未开放

未开放

串口

未开放

可用

可用

 

从片中断类型码和中断向量地址

中断序号

IR0

IR1

(SIR1)

IR2

IR3

IR4

IR5

IR6

IR7

中断类型码

30H

31H

32H

33H

34H

35H

36H

37H

矢量地址

00C0H~00C3H

00C4H~00C7H

00C8H~00CBH

00CCH~00CFH

00C0H~00C3H

00C4H~00C7H

00C8H~00CBH

00CCH~00CFH

说明

开放

4.3.3

1.8259单次实验

(1)实验步骤:

1)按图4-17所示连接实验线路

2)编写实验程序,经编译、链接无误后装入系统。

3)运行程序,重复按单次脉冲开关KK1+,记录实验

结果或看到的现象。

(2)实验参考程序清单:

SSTACKSEGMENTSTACK

DW32DUP(?

SSTACKENDS

CODESEGMENT

ASSUMECS:

CODE

START:

CLI

PUSHDS

MOVAX,0000H

MOVDS,AX

MOVAX,OFFSETMIR7;取中断入口地址

MOVSI,003CH;中断矢量地址

MOV[SI],AX;填IRQ7的偏移矢量

MOVAX,SEGMIR7;段地址

MOVSI,003EH

POPDS

;初始化主片8259

MOVAL,11H

OUT20H,AL;ICW1

MOVAL,08H

OUT21H,AL;ICW2

MOVAL,04H

OUT21H,AL;ICW3

MOVAL,01H

OUT21H,AL;ICW4

MOVAL,7FH

OUT21H,AL;主8259OCW1

STI

AA1:

NOP

JMPAA1

MIR7:

CALLDELAY

MOVAX,0137H

INT10H;显示字符7

MOVAX,0120H

INT10H

MOVAL,20H

OUT20H,AL;中断结束命令

IRET

DELAY:

PUSHCX

MOVCX,0F00H

AA0:

PUSHAX

POPAX

LOOPAA0

POPCX

RET

CODEENDS

ENDSTART

4)改变接线方式,将KK1+接入MIR6,修改程序,重复按单次脉冲开关KK1+,使显示屏显示字符”6”。

记录实验结果或看到的现象。

SSTACKSEGMENTSTACK

DW32DUP(?

SSTACKENDS

CODESEGMENT

ASSUMECS:

CODE

START:

CLI

PUSHDS

MOVAX,0000H

MOVDS,AX

MOVAX,OFFSETMIR6;取中断入口地址

MOVSI,0038H;中断矢量地址

MOV[SI],AX;填IRQ7的偏移矢量

MOVAX,SEGMIR6;段地址

MOVSI,003AH

POPDS

;初始化主片8259

MOVAL,11H

OUT20H,AL;ICW1

MOVAL,08H

OUT21H,AL;ICW2

MOVAL,04H

OUT21H,AL;ICW3

MOVAL,01H

OUT21H,AL;ICW4

MOVAL,0BFH

OUT21H,AL;主8259OCW1

STI

AA1:

NOP

JMPAA1

MIR6:

CALLDELAY

MOVAX,0136H

INT10H;显示字符7

MOVAX,0120H

INT10H

MOVAL,20H

OUT20H,AL;中断结束命令

IRET

DELAY:

PUSHCX

MOVCX,0F00H

AA0:

PUSHAX

POPAX

LOOPAA0

POPCX

RET

CODEENDS

ENDSTART

思考题:

分析中断响应过程,主程序如何调用中断服务程序的

2.8259级联实验

1)按图4-17所示连接实验线路

2)编写实验程序,经编译、链接无误后装入系统。

3)运行程序,重复按单次脉冲开关KK1+,记录实验

结果或看到的现象。

4)实验参考程序清单:

SSTACKSEGMENTSTACK

DW32DUP(?

SSTACKENDS

CODESEGMENT

ASSUMECS:

CODE

START:

PUSHDS

MOVAX,0000H

MOVDS,AX

MOVAX,OFFSETMIR7;取中断入口地址

MOVSI,003CH;中断矢量地址

MOV[SI],AX;填IRQ7的偏移矢量

MOVAX,SEGMIR7;段地址

MOVSI,003EH

MOV[SI],AX;填IRQ7的段地址矢量

MOVAX,OFFSETSIR1

MOVSI,00C4H

MOV[SI],AX

MOVAX,SEGSIR1

MOVSI,00C6H

MOV[SI],AX

CLI

POPDS

;初始化主片8259

MOVAL,11H

OUT20H,AL;ICW1

MOVAL,08H

OUT21H,AL;ICW2

MOVAL,04H

OUT21H,AL;ICW3

MOVAL,01H

OUT21H,AL;ICW4

;初始化从片8259

MOVAL,11H

OUT0A0H,AL;ICW1

MOVAL,30H

OUT0A1H,AL;ICW2

MOVAL,02H

OUT0A1H,AL;ICW3

MOVAL,01H

OUT0A1H,AL;ICW4

MOVAL,0FDH

OUT0A1H,AL;OCW1=11111101

MOVAL,6BH

OUT21H,AL;主8259OCW1

STI

AA1:

NOP

JMPAA1

MIR7:

CALLDELAY

MOVAX,014DH

INT10H;M

MOVAX,0137H

INT10H;显示字符7

MOVAX,0120H

INT10H

MOVAL,20H

OUT20H,AL;中断结束命令

IRET

SIR1:

CALLDELAY

MOVAX,0153H

INT10H;S

MOVAX,0131H

INT10H;显示字符1

MOVAX,0120H

INT10H

MOVAL,20H

OUT0A0H,AL

OUT20H,AL

IRET

DELAY:

PUSHCX

MOVCX,0F00H

AA0:

PUSHAX

POPAX

LOOPAA0

POPCX

RET

CODEENDS

ENDSTART

实验现象分析:

M7S1:

MIR7中断请求先到

S1M7:

SIR1中断请求先送到或MIR7与SIR1中断请求信号同时到,但SIR1优先级高,先响应SIR1中断请求

MS17:

M7S1:

MIR7中断请求先到,但未执行完时,SIR1中断请求送到,其优先级高,打断MIR7中断服务程序

3.8259综合实验

SSTACKSEGMENTSTACK

DW32DUP(?

SSTACKENDS

CODESEGMENT

ASSUMECS:

CODE

START:

CLI

PUSHDS

MOVAX,0000H

MOVDS,AX

MOVAX,OFFSETMIR7;取中断入口地址

MOVSI,003CH;中断矢量地址

MOV[SI],AX;填IRQ7的偏移矢量

MOVAX,SEGMIR7;段地址

MOVSI,003EH

POPDS

;初始化主片8259

MOVAL,11H

OUT20H,AL;ICW1

MOVAL,08H

OUT21H,AL;ICW2

MOVAL,04H

OUT21H,AL;ICW3

MOVAL,01H

OUT21H,AL;ICW4

MOVAL,7FH

OUT21H,AL;主8259OCW1

STI

MOVSI,10

AA1:

MOVCX,10;显示字符个数10送入CX

MOVBL,30H;显示字符‘0’,填入字符0的编码

MOVAH,01H;显示一个字符

A1:

MOVAL,BL

INT10H

INCBL;显示下一个字符

PUSHCX

MOVCX,0FFFFH

A2:

LOOPA2;延时

POPCX

DECCX

JNZA1

JMPAA1;循环显示0~9

MIR7:

CALLDELAY

MOVAX,014FH

INT10H;显示字符O

MOVAX,014BH

INT10H;显示字符K

MOVAL,20H

OUT20H,AL;中断结束命令

DECSI

JNZAA2

CLI

MOVAL,0FFH

OUT21H,AL

AA2:

IRET

DELAY:

PUSHCX

MOVCX,0F00H

AA0:

PUSHAX

POPAX

LOOPAA0

POPCX

RET

CODEENDS

ENDSTART

 

4.48254定时/计数器应用实验

1.计数应用实验

编写程序,用开关模拟事件,用8254的计数功能进行计数。

将8254的计数器0设置为方式0,计数初值为十进制数3,单次脉冲KK1+接入CLK0作为输入,OUT0连接MIR7,每当KK1+按动4次后产生中断请求,在屏幕上显示一个字符“M”。

实验步骤:

(1)实验接线如图4-21所示;

(2)编写实验程序,经编译、链接无误后装入系统;

(3)运行程序,按动KK1+产生单次脉冲,观察实验现象;

(4)改变计数值,验证8254的计数功能。

2.修改内容1—计数应用实验程序,完成按动开关3次后产生中断,屏幕显示“M”。

3.修改内容1—计数应用实验程序,要求屏幕显示第几次中断中断?

参考程序:

A8254EQU06C0H

B8254EQU06C2H

C8254EQU06C4H

CON8254EQU06C6H

SSTACKSEGMENTSTACK

DW32DUP(?

SSTACKENDS

CODESEGMENT

ASSUMECS:

CODE,SS:

SSTACK

START:

PUSHDS

MOVAX,0000H

MOVDS,AX

MOVAX,OFFSETIRQ7;取中断入口地址

MOVSI,003CH;中断矢量地址

MOV[SI],AX;填IRQ7的偏移矢量

MOVAX,CS;段地址

MOVSI,003EH

MOV[SI],AX;填IRQ7的段地址矢量

CLI

POPDS

;初始化主片8259

MOVAL,11H

OUT20H,AL;ICW1

MOVAL,08H

OUT21H,AL;ICW2

MOVAL,04H

OUT21H,AL;ICW3

MOVAL,01H

OUT21H,AL;ICW4

MOVAL,6FH;OCW1

OUT21H,AL

;8254

MOVDX,CON8254

MOVAL,10H;计数器0,方式0

OUTDX,AL

MOVDX,A8254

MOVAL,04H

OUTDX,AL

STI

AA1:

JMPAA1

IRQ7:

MOVDX,A8254

MOVAL,04H

OUTDX,AL

MOVAX,014DH

INT10H;显示字符M

MOVAX,0120H

INT10H

MOVAL,20H

OUT20H,AL;中断结束命令

IRET

CODEENDS

ENDSTART

2定时应用实验

1)编写程序,应用8254的定时功能,将8254的计数器0设置为方式3,用信号源1MHz作为CLK0时钟,OUT0输出周期为60ms的方波接到发光二极管上,运行程序,观察发光二极管状态。

(时钟源和GATE信号实验箱内部已经接好线)

发光二极管点亮实验程序清单

A8254EQU06C0H

B8254EQU06C2H

C8254EQU06C4H

CON8254EQU06C6H

SSTACKSEGMENTSTACK

DW32DUP(?

SSTACKENDS

CODESEGMENT

ASSUMECS:

CODE

START:

MOVDX,CON8254;8254

MOVAL,36H;计数器0,方式3

OUTDX,AL

MOVDX,A8254

MOVAL,0E8H

OUTDX,AL

MOVAL,03H

OUTDX,AL

AA1:

JMPAA1

CODEENDS

ENDSTART

1)编写程序,应用8254的定时功能,实现一个秒表计时并在屏幕上显示。

(时钟源和GATE信号实验箱内部已经接好线)

A8254EQU06C0H

B8254EQU06C2H

C8254EQU06C4H

CON8254EQU06C6H

SSTACKSEGMENTSTACK

DW32DUP(?

SSTACKENDS

CODESEGMENT

ASSUMECS:

CODE

START:

CLI

PUSHDS

MOVAX,0000H

MOVDS,AX

MOVAX,OFFSETMIR7;取中断入口地址

MOVSI,003CH;中断矢量地址

MOV[SI],AX;填IRQ7的偏移矢量

MOVAX,SEGMIR7;段地址

MOVSI,003EH

POPDS

;初始化主片8259

MOVAL,11H

OUT20H,AL;ICW1

MOVAL,08H

OUT21H,AL;ICW2

MOVAL,04H

OUT21H,AL;ICW3

MOVAL,01H

OUT21H,AL;ICW4

MOVAL,7FH

OUT21H,AL;主8259OCW1

STI

MOVDX,CON8254;8254

MOVAL,36H;计数器0,方式3

OUTDX,AL

MOVDX,A8254

MOVAL,0E8H

OUTDX,AL

MOVAL,03H

OUTDX,AL

MOVBL,30H

MOVDX,CON8254;8254

MOVAL,50H;计数器1,方式0,01010000

OUTDX,AL

MOVDX,B8254

MOVAL,9H

AA1:

NOP

JMPAA1

MIR7:

MOVDX,B8254

MOVAL,9H

CALLDELAY

INCBL

MOVAL,BL

MOVAH,01H

INT10H;显示字符1

MOVAX,0120H

INT10H

MOVAL,20H

OUT20H,AL;中断结束命令

IRET

DELAY:

PUSHCX

MOVCX,0F00H

AA0:

PUSHAX

POPAX

LOOPAA0

POPCX

RET

CODEENDS

ENDSTART

 

1.基本输入输出实验。

编写程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。

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

接线图如下:

SSTACKSEGMENTSTACK

DW32DUP(?

SSTACKENDS

CODESEGMENT

ASSUMECS:

CODE

START:

MOVDX,0646H

MOVAL,90H

OUTDX,AL

AA1:

MOVDX,0640H

INAL,DX

CALLDELAY

MOVDX,0642H

OUTDX,AL

JMPAA1

DELAY:

PUSHCX

MOVCX,0F00H

AA2:

PUSHAX

POPAX

LOOPAA2

POPCX

RET

CODEENDS

ENDSTART

 

2.流水灯显示实验。

编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。

接线图如下:

3.修改流水灯显示程序,改变流水灯的显示方式,每次显示2个指示灯。

4.按下图接线编程,如何使数码管循环显示0~9.请编程。

定义数据区:

TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH.;七段显示码表

代码段部分程序:

MOVDX,0646H.;8255初始化,方式控制字

MOVAL,80H;10000000

OUTDX,AL

MOVDX,0642H

MOVAL,0

OUTDX,AL;B口输出0

NEXT0:

MOVCX,10

LEABX,TABLE

NEXT1:

MOVAL,[BX]

MOVDX,0640H;从8255A口输出

OUTDX,AL

CALLDELL延时程序

INCBX

DECCX

JNZNEXT1

JMPNEXT0

DELL:

PUSHAX;延时1s

MOVCX,0100

T1:

MOVAX,0560

T2:

DECAX

JNET2

LOOPT1

POPAX

RET

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

当前位置:首页 > 高等教育 > 军事

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

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