微机原理 第七章 8255A及I/O口

微机原理

第七章 8255A及I/O口

7.1 概述

一、 并行接口

  1. 什么叫并行接口?

    连接CPU与并行外设的通道

    以字节、双字节或字长为传输单位。

  2. 为什么要用?或者说,为什么会广泛应用?

    传输速度快,但硬件开销大,近距离传输

  3. 一般传输什么信息?

    传输的信息主要有状态信息、控制信息和数据信息,所以有对应的寄存器

在端口是不够用的时候,得进行扩展

二、可编程并行接口的功能

  1. 有什么特点?
  • 具有端口寄存器
  • 具有与CPU和外设进行联络的能力
  • 能够以中断的方式与CPU进行联络
  • 可以有多种工作方式,且可编程进行选择

三、输入数据的过程

  1. 需要的信号
    • 输入数据准备好信号(外设->接口)
    • 输入数据(外设->接口)
    • 输入应答信号(接口->信号)
  2. 流程
    • 在“输入数据准备好”有效时,外设将数据送给接口的输入缓冲寄存器
    • 同时,接口将“输入应答”信号置成有效,外设收到“应答信号”后,撤消“输入数据准备好”信号
    • 状态寄存器(在接口内)将准备好输入位置为有效,向CPU申请中断或CPU以软件方式查询,实现将数据的输入。
    • 当完成输入数据之后,将准备好输入位置为无效,准备接收下一个数据。

四、输出数据的过程

  1. 需要信号
    • 输出数据准备好信号(接口->外设)
    • 输出数据(接口->外设)
    • 输出应答(外设->接口)
  2. 流程
    • 当外设从接口接收到一个数据后,接口的输出缓冲寄存器为空,使“输出数据准备好”信号有效,这个信号可以向CPU申请中断或CPU以软件方式查询此信号,实现将数据的输出到接口的输出缓冲寄存器中。
    • 此时接口向外设发送一个启动信号,外设从接口接收到数据后,向接口回送一个“输出应答”信号。
    • 接口接收到这个信号后,重新开始准备接收来自CPU数据,重复新的一个过程。

7.2 8255A 的主要性能和引脚功能

一、 8255A 的主要性能

  • 三个可编程的控制接口,都是8位
  • 输入、输出电平
  • 时序
  • 可以直接置位,便于实现控制
  • 单一的**+5v电源**

二、引脚功能

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4DhvAKIF-1587459739084)(F:\my study\微机原理\pic\Snipaste_2020-04-20_21-47-43.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GTbqWGBS-1587459739086)(F:\my study\微机原理\pic\Snipaste_2020-04-20_21-50-24.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BNW4Ysq6-1587459739087)(F:\my study\微机原理\pic\Snipaste_2020-04-20_21-47-43.png)]

7.3 8255A—内部结构

  • A口:8位数据双向口,输入与输出均有锁存,输出还有缓冲
  • B口:8位数据双向口,输入无锁存,但有缓冲,输出具有锁存与缓冲
  • C口:8位数据双向口,输入无锁存,但有缓冲,输出具有锁存与缓冲
  • A组B组控制电路
  • 读写控制逻辑电路
  • 数据总线缓冲器:输入数据输出数据CPU 发送给 8255A 的控制字以及从 8255A 读出的状态信息都通过该缓冲器传送

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TMzO7did-1587459739089)(F:\my study\微机原理\pic\Snipaste_2020-04-20_21-52-36.png)]

7.4 8255A的控制字

一、端口PC的置位/复位字

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yzNxfaXE-1587459739090)(F:\my study\微机原理\pic\Snipaste_2020-04-20_21-56-37.png)]

二、方式控制

1 ----- A组工作方式 ----- A口输入输入选择----- C口高位输出输入选择位----- B口输入输出方式选择----- B口工作方式选择----- C口低位输入输出选择

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VyXXBVbI-1587459739092)(F:\my study\微机原理\pic\Snipaste_2020-04-20_21-56-52.png)]

7.5 8255A—工作方式

方式0基本输入/输出方式(Basic Input/Output)
方式1选通输入/输出方式(Strobed Input/Output)
方式2选通双向输入/输出方式(Strobed bi-directional Input/Output)

一、8255A—工作方式 0

  1. 端口A、B和C相互独立工作,
    端口C的高4位和低4位也分为两个独立的部分
    四部分任意选择为输入或输出端口,共有16种组合
  2. 端口A、B的8位同时工作,而端口C则比较灵活
  3. 支持无条件、程序查询方式
  4. 方式0输入数据不能锁存,输出可锁存

