微机原理

44
微微微微 微微微微微

Upload: vadin

Post on 04-Jan-2016

46 views

Category:

Documents


4 download

DESCRIPTION

在此幻灯片插入公司的徽标 从“插入”菜单 选择图片 找到徽标文件 单击“确定” 重新设置徽标大小 单击徽标内任意位置。徽标外部出现的方框是“调整控点” 使用这些重新设置对象大小 如果在使用尺寸调整控点前按下 shift 键,则对象改变大小但维持原比例。. 微机原理. 制作者: 张幸. 第九章 可编程接口芯片8255 A. 第一节 8255 A 的工作原理 第二节 8255 A 的应用举例. 第一节 8255 A 的工作原理. 一、功能 1.8255 有3个8位并行口. A 口:方式0,方式1,方式2 B 口:方式0,方式1 - PowerPoint PPT Presentation

TRANSCRIPT

微机原理

制作者: 张幸

第九章 可编程接口芯片 8255A

第一节 8255A 的工作原理第二节 8255A 的应用举例

第一节 8255A 的工作原理一、功能

1.8255 有 3 个 8 位并行口A 口:方式 0 ,方式 1 ,方式2

B 口:方式 0 ,方式 1

C 口:方式 0

2. 方式 0 :基本 I/O 方式 1 :选通 I/O 方式 2 :双向 I/O

8255

AB

CB

DB

RD WR D7~D0 A0 A1 CS

PB PAPC

8 8I/O I/O4 4

PB7 ~PB0 PA7 ~PA0PC3 ~PC0 PC7 ~PC4

I/O I/O

8 8 I/OI/O

PB7 ~PB0 PA7 ~PA0

PB PAPC

控制或I/O

控制或I/O

8 8 I/OI/O

PB7 ~PB0 PA7 ~PA0

PB PAPC

I/O控制

方式 0 :基本 I/O

方式 1 :选通 I/O

方式 2 :双向 I/O

数据总线缓冲器

读 / 写 控制 电路

RD WR A0 A1

CS

RESET

A 组控制逻辑

B 组控制逻辑

A 组端口 A

B 组端口 B

A 组端口C高 4位B 组端口C低 4位

PA7~PA0

PC7~PC4

PC3~PC0

PB7~PB0

D0~D7

二、结构和引脚

1. 数据端口 A、 B和 C 端口 A 包含一个 8 位的数据输出锁存器 / 缓冲器,一

个 8 位的数据输入锁存器。 端口 B 包含一个 8 位的数据输入 / 输出锁存器 / 缓冲

器,一个 8 位的数据输入缓冲器。 端口 C 包含一个 8 位的数据输出锁存器 / 缓冲器,一

个 8 位的数据输入缓冲器,无输入缓冲功能。

2.A 组和 B 组控制逻

辑 A 组控制逻辑控制 A 口,

C 口上半部分( PC7~PC4)

B 组控制逻辑控制 B 口,C 口下半部分( PC3~PC0)

A 组控制

B 组控制

内部总线

A 口

上 C 口

下 C 口

B 口

3. 数据总线缓冲器 用于 8255和 CPU 传送数据信息 信息:

CPU 送给 8255 的控制字或输出数据 外设送给 CPU 的状态或输入数据

4. 读 / 写控制逻辑 接受 CPU 送来的地址信号和控制信号 信号: RESET 复位信号 高电平有效, 8255 复位状态为清控 制寄存器内容,使所有口呈输入状态 CS 片选信号 低电平有效,表示该芯片被选中 RD 读信号 低电平有效,表示 CPU 可从 8255 读数据或状态 WR 写信号 低电平有效,表示 CPU 向 8255 写数据或控制字 A1A0 端口选择信号 用于选择 8255 的 3 个数据口或控制字寄 存器

A1 A0 RD WR CS 功能

0 0 0 1 0 端口 A 数据总线

0 1 0 1 0 端口 B 数据总线

1 0 0 1 0 端口 C 数据总线

0 0 1 0 0 数据总线 端口 A

0 1 1 0 0 数据总线 端口 B

1 0 1 0 0 数据总线 端口 C

1 1 1 0 0 数据总线 控制字寄存器

8255A 端口选择表

三、 8255 的控制字1. 方式选择控制字2. 置位 / 复位控制字

