微机原理笔记||第八章:常用接口芯片8255A,8253,AD DA转换芯片

概要:

并行接口芯片8255A

定时/计数器8253

模拟接口  AD DA转换芯片


8.1   并行接口芯片8255A

1.外部引脚

 


 2.工作方式

1. 方式0——基本输入输出方式

特点:适用于PA口、PB口和PC口作输入/输出端口

同时:彼此独立的8A口、B口及4C口、下C个并行口(16种不同的使用组态

2. 方式1——选通输入/输出方式(应答式输入/输出)

特点:适用于PA口和PB口作输入/输出端口PC口主要作为联络线

  1)方式1的输出方式

说明:

OBF#输出缓冲器满信号,输出,低电平有效。

     表示CPU已输出数据到指定端口。

ACK#-外设的回答信号,电平有效,由外设送给8255A。表示CPU送到指定端口的数据已被外设接受。

INTE-中断允许信号。 INTEA是由用户对PC6按位置位实现的。

INTR-中断请求信号,高电平有效。

  2)方式1的输入方式

特点:PA口使用PC5PC4PC3作为联络信号线;

          PB口使用PC2PC1PC0作为联络信号线

说明:

STB#选通输入低电平有效,外设数据输入输入缓冲器

IBF输入缓冲器满信号高电平有效。由8255A输出的状态信号,

        表示输入锁存器已满,向外设指明不能再送入数据

INTE 中断允许信号。是控制8255A能否CPU发中断请求信号,

     它没有外部引脚,INTEAINTEB是由用户对PC4、PC2按位置位实现的

INTR中断请求信号高电平有效。是8255A向CPU发出的请求中断信号,要求CPU服务。当 IBF =1、STB# =1INTE =1时,INTR =1

3. 方式2——双向选通输入输出方式

特点:仅适用于PA口作双向端口(可输入也可输出),

      PC口主要作为联络线B口只能工作在方式0方式1

C口剩下的3条线可作为输入输出线使用或用作B口方式1之下的联络线

 说明:

INTE中断允许信号

输出时, INTEA是由用户对PC6按位置位实现的

输入时,PC4按位置位实现的。


3. 8255A的控制字

1.方式选择控制字

 例】 8255A的地址为60H63H。若规定端口A工作于方式1输入,端口B工作于方式1输出,余下的PC7PC6规定为输出则方式选择控制字为:10110100(即  0B4H

    初始化段指令为:

              MOV   AL,  0B4H

              OUT   63H, AL           ;写命令口,即写控制寄存器

【例】假设用8255A开发的并行接口的开始端口地址为300H

已知参与译码地址线10A9--A0),其中A1A0用于8255端口寻址,现要求:

  (1)设计其I/O地址译码电路,并画出其逻辑电路示意图;

  (2)编写8255初始化程序A组方式1输出B组方式0输出

【解】  (1)地址线的状态为:

 28255A的地址为300H303H。端口A为方式1,输出,端口B为方式0,输出,则方式选择控制字为:10100000(即  0A0H

    初始化段指令为:

              MOV   AL,  0A0H     命令内容AL

              MOV   DX,  303H     ;   命令(控制字)端口送DX

              OUT   DX, AL           命令口,即写控制寄存器


2.C口位操作控制

用于设置C口某一位的复位/置位操作。

【例】已知8255A的控制寄存器地址为63H,现要使用端口CPC5输出方波,设系统已提供延时子程序DELAY供调用。

【分析】可以通过对PC5这一位进行置位复位来实现,

      PC5置位控制字:    0 0 0 0, 1 0 1 1 =0BH

      PC5复位控制字:    0 0 0 0, 1 0 1 0 =0AH

 参考程序如下:

    L:  MOV   AL0AH

         OUT    63HAL  PC5端输出低电平

         CALL   DELAY                ;调用延时子程序

         

         MOV   AL0BH

         OUT    63HAL  PC5端输出高电平

         CALL   DELAY

         

         JMP     L

【例】已知8255A端口地址为300H--303H,工作在方式1

允许PA口输出时,产生中断请求,则必须设置INTEA=1,即置PC6=1

禁止它产生中断请求,则置INTEA=0,即置PC6=0

     其程序段为:

      MOV  DX303H               8255A命令口

      MOV  AL00001101B      ;置PC6=1,允许中断请求

      OUT   DXAL                    

      MOV  AL00001100B      ;置PC6a=0,禁止中断请求

      OUT   DXAL

     

8.2   定时器/计数器接口芯片8253

8.3   串行接口芯片8251A

8.4   模拟接口

8.5   多功能外围接口芯片82380

课后作业

  • 1
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验目的: 1.了解8255A芯片的基本功能和工作原理; 2.掌握8255A芯片的编程方法; 3.掌握8255A芯片的应用。 实验设备: 1.微机实验箱; 2.8255A芯片; 3.适配器; 4.万用表。 实验原理: 8255A芯片是具有并行输入输出接口功能的可编程I/O接口芯片。它包含3个8位I/O端口,即PortA、PortB、PortC,每个端口可以作为输入或输出使用。此外,8255A芯片还具有2个工作模式,即I/O模式和手摇模式,可以通过编程来选择。 实验内容: 1.将8255A芯片插入适配器中,并将适配器插入微机实验箱中。 2.编写程序,将8255A芯片的端口A、B、C设置为输出端口,利用端口A、B、C控制8个LED灯的亮灭。 3.编写程序,将8255A芯片的端口A、B、C设置为输入端口,利用端口A、B、C读取8个开关的状态,并将读取的结果通过串口输出。 实验步骤: 1.选择适配器上的8255A芯片,将其插入微机实验箱中。 2.在微机实验箱上连接8个LED灯和8个开关,并将它们分别与8255A芯片的端口A、B、C相连。 3.打开微机实验箱,进入DOS系统。 4.编写程序,将8255A芯片的端口A、B、C设置为输出端口,利用端口A、B、C控制8个LED灯的亮灭。程序如下: MOV AL, 0FFH ;将端口A、B、C设置为输出端口 OUT 61H, AL MOV AL, 0 ;将端口A、B、C清零 OUT 60H, AL MOV AL, 0FFH ;将端口A、B、C设置为高电平 OUT 60H, AL 5.编写程序,将8255A芯片的端口A、B、C设置为输入端口,利用端口A、B、C读取8个开关的状态,并将读取的结果通过串口输出。程序如下: MOV AL, 0 ;将端口A、B、C设置为输入端口 OUT 61H, AL MOV AL, 0 ;将端口A、B、C清零 OUT 60H, AL IN AL, 60H ;读取端口A的状态 MOV BL, AL ;将端口A的状态存入BL中 IN AL, 61H ;读取端口B的状态 MOV CL, AL ;将端口B的状态存入CL中 IN AL, 62H ;读取端口C的状态 MOV DL, AL ;将端口C的状态存入DL中 MOV AH, 02H ;设置串口输出 MOV DL, BL ;输出端口A的状态 INT 21H MOV DL, CL ;输出端口B的状态 INT 21H MOV DL, DL ;输出端口C的状态 INT 21H 6.保存程序并运行,观察LED灯的亮灭和串口输出的结果。 实验注意事项: 1.在进行实验时,需要注意芯片的引脚连接和电路的正确性,以避免出现电路短路或其他异常情况。 2.在编写程序时,需要注意语法和参数的正确性,并对程序进行调试和测试,以确保程序的正确性和稳定性。 3.在实验过程中,需要遵守实验室的安全规定,注意用电安全和器材保护,以保证实验的安全性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值