第 7 章 单片机 i/o 扩展及应用

63
7 7 第 第第第 第 第第第 I/O I/O 第第第第第 第第第第第 7.1 7.1 第第第第第第 第第第第第第 I/O I/O 第第 第第 7.2 7.2 第第第第第 第第第第第 I/O I/O 第第 第第 7.3 7.3 8255A 8255A 第第第第第第第第第第第 第第第第第第第第第第第 7.8 7.8 MCS-51 MCS-51 第第第第第第第第第第 第第第第第第第第第第 7.4 7.4 8155 8155 RAM RAM 第第第第第第第第第第第第第第 第第第第第第第第第第第第第第 7.6 7.6 MCS-51 MCS-51 第第第第第第第第第 第第第第第第第第第 7.5 7.5 8279 8279 第第第第第 第第第第第 / / 第第第第第第第 第第第第第第第 7.7 7.7 MCS-51 MCS-51 第第第第第第第第第第 第第第第第第第第第第

Upload: lorant

Post on 12-Jan-2016

120 views

Category:

Documents


0 download

DESCRIPTION

第 7 章 单片机 I/O 扩展及应用. 7.1 单片机为什么 I/O 扩展. 7.2 单片机简单 I/O 扩展. 7.3 8255A 可编程通用并行接口芯片. 7.4 8155 带 RAM 和定时器的可编程并行接口芯片. 7.5 8279 可编程键盘 / 显示器接口芯片. 7.6 MCS-51 单片机键盘接口技术. 7.7 MCS-51 单片机显示器接口技术. 7.8 MCS-51 单片机打印机接口技术. 本章要求. 1 了解掌握单片机简单 I/O 扩展. 2 了解掌握 8155 可编程并行接口芯片. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 7 章 单片机 I/O 扩展及应用

第第 77 章 单片机章 单片机 I/OI/O 扩展及应用扩展及应用7.1 7.1 单片机为什么单片机为什么 I/OI/O 扩展扩展7.2 7.2 单片机简单单片机简单 I/OI/O 扩展扩展7.3 7.3 8255A8255A 可编程通用并行接口芯片可编程通用并行接口芯片

7.8 7.8 MCS-51MCS-51 单片机打印机接口技术单片机打印机接口技术

7.4 7.4 81558155 带带 RAMRAM 和定时器的可编程并行接口和定时器的可编程并行接口芯片芯片

7.6 7.6 MCS-51MCS-51 单片机键盘接口技术单片机键盘接口技术7.5 7.5 82798279 可编程键盘可编程键盘 // 显示器接口芯片显示器接口芯片

7.7 7.7 MCS-51MCS-51 单片机显示器接口技术单片机显示器接口技术

Page 2: 第 7 章 单片机 I/O 扩展及应用

本章要求本章要求

1 1 了解掌握单片机简单了解掌握单片机简单 I/OI/O 扩展扩展

2 2 了解掌握了解掌握 81558155 可编程并行接口芯片可编程并行接口芯片

44 了解掌握了解掌握 MCS-51MCS-51 单片机显示器接口技术单片机显示器接口技术

33 了解掌握了解掌握 MCS-51MCS-51 单片机键盘接口技单片机键盘接口技术术

Page 3: 第 7 章 单片机 I/O 扩展及应用

7.1 7.1 单片机为什么需要单片机为什么需要 I/OI/O 扩展扩展一一 . I/O. I/O 口的直接使用口的直接使用

1. 1. 数据的无条件传送 数据的无条件传送 从 P1.0 ~ P1.3 输入开关状态,再经P1.4 ~ P1.7 输出去驱动发光二极管,使发光二极管显示开关的状态。

使用单片机芯片本身的 I / O 口,实现一些简单的输入输出控制(数据传送)。

状态输出驱动发光二极管

读开关状态读开关状态

熄发光二极管熄发光二极管

开关状态交换到高半字节

返回

开始

Page 4: 第 7 章 单片机 I/O 扩展及应用

7.1 7.1 单片机为什么需要单片机为什么需要 I/OI/O 扩展扩展一一 . I/O. I/O 口的直接使用口的直接使用

2. 2. 中断方式的数据传送中断方式的数据传送

置外中断 0 为脉冲触发方式

开始

等待中断

外中断外中断 00 允允许许

总中断允许总中断允许

Page 5: 第 7 章 单片机 I/O 扩展及应用

7.1 7.1 单片机为什么需要单片机为什么需要 I/OI/O 扩展扩展一一 . I/O. I/O 口的直接使用口的直接使用

ORG 0000HORG 0000HSTAR: AJMP MAINSTAR: AJMP MAIN ORG 0003HORG 0003H LJMP EXTRLJMP EXTR ORG 0030HORG 0030HMAIN: SETB EAMAIN: SETB EA SETB EX0SETB EX0 SETB IT0 ;SETB IT0 ; 边沿触边沿触发发HERE: AJMP HEREHERE: AJMP HERE

2. 2. 中断方式的数据传送中断方式的数据传送 ORG 0200HORG 0200HEXTR: MOV A, #0FHEXTR: MOV A, #0FH MOV P1, AMOV P1, A MOV A, P1MOV A, P1 ANL A, #0FHANL A, #0FH SWAP ASWAP A MOV P1, AMOV P1, A RETIRETI

Page 6: 第 7 章 单片机 I/O 扩展及应用

7.1 7.1 单片机为什么需要单片机为什么需要 I/OI/O 扩展扩展二二 . . 为什么要为什么要 I/OI/O 接接

口口 1. 1. 单片机本身接口功能有限单片机本身接口功能有限2. 2. 单片机控制应用中的复杂接口要求单片机控制应用中的复杂接口要求

●● 速度差异大速度差异大

控制对象或外部设备种类繁多,它们对数据的要求互不相控制对象或外部设备种类繁多,它们对数据的要求互不相同,因此无法按统一格式进行数据传送。同,因此无法按统一格式进行数据传送。

●● 设备种类繁多设备种类繁多

为此,必须扩展接口电路,对单片机与设备之间的为此,必须扩展接口电路,对单片机与设备之间的数据传送进行协调。数据传送进行协调。

●● 数据信号形式多种多样数据信号形式多种多样数据形式是多种多样的,例如有电压信号、电流信号;有数数据形式是多种多样的,例如有电压信号、电流信号;有数字式、模拟式。字式、模拟式。

Page 7: 第 7 章 单片机 I/O 扩展及应用

7.1 7.1 单片机为什么需要单片机为什么需要 I/OI/O 扩展扩展二二 . . 为什么要为什么要 I/OI/O 接接

口口 3. 3. 扩展扩展 I/OI/O 接口电路的功能接口电路的功能●● 速度协调速度协调