二、8255A—工作方式1

  1. A组:端口A、PC7 ~ PC3(5)
    B组:端口B、PC2 ~ PC0 (3)
    C作为联络信号

  2. A组和B组可以输入也可以输出,但是单向的

  3. 支持程序查询、I/O中断方式

    输入:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FlLAC1t6-1587459739093)(F:\my study\微机原理\pic\Snipaste_2020-04-20_23-49-20.png)]

    时序图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2AHSaJDu-1587459739094)(F:\my study\微机原理\pic\Snipaste_2020-04-20_23-58-57.png)]

    输出:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NsMx0DOH-1587459739094)(F:\my study\微机原理\pic\Snipaste_2020-04-21_00-00-50.png)]

    时序图:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ss1IOUWy-1587459739095)(F:\my study\微机原理\pic\Snipaste_2020-04-21_00-03-30.png)]

三、8255A—工作方式2

  1. 只有A组可以工作在该方式
    B组不能工作在该方式

  2. 可以输入也可以输出,是双向的
    所以5个联络信号都使用

  3. 支持程序查询、I/O中断方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GJSYaO62-1587459739096)(F:\my study\微机原理\pic\Snipaste_2020-04-21_00-10-26.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-adBADRyL-1587459739096)(F:\my study\微机原理\pic\Snipaste_2020-04-21_00-12-14.png)]

7.6 8255A的端口地址

  1. 8255的端口地址

    8255A的端口地址如何确定?


    在8位机中:
    可以将8255A看成 1片存储器:

    总线低位地址接芯片,高位地址形成片选
    译码方案可以有多种

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0M6ryy9K-1587459739098)(F:\my study\微机原理\pic\Snipaste_2020-04-21_00-26-08.png)]

    **在16位机中:**末位为0

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a8DlPZ3L-1587459739099)(F:\my study\微机原理\pic\Snipaste_2020-04-21_00-27-25.png)]

7.7 8255的应用

PA PB PC 控制端口
00B0H、00B2H、00B4H、00B6H

应用一

MOV AL,0A0H ;方式控制字,A组为方式1、输出
1 01 0 0 0 0 0
OUT 0B6H,AL ;PC4、PC5和PC2 ~ PC0为输出
MOV AL,0DH ;写入置位/复位控制字 1101
OUT 0B6H,AL ;PC6置1,使INTEA = 1
可以产生中断请求
MOV AL,09H ;写入置位/复位控制字 1001
OUT 0B6H,AL ;PC4置1
MOV AL,04H ;写入置位/复位控制字 0100
OUT 0B6H,AL ;PC2清0

应用举例2—七段式数码管接口

共阳极共阴极之分

下面是 动态显示接法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-asKSNTfv-1587459739099)(F:\my study\微机原理\pic\Snipaste_2020-04-21_01-45-55.png)]

 PORTA	EQU	0FFF0H	;8255A各端口地址
 PORTB	EQU	0FFF2H
 PORTC	EQU	0FFF4H
 PORTCTL	EQU	0FFF6H
 BUFFER	EQU	THIS BYTE
 DWORD	DD	?		;显示缓冲区
 
 	    MOV	AL,10000000B	;工作方式
	    MOV	DX,PORTCTL
	    OUT	DX,AL
 BEGIN:MOV	CX,8			;循环8次
	    MOV	DI,OFFSET BUFFER
	    MOV	BX,OFFSET SEGCODE
	    MOV	AH,0000 0001B	
   SCAN:MOV	AL,AH		
  	    MOV	DX,PORTCTL	 ;置位 PC0置一
	    OUT	DX,AL
	    MOV	AL,[ DI ]	;取出要显示的数字 	          
        INC	DI
	    XLAT	SEGCODE		;查表,获得字
	    MOV	DX,PORTA;PA口输出字型码	    	   
        OUT	DX,AL
	    CALL	DELAY2MS		   
	    MOV	AL,AH		;复位PCi
	    AND	AL,11111110B
	    MOV	DX,PORTCTL
	    OUT	DX,AL
         ADD	AH,2	;显示下一个数码
         LOOP	SCAN
         JMP	BEGIN	;重复显示
		    ‘0’  ‘1’   ‘2’  ‘3’  ‘4’ 
SEGCODE: DB	0FCH,60H,0DAH,0F2H,66H
	    DB 	0B6H,0BEH,0E0H,0FEH,0F6h
             ‘5’  ‘6’    ‘7’   ‘8’   ‘9’ 


应用举例3—微型打印机接口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-civ0fShg-1587459739100)(F:\my study\微机原理\pic\Snipaste_2020-04-21_01-51-06.png)]

	MOV	AL,10100010B	;A组、方式1、输出
	MOV	DX,PORTCTL
	OUT	DX,AL
                  
PRINT	PROC 	NEAR
		PUSH	AX			;保存现场
		PUSH	DX
		MOV	 AL,[ BX ]	;取出输出数据
		INC	BX
MOV	DX,PORTA		;由PA口输出
	OUT	DX,AL
	POP	DX			;恢复现场
	POP	AX
	IRET
           PRINT   ENDP

7.8 简单的并行 I/O口

1. 简单并行 I/O口的结构

微机原理 第七章 8255A及I/O口_第1张图片

你可能感兴趣的:(微机原理)