1. 方式选择控制字 D7 D6 D5 D4 D3 D2 D1 D0

下 C 口 I/O

1= 输入0= 输出

B口 I/O 1= 输入0= 输出

B 口方式

0= 方式0 1= 方式 1

上 C口I/O

1= 输入0= 输出

特征位 D7=1 A 口方式 :

00= 方式 0 01=方式 1 1x= 方式2

A口I/O

1= 输入0= 输出

例:在一个 8086/8088 系统中,有一片 8255A 芯片,其各个端口的地址分别为 0F8H~0FBH ,现要求各个端口的工作方式为:端口 A 方式 0 输入端口 B 方式 1 输出端口 C (上半部) PC7 ~PC4 输出端口 C (下半部) PC3 输入要求:进行初始化编程

1 0 0 1 10 0 1

分析:根据 8255A 工作模式可确定方式控制字

95H

初始化编程:

MOV AL, 95H

OUT 0FBH, AL

2. 置位 / 复位控制字端口 C 常用作控制或应答信号,通过对 8255A 的控制口写入

置位 / 复位控制字,可使 C 口的任一个引脚的输出单独置 1 或置 0 。

D7 D6 D5 D4 D3 D2 D1 D0

1 置位 0 复位无关位

特征位 D7 = 0

000 选中PC0 001 选中 PC1

111 选中PC7

位选

例:要使端口 C的 bit3 置位的控制字为: 00000111B ; MOV AL, 00000111B OUT 0FBH, AL 而使端口 C的 bit3 复位的控制字为: 00000110B ; MOV AL, 00000110B OUT 0FBH, AL

四、 8255 的工作方式和 C 口状态字1. 方式 0 基本输入输出方式(不需要应答) A 口, B 口, C 口都可工作在方式 0 ,既可输入

也可输出,数据输出有锁存,输入不能锁存。适用于不需要握手信号的简单 I/O 场合。

2. 方式 1 选通输入输出 A 口, B 口可工作在方式 1 ,既可输入也可输出。 当 A 口, B 口工作在选通方式, C 口相应口工作在联络信号。 选通方式为握手方式,适用于查询方式和中断方式。

方式 1 的输入输出选通信号不同

选通输入方式

INTEA

PC4

PC5

PC3

8PA7~PA0

STBA

IBFA

INTRA

I/OPC6,7

1 0 1 1 1/0 X X X

D7D6D5D4D3D2D1D0

INTEB

PC2

PC1

PC0

8PB7~PB0

STBB

IBFB

INTRB

1 X X X X 1 1 X

D7D6D5D4D3D2D1D0

IBF 输入缓冲器满 高电平有效表示数据已送到 8255 口 , 指示 8255不能再接受数据INTE 中断允许信号控制 8255 能否向 CPU 发中断请求信号 A 口 (PC4) B 口 (PC2)

INTR 中断请求信号 高电平有效当 STB、 IBF、 INTE 三者为高电平时, INTR 置成高电平,向CPU提出中断申请

STB 选通信号 低电平有效表示外部设备把数据送入 8255的 A 口或 B 口

选通输出方式

INTEB

PC1

PC2

PC0

8PB7~PB0

OBFB

ACKB

INTRB

1 X X X X 1 0 X

D7D6D5D4D3D2D1D0

INTEA

PC7

PC6

PC3

8PA7~PA0

OBFA

ACKA

INTRA

I/OPC4,5

1 0 1 0 1/0 X X X

D7D6D5D4D3D2D1D0

OBF 输出缓冲满信号 低电平有效表示 CPU 将数据写入 8255的 A口或B 口

INTE 中断允许信号控制 8255 能否向 CPU 发中断请求信号 A 口 (PC6) B 口 (PC2)INTR 中断请求信号 高电平有效当 ACK、 OBF、 INTE 三者为高电平时, INTR 置成高电平,向CPU提出中断申请

ACK 外设回答信号 低电平有效表示 CPU 送到 8255 口的被外设

3. 方式 2 双向方式仅 A 口具有方式 2 ,即同

时可输入输出,当 A 口工作

在方式 2 时, C 口相应口作

联络信号方式 2 在功能上为方式 1 输

入和输出的结合,且在输入和输出时分别可以中断。

≥ 1 PC3

PC7 PC6

PC4 PC5