由于单片机的工作速度快,数据在数据总线上保留的时间由于单片机的工作速度快,数据在数据总线上保留的时间十分短暂,无法满足慢速输出设备的需要。为此,在扩展十分短暂,无法满足慢速输出设备的需要。为此,在扩展 II// OO 接口电路中应具有数据锁存器,使输出数据直至能为接口电路中应具有数据锁存器,使输出数据直至能为输出设备所接收。输出设备所接收。

●● 数据转换数据转换●● 输入数据三态缓冲 输入数据三态缓冲

●● 输出数据锁存输出数据锁存

模模 // 数转换和数数转换和数 // 模转换模转换。 。

Page 8: 第 7 章 单片机 I/O 扩展及应用

7.1 7.1 单片机为什么需要单片机为什么需要 I/OI/O 扩展扩展三三 . I/O. I/O 扩展的相关技术扩展的相关技术

1. 1. 接口与端口接口与端口

●● 一个接口电路就对应一个接口电路就对应 (( 或包含或包含 )) 着多个口地址着多个口地址。 。

●● 一个接口电路中可能包括有多个口。一个接口电路中可能包括有多个口。 例如数据口、状态口和命令口等例如数据口、状态口和命令口等

●● 可编址并能进行读或写操作的寄存器称为可编址并能进行读或写操作的寄存器称为端口端口 (Port(Port

))

2. 2. 数据总线隔离技术数据总线隔离技术数据总线上连接着多个数据源设备 ( 输入数据 ) 和多个数负载设备 ( 输出数据 ) 。但在任一时刻,只能进行一个源和一个负载之间的数据传送。

Page 9: 第 7 章 单片机 I/O 扩展及应用

7.1 7.1 单片机为什么需要单片机为什么需要 I/OI/O 扩展扩展三三 . I/O. I/O 扩展的相关技术扩展的相关技术

2. 2. 数据总线隔离技术数据总线隔离技术

●● 总线隔离使用三态缓冲电路总线隔离使用三态缓冲电路

 

三态控制信号 工作状态 数据输入 输出端状态1 高阻抗 0 高阻抗1 1 高阻抗0 驱 动 0 0

0 1 1

当一对源和负载的数据传送时 , 要求所有其它不参与的设备在电气性能上必须同数据总线隔开。

数据输入

数据输出

三态控制信号

Page 10: 第 7 章 单片机 I/O 扩展及应用

7.1 7.1 单片机为什么需要单片机为什么需要 I/OI/O 扩展扩展三三 . I/O. I/O 扩展的相关技术扩展的相关技术

3. 3. 单片机单片机 I/OI/O 编址技编址技术术

●● 独立独立编址编址 方式方式

凡需进行读写操作的设备都存在着编址的问题。凡需进行读写操作的设备都存在着编址的问题。 常用的常用的 II // OO 编址编址 方式有两种 方式有两种

●● 统一统一编址编址 方式方式

存储器和存储器和 I/OI/O 设备分开设备分开编址编址 ,, 设备的数据输入设备的数据输入 // 输出有专输出有专用的用的 I/OI/O 指令。指令。

存储器和存储器和 I/OI/O 设备统一设备统一编址编址 ,, 用用存储器指令进行存储器指令进行设备的设备的 I/I/OO 操作,简单、方便、功能强。但这种编址方式,会使地操作,简单、方便、功能强。但这种编址方式,会使地址译码变得复杂 。址译码变得复杂 。

Page 11: 第 7 章 单片机 I/O 扩展及应用

7.1 7.1 单片机为什么需要单片机为什么需要 I/OI/O 扩展扩展四四 . . 单片机单片机 I/OI/O 控制方式控制方式

(( 33 ))1. 1. 无条件传送方式无条件传送方式

●● 有常驻的或变化缓有常驻的或变化缓慢慢 的数据信号的设备。的数据信号的设备。 例:机械开关、指示灯例:机械开关、指示灯 、、 LEDLED 、数码管等、数码管等。。

I / O 操作时,不需要测试设备的状态,可根据需要随时进行数据传送操作。

●● 足以和单片机同步足以和单片机同步 工作的设备。工作的设备。 例:数/模转换器例:数/模转换器 (DA(DAC) C)

(a) 无条件输入传送

三态缓冲区

数据总线

外设数据

&

地址译码

地址

RD

(a) 无条件输入传送

数据总线

地址译码

地址

WR

数据到外设

&

锁存器

CE

Page 12: 第 7 章 单片机 I/O 扩展及应用

7.1 7.1 单片机为什么需要单片机为什么需要 I/OI/O 扩展扩展四四 . . 单片机单片机 I/OI/O 控制方控制方

式式2. 2. 查询方式查询方式●●查询方式又称有条件传送方式 查询方式又称有条件传送方式

●● 由接口电路提供设备状态,并以软件方法状态测试由接口电路提供设备状态,并以软件方法状态测试 。因此这是一种软硬件方法结合的数据传送方式。。因此这是一种软硬件方法结合的数据传送方式。

在在 II // OO 操作之前,先检测设备操作之前,先检测设备的状态,以了解设备是否已为的状态,以了解设备是否已为数据输入/输出作好了准备,数据输入/输出作好了准备,只有在确认设备 “准备好只有在确认设备 “准备好””的 的 情况下,单片机才能执行数据情况下,单片机才能执行数据输入/输出操作。输入/输出操作。

读入状态信息

是否准备好

数据传送数据传送

N

Y

Page 13: 第 7 章 单片机 I/O 扩展及应用

7.1 7.1 单片机为什么需要单片机为什么需要 I/OI/O 扩展扩展四四 . . 单片机单片机 I/OI/O 控制方控制方

式式3. 3. 中断方式中断方式

●● 单片机接收到中断请求之后,即作出响应,暂停单片机接收到中断请求之后,即作出响应,暂停 正在执行的程序,而转去为设备的数据输入/输正在执行的程序,而转去为设备的数据输入/输 出服务。出服务。

●● 当设备准备好传送当设备准备好传送 数据后,向单片机数据后,向单片机 发出中断请求信号发出中断请求信号 (相当于通知单片机)(相当于通知单片机)

CPU

I/O接口电路

外设

① 中断请求

② 中断响应

③ 数据传送

主程序

中断服务程序

断点返回

Page 14: 第 7 章 单片机 I/O 扩展及应用

7.2 7.2 单片机单片机 I/OI/O 扩展扩展一一 . . 简单输入口扩简单输入口扩

展展 1. 1. 两个输入口扩展两个输入口扩展

●● 使用时以 CE作为数 据选通信 号。

● ● 74LS244 有 2个 4位 的三态缓 冲器。

P0.0

P0.1

P0.2

P0.3

P0.4

P0.5

P0.6

P0.7

RD

P2.71

1Y1

1Y2

1Y3

1Y4

2Y1

2Y2

2Y3

2Y4

CE1

1A

1B

1C

1D

2A

2B

2C

2D

D0

D1

D2

D3

D4

D5

D6

D7

CE2

89C51 74244

输入设备

地址译码

