微机原理与接口技术楼顺天第二版第十章习题解答.docx

上传人:b****7 文档编号:9798499 上传时间:2023-02-06 格式:DOCX 页数:15 大小:22.90KB
下载 相关 举报
微机原理与接口技术楼顺天第二版第十章习题解答.docx_第1页
第1页 / 共15页
微机原理与接口技术楼顺天第二版第十章习题解答.docx_第2页
第2页 / 共15页
微机原理与接口技术楼顺天第二版第十章习题解答.docx_第3页
第3页 / 共15页
微机原理与接口技术楼顺天第二版第十章习题解答.docx_第4页
第4页 / 共15页
微机原理与接口技术楼顺天第二版第十章习题解答.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

微机原理与接口技术楼顺天第二版第十章习题解答.docx

《微机原理与接口技术楼顺天第二版第十章习题解答.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术楼顺天第二版第十章习题解答.docx(15页珍藏版)》请在冰豆网上搜索。

微机原理与接口技术楼顺天第二版第十章习题解答.docx

微机原理与接口技术楼顺天第二版第十章习题解答

微机原理及接口技术(楼顺天第二版)习题解答

第10章并行接口芯片8255A应用设计

10.1答:

方式0是基本的输入/输出,端口A、B、C都可以作为输入输出端口。

适用于CPU及非智能I/O设备的数据传输;

方式1是有联络信号的输入/输出,端口A、B都可以设定成该方式,此时三个端口的信号线分成了A、B两组,

用作A组的联络信号,

用作B组的联络信号。

适用于高速CPU及低速I/O设备的数据传输;

方式2是双向传输,只有A组端口可以设定成该方式,PC6~PC7用作输出的联络信号,PC4~PC5用作输入的联络信号,PC3用作中断请求信号。

适用于双机之间数据的并行传送。

10.2答:

(1)PC6~PC7用作输出的联络信号,PC4~PC5用作输入的联络信号,PC3用作中断请求信号,PC0~PC2用作基本I/O。

(2)PC4~PC5用作输入的联络信号,PC3用作中断请求信号,PC1~PC2用作输入的联络信号,PC0用作中断请求信号。

PC6~PC7用作基本I/O。

(3)PC6~PC7用作输出的联络信号,PC4~PC5用作输入的联络信号,PC3用作中断请求信号,PC1~PC2用作输入的联络信号,PC0用作中断请求信号。

(4)

由外设(输入设备)提供的选题脉冲,表示将外设送来的数据锁存到端口寄存器;

IBF:

是8255A向外设

信号的响应,表示端口寄存器已经收到数据,但尚未被CPU取走(CPU通过读命令从端口寄存器取走数据后,IBF自动变为0);

由8255A向外设(输出设备)发出的数据准备好信号,表示CPU已经将数据写入端口寄存器;

外设向8255A发回的响应,其有效表示外设已经将数据从端口寄存器取走,该信号使得8255A的

变高,CPU可以再一次向8255A发送数据;

INTE:

是8255A内的中断允许触发器,可以通过对C口的PC6,PC4,PC2通过按位置位/复位命令字设定;

INTR:

是8255A进行选通输入输出时的中断请求信号,A口的选通输入输出用PC3,B口的选通输入输出用PC0。

10.3答:

8255A工作在方式1输入或输出时,中断请求信号从C口的PC3引出;输入中断由INTEA(PC4通过按位置位/复位命令字设定)和IBF相及产生,输出中断由INTEA(PC6通过按位置位/复位命令字设定)和

相及产生;中断屏蔽由PC6,PC4通过按位置位/复位命令字设定。

10.4答:

1,1,1

10.5答:

A口+PC3~PC7;B口+PC0~PC2。

10.6答:

1

10.7答:

0

10.8答:

PC3~PC7

10.9答:

1~3

10.10答:

中断允许触发器,PC6,PC4

10.11答:

(1)D

(2)A,D(3)D(4)D(5)A(6)A(7)B

10.12答:

MOVDX,303H

MOVAL,10000011B

OUTDX,AL

MOVDX,302H

INAL,DX

MOVCL,4

SHLAL,CL

OUTDX,AL

10.13答:

(1)根据题目给出的端口地址,在8086最小方式系统下,8255A及K15~K0以及4个发光二极管的连接图如下所示。

(2)编写程序段实现连续检测并显示开关量中“1”的个数。

开关量中“1”的个数以二进制形式显示。

MOVDX,8F07H

MOVAL,10010010B;端口A、B方式0输入,端口C方式0输出

OUTDX,AL

NEXT:

MOVDX,8F03H;从端口B读取高8位开关量

INAL,DX

XCHGAL,AH

MOVDX,8F01H;从端口A读取低8位开关量

INAL,DX

MOVBX,AX

XORAL,AL

MOVCX,16

CLC

L2:

SHLBX,1

JNCL1

INCAL

L1:

LOOPL2