&

&

INTE

INTE

PA0~7

INTRA

OBF

STBAIBFA

ACK

WRRD PC0~

2I/O

4. C 口状态字

8255A 工作在方式 0 时, C 口各位作输入输出用。当工作在方式 1 和方式 2 时, C 口产生与外设的联络信号。此时。读取 C 口的内容可检查或测试外设的状态。 C 口的状态字如下:( 1 )方式 1

I/O I/O IBFA输入 INTEA INTRA INTEB IBFB INTRB

D7 D6 D5 D4 D3 D2 D1 D0

I/O I/O输出 INTEA INTRA INTEB OBFB INTRB

D7 D6 D5 D4 D3 D2 D1 D0

OBFA

( 2 )方式 2

*INTE1 INTRAINTE2IBFA

D7 D6 D5 D4 D3 D2 D1 D0

OBFA * *

第二节 8255A 的应用举例一、基本输入输出应用举例

G1 G2A G2B

C B A

Y4

D7~D0 RD WR RESET M/IO

D7~D0 RD WR RESET

A7

A6

A5

A4A3A0

A2

A1

A1

A0

CS PB7

PB6

PB0

LED

74LS138

8255CPU8086

…K7

K0

PA0

PA7

PA 口: 11110000 0FOH PB 口: 11110010 0F2H

PC 口: 11110100 0F4H 控制口: 11110110 0F6H

限流电阻

LED

PB7

8255

PB7 LED 状态1 亮0 暗

开关状态的检测

R

+5V

K 上拉电阻

K 状态 PA7

断开 1

闭合 0

PA7

8255

发光二极管的控制

MOV DX, 0F6H

MOV AL, 10010000B OUT DX, ALTEST-IT : MOV DX, 0F0H IN AL, DX MOV DX, 0F2H OUT DX, AL JMP TEST-IT

二、键盘接口常用的键盘有机械式、薄膜式、电容式、霍尔效应式键盘分独立式和行列式

…K7

K0

独立式键盘

0 1 2 3

4 5 6 7

8 9 A B

C D E F

+ Vcc10K

10K

行列式键盘在行与列的交叉点位置安装按键。当

按键闭合,相应的行和列连接。

下面以机械式触点按键组成的非编码键盘为例,对键盘接口功能和原理进行介绍。

键盘接口必须具有去抖动、防串键、按键识别和键码产生4 个基本功能。

抖动:机械式按键在压键时在触点可靠地接通前多次通断

抖动

抖动断开

闭合

闭合

1

防抖动:有硬件、有软件软件防抖动通过软件延时 (10ms)硬件防抖动使用 RS 触发器

U0 无抖动

串键:多键同时按下或一键没按下又有新键按下

解决方法: 双键锁定 、 N键巡回①双键锁定:当检测到有两个或两个以上的键被按下时,只把最后释放的键当作有效键,并产生相应键码。②N键轮回:当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。

按键识别:行扫描法、线反转法①行扫描法:由程序对键盘进行逐行扫描,通过检测到的列输出状态来确定闭合键。为此,需要设置输入口、输出口各一个。

键码产生

②线反转法:该方法的基本思想是通过行列颠倒两次扫描来识别闭合键。为此,需要提供两个可编程的双向输入/输出端口。

例如,假定有一个 4×4 的矩阵键盘通过并行接口芯片 8255A 与微机相连。 8255A的 A 口定义为

输出口,与键盘行线相连; B 口定义为输入口,与键盘列线相连。 设 8255A 口地址为 40H, B 口地址为 41H ,控

制寄存器地址为 43H 。

键值 =首列键号 +列号

行扫描键盘接口+5V

0 1 2 34 5 6 78 9 A B

C D E FPA3PA2PA1PA0

PB0PB1PB2PB3

CPU

8255

行扫描法

键盘扫描一般步骤: 判断是否有键按下(行全部清 0 ,读列值是否有 0 )

若有键按下,消除抖动,确认有键按下? 对压下键进行编码(扫描、查表) 进行键处理 键释放,返回第二步