Page 15: 第 7 章 单片机 I/O 扩展及应用

7.2 7.2 单片机单片机 I/OI/O 扩展扩展一一 . . 简单输入口扩展简单输入口扩展

2. 2. 多输入口扩展多输入口扩展3. 3. 应用举例应用举例●● 一个一个拨盘产生一拨盘产生一 个个 BCDBCD 码形式的码形式的 十进制数十进制数 (4(4位位 ))。。 现有现有 AA 、、 BB、、 CC、、 DD 44 个拨盘个拨盘 ,, 要求把要求把 BCDBCD 码数依次输码数依次输 入到通用寄存器入到通用寄存器 R4(BR4(B、、 A),R5(DA),R5(D、、 C)C) 中去。中去。

≥1 ≥1

D C B A

Y

2A 1A

CE1,2 Y

2A 1A

CE1,22# 1#

P0

ALE

RD

P2.7

P2.6

80C51

EPROM74373

Page 16: 第 7 章 单片机 I/O 扩展及应用

7.2 7.2 单片机单片机 I/OI/O 扩展扩展一一 . . 简单输入口扩展简单输入口扩展

MOV DPTR , #7FFFH ; 1 # 口地址MOVX A ,@DPTR ;从拨盘取数MOV R4 , A ;送 R4MOV DPTR , #OBFFFH ; 2 #口地址MOVX A ,@DPTR ;从拨盘取数MOV R5 , A ;送 R5

P2.7 作为 1#口的地址选通线 ( 线选法 ) 。 口地址为 7FFFH;P2.6作为 2#口的地址选通线。口地址为 OBFFFH。

Page 17: 第 7 章 单片机 I/O 扩展及应用

7.2 7.2 单片机单片机 I/OI/O 扩展扩展二二 . . 简单输出口扩展简单输出口扩展

1. 1. 简单扩展使用的典型芯片简单扩展使用的典型芯片简单输出口扩展通常使用 74LS377 芯片,该芯片是具有“使能”控制端的 8D锁存器lD--8D位数据输入线。lQ--8Q位数据输出线。

vccG

6Q

8D

7D

7Q

6D

5D

5Q

8Q

CK

3Q

1D

2D

2Q

3D

4D

4Q

1Q

GND

CK--时钟信号,上升沿数据锁存。

VCC-+5 V电源G--使能控制信号。

G CK D Q

1 X X Q0

0 1 1

0 0 0

X 0 X Q0

Page 18: 第 7 章 单片机 I/O 扩展及应用

7.2 7.2 单片机单片机 I/OI/O 扩展扩展二二 . . 简单输出口扩展简单输出口扩展

2. 2. 输出口扩展连接输出口扩展连接 P0.0

P0.1

P0.2

P0.3

P0.4

P0.5

P0.6

P0.7

WR

P2.7

1

1D

2D

3D

4D

5D

6D

7D

8D

CLK

1Q

2Q

3Q

4Q

5Q

6Q

7Q

8Q

D0

D1

D2

D3

D4

D5

D6

D7

G

89C51 74377

输出设备

地址译码

●●74LS377 的 G信号端固定接地 ( 有效 ) ,其目的 是使锁存器的工作只受CK(WR) 控制。

●● 用 WR 作为输出选通。

因为在 WR 信号由低变高时,数据总线上出现的正是输出数据 ,CK 正好控 制 输 出 数据进入锁存器。

Page 19: 第 7 章 单片机 I/O 扩展及应用

7.3 8255A7.3 8255A 可编成通用并行接口芯片可编成通用并行接口芯片一一 . . 可编程可编程 I/OI/O 接口扩展概接口扩展概述述

最大特点最大特点 ::工作方式的确定和改变由程序以软件方法实现。 工作方式的确定和改变由程序以软件方法实现。 MCS-51MCS-51 可直接连接,完成复杂的可直接连接,完成复杂的 I/OI/O 接口扩展接口扩展。。

用可编程接口芯片实现复杂的 I/O 接口扩展。常用可编程接口芯片●●88255A255A 可编程通用并行接口可编程通用并行接口●●81558155 带带 RAMRAM 和定时器和定时器 //计数器的可编程并行接口计数器的可编程并行接口●● 82598259 可编程中断控制器可编程中断控制器●● 82798279 可编程键盘/显示器接口可编程键盘/显示器接口●● 82538253 可编程通用定时器可编程通用定时器

Page 20: 第 7 章 单片机 I/O 扩展及应用

7.3 8255A7.3 8255A 可编成通用并行接口芯片可编成通用并行接口芯片二二 . 8255A. 8255A 的逻辑结构和信号引的逻辑结构和信号引脚脚

●● 口电路

8255A 的内部结构按 功 能 可 分 为 3个逻辑电路部分

●● 总线接口电路

●● 控制电路

A组控制

B组控制

A组A 口

A组C 口高 4

B组C 口低 4

B组B 口

数据总线缓冲

D7~D0

读 / 写控制逻辑

A1A0RESET

RD

WR

CE

PA7~PA0

PC7~PC4

PC3~PC0

PB7~PB0

Page 21: 第 7 章 单片机 I/O 扩展及应用

7.3 8255A7.3 8255A 可编成通用并行接口芯片可编成通用并行接口芯片二二 . 8255A. 8255A 的逻辑结构和信号引的逻辑结构和信号引脚脚1. 1. 口电路口电路

●●共有共有 33 个个 88位口,位口, AA 、、 BB 和和 CC 口口●●33 口都可供数据口都可供数据 II // OO 使用使用。。●●CC 口又可以作控制口使用。口又可以作控制口使用。 CC 口口 (PC7(PC7 ~~ PC4)PC4) 实现实现 AA 口的控制功能。 口的控制功能。 CC 口口 (PC3(PC3 ~~ PCo)PCo) 实现实现 AA 口的控制功能。口的控制功能。 ●●AA 口和口和 CC 口高位部分合在一起称之为口高位部分合在一起称之为 AA组;组; BB 口和口和 CC 口低位部分起称之为口低位部分起称之为 BB组。组。

Page 22: 第 7 章 单片机 I/O 扩展及应用

7.3 8255A7.3 8255A 可编成通用并行接口芯片可编成通用并行接口芯片2. 2. 总线接口电路总线接口电路总线接口电路总线接口电路用于实现用于实现 8255A8255A 和单片机的连接。包括和单片机的连接。包括::

数据数据总线缓冲器为总线缓冲器为 88位双向三态缓冲器位双向三态缓冲器 ●● 数据数据总线缓冲器总线缓冲器

··CSCS————片选信号片选信号 ((低电平有效低电平有效 )) 。。··RDRD————读信号读信号 ((低电平有效低电平有效 )) 。。··WRWR————写信号写信号 ((低电平有效低电平有效 )) 。。··A0A0 、、 AlAl————端口选择信号。端口选择信号。··RESETRESET————复位信号复位信号 (( 高电平有效高电平有效 )) 。复位之后。复位之后,, 控制寄存器清除,各端口置为输入方式。控制寄存器清除,各端口置为输入方式。