MOVDX,8F05H;从端口C送出

OUTDX,AL

JMPNEXT;进行下一次检测

10.14答:

8255A及IBMPC机总线的连接框图如下:

可将8255A的端口A作为要产生的信号的输出端口,设定为方式0输出,端口B和端口C不做使用,均设定为方式0输出。

程序段如下:

MOVDX,263H;设定8255A的工作方式

MOVAL,10000000B

OUTDX,AL

MOVDX,260H;产生指定信号

XORAL,AL

OUTDX,AL

REP:

MOVAL,80H

MOVCX,7

REP1:

OUTDX,AL

SARAL,1

LOOPREP1

MOVCX,8

REP2:

SHLAL,1

OUTDX,AL

LOOPREP2

JMPREP

10.15答:

由于开关量是16为数据,故可以将8255A的PA端口及PB端口设定为方式0,分别读取开关量的低八位和高八位,以PC端口的低三位控制八选一电路的输出依次从X0到X7,使用PC端口的高四位输出最大开关量的序号(该序号为1~8),控制发光二极管的亮灭以指示序号。

连接图如下:

(下面电路中,当八选一输出Y有效时,能选通1组16位开关量数据)

程序段如下:

MOVDX,263H

MOVAL,10010010B;设定工作方式,PA,PB均工作于方式0,PA、PB为

;输入,PC为输出

OUTDX,AL

MOVCX,8

XORBX,BX

MOVSI,0;SI表示输入开关量的序号

ST1:

MOVDX,262H

MOVAL,SI

OUTDX,AL

MOVDX,260H;将开关量数据的低八位读入AL

INAL,DX

MOVAH,AL

MOVDX,261H;将开关量数据的高八位读入AL

INAL,DX

XCHGAH,AL

CMPBX,AX

JANEXT

MOVBX,AX;将当前最大值保存在BX中

MOVDI,SI;将当前最大值的序号保存到DI中

NEXT:

INCSI

LOOPST1

MOVAX,DI

MOVCL,4

ROLAL,CL;将最大值的序号(4位)移至AL的高四位

MOVDX,262H

OUTDX,AL;PC的高四位输出最大值序号

10.16答:

根据题图,8255A的端口地址为3F0H~3F6H中的4个偶地址端口。

中断向量表设置和8255A初始化程序段如下:

;设置A口的中断向量

PUSHDS

MOVAX,0

MOVDS,AX

MOVSI,4AH

SHLSI,1

SHLSI,1

MOV[SI],OFFSETSERV;中断服务程序偏移地址存入向量表

ADDSI,2

MOVAX,CS

MOV[SI],AX;中断服务程序的段地址存入向量表

POPDS

;设置8255A的工作方式

MOVDX,3F6H

MOVAL,10111001B;A口方式1,输入;B口方式0,输出;C口输入

OUTDX,AL

;设置INTEA=1

MOVAL,00001001B;PC4置位

OUTDX,AL

10.17答:

根据题图,8255A的端口地址为180H~187H。

PC0输出,PC5和PC6输入。

A口输出,所以A口方式0,输出;B口方式0,输出;C口高半部输入,C口低半部输出。

方式命令字为10001000B。

程序段为:

;设置8255A的工作方式

MOVDX,186H;控制字口地址送DX

MOVAL,10001000B;A口方式0,输出;B口方式0,输出;

;C口高半部输入,C口低半部输出

OUTDX,AL

;查询C口PC5、PC6

MOVDX,184H;C口地址送DX

CHECK:

INAL,DX

TESTAL,01100000B

JNZCHECK

;输出CHAR变量数据,数据送到8255A的A端口寄存器

MOVAL,CHAR;输出数据送AL

MOVDX,180H;A口地址送DX

OUTDX,AL

;向打印机发选通信号,一个低电平的脉冲,先置位PC0,再复位PC0

;然后延时,再置位PC0

MOVDX,186H

MOVAL,00000001B

OUTDX,AL;置位PC0

MOVAL,00000000B

OUTDX,AL;复位PC0

CALLDELAY;延时

MOVAL,00000001B

OUTDX,AL;置位PC0

HLT

DELAY:

MOVCX,0FFFH

DELAY1:

NOP

LOOPDELAY1

RET

10.18答:

根据题图,8255A的端口地址为38H~3EH中的偶地址。

A口方式0输出,B口方式0输入,C口低半部输入,高半部输出。

程序段为:

;设置8255A的工作方式

MOVDX,03EH;控制字口地址送DX

MOVAL,10000011B;A口方式0,输出;B口方式0,输入;

;C口高半部输出,C口低半部输入

OUTDX,AL

MOVCX,100

;启动输入机,通过置位/复位实现一个高电平脉冲

SETSTART:

MOVDX,03EH

MOVAL,00001100B

OUTDX,AL;复位PC6

MOVAL,00001101B

OUTDX,AL;置位PC6