MOV AL,82H ROL AL OUT 43H,AL MOV AH,AL BEGIN:MOV AL,0 IN AL,41H OUT 40H,AL AND AL,CLWAIT: IN AL,41H CMP AL,CL AND AL,0FH JNZ L2 CMP AL,0FH ADD CH,BH JZ WAIT MOV AL,AH MOV CX,7FFH DEC BL LO: LOOP LO JNZ L1 ST: MOV BL,04H JMP BEGIN MOV BH,04H L2: INC CH MOV AL,0FEH RCR AL MOV CL,0FH JC L2 MOV CH,0FFH MOV AL,CHL1: OUT 40H,AL JMP LEYTABLE

+5V

8255

PA3

PA2

PA1

PA0

PB4 PB5 PB6 PB7 PB0 PB1 PB2 PB3

0 1 2 34 5 6 78 9 A B

C D E F

线反转法 键 0的编码 =11101110

键 1的编码=11101101

线反转键盘接口

常用的显示器有 LED显示器、液晶显示器、 CRT显

示器 LED显示器有 7 段、米字型

三、显示器及接口电路

1. 各个 LED 可按共阳极或共阴极连接, 它们应分

别用不同的段码 , 经不同的驱动电路来驱动。

ABCD

abcdefg

段码输入

译码 /驱动器74LS247

共阳显示

ABCD

abcdefg

段码输入

共阴显示

译码 /驱动器 74LS249

其段驱动电路的输出为低电平时,该段的 LED导通并点亮 , 段驱动电路应能吸收额定的段导通电流

其段驱动电路的输出为高电平时,该段的 LED导通并点亮 , 段驱动电路应能供给额定的段导通电流。

+5v +5v

2.七段 LED显示接口 动态:各个显示器对应的段码接同一 I/O 口,灯

位控制端由不同 I/O 口控制。 静态:各个显示器的段码由不同的 I/O 控制,灯

位控制端接成固定电平。

动态接口的设计

ABCD

abcdefg

七段显示器

2 8

段码输出

灯位控制

I/O口

PB0PB1PB2PB3 PB4 PB5PB6 PB7

静态接口的设计

PA0PA1PA2PA3 PA4 PA5PA6 PA7

a b c d e f g

A B C D

DB0——DB7 DB0——DB7

5V

a b c d e f g

A B C D

a b c d e f g

A B C D

a b c d e f g

A B C D

3.段码的转换:

g f e d c b a

D6 D5 D4 D3 D2 D1 D0

0 1 0 0 0 0 0 0 40H

1 1 1 1 1 0 0 1 79H

2 0 1 0 0 1 0 0 24H

3 0 1 1 0 0 0 0 30H

4 0 0 1 1 0 0 1 19H

E 0 0 0 0 1 1 0 06H

F 0 0 0 1 1 1 0 0EH

… … … … … … … …

a

d

b

c

f

e

g

DP

专用接口芯片软件译码

软件译码把 0~9的十进制数转换成七段码TABLE DB 40H, 79H, 24H, 30H, 19H DB 12H, 02H, 78H, 00H, 18H

MOV AL, 5 MOV BX, OFFSET TABLE XLAT TABLE

1.打印机接口信号*数据信号接受 CPU 送来的数据信息 DATA1~DATA8 *控制信号 由 CPU 送出,控制打印机的动作 STB*状态信号 由打印机送给 CPU ,说明打印机的状态 ACK 应答信号 用于中断方式 BUSY忙信号 用于查询方式

四、并行打印机接口

2.打印机传送字符时序

DATA

BUSY

ACK

DATA

STB

3.打印机接口电路

PB0

PB1

PB2

PB3

PB4

PB5

PB6

PB7

PC4 PC5

PA0

PA1

PA2

PA3

PC0

PC2

IR2 去 8259

8255

打印机插座

INTRACK

ERRORPESLCTBUSY

DATA1 DATA2 DATA3DATA4 DATA5 DATA6 DATA7 DATA8

ACK

STBINIT

以查询方式打印“ THIS IS THE TEST ”! MOV DX, PORT-CTL MOV AL, 10010000B OUT DX, AL MOV CX,MESS-LEN MOV BX, OFFSET MESS-1XX1 : MOV DX, PORT-AXX : IN AL, DX TEST AL, 00001000B JNZ XX MOV AL, [BX] MOV DX, PORT-B OUT DX, AL MOV DX, PORT-CTL MOV AL, 00001000B OUT DX, AL MOV AL, 00001001B OUT DX, AL INC BX LOOP XX1