●● 读/写控制逻辑。读/写控制逻辑。

Page 23: 第 7 章 单片机 I/O 扩展及应用

7.3 8255A7.3 8255A 可编成通用并行接口芯片可编成通用并行接口芯片

3. 3. 控制逻辑电路控制逻辑电路●● 控制逻辑电路包括控制逻辑电路包括 AA组控制和组控制和 BB组控制组控制

CS A1 A0 RD WR 所选端口 操 作

0 0 0 0 1 A 口输入 读端口 A 数据送总线 0 0 1 0 1 B口输入 读端口 B数据送总线 0 1 0 0 1 C口输入 读端口 C数据送总线 0 0 0 1 0 A 口输出 写端口 A, 数据总线送 A 0 0 1 1 0 B口输出 写端口 B , 数据总线送 B

0 1 0 1 0 C口输出 写端口 C , 数据总线送 C 0 1 1 1 0 控制寄存器 写控制字1 X X X X / 总线缓冲器输出高阻抗

Page 24: 第 7 章 单片机 I/O 扩展及应用

7.3 8255A7.3 8255A 可编成通用并行接口芯片可编成通用并行接口芯片三三 . 8255A. 8255A 的工作方式及数据的工作方式及数据 I/OI/O 操作操作1. 8255A1. 8255A 的工作方式的工作方式

8255A8255A 工作方式由内部控制寄存器的内容决定,工作方式由内部控制寄存器的内容决定,AA组成有组成有 33 种工作方式:种工作方式: BB 组成有组成有 22种工作方式。种工作方式。

●● 方式方式 0——0——基本输入/输出方式基本输入/输出方式

*A 口、 B口、 C口高 4位、 C口低 4位都可以设定为输入或输出。*输出具有所锁存能力、但输入不锁存。*A组、 B组同时设定为工作方式 0 时, C口高 4位、 C口低 4位可 以设定为输入或输出,但 CPU不能单独访问,只能访问端口 C的一个整体;若设定相同时,访问 C口与访问 A 、 B口一样。 不同时,要适当屏蔽输入数据。

Page 25: 第 7 章 单片机 I/O 扩展及应用

7.3 8255A7.3 8255A 可编成通用并行接口芯片可编成通用并行接口芯片三三 . 8255A. 8255A 的工作方式及数据的工作方式及数据 I/OI/O 操作操作●● 方式方式 1——1——选通输入/输出方式 选通输入/输出方式

当 CPU与外设需要中断或查询方式传送数据时,采用方式 1 工作A 通道 :一个 8位数据端口 A 和一个 5位的控制口 PC7-PC3 )。

B通道 :一个 8位数据端口 B和一个 3位的控制口 (PC2-PC0) 。

C口各位控制功能如下表。

Page 26: 第 7 章 单片机 I/O 扩展及应用

7.3 8255A7.3 8255A 可编成通用并行接口芯片可编成通用并行接口芯片三三 . 8255A. 8255A 的工作方式及数据的工作方式及数据 I/OI/O 操作操作

C 口位线

方 式 1 方 式 2

输入 输出 输入 输出

PC7PC6PC5 IBFA IBFA

PC4PC3 INTRA INTRA INTRA INTRA

PC2PC1 IBFB

PC0 INTRB INTRB

STBA

STBB

STBA

ACKB

ACKAACKA

OBFB

OBFA OBFA

Page 27: 第 7 章 单片机 I/O 扩展及应用

7.3 8255A7.3 8255A 可编成通用并行接口芯片可编成通用并行接口芯片三三 . 8255A. 8255A 的工作方式及数据的工作方式及数据 I/OI/O 操作操作

INTR—中断申请信号,高有效, 8255A产生送 CPU   的 INT引脚。

STB—选通输入控制信号,低有效,外设产生。

IBF—输入缓冲器满标志信号,高有效, 8255A产   生送外设。

—输出缓冲器满标志信号,低有效,送外设。OBF

—响应输入信号 ,低有效 , 外设产生 ,OBF的响应。ACK

C口其余口线仍可进行位输入输出使用。

A 口或B口只有一个为方式 1 ,其余口线仍按方式0使用。

Page 28: 第 7 章 单片机 I/O 扩展及应用

7.3 8255A7.3 8255A 可编成通用并行接口芯片可编成通用并行接口芯片三三 . 8255A. 8255A 的工作方式及数据的工作方式及数据 I/OI/O 操作操作●● 方式方式 2—— 2—— 双向数据传送方式 双向数据传送方式 *只有 A 通道有工作方式 2,基本功能 * 端口 A 是一个 8位的双向端口 * 端口 C的 PC7-PC3 是 5根联络线 * 端口 C引脚的定义 (前表)A 口工作在方式 2 ,口只能工作在方式 0

2. 2. 数据输入操作数据输入操作

*如用查询方式,则 IBF作为状态信号供查询使用*如用中断方式 , 当 STB由低变高时 ,产生 INTR 信号。

当外设准备好数据输入后,发出 STB信号,输入的数据送入缓冲器,然后 IBF信号有效。

Page 29: 第 7 章 单片机 I/O 扩展及应用

7.3 8255A7.3 8255A 可编成通用并行接口芯片可编成通用并行接口芯片三三 . 8255A. 8255A 的工作方式及数据的工作方式及数据 I/OI/O 操作操作

如用中断方式,则当 ACK信号结束时, INTR 有效,向单片机发出中断请求。把下一个输出数据写入8255A 的输出缓冲器。写入后 OBF有效,表明输出数据已到,并以此信号启动接口设备工作,取走并处理 8255A 中的输出数据。

单片机在响应中断 ( 读入数据 )后,并使 INTR , IBF信号同时变低。-通知接口设备准备下一数据输入。3. 3. 数据输出操作数据输出操作

如用查询方式,则 OBF作为状态信号供查询使用;

外设接收并处理完一组数据后,发回 ACK信号 ,该信号使 OBF变高,表明输出缓冲器已空。

Page 30: 第 7 章 单片机 I/O 扩展及应用

7.3 8255A7.3 8255A 可编成通用并行接口芯片可编成通用并行接口芯片

四四 . 8255A. 8255A 控制字及初始化编程控制字及初始化编程

1. 1. 工作方式控制字工作方式控制字

●● 控制字的控制字的 D7D7位为位为 11 是方式选择控制字;是方式选择控制字; 控制字的控制字的 D7D7位为位为 00 是是 CC口按位置位口按位置位 // 复位的命令。复位的命令。

●● 地址线地址线 A1A1 、、 A0A0 为为 11 、、 11 时访问控制字寄时访问控制字寄存器存器

