计算机接口与汇编第三次作业

本文详细解析了8255A接口芯片的不同工作方式(包括输入/输出、双向选通等),方式选择控制字的设定,以及编程命令的作用。涵盖了选择题、简答题和补充题,涉及跑马灯和数据输入显示的编程实例。
摘要由CSDN通过智能技术生成

一、填空题

(1)8255A的工作方式有基本型输入/输出方式、方式_____和方式_____。

(2)若要可编程并行芯片8255A的三个端口均作为输入口,则其方式选择控制字应为________。

(3)8255A工作于方式1输入时,通过____信号表示端口已经准备好向CPU输入数据。

解答:

(1)方式1(选通输入输出方式)方式2(双向选通输入输出方式)

(2)9B

(3)INTR

二、选择题

(1)8255A中既可作数据输入/输出端口,又可提供控制信息,状态信息的端口是(     )。

A)B口          B)A口          C)ABC端口均可以         D)C口

(2)设8255A的方式选择控制字为9BH,其含义是(          )。

A)A、B、C口全为输出                  B)A、B、C口全为输入

C)A、B口为方式0且输出               D)以上都不对

(3)8255A的PA口工作于方式2时,PB口不能工作与(         )。

       A)方式0                              B)方式1

       C)方式2                              D)任何方式

(4)8255A的地址线A1、A0分别接8086的A2、A1,8086芯片的A0参与8255A的片选译码,接到74LS138的G2A。该接口芯片初始化指令为OUT   8EH,AL,则8255A的PA口地址为(    )。

       A)8BH        B)88H           C)89H      D)8AH

(6)8255A接口芯片的控制信号,不属于工作方式1输入的联络信号是(      )。

A) STB      B)OBF     C)IBF       D)INTR

解答:

(1)  D

(2 )  B

(3)B

(4)  B

(6)B

三、简答题

1、可编程并行接口芯片8255A的编程命令有哪两个?试分别说明他们的作用及其命令格式中每位的含义是什么?

解答:

答:(1)方式控制字

各位含义如图1,图2


(2)PC口按位置位/复位控制字

四、补充题

第九章 8255方式0编程(1、2中选1个做作业)

1、编写一个跑马灯程序(要求有硬件简图、程序清单注释,程序运行结果)

2、编写一个将K0---K7的数据输入,并以十六进制的形式显示到CRT的程序(要求有硬件简图、程序清单注释,程序运行结果)

解答:

第九章 8255方式0编程(1、2中选1个做作业)

1、编写一个跑马灯程序(要求有硬件简图、程序清单注释,程序运行结果)

解答:硬件全图

硬件简图


程序清单:

o8255a        equ 288h

io8255b        equ 28bh

code   segment

       assume cs:code

start:  mov dx,io8255b          ;初始化,A口要设置为输出,    

        mov al,8bh

        out dx,al

  mov al,1                   ;初始值为1

     

output:  mov dx,o8255a          ;将al中的内容输出到dx所指定的端口,点亮对应的灯            

            out dx,al

      rol al,1           ;循环左移

      call delay                 ;调用延时子程序,控制流水灯的速度以便于观察

        mov bl,al             

      mov dl,0ffh                ;判断是否有按键

      mov ah,06h

     int 21h

mov al,bl

     jz output                     

     mov ah,4ch              

     int 21h

delay proc near

      mov dx,100

thr: mov cx,0

two: loop two

     dec dx

     jne thr

     ret

delay endp

code  ends

      end start

2、编写一个将K0---K7的数据输入,并以十六进制的形式显示到CRT的程序(要求有硬件简图、程序清单注释,程序运行结果)

解答:硬件全图

硬件简图

代码:

;*******************************;

;* 十六进制数输出到屏幕  *;

;*******************************;

io8255b        equ 28bh

i8255c        equ 28ah

code   segment

       assume cs:code

start:  mov dx,io8255b           ;初始化,C口要设置为输入      

        mov al,8bh

        out dx,al

input: mov dx,i8255c             

       in al,dx                  ;输入K0-K7

       mov bl,al  

         mov cl,4                   ;每次循环右移动4位,先处理高4位

 shr al,cl                   

                     ;

     cmp al,0ah                  

     jb next                     ;AL内容>=A,加37H

     add al,7h

next: add al,30h                 ;否则,加30H

      mov dl,al                   ;输出字符的ASCII码送DL

     mov ah,2                    ;02H号DOS功能调用

     int 21h

 mov al,bl

     and al,0fh                  ;屏蔽高4位,再先处理低4位

     cmp al,0ah                  

     jb next1                     ;AL内容>=A,加37H

     add al,7h

next1: add al,30h                 ;否则,加30H

      mov dl,al                   ;输出字符的ASCII码送DL

     mov ah,2                    ;02H号DOS功能调用

     int 21h

      mov dl,0ffh               ;判断是否有按键

       mov ah,06h

       int 21h

       jz input

       mov ah,4ch

       int 21h

code   ends

      end start

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值