视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
微机原理与接口技术习题答案10章
2025-09-25 14:26:56 责编:小OO
文档
第10章  定时/计数器8253应用设计

1.试分析 8255A方式0、方式1和方式2的主要区别,并分别说明它们适合于什么应用场合。

答:方式0是基本的输入/输出,端口A、B、C都可以作为输入输出端口。适用于CPU与非智能I/O设备的数据传输;

        方式1是有联络信号的输入/输出,端口A、B都可以设定成该方式,此时三个端口的信号线分成了A、B两组,用作A组的联络信号,用作B组的联络信号。适用于高速CPU与低速I/O设备的数据传输;

        方式2是双向传输,只有A组端口可以设定成该方式,用作输出的联络信号,用作输入的联络信号,用作中断请求信号。适用于双机之间数据的并行传送。

2.8255A的A组设置成方式1输入,与CPU之间采用中断方式联络,则产生中断请求信号INTRA的条件是 STBA=   1   ,IBFA=  1    ,INTEA=  1    。

3.如果8255A的端口地址为300H~303H,A组和B组均为方式0,端口A为输出,端口B为输入,PC3~PC0为输入,PC7~PC4为输出,写出8255A的初始化程序段;编程实现将从端口C低4位读入的值从高4位送出。

解:    MOV DX,303H

        MOV AL,10000011B

        OUT DX,AL

        MOV DX,302H

        IN AL,DX

        MOV CL,4

        SHL AL,CL

        OUT DX,AL

4.在实际应用中经常需要检测设备的状态,并进行指示。在8086最小方式系统下,有一片8255A,其分配的端口地址为8F00H~8F07H中的奇地址,外部设备产生的状态有16个(K15~K0),要求采用4个发光二极管来指示开关量中“1”的个数。(1)画出8255A的连接图;(2)编写程序段实现连续检测并显示。

解:(1)

(2)    MOV DX,8F07H

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

        OUT DX,AL

NEXT:

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

        IN AL,DX

        XCHG AL,AH

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

        IN AL,DX

        MOV BX,AX

        XOR AL,AL

        MOV CX,16

        CLC

L2:

        SHL BX,1

        JNC L1

        INC AL

L1:

        LOOP L2

        MOV DX,8F05H               ;从端口C送出

        OUT DX,AL

        JMP NEXT                   ;进行下一次检测

5.利用IBM PC系统机的总线槽,开发由一片8255A构成的子系统,8255A端口地址为260H~263H,编程实现产生如图10.20所示的8个信号(各个信号的节拍不必严格相等)。

图10.20  要求产生的信号波形

解:8355A与IBM PC机总线的连接框图如下:

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

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

        MOV   AL,10000000B

        OUT   DX,AL

        MOV   DX,260H           ;产生指定信号

        XOR   AL,AL

        OUT   DX,AL

REP:

        MOV   AL,80H

        MOV   CX,7

REP1:

        OUT   DX,AL

        SAR   AL,1

        LOOP  REP1

        MOV   CX,8

REP2:

        SHL    AL,1

        OUT   DX,AL

        LOOP  REP2

        JMP   REP

6.在实际应用中,经常会遇到要求输入多个数据量,这时需要用到多路开关,如图10.21表示八选一的逻辑框图及其真值表。

现有8组16位开关量数据(无符号数),要求通过一片8255A(端口地址为260H~263H)分时输入到CPU(8088最小方式系统)中,并找出它们中的最大值,并通过4个发光二极管指示其序号(灯亮表示“1”)。画出8255A的连接图,并编程实现。

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

连接图如下:

程序段如下:

       MOV  DX,263H

       MOV  AL,10011010B  ;设定工作方式,PA,PB均工作于方式0,PA、PB为输入,PC为输出

       OUT   DX,AL

       MOV   CX,8

       XOR   BX,BX

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

ST1:

       MOV   DX,262H         

       OUT   DX,SI

       MOV   DX,260H        ;将开关量数据的低八位写入AL

       IN      AL,DX

       MOV   DX,261H        ;将开关量数据的高八位写入AH

       IN      AH,DX  

       CMP   BX,AX         

       JA     NEXT

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

       INC     SI

       PUSH   SI             ;将当前最大值的序号压栈

NEXT:

       INC     SI

       LOOP   ST1

       POP    SI             ;最大值的序号出栈

       XOR    AX,AX

       MOV    AX,SI           

       MOV    CL,4

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

       MOV    DX,262H

       OUT    DX,AL        ;PC的高四位输出最大值序号下载本文

显示全文
专题