●● 有两个控制字:方式选择控制字;有两个控制字:方式选择控制字; CC口按位置位口按位置位 // 复位控制字。复位控制字。

Page 31: 第 7 章 单片机 I/O 扩展及应用

7.3 8255A7.3 8255A 可编成通用并行接口芯片可编成通用并行接口芯片1. 1. 工作方式控制字工作方式控制字

D7 D6 D5 D4 D3 D2 D1 D0

设定工作方式标志1=有效

C(低半 ) 1 = 输入    0 = 输出

B 1 = 输入 0 = 输出方式选择  0 =方式 0       1 =方式 1

C( 高半 ) 1 = 输入    0 = 输出

A 1 = 输入 0 = 输出方式选择  00 =方式 0      01 =方式 1 1X =方式 2

Page 32: 第 7 章 单片机 I/O 扩展及应用

7.3 8255A7.3 8255A 可编成通用并行接口芯片可编成通用并行接口芯片

D7 X X X D3 D2 D1 D0

置 1清0位标志0=有效

置 1清0位1=置 1,0=置0

位0 0 0 00 0 1 1

0 1 0 2

0 1 1 3

1 0 0 4

1 0 1 5

1 1 0 6

1 1 1 7

2. C2. C 口位置位口位置位 // 复位控制字复位控制字

Page 33: 第 7 章 单片机 I/O 扩展及应用

7.3 8255A7.3 8255A 可编成通用并行接口芯片可编成通用并行接口芯片四四 . 8255A. 8255A 控制字及初始化编程控制字及初始化编程

3. 3. 初始化编程初始化编程●●8255A8255A初始化的内容就是向控制字寄存器写入工初始化的内容就是向控制字寄存器写入工 作方式控制字和 作方式控制字和 CC 口位置位/复位控制字。口位置位/复位控制字。

设控制寄存器地址为设控制寄存器地址为 003AH003AH 。。按各口的设置要求,工作方式控制字为按各口的设置要求,工作方式控制字为 1001010110010101 ,即,即 95H95H 。。初始化程序段应为:初始化程序段应为:

●● 例如对例如对 8255A8255A各口作如下设置:各口作如下设置: AA 口方式口方式 OO 输入,输入, BB 口口方方   式   式 11 输出,输出, CC 口高位部分为输出,低位部分为输入。口高位部分为输出,低位部分为输入。  

MOV R0,#3AHMOV R0,#3AHMOV A,#95HMOV A,#95HMOVX @R0,AMOVX @R0,A

Page 34: 第 7 章 单片机 I/O 扩展及应用

7.4 81557.4 8155 带带 RAMRAM 和定时器和定时器 //计数器的可编程并行接口芯片计数器的可编程并行接口芯片

一一 . 8155. 8155基本结构及工作方式基本结构及工作方式1. 1. 主要接口信号主要接口信号

81558155 除能提供相除能提供相 8255A8255A 并行接口电路 外,还包含并行接口电路 外,还包含 252566 字节字节 RAMRAM 存储器和一个存储器和一个 1414位定时器/计数器。位定时器/计数器。

WR —— 写选通信号。CE —— 片选信号。IO/M—I/O 与 RAM选 择信号。RESET 一复位信号。

A

B

C

256 字节静态RAM

14位定时 /计数器

PA0-7

PB0-7

PC0-5

VCC

VSS

AEL

AD0-7

RD

WRCEIO/MRESET

TIMER IN

TIMER OUT

RD —— 读选通信号。AEL— 地址锁存信号。

AD0 ~ AD7— 地址数 据复用线。

Page 35: 第 7 章 单片机 I/O 扩展及应用

7.4 81557.4 8155 带带 RAMRAM 和定时器和定时器 //计数器的可编程并行接口芯片计数器的可编程并行接口芯片

一一 . 8155. 8155基本结构及工作方式基本结构及工作方式2. I/O2. I/O 口及其工作方式口及其工作方式●●PAPA 、、 PBPB是是 88位通用位通用输入/输出口,两种工作方输入/输出口,两种工作方式式

输入方式输入方式 (ALT1)(ALT1) ; ; PAPA 口控制方式口控制方式 (ALT3)(ALT3) ;;输出方式输出方式 (ALT2)(ALT2) ;; PAPA 和和 PBPB 口控制方式口控制方式 (ALT4)(ALT4) 。。

●●PCPC是是 66 位口,有四种工作方式位口,有四种工作方式

*当 PA 或 PB以中断方式进行数据传送时,所需的联络 信号由 PC提供

*当无条件方式进行数据传送时,不需要联络信号, PA 、 PB及 PC都可以进行数据的输入/输出操作。

Page 36: 第 7 章 单片机 I/O 扩展及应用

7.4 81557.4 8155 带带 RAMRAM 和定时器和定时器 //计数器的可编程并行接口芯片计数器的可编程并行接口芯片

一一 . 8155. 8155基本结构及工作方式基本结构及工作方式

INTR—INTR— 中断请求信号中断请求信号 (( 输出输出 )) ,高有效。送给,高有效。送给 CPUCPU 的外中的外中断。断。

方式口位

PA 控制口

PA 和 PB 控制口

PC0 AINTR AINTR

PC1 ABF ABF

PC2

PC3 输出 BINTR

PC4 输出 BBF

PC5 输出

ASTASTBB

ASTASTBB

BSTBSTBB

BF——BF—— 缓冲器满状态信号缓冲器满状态信号 (( 输出输出 )) ,高电平有效。,高电平有效。 STSTBB—— 选通信号选通信号 (( 输入输入 )) ,低有效。数据输入操作时,,低有效。数据输入操作时, STBSTB是外是外 设送来;数据输出时,是外设送来的应答信号。设送来;数据输出时,是外设送来的应答信号。

Page 37: 第 7 章 单片机 I/O 扩展及应用

7.4 81557.4 8155 带带 RAMRAM 和定时器和定时器 //计数器的可编程并行接口芯片计数器的可编程并行接口芯片

一一 . 8155. 8155基本结构及工作方式基本结构及工作方式3. RAM3. RAM 单元及单元及 I/OI/O 口编址口编址

●●256256 个个 RAMRAM 单元地址是单元地址是 00H~0FFH

AD7

AD6

AD5

AD4

AD3

AD2

ADl AD0

选 择

× × × × × O O O 命令/状态寄存器× × × × × O O 1 PA 口× × × × × 0 1 O PB口× × × × × O 1 1 PC口× × × × × 1 O O 定时器/计数器低 8

位× × × × × 1 O 1 定时器/计数器高 8

●● 口地址是口地址是 × × × × × 000B~ × × × × × 101B

Page 38: 第 7 章 单片机 I/O 扩展及应用

7.4 81557.4 8155 带带 RAMRAM 和定时器和定时器 //计数器的可编程并行接口芯片计数器的可编程并行接口芯片