CALLDELAY;延时

MOVAL,00001100B

OUTDX,AL;复位PC6

;查询C口PC1

MOVDX,03CH;C口地址送DX

CHECK:

INAL,DX

TESTAL,00000010B

JZCHECK

;输入数据

MOVDX,03AH;B口地址送DX

INAL,DX

MOVCHARS,AL;将输入字符存入CHARS变量中

;查询C口PC0

MOVDX,03CH;C口地址送DX

CHECK1:

INAL,DX

TESTAL,00000001B

JZCHECK1

;输出CHAR变量数据,数据送到8255A的A端口寄存器

MOVAL,CHARS;输出数据送AL

MOVDX,038H;A口地址送DX

OUTDX,AL

;向打印机发选通信号,一个低电平的脉冲,先置位PC0,再复位PC0

;然后延时,再置位PC0

MOVDX,03EH

MOVAL,00001110B

OUTDX,AL;复位PC7

MOVAL,00001111B

OUTDX,AL;置位PC7

CALLDELAY;延时

MOVAL,00001110B

OUTDX,AL;复位PC7

LOOPSETSTART

HLT

DELAY:

PUSHCX

MOVCX,0FFFH

DELAY1:

NOP

LOOPDELAY1

POPCX

RET

10.19答:

根据题图,8255A的一组端口地址为8000H~8006H,8259A的一组端口地址为8020H和8022H。

8255A的B口工作在方式1,输出。

中断向量为97H。

程序段为:

;设置B口的中断向量

PUSHDS

MOVAX,0

MOVDS,AX

MOVSI,97H

SHLSI,1

SHLSI,1

MOV[SI],OFFSETINT_SERVICE;中断服务程序偏移地址存入向量表

ADDSI,2

MOVAX,CS

MOV[SI],AX;中断服务程序的段地址存入向量表

POPDS

;设置8255A的工作方式

MOVDX,8006H

MOVAL,10000100B;A口方式0,输出;B口方式1,输出;C口输出

OUTDX,AL

;设置INTEA=1

MOVAL,00000101B;PC2置位

OUTDX,AL

;8259A初始化程序段

MOVDX,8020H;8259A的偶地址端口

MOVAL,00011011B;电平触发、单片、要ICW4

OUTDX,AL;写ICW1

MOVDX,8022H

MOVAL,90H

OUTDX,AL;写ICW2

MOVAL,00000011B;一般全嵌套、非缓冲、自动中断结束

OUTDX,AL

;向8255A的B口输出一个字符

MOVBX,OFFSETDISPCHAR

MOVDX,8002H

MOVAL,[BX]

OUTDX,AL

JMP$

;中断服务程序

INT_SERVICE:

STI;开中断

INCBX

;下面程序段检查200个字符输出完否

MOVSI,OFFSETDISPCHAR

ADDSI,200

CMPBX,SI

JBOUTPUT

MOVDX,8022H;送9259A的基地址给DX

MOVAL,10000000B

OUTDX,AL;屏蔽IR7

JMPOVER

OUTPUT:

MOVAL,[BX];获取打印数据

MOVDX,802H;B口地址送DX

OUTDX,AL

OVER:

IRET

10.20答:

(1)电路图如下:

(2)8255A的初始化程序

;设置8255A的工作方式

MOVDX,0FF03H

MOVAL,10100000B;A口方式1,输出;B口方式0,输出;C口输出

OUTDX,AL

;设置INTEA=1

MOVAL,00001101B;PC6置位

OUTDX,AL

(3)8259A初始化程序

;8259A初始化程序段

MOVDX,0FF0CH;8259A的偶地址端口

MOVAL,00010011B;边沿触发、单片、要ICW4

OUTDX,AL;写ICW1

MOVDX,0FF0DH

MOVAL,80H

OUTDX,AL;写ICW2

MOVAL,00000011B;一般全嵌套、非缓冲、自动中断结束

OUTDX,AL

(4);设置B口的中断向量

PUSHDS

MOVAX,0

MOVDS,AX

MOVSI,83H

SHLSI,1

SHLSI,1

MOV[SI],OFFSETPRINT;中断服务程序偏移地址存入向量表

ADDSI,2

MOVAX,CS

MOV[SI],AX;中断服务程序的段地址存入向量表

POPDS

中断服务程序

;中断服务程序

INT_SERVICE:

STI;开中断

INCBX

;下面程序段检查200个字符输出完否

MOVSI,OFFSETBUF

ADDSI,100

CMPBX,SI

JBOUTPUT

MOVDX,0FF0DH;送8259A的奇地址给DX

MOVAL,00001000B

OUTDX,AL;屏蔽IR3

JMPOVER

OUTPUT:

MOVAL,[BX];获取打印数据

MOVDX,0FF00H;8255A的A口地址送DX

OUTDX,AL

OVER:

IRET

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

当前位置:首页 > 外语学习 > 其它语言学习

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

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