二二 . 8155. 8155 与与 MCS-51MCS-51 单片机的连接单片机的连接●●8155A8155A 与与 MCSMCS 一一 5151兼容,可以直接连接。兼容,可以直接连接。

8155 MCS 一51

AD7 ~AD0

P0 口

ALE ALE

RESET RST

RD RD

WR WR●●以高位地址直接作以高位地址直接作 为为 IO/MIO/M 信号信号

ALE

RD

WR

CE

ALE

P2.1

P2.0

P0

RD

WR

RST RST

AD

IO/M

PA7~PA0

PB7~PB0

PC5~PA0

RAMRAM 地址是地址是 0000H~00FFH端口地址是端口地址是 0100H~0105H

Page 39: 第 7 章 单片机 I/O 扩展及应用

7.4 81557.4 8155 带带 RAMRAM 和定时器和定时器 //计数器的可编程并行接口芯片计数器的可编程并行接口芯片

三三 . 8155. 8155 的命令的命令 // 状态寄存器状态寄存器

1. 1. 命令字命令字

命令/状态寄存器,是两个不同的寄存器,分别命令/状态寄存器,是两个不同的寄存器,分别存放命令字和状态字。由于命令寄存器只进行写存放命令字和状态字。由于命令寄存器只进行写操作,状态寄存器只进行读操作, 所以把它们编操作,状态寄存器只进行读操作, 所以把它们编为同一地址。为同一地址。

●● 命令字用于定义端口及定时器命令字用于定义端口及定时器 //计数器的工作方式。计数器的工作方式。

2. 2. 状态字状态字●● 状态字用于寄存各端口及定时器状态字用于寄存各端口及定时器 //计数器计数器的工作状态的工作状态

Page 40: 第 7 章 单片机 I/O 扩展及应用

7.4 81557.4 8155 带带 RAMRAM 和定时器和定时器 //计数器的可编程并行接口芯片计数器的可编程并行接口芯片

81558155 的命令寄存器的命令寄存器

D7 D6 D5 D4 D3 D2 D1 D0

B口方式 O=输入 1=输出A 口方式 O=输入 1=输出

定时器定时器工作工作方式

00=无操作01=停止计数10=计满后停止11=开始计数

C口方式

00=ALT1 01=ALT210=ALT3 1l=ALT4

A 口中断 0=中断禁止l=中断允许B口中断

Page 41: 第 7 章 单片机 I/O 扩展及应用

7.4 81557.4 8155 带带 RAMRAM 和定时器和定时器 //计数器的可编程并行接口芯片计数器的可编程并行接口芯片

81558155 的状态字寄存器的状态字寄存器

X D6 D5 D4 D3 D2 D1 D0

ABF A 口缓冲器满 /空INTRA A 口中断请求

TIMERTIMER 定时器中断(计满时为高电平 ,读出状态字或硬件

复位为低电平 )

INTEA A 口中断允许INTRB B口中断请求BBF B口缓冲器满 /空

INTRB B口中断请求

Page 42: 第 7 章 单片机 I/O 扩展及应用

7.4 81557.4 8155 带带 RAMRAM 和定时器和定时器 //计数器的可编程并行接口芯片计数器的可编程并行接口芯片

四四 . 8155. 8155 的定时器的定时器 //计数器计数器1. 1. 定时器定时器 //计数器的计数结构计数器的计数结构●● 定时器/计数器是一个定时器/计数器是一个 1414位的减法计数器,由位的减法计数器,由两两 个个 88位寄存器构成,剩下的两个高位位寄存器构成,剩下的两个高位 (M2(M2,, M1)M1)用用 于定义计数器输出的信号形式。于定义计数器输出的信号形式。D

7D6

D5 D4 D3 D2 D1

D0

M2

M1

T13

T12

Tll T10

T9

T8D7 D6 D5 D4 D3 D2 Dl D0

T7 T6 T5 T4 T3 T2 Tl T0

Page 43: 第 7 章 单片机 I/O 扩展及应用

7.4 81557.4 8155 带带 RAMRAM 和定时器和定时器 //计数器的可编程并行接口芯片计数器的可编程并行接口芯片

四四 . 8155. 8155 的定时器的定时器 //计数器计数器2. 2. 定时器定时器 //计数器的使计数器的使

用用●● 定时器/计数器是减法计数定时器/计数器是减法计数

●● 只有只有 1414位计数工作方式,软件方法进行计数值加载。位计数工作方式,软件方法进行计数值加载。

●● 由外部提供定时/计数脉冲由外部提供定时/计数脉冲 ,, 其信号引脚是其信号引脚是 TIMER INTIMER IN 。。 ●●计数溢出时向外边输出一个信号计数溢出时向外边输出一个信号 (TIMER OUT)(TIMER OUT) 。。 信号形式,由用户定义信号形式,由用户定义M2M2 、、 M1M1 进行选择。进行选择。

M2M1=00 单个方波 M2M1=10 单个脉冲M2M1=01 连续方波 M2M1=11 连续脉冲

Page 44: 第 7 章 单片机 I/O 扩展及应用

7.4 81557.4 8155 带带 RAMRAM 和定时器和定时器 //计数器的可编程并行接口芯片计数器的可编程并行接口芯片

五五 . 8155. 8155初始化初始化

即计数即计数 10001000后,后, TIMER OUTTIMER OUT端电平状态变化,并重新置端电平状态变化,并重新置数以产生连续方波。此外假定数以产生连续方波。此外假定 PAPA 口为输入方口为输入方式,式, PBPB口为口为输出方输出方式式,, PCPC口为输入方式,禁止中断。请编写初始化程口为输入方式,禁止中断。请编写初始化程序。序。

●● 要求用要求用 81558155 定时器/计数器对计数脉冲进行千分定时器/计数器对计数脉冲进行千分频频

●● 要求输出连续方波,因此 M2M1= 01 。由于 8155计数器是减法计算,所以计数初值应为 1000= 03E8H。则:计数器高位字节为 43H,低位字节为 0E8H。

计数器 B 口 A 口 C 口 B 口 A 口装入后启动 不允许中断 输入 输出 输入

D7 D6 D5 D4 D3 D2 D1 D0

1 1 0 0 0 0 1 0

命令字为

0C2H

Page 45: 第 7 章 单片机 I/O 扩展及应用

7.4 81557.4 8155 带带 RAMRAM 和定时器和定时器 //计数器的可编程并行接口芯片计数器的可编程并行接口芯片

五五 . 8155. 8155初始化初始化●● 假定命令假定命令 // 状态寄存器地址为状态寄存器地址为 0FD00H0FD00H 。则初始化程序为:。则初始化程序为:

MOV DPTR , #OFDOOH ;命令/状态寄存器地址MOV A , #OC2H ;命令字MOVX @DPTR , A ;装入命令字MOV DPTR , #0FD04H ;计数器低 8位地址MOV A , #0E8H ;低 8位计数值MOVX @DPTR , A ;写入计数值低 8位INC DPTR ;计数器高 8位地址MOV A , #43H ;高 8位计数值MOVX @DPTR , A ;写入计数值高 8位

Page 46: 第 7 章 单片机 I/O 扩展及应用

7.5 8279 7.5 8279 可编程键盘可编程键盘 // 显示器接口芯片显示器接口芯片一一 . 8279 . 8279 的电路逻辑和信号引脚的电路逻辑和信号引脚1. 82791. 8279 的电路逻辑的电路逻辑2. 82792. 8279 芯片的信号引脚芯片的信号引脚二二 . 8279 . 8279 的寄存器的寄存器1. 1. 命令寄存器命令寄存器2. 2. 状态寄存器状态寄存器

3.3. 数据寄存器数据寄存器

Page 47: 第 7 章 单片机 I/O 扩展及应用

7.5 8279 7.5 8279 可编程键盘可编程键盘 // 显示器接口芯片显示器接口芯片三三 . 8279 . 8279 的接口应用的接口应用1. 82791. 8279 与与 80C5180C51 兼容信号的连接兼容信号的连接

2. 2. 地址信号连接和寄存器地址地址信号连接和寄存器地址3. 82793. 8279 与键盘的连接和操作与键盘的连接和操作4. 82794. 8279 与显示器的连接和操作与显示器的连接和操作

Page 48: 第 7 章 单片机 I/O 扩展及应用

7.6 MCS-51 7.6 MCS-51 单片机键盘接口技术单片机键盘接口技术

二二 . . 单片机键盘接口和键功能的实现单片机键盘接口和键功能的实现1. 1. 键盘接口处理的内容键盘接口处理的内容2. 2. 键盘接口的控制方式键盘接口的控制方式3. 3. 键处理子程序键处理子程序

一一 . . 单片机键盘和键盘接口概述单片机键盘和键盘接口概述

三三 . . 使用 使用 8155 8155 作单片机键盘接口作单片机键盘接口1. 1. 接口电路逻辑图接口电路逻辑图2. 2. 判定有无闭合键的子程序判定有无闭合键的子程序3. 3. 键盘扫描程序键盘扫描程序4. 4. 小结小结

Page 49: 第 7 章 单片机 I/O 扩展及应用

7.6 MCS-51 7.6 MCS-51 单片机键盘接口技术单片机键盘接口技术四四 . . 使用 使用 8279 8279 作单片机键盘接口作单片机键盘接口1. 1. 接口电路逻辑图接口电路逻辑图2. 2. 汇编语言程序汇编语言程序3. 3. 程序说明程序说明

Page 50: 第 7 章 单片机 I/O 扩展及应用

7.7 MCS-51 7.7 MCS-51 单片机显示器接口技术单片机显示器接口技术一一 . LED . LED 显示器接口显示器接口1. LED1. LED 显示原理显示原理●●LEDLED 显示器由显示器由 77七段发光二极管组成,七段发光二极管组成,其形状如图其形状如图

●●静态;动态。静态;动态。●●共阳极接法共阳极接法;共阴极接法。共阴极接法。

g f com a b

e d c dpcom

ab

cd

e

fg

+5Vabcdefgdp

abcdefgdp

Page 51: 第 7 章 单片机 I/O 扩展及应用

7.7 MCS-51 7.7 MCS-51 单片机显示器接口技术单片机显示器接口技术g f com a b

e d c dpcom

ab

cd

e

fg

代码位 D7

D6

D5

D4

D3

D2

D1 D0

显示段 dp

g f e d C b a字型

共阳极代码

共阴极代码

字型

共阳极代码

共阴极代码

0 C0H 3FH 9 90H 6FH

1 F9H 06H A 88H 77H

2 A4H 5BH b 83H 7CH

3 B0H 4FH C C6H 39H

4 99H 66H d A1H 5EH

5 92H 6DH E 86H 79H

6 82H 7DH F 8EH 71H

7 F8H 07H 灭 FFH 00H

8 80H 7FH

Page 52: 第 7 章 单片机 I/O 扩展及应用

7.7 MCS-51 7.7 MCS-51 单片机显示器接口技术单片机显示器接口技术一一 . LED . LED 显示器接口显示器接口2. 2. 用用 81558155 作作 LEDLED 显示器接口显示器接口●● 接口电路的连接口电路的连接接 *对多位 LED显示器,通常都是采用动态扫方法进行显示, 即逐个地循环地点亮各位显示器。 * LED显示动态扫描,除了要给显示器提供段 ( 字形代码 ) 的输入之外,还要对显示器位的控制。

*C口为输出口 (位控口 ) ,以 PC5 ~ PC。输出位控线。  A 口为输出口 (段控口 ) ,以输出 8位字形代码 (段控线 ) 。 *位控线的驱动电流—— 74LS06反相和提高驱动 段控线的负栽电流—— 74LS244 输出驱动。

Page 53: 第 7 章 单片机 I/O 扩展及应用

7.7 MCS-51 7.7 MCS-51 单片机显示器接口技术单片机显示器接口技术

.8.8.8.8.8.8.

PA0PA1PA2PA3PA4PA5PA6PA7

PC0PC1

8155

PC2PC3PC4PC5

74LS06

74LS244

8路反相驱动

8路反相驱动

Page 54: 第 7 章 单片机 I/O 扩展及应用

7.7 MCS-51 7.7 MCS-51 单片机显示器接口技术单片机显示器接口技术

一一 . LED . LED 显示器接口显示器接口2. 2. 用用 81558155 作作 LEDLED 显示器接口显示器接口●● 显示缓冲显示缓冲区区 *存放显示的数字或字符,通常在内部 RAM 中设置显示 缓冲区,缓冲单元是 79H ~ 7EH 。

*动态扫描从右向左进行,则缓冲区的首地址应为 79H 。  假定位控口 (C) 地址 0103H ,段控口 (A) 地址 0101H 。 。

LED5

LED4

LED3

LED2

LED1

LED0

7EH 7DH 7CH 7BH 7AH 79H

3. LED3. LED 显示程序显示程序

Page 55: 第 7 章 单片机 I/O 扩展及应用

DIRDIR : : MOV R0MOV R0 ,, #79H #79H ;建立显示缓冲区首址;建立显示缓冲区首址 MOV R3,#01H MOV R3,#01H ;从右数第一位显示器开始;从右数第一位显示器开始 MOV A,R3 MOV A,R3 ;位控码初值;位控码初值LDOLDO : : MOV DPTR,#0103H MOV DPTR,#0103H ;位控口地址;位控口地址

MOVX @DPTR,A MOVX @DPTR,A ;输出位控码;输出位控码MOV DPTR,#0101H MOV DPTR,#0101H ;得段控口地址;得段控口地址MOV A,@R0 MOV A,@R0 ;取出显示数据;取出显示数据

DIRODIRO : : ADD A,#0DH ADD A,#0DH MOVC A,@A+PC MOVC A,@A+PC ;查表取字形代码;查表取字形代码DIRlDIRl : : MOVX @DPTR,A MOVX @DPTR,A ;输出段控码;输出段控码

ACALL DL ACALL DL ;延时,维持点亮;延时,维持点亮INC R0 INC R0 ;转向下一缓冲单元;转向下一缓冲单元MOV A,R3 MOV A,R3 JB ACC.5,LD1 JB ACC.5,LD1 ;判是否到最高位,到则返回;判是否到最高位,到则返回RL A RL A ;不到,向显示器高位移位;不到,向显示器高位移位MOV R3,A MOV R3,A ;位控码送;位控码送 R3R3 保存保存AJMP LD0 AJMP LD0 ;继续扫描;继续扫描

LDlLDl :: RETRETDSEGDSEG : : DB 0C0H,0F9H,0A4H DB 0C0H,0F9H,0A4H ;字形代码表;字形代码表 DBDB

Page 56: 第 7 章 单片机 I/O 扩展及应用

7.7 MCS-51 7.7 MCS-51 单片机显示器接口技术单片机显示器接口技术二二 . LCD . LCD 显示器接口显示器接口1. LCD1. LCD 显示器显示原理显示器显示原理2. LCD2. LCD 显示器应用举例显示器应用举例

Page 57: 第 7 章 单片机 I/O 扩展及应用

7.8 MCS-51 7.8 MCS-51 单片机打印机接口技术单片机打印机接口技术一一 . . 微型打印机简介微型打印机简介

1. 1. 概述概述2. uP2. uP 系列打印机系列打印机

uPuP系列打印机具有标准的系列打印机具有标准的 CentronicCentronic 并行接口标准,并行接口标准,与单片机之间是通过一条与单片机之间是通过一条 2020 芯的扁平电缆线进行连接芯的扁平电缆线进行连接

GND

GND

GND

GND

GND

GND

GND

GND

DB0DBl DB

2DB3

DB4

DB5

DB6

DB7

BUSY

(2)(1)

(20)(19)

DB7 ~ DB0——数据线。

BUSY——打印机“忙”信号。

——数据选通信号,打印机输入。信号上升沿时 打印数据被打印机读入并锁存。

STB

STB

——打印机应答信号。是打印机读入打印数据后的应答。ACK

ACK

——出错信号,打印机输出。 ERR

ERR

Page 58: 第 7 章 单片机 I/O 扩展及应用

7.8 MCS-51 7.8 MCS-51 单片机打印机接口技术单片机打印机接口技术二二 . . 打印机接口和打印机驱动程序打印机接口和打印机驱动程序

1. 1. 不用扩展接口的打印机连接不用扩展接口的打印机连接

●● RDRD 信号去读入打信号去读入打 印机的印机的 BUSY(BUSY( 经经 口线口线 P0.7)P0.7) 。。

●●88根数据线直接与根数据线直接与 P0P0 线连接。线连接。●● P2.7--P2.7-- 地址选通地址选通

●● WRWR 信号接打印机信号接打印机 — —STBSTB 信号, 信号,

>1

>1

WR

P2.7

RD

P0.7

P0.1P0.0VSS

89C51GNDDB0DB1

DB7

BUSY

STB

uP型打印机

Page 59: 第 7 章 单片机 I/O 扩展及应用

7.8 MCS-51 7.8 MCS-51 单片机打印机接口技术单片机打印机接口技术二二 . . 打印机接口和打印机驱动程序打印机接口和打印机驱动程序

2. 2. 使用使用 82558255 作打印机接口作打印机接口

●● 控制寄存器控制寄存器 地址为地址为 7FH7FH

uP型打印机

WR

RST

RD

ALE

P0.0~P0.7

89C51

DB0

DB1

DB7

BUSY

STB

WR

A0

RD

A1

PA1

PA0

Q0

G

D0~D7

D0~D7

Q1

Q7

RST

CE

PA7

PC0

PC7

74373

8255A

●● BB 口为口为 7DH7DH CC 口为口为 7EH7EH

●● AA 口为口为 7CH7CH●● 82558255 口地址口地址

Page 60: 第 7 章 单片机 I/O 扩展及应用

7.8 MCS-51 7.8 MCS-51 单片机打印机接口技术单片机打印机接口技术二二 . . 打印机接口和打印机驱动程序打印机接口和打印机驱动程序

2. 2. 使用使用 82558255 作打印机接口作打印机接口

● ● C 口低位输出 D0=0●● C 口高位输入 D3=1●● B 口不用,假定 D2Dl=00●● A 口为输出 D6D5D4=000

则工作方式控制字为 10001000 ,即 88H 。

Page 61: 第 7 章 单片机 I/O 扩展及应用

7.8 MCS-51 7.8 MCS-51 单片机打印机接口技术单片机打印机接口技术二二 . . 打印机接口和打印机驱动程序打印机接口和打印机驱动程序3. 3. 打印驱动程序打印驱动程序

●● 送给打印机的选通信号送给打印机的选通信号 STBSTB是一个负脉冲,为此是一个负脉冲,为此应应 当在打印数据从单片机进到当在打印数据从单片机进到 8255A8255A后,在后,在 PC0PC0 端端产产 一个负脉冲。一个负脉冲。

●● 在内部在内部 RAMRAM 中设置缓冲区,中设置缓冲区,存放存放打印数据打印数据 (( 包括包括数数 据、命令、回车换行符等据、命令、回车换行符等 ) ) ,为此应设置两个参,为此应设置两个参 数,一个是缓冲区首址,另一个是缓冲区长度。数,一个是缓冲区首址,另一个是缓冲区长度。

假定 R1 一缓冲区首址。 R2--缓冲区长度。则打印驱动子程序:

Page 62: 第 7 章 单片机 I/O 扩展及应用

MOV   R0 , #7FH ; 控制寄存器地址 MOV   A , #88H ; 工作方式控制字 MOVX @R0 , A   ; 写入工作方式控制字 TP: MOV   R0 , #7EH ;C 口地址 TPl:MOVX  A , @R0  ; 读 C 口

JB    ACC.7 , TP1 ;BUSY=1 ,娃续查询MOV   R0 , #7CH ;A 口地址MOV   A , @R1 ;取缓冲区数据MOVX @R0,A  ; 打印数据送 8255AINC    R1 ;指向下一单元MOV   R0 , #7FH ; 控制口地址MOV   A , #00H ; 输出 STB 脉冲MOVX @R0 , AMOV   A , #01HMOVX  @R0 , ADJNZ   R2 , TP ; 数据长度减 1 ,不为 0继续RET

Page 63: 第 7 章 单片机 I/O 扩展及应用

作业练习题作业练习题

P219: P219: 一 一 . 1. 1 、、 44 、、 6~306~30

二 二 . 1. 1 、、 22 、、 44 、、 66 、、 9~149~14