中大单片机_第9章 MCS-51扩展IO接口的设计
9MCS-51扩展接口的设计[1]
MCS-51扩展I/O接口的设计 MCS-51扩展I/O接口的设计 扩展I/O
I/O接口扩展概述 I/O接口扩展概述
(输入 输出)接口是MCS 51与外设交换数字信 输入/ MCSI/O (输入/输出)接口是MCS-51与外设交换数字信 息的桥梁. 息的桥梁. 桥梁 I/O扩展也属于系统扩展的一部分 I/O扩展也属于系统扩展的一部分. 扩展也属于系统扩展的一部分. MCS-51真正用作I/O口线的只有P1口的8 I/O线和 MCS-51真正用作I/O口线的只有P1口的8位I/O线和 真正用作I/O口线的只有P1口的 P3口的某些位线. P3口的某些位线. 口的某些位线 在多数应用系统中,MCS-51单片机都需要外扩I/O 在多数应用系统中,MCS-51单片机都需要外扩I/O 单片机都需要外扩 接口电路. 接口电路.
每一接口芯片中的一个功能寄存器(端口) 每一接口芯片中的一个功能寄存器(端口)的地址就 相当于一个RAM单元. 相当于一个RAM单元. RAM单元 I/O数据的几种传送方式 9.1.3 I/O数据的几种传送方式 为实现和不同的外设的速度匹配,I/O接口必须根据 为实现和不同的外设的速度匹配,I/O接口必须根据 不同外设选择恰当的I/O数据传送方式. 不同外设选择恰当的I/O数据传送方式. I/O数据传送方式 I/O数据传送的几种传送方式是: I/O数据传送的几种传送方式是: 数据传送的几种传送方式是 中断传送. (1)同步传送(2)异步传送(3)中断传送. 同步传送( 异步传送(
9.1.1
I/O接口的功能 I/O接口的功能
I/O接口电路应满足以下要求: I/O接口电路应满足以下要求: 接口电路应满足以下要求 1.实现和不同外设的速度匹配 1.实现和不同外设的速度匹配 大多数的外设的速度很慢,无法和 s 大多数的外设的速度很慢,无法和s量级的单片机速 度相比. 度相比. 单片机只有在确认外设已为数据传送做好准备的前提 单片机只有在确认外设已为数据传送做好准备的前提 确认 下才能进行I/O操作. 下才能进行I/O操作. I/O操作 想知道外设是否准备好, I/O接口电路与外设之间 想知道外设是否准备好,需I/O接口电路与外设之间 传送状态信息. 传送状态信息.
第9章 MCS-51的IO接口扩展,单片机,张毅刚教材
例9-6
与Motorola的I/O设备接口设计
• 控制时序:
WR
1、用 WR 控制 R / W
• 矢能信号E
a b Y
操作
0 0 X
0 1 1 1 0 1 1 1 0
E Y P 2 .7
不可能出现
启动读写 无操作 写
读
LCD模块
参见10.4
用串口扩展16位并行输入口
例9-7、从16位扩展口读入5组数据(每组2B), 存入内部RAM以20H为的起始的单元中。
MOV R7, #05H MOV R0, #20H 0 ;移位 start: CLR P1.0 ;并行置数,异步控制。 S/L SETB P1.0 ;串行移位,需时钟控制。 1 ;并行输入 MOV R1, #02H 低8位 rxddata:MOV SCON, #00010000B ;启动串行方式0 wait: JNB RI, wait CLR RI MOV A, SBUF MOV @R0, A INC R0 DJNZ R1, 高8位 rxddata DJNZ R7, start
用串口扩展16位并行输出口
例9-8、将内部RAM单元30H、31H的内容经串 行口由74LS164并行输出。
将30H、31H单元的内容,通过 U2、U3输出。 MOV R7, #02H MOV R0, #30H MOV SCON, #00H send: MOV A, @R0 MOV SBUF, A ;启动输出 wait: JNB TI, wait CLR TI INC R0 DJNZ R7, send
– 独立编址:I/O具有自己的独立空间。系统在软件上提 供专门的I/O指令,硬件上提供I/OR、I/OW控制信号。 – 统一编址:系统没有I/O指令, I/O与存储器统一分配 存储空间。统一编址,访问I/O就象访问存储器一样, 使用相同指令与寻址方式。
MCS-51单片机IO接口的扩展
9.2 扩展可编程并行I/0芯片8255A
PA (8位) 、PB (8位) 、PC (8位) 命令/状态口 9.2.1 8255A的结构和工作方式 一、8255A的引脚及组成结构
PA3 PA2 PA1 PA0 RD CS GND A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2
RD WR RESET Q7 P0.7 8031 P0.0 EA ALE D7 74LS D0 G Q1 Q0
RD PA0 WR RESET PA7 CS 地 8255A A1 A0 D7 D0 PC7 PC0 PC6
DB0 DB7 GND μ80 打印机 DSTB BUSY ACK
数据D0~D7 DSTB s 1~500μ BUSY ACK
M2M1=10时,定时/计数器的输出波形为单 个脉冲;
M2M1=00时,定时/计数器的输出波形为连 续脉冲。
9.3.2 8155 H与8031单片机的接口及应用
8031单片机与并行接口8155的接口电路如 图所示。 对8155地址分配如下: RAM地址:7E00H-7EFFH I/O口地址: 命令/状态寄存器的地址: 7F00H PA口的地址:7F01H PB口的地址: 7F02H PC口的地址: 7F03H 定时器低8位的地址:7F04H 定时器高8位的地址: 37 5 36 6 35 7 34 8 33 9 32 10 8255A 31 11 30 12 29 13 28 14 27 15 26 16 25 17 24 18 23 19 22 20 21
PA4 PA5 PA6 PA7 WR RESET D0 D1 D2 D3 D4 D5 D6 D7 VCC PB7 PB6 PB5 PB4 PB3
第九章 MCS-51单片机并行接口的扩展与应用
方式1输入控制/ 方式1输入控制/状态信号图
六、8255A的工作方式1 8255A的工作方式 的工作方式1
错误
方式1输出时控制/状态信号的功能: 方式1输出时控制/状态信号的功能: \OBF 输出缓冲器满信号 选通信号,低电平有效; 选通信号,低电平有效; \ACK外设响应信号,低电平有效; ACK外设响应信号 低电平有效; 外设响应信号, INTR 中断请求信号,8255A输出,向CPU申请中断; 中断请求信号,8255A输出 输出, CPU申请中断 申请中断; INTE 中断允许信号,高电平时允许中断; 中断允许信号,高电平时允许中断;
方式1输入时控制/状态信号的功能: 方式1输入时控制/状态信号的功能: \STB 选通信号,用来将外来数据输入锁存 选通信号, 器; IBF 输入缓冲器满信号,由8255A输出; 输入缓冲器满信号, 8255A输出 输出; INTR 中断请求信号,8255A输出,向CPU 中断请求信号,8255A输出 输出, 申请中断; 申请中断; INTE 中断允许信号,高电平时允许中断; 中断允许信号,高电平时允许中断; \STB有效使IBF置位,表示数据已经输入到 STB有效使 有效使IBF置位 置位, 输入锁存器。IBF、INTE为高电平时 为高电平时, 输入锁存器。IBF、INTE为高电平时, INTR置位 可申请中断。 RD的下降沿将 INTR置位,可申请中断。\RD的下降沿将 置位, INTR复位 上升沿将IBF复位 INTR复位,上升沿将IBF复位。 复位, 复位。
பைடு நூலகம்
§9-2 8255A并行接口的扩展 并行接口的扩展
一、可编程并行接口8255A 可编程并行接口8255A 可编程输入/输出接口芯片; 可编程输入/输出接口芯片; 3个8位I/O口:A、B、C,其中C口可位操作; I/O口 其中C口可位操作; 管脚: 管脚: 1. D0-D7三态双向数据线; 三态双向数据线; 2. PA0-PA7 A口输入/输出端; PA0 PA7 口输入/输出端; 3. PB0-PB7 B口输入/输出端; PB0 PB7 口输入/输出端; 4. PC0-PC7 C口输入/输出端; PC0 PC7 口输入/输出端; 5. \CS片选; CS片选 片选; 6. \RD 读信号; 读信号; 7. \WR写信号; WR写信号 写信号; 8. RESET 复位信号端,高电平有效; 复位信号端,高电平有效; 9. A0,A1地址线。 ,A1地址线。
9、扩展IO接口设计
INTE中断允许位,INTE=0禁止中断,可事先用位控方
式写入;PC4写入INTEA,PC2写入INTEB;
方式1输入
PA 7~PA0
PB7~PB0 INTEB PC2 PC1 STBb
INTEA PC4 PC5 STBa IBFa
IBFb
RD
PC3
INTRa I/O
PC0
INTRb
PC6 7
目录
9.3 可编程RAM/IO芯片8155H
比8255功能更强: 3个并行口PA0~7、PB0~7、PC0~5; 256字节RAM;1个14位减法定时器。
一、8155逻辑结构:
IO/M AD 7~0 CE ALE RD WR RESET TIMER IN TIMER OUT
8
256字 节静态 RAM
8
PA 7~0 PB 7~0
+
. . .
P0.7
IO/M 8155
8
AD 7
. . .
6
PC 5~0
P0.0
AD 0
CE
把P0.7~P0.3或非后作为IO/M信号(损失了8个RAM单元)。 当P0.7~P0.3=00000,IO/M=1时:6个可编址端口依次为00H~05H。 当P0.7~P0.3为其它,IO/M=0时,对应内部RAM地址范围为08H~FFH。 只适用:系统中仅有单片8155的情况,可将CE接地。
(a)A 通道方式 1 引脚配置
RD
(b)B 通道方式 1 引脚配置
8255A方式 1 输入
采用方式1进行输出操作,需要的控制信号: /OBF输出缓冲器满信号。向外部输出,低电平 有效; /ACK外部应答信号。由外部输入,低电平有效; INTR中断请求信号、INTE中断允许位,他们 的作用和方式1输入时相同;
第九章 MCS-51扩展IO接口设计技术
例题1:8031单片机扩展一片8255A,电路如图, 求: 1)各个端口口地址
驱动程序
2)要求8255A工作在方式0,且A口作为输入, B口、C口作为输出,编写初始化程序。
3)对C口的PC5置1和清0 解:1)A口:FF7CH B口:FF7DH C口:FF7EH 控制口:FF7FH 或0000H 或0001H 或0002H 或0003H
图9-20
按下任意一键,对应的LED发光 ,程序如下: LOOP: MOV MOVX MOVX SJMP DPTR,#0FEFFH A,@DPTR;从244读入数据 @DPTR,A;向273输出数据 LOOP 图9-20
返回
9.2 可编程接口8255芯片
可编程接口是指功能可由计算机的指令 来改变的芯片。可编程接口通过编制程序 ,可使一个接口芯片执行多种不同的接口 功能,使用灵活。用它来连接计算机和外 设时,不需要或只需要很少的外加硬件。
2、输入和输出都是在P2.0为0时有效,那么它 们的口地址应该为多少,唯一吗?
口地址可以为FEFFH,是不唯一的。
11111110 11111111
P2 P0
图9-20
实际上只要保证P2.0=0就可以了
3、 输入输出的口地址相同,会不会 造成总线上发生冲突?
不会,输出控制信号由P2.0与WR合成, 而输入控制信号由P2.0与RD合成,所以 不会发生冲突。
初始化程序: MOV DPTR,#0104H MOV A,#0E8H MOVX @DPTR,A INC DPTR MOV A,#43H MOVX @DPTR,A MOV MOV MOVX DPTR,#0100H A,#0C2H @DPTR,A
命令字
例2:读8155H的F0H单元
单片机 第9章IO接口的扩展方法
三、I/O端口的编址
1、在计算机中,凡需进行读写操作的设备都存在着编址的问题。 2、有两种需要编址的部件 (1)存储器:存储单元进行编址 (2)接口电路:接口电路则是对其中的端口进行编址。 3、I/O编址方式 ⑴ 独立编址方式 优点是I/O地址空间和存储器地址空间相互独立,但需要专门 设置一套I/O指令和控制信号,从而增加了系统的开销。 (2) 统一编址方式 统一编址就是把系统中的 I/O和存储器统一进行编址。在这种 编址方式中,把接口中的寄存器(端口)与存储器中的存储单元 同等对待。为此也把这种编址称之为存储器映像编址。
口的高5位PC7-PC3用来作为指定A口输入/输出的控制联络线。
8255A的C口联络控制信号线
PA7~PA0
A口的方式1选通输入方式
INTE A:由PC6的置位/复位控制
B口的方式1选通输出方式
INTE B:由PC2的置位/复位控制
四、8255A与MCS-51的接口设计
8255A 接口工作状态选择表
1、速度协调 由于CPU与外设速度上的差异,使得数据的I/O传送只能在 确认外设已为数据传送作好准备的前提下才能进行I/O操作。 2、数据锁存 单片机的工作速度快,数据在数据总线上保留的时间短, 无法满足慢速外设的数据接收。因此数据锁存就成为接口电路 的一项重要功能。 3、输入数据三态缓冲 只允许当前时刻正在进行数据传送的数据源使用数据总线, 其它数据源都必须与数据总线处于隔离状态。为此要求接口电 路能为数据输入提供三态缓冲功能。 4、数据转换 需要使用接口电路进行数据信号的转换。其中包括: D/A 转换、A/D转换、串 / 并转换和并/ 串转换等。
PA
二、I/O数据传送方式
1、无条件传送方式 在进行I/O操作时,不需要测试外部设备的状态,可以根 据需要随时进行数据传送操作。一般用于具有常驻的或变化 缓慢的数据信号的外部设备如机械开关、指示灯、发光二极 管、数码管等,以及工作速度非常快,足以和 CPU 同步工作 的外部设备如外部数据存储器,数/模转换器。 2、程序查询方式 为了实现查询方式的数据输入输出传送,需要由接口电 路提供外设状态,并以软件方法进行状态测试。 3 、程序中断方式 采用中断方式进行数据传送时,当外设为数据传送作好 准备之后,就向CPU发出中断请求。CPU响应中断后,再继续 执行被中断的原程序。
《单片机原理与接口技术》第9章MCS51单片机的IO扩展.
2.I/O扩展常用芯片 (1)TTL/CMOS锁存器/缓冲器芯片: 如74LS377、74LS374、74LS373、
74LS273、74LS244、74LS245等; (2)通用可编程I/O接口芯片: 如8255、8155、8729等; (3)可编程阵列: 如GAL16V8、GAL20V8等。 3.I/O扩展中应注意的几个问题 (1)访问扩展I/O的方法与访问外部数据存储器完全相同,使用相同
图9-5 8155引脚及逻辑框图
图9-5中涉及的引脚符号的含义和功能如下: AD0~AD7: 地址数据线; IO/M: IO/RAM选择信号端,输入高电平选择I/O操作,低电平选择访
问片内RAM; CE: 片选信号输入端,低电平有效; RD: 读选通输入端,低电平有效; WR: 写选通输入端,低电平有效; TI: 计数器计数脉冲输入端; TO:计数器的输出信号端,输出波形由内部定时工作方式决定; PA0~PA7: 8位并行I/O口; PB0~PB7: 8位并行I/O口; PC0~PC5: 6位并行I/O口; ALE: 地址锁存信号输入端,其下降沿时,锁存AD0~AD7上的地址。
MOVX A,@DPTR
;从74HC244读入数据,检测按键
MOVX @DPTR,A
;向74HC374输出数据,驱动LED
SJMP LOOP
;循环
9.2 可编程并行I/片8155 (1)8155的结构及引脚功能
8155的引脚如图9-5(a)所示,逻辑框图如图9-5(b)所示。
74LS374与单片机接口电路如图9-2所示,74LS374的地址为7FFFH。
第9章MCS51扩展IO接口的设计1PPT课件
DS1 2 35
OE接RD
DS1235的基本地址范围:0000H—7FFFH WR接WD
4
DS1235数据存储单元的操作方法
• 例1:从DS1235的地址单元2000H读取数据到累加器ACC中。
• 例2:从累加器ACC向DS1235的地址为2000H的单元写入数据。
➢ 读取数据方法1 • READB: MOV
每一接口芯片中的一个功能寄存器(端口)的地址就
相当于一个RAM单元。
12
9.1.3 I/O数据的几种传送方式 为实现和不同的外设的速度匹配,I/O接口必须根据
不同外设选择恰当的I/O数据传送方式。 I/O数据传送的几种传送方式是:
(1)同步传送(2)异步传送(3)中断传送。
13
1.同步传送方式(无条件传送) 已知I/O设备准备就绪,可直接进行数据传送。
第六讲
1
第一部分
整体概述
THE FIRST PART OF THE OVERALL OVERVIEW, PLEASE SUMMARIZE THE CONTENT
2
复习
利用DS1235扩展一个32KB的数据存储器
在利用DS1235对MCS-51系列的单片机进行扩展时,基 本的连接为:
➢ OE与RD控制相连; ➢ WE与WR控制相连; ➢ CE与P2.7相连; ➢ A0-A7与锁存器74LS373的Q0-Q7相连; ➢ A8-A14分别与P2.0-P2.6相连;
2 5 6 9 12 15 16 19
P20 P21 P22 P23 P24 P25 P26 P27
21 GND
1
22
11
23
OC C
24
7 4 LS3 7 3
9单片机讲义(第九章MCS-51扩展 I/O接口的设计)
MOV DPTR,# OFF7FH ;控制字寄存器地址送 DPTR MOV A,# 83H ;方式控制字 83H送A 1000 0011 MOVX @DPTR,A ;83H送控制字寄存器
2. 方式1
方式1是一种选通输 入/输出工作方式。
(1)方式1输入
(2)方式1输出
3. 方式2
只有A口才能设定为方式2
(1)功能说明:PA口、PB口、PC 3个口做输出控制,由PA口做单一灯左 移8次,再由PB口做单一灯左移8次,最后由PC口做单一灯左移8次。 (2)硬件
(3)程序:;对8255A进行初始化 ORG 00H CLR P2.2 ;复位 SETB P2.2 CLR P2.2 SETB P2.0 ;选端口CW SETB P2.1 MOV A,#80H ; 1000 0000 MOVX @R0,A
【例 9-4】8255A作为连接打印机的接口
图6-11是通过8255A 连接打印机的接口电路,数据传送采用查询方 式。8255A的地址译码采用线选法,将P0.7直接与8255A的 CS 端相连 (通过地址锁存器),其口地址A口为7CH,B口为7DH,C口为7EH,命 令口为7FH。下图为 8255A连接打印机的接口电路
A口为7CH,B口为7DH,C口为 7EH, 7FH为CW口
第9章 MCS 51 单片机系统扩展(三,8255扩展).
+5V
Q7接片选/CS端,8255的(一组)寄存器地址可以是:
PA口:0000H PB口:0001H PC口:0002H 命令口:0003H
也可以是:007CH,007DH,007EH,007FH……
8255的编程应用
例:初始化A口,B口,C口为基本I/O输出口 MOV DPTR,#7003H ;指向控制字寄存器 MOV A, #80H ; A,B,C口均为输出口 MOVX @DPTR, A ;装入
◆
40 PIN
8255的PA,PB,PC口的三种工作方式:
工作方式 0 1 2 ◆ A口 基本输入/输出 输出锁存, 输入三态 应答式输入/输出 输入/输出均锁存 应答式双向输入/输出 输入/输出均锁存 B口 C口 基本输入/输出 基本输入/输出 输出锁存, 输入三态 输出锁存, 输入三态 应答式输入/输出 输入/输出均锁存 B口无此方式 提供A口和B口的 应答信号 提供A口的 应答信号
选中的 位将要 输出的 状态
1 0 , , 置 清 1 0
=
=
8255与单片机的连接:
74LS373
AT89C51
P0.0-P0.7 ALE P2.7 WR RD RESET 8D G Q0 Q1 OE
D0-D7 A0 A1
8255
PA
PC CS WR RD RESET
PB
EA
+5V
P2.7接片选/CS端,8255的(一组)寄存器地址可以是:
二、并行接口的扩展(8255)
可编程并行I/O接口芯片8255扩展I/O:
PA3 PA2 PA1 PA0 RD CS GND A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2 PA4 PA5 PA6 PA7 WR RESET D0 D1 D2 D3 D4 D5 D6 D7 VCC PB7 PB6 PB5 PB4 PB3
第9章 MCS-51扩展IO接口的设计
I/O端口编址两种方式:独立编址与统一编址。
1.独立编址方式 I/O寄存器地址空间和存储器地址空间分开编址,但 需专门读写I/O的指令和控制信号。 2.统一编址方式 I/O寄存器与数据存储器单元同等对待,统一编址。 不需要专门的I/O指令,直接使用访问数据存储器 的指令进行I/O操作,简单、方便且功能强。
控制字07H写入控制口: 2. C口按位置位/复位控制字 置“1” PC3 08H写入控制口,清“0” PC4 可对C口8位中的任一位置“1”或清“0”。用于位控。
8255A只有一 个控制字寄存 器,但可以写 两种控制字, 用D7区分。
9.2.3 8255A的三种工作方式
1.方式0:基本的输入/输出方式。
1.内部结构
2.引脚说明 40只引脚,双列直插式封 装,引脚功能如下:
留意GND、 Vcc的位置!
D7~D0:三态双向数据线,与单片机数据总线连接
CS*:片选信号线,低电平有效,表示本芯片被选中
RD*:读出信号线,控制8255A中数据的读出高 WR*:写入信号线,控制向8255A数据的写入。 Vcc:+5V电源。
9.1 I/O接口扩展概述
I/O扩展也属于系统扩展的一部分。I/O (输入/输出)接
口是MCS-51与外设交换数字信息的桥梁。
MCS-51真正用作I/O口线的只有P1口的8位I/O线和P3口 的某些位线。在多数应用系统中,MCS-51单片机都需要外扩
I/O接口电路。
I/O接口电路应满足以下要求: 1.实现和不同外设的速度匹配 2. 输出数据锁存 3. 输入数据三态缓冲
中断服务程序,进行数据的传送。
中断服务完成后又返回主程序继续执行。工作效率高。.
常用的外围I/O接口芯片有: (1)8255A:可编程的通用并行接口电路(3个8位I/O口)。
第9章-MCS-51单片机扩展IO接口设计
24
第9章 MCS-51扩展IO接口设计
I2C总线
I2C总线是一种具有自动寻址、高低速设备同 步和仲裁等功能的高性能串行总线,能够实现 完善的全双工数据传输。
I2C总线只有两根信号线:数据线SDA和时钟 线SCL。
AT24C016 1010 P2 P1 P0 R/ W 无引脚地址,A2A1A0悬空处理
PCF8574
0100 A2 A1 A0 R/ W 3位数字引脚地址A2A1A0
PCF8574A 0111 A2 A1 A0 R/ W 3位数字引脚地址A2A1A0
SAA 1064 0111 0 A1 A0 R/ W 2位数字引脚地址A1A0
器件地址
引脚地址
33
第9章 MCS-51扩展IO接口设计
种类 静态RAM E2PROM
I/O口 LED/LCD 驱动控制器 ADC/DAC 日历时钟
型号I2C总线数SL据A 传输协议 引脚地址备注
PCF8570/71 1010 A2 A1 A0 R/ W 3位数字引脚地址A2A1A0
PCF8570C 1011 A2 A1 A0 R/ W 3位数字引脚地址A2A1A0
R7,#02H R0,#30H SCON,#00H A,@R0 SBUF,A TI,WAIT TI R0 R7,SEND
;设置要发送的字节个数 ;设置地址指针 ;设置串行口为方式0
;启动串行口发送过程 ;1帧数据未发完,循环等待
;取下一个数 ;未完,发完从子程序返回
17
第9章 MCS-51扩展IO接口设计
30
第9章 MCS-51扩展IO接口设计
MCS-51扩展IO接口的设计
MOV DPTR,#0FF7FH ;控制字寄存器地址送DPTR
MOV A,#83H
;方式控制字83H送A
MOVX @DPTR,A
;83H送控制字寄存器
9.2.4 MCS-51单片机和8255A的接口
1.硬件接口电路
如图9-10是8031扩展1片8255A的电路图。74LS373是地 址锁存器,P0.1、P0.0经74LS373与8255A的地址线A1、A0 连接; P0.7经74LS373与片选端相连,其他地址线悬空。
例9-6 编写程序把按钮开关状态通过图9-20中的发 光二极管显示出来。程序如下:
DDIS: MOV DPTR,#0FEFFH ;输入口地址→DPTR
LP: MOVX A,@DPTR
;按钮开关状态读入A中
MOVX @DPTR,A ;A中数据送输出口
SJMP LP
;反复连续执行
可编程并行接口芯片8155A的扩展应用
D7~D0:三态双向数据线,与单片机数据总线连接
CS*:片选信号线,低电平有效,表示本芯片被选中
RD*:读出信号线,控制8255A中数据的读出高 WR*:写入信号线,控制向8255A数据的写入。 Vcc:+5V电源。 PA7~PA0:A口输入/输出线。 PB7~PB0:B口输入/输出线。 PC7~PC0:C口输入/输出线。 A1、A0:地址线,用来选择8255A内部的4个端口。
5)内部定时器(8155A定时器的格式如下 )
D7 D6 D5 D4 D3 D2 D1 D0 04H T7 T6 T5 T4 T3 T2 T1 T0
计数长度的低 8 位 05H M2 M1 T13 T12 T11 T10 T9 T8
定时器方式
计数长度的高 6 位
MCS-51单片机并行IO接口的扩展
第九章MCS-51单片机并行I/O接口的扩展(一)学习要求1、熟悉74LS377、74LS245外围芯片的特性和扩展方法。
2、掌握8255A芯片的结构和工作方式。
3、掌握8155A芯片的结构和工作方式。
4、掌握8155A的RAM和I/O端口寻址方法。
(二)内容提要1、I/O接口的扩展当所需扩展的外部I/O口数量不多时,可以使用常规的逻辑电路、锁存器进行扩展。
这一类的外围芯片一般价格较低而且种类较多,常用的如:74LS377、74LS245、74LS373、74LS244、74LS273、74LS577、74LS573。
1)74LS37774LS377是一种8D触发器,它的E端和CLK端是控制端,当它的E端为低电平时只要在CLK端产生一个正跳变,D0~D7将被锁存到Q0~Q7端输出,在其它情况下Q0~Q7端的输出保持不变。
可以利用74LS377这一特性扩展并行输出口。
如图9-2使用了一片74LS377扩展输出口,如果将未使用到的地址线都置为1则可以得到该片74LS377的地址为7FFFH。
如果单片机要从该片74LS377输出数据的可以执行如下指令:MOV DPTR,#7FFFFHMOVX @DPTR,A2)74LS245。
74LS245是一种三态输出的八总线收发/驱动器,无锁存功能。
它的G端和DIR端是控制端,当它的G端为低电平时,如果DIR为高电平则74LS245将A端数据传送至B端,如果DIR为低电平则74LS245将B端数据传送至A端,在其它情况下不传送数据,并输出高阻态。
可以利用74LS245这一特性扩展并行输入口。
如图9-4使用了一片74LS245扩展输入口,如果将未使用到的地址线都置为1则可以得到该片74LS245的地址为7FFFH。
如果单片机要从该片74LS377输出数据的可以执行如下指令:MOV DPTR,#7FFFFHMOVX A,@DPTR2、8255A可编程I/O接口设计及扩展技术8255A是一种常见的8位可编程并行接口芯片,本接将着重介绍8255A的工作原理、编程方式和应用。
第9章89C51扩展IO接口的设计
1 G 1A1 2Y4 1A2 2Y3 1A3 2Y2 1A4 2Y1 GND
1 2 3 4 5 6 7 8 9 10 74LS244
20 19 18 17 16 15 14 13 12 11
VCC
G 2 1Y1
2A4 1Y2 2A3 1Y3 2A3 1Y4 2A1
74LS273各引脚定义如下: D0~D7:输入线。 Q0~Q7:输出线。 CLR:清除控制端, 低电平有效。 CLK:时钟输入端, 上升沿有效。 VCC:工作电源, 接+5V电压。 GND:接地。
三、利用串行口扩展并行口
串行口的工作方式0为同步移位寄存器输入/输出方式, 常用于外接移位寄存器,以扩展并行I/O口。 波特率:fosc/12 发送、接收的数据是8位 不占用片外RAM地址,节省了硬件开销
用74LS165扩展并行输入口
74LS165:并行输入,串行输出移位寄存器
例 从16位扩展口读入5组数据(每组二个字节),并 把它们转存到内部RAM 20H开始的单元中。
练习:用8个开关分别控制8个LED(其中 开关信息通过串行口输入)
用74LS164扩展并行输出口. 74LS164:8位串入并出移位寄存器。
74LS164:串行输入,并行输出移位寄存器
例 编写将内部RAM单元30H、31H的内容经串行口 由74LS164并行输出子程序。
START: MOV R7,#02H ;设臵要发送的字节个数 MOV R0,#30H ;设臵地址指针 MOV SCON,#00H ;设臵串行口为方式0 SEND: MOV A,@R0 MOV SBUF,A ;启动串行口发送过程 WAIT: JNB TI,WAIT ;1帧数据未发完,循环等待 CLR TI INC R0 ;取下一个数 DJNZ R7,SEND ;未完,发完从子程序返回 RET
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表9-1 8255A端口工作状态选择
A1
A0 RD* WR* CS*
工作状态
0
0
0
1
0 读端口A:A口数据→数据总线
0
1
0
1
0 读端口B:B口数据→数据总线
1
0
0
1
0 读端口C:C口数据→数据总线
0
0
1
0
0 写端口A:总线数据→A口
0
1
1
0
0 写端口B:总线数据→B口
1
0
1
0
0
写端口C:总线数据→C口 写控制字:总线数据→控制字寄
1.同步传送方式(无条件传送) 当外设速度和单片机的速度相比拟时,常采用同步传
送方式,最典型的同步传送就是单片机和外部数据存储 器之间的数据传送。 2.查询传送方式(条件传送,异步式传送)
查询外设“准备好”后,再进行数据传送。 优点:通用性好,硬件连线和查询程序十分简单, 缺点:效率不高。
为提高效率,通常采用中断传送方式。
1
1
1
0
0 存器
× ×××
1 数据总线为三态
1
1
0
1
0 非法状态
× ×1
1
0 数据总线为三态
9.2.2 工作方式选择控制字及C口置位/复位控制字 8255A有三种工作方式: (1) 方式0:基本输入输出; (2) 方式1:选通输入输出; (3) 方式2:双向传送(仅A口有)。 1.工作方式选择控制字
I/O接口电路应满足以下要求: 1.实现和不同外设的速度匹配
大多数的外设的速度很慢,无法和µs量级的单片机 速度相比。
单片机只有在确认外设已为数据传送做好准备的前提 下才能进行I/O操作。
想知道外设是否准备好,需I/O接口电路与外设之 间传送状态信息。
2. 输出数据锁存
由于单片机工作速度快,数据在数据总线上保留的时 间十分短暂,无法满足慢速外设的数据接收。I/O电路 应具有数据锁存器,以保证接收设备接收。
三种工作方式由方式控制字来决定。 控制字格式如下。
C口上半部分(PC7~PC4)随A口称为A组, C口下半部分(PC3~PC0)随B口称为B组。 其中A口可工作于方式0、1、和2,而B口只能工作在 方式0和1。
1.引脚说明 40只引脚,双列直插式封装,引脚功能如下:
D7~D0:三态双向数据线,与单片机数据总线连接
CS*:片选信号线,低电平有效,表示本芯片被选中
RD*:读出信号线,控制8255A中数据的读出 WR*:写入信号线,控制向8255A数据的写入。 Vcc:+5V电源。 PA7~PA0:A口输入/输出线。 PB7~PB0:B口输入/输出线。 PC7~PC0:C口输入/输出线。 A1、A0:地址线,用来选择8255A内部的4个端口。
MCS-51使用统一编址的方式 每一接口芯片中的一个功能寄存器(端口)的地址
就相当于一个RAM单元。
9.1.3 I/O数据的几种传送方式 为实现和不同的外设的速度匹配,I/O接口必须
根据不同外设选择恰当的I/O数据传送方式。
I/O数据传送的几种传送方式是: (1)同步传送(2)异步传送(3)中断传送。
可与MCS-51单片机直接连接,接口逻辑十分简单
此外,74LS系列的TTL电路也可以作为MCS-51的扩展 I/O口,如74LS244、 74LS273等。
最后介绍利用串行口来扩展并行I/O口。
9.2 MCS-51与可编程并行I/O芯片8255A的接口
9.2.1 8255A芯片介绍
8255A是Intel公司生产的可编程并行I/O接口芯片, 具有3个8位的并行I/O口,3种工作方式,可通过编 程改变其功能,因而使用灵活方便,通用性强。
一个I/O接口芯片可以有多个I/O端口, (1)数据口(2)命令口(3)状态口
I/O端口编址是给所有I/O接口中的寄存器编址。
I/O端口编址两种方式:独立编址与统一编址。
1.独立编址方式 I/O寄存器地址空间和存储器地址空间分开编址,但
需专门读写I/O的指令和控制信号。 2.统一编址方式
I/O寄存器与数据存储器单元同等对待,统一编址。 不需要专门的I/O指令,直接使用访问数据存储器的指 令进行I/O操作,简单、方便且功能强。
3. 输入数据三态缓冲
输入设备向单片机输入数据时,但数据总线上面可 能“挂”有多个数据源,为不发生冲突,只允许当前正 在进行数据传送的数据源使用数据总线,其余的应处 于隔离状态。
9.1.2 I/O端口的编址 首先清楚I/O接口(Interface)和口:简称I/O口,指具有端口地址的寄存器或 缓冲器。 I/O接口:是指单片机与外设间的I/O接口芯片。
令字”对PC口按位“置1”或“清0”。 (3)数据总线缓冲器
三态双向,作为8255A与单片机数据线之间接口, 传送数据、指令、控制命令及外部状态信息。 (4)读/写控制逻辑电路
该电路接收CPU发来的控制信号、RESET、地址信 号A1、A0等。对端口进行读写。
各端口的工作状态与控制信号的关系如表9-1所示。
第9章 MCS-51扩展I/O接口的设计
9.1 I/O接口扩展概述
I/O (输入/输出)接口是MCS-51与外设交换数字信 息的桥梁。
I/O扩展也属于系统扩展的一部分。
真正用作I/O口线的只有P1口的8位I/O线和P3口的某些 位线。
在多数应用系统中,MCS-51单片机都需要外扩I/O接 口电路。
9.1.1 I/O接口的功能
3.中断传送方式. 外设准备好后,发中断请求,单片机进入与外设数
据传送的中断服务程序,进行数据的传送。中断服务 完成后又返回主程序继续执行。工作效率高。
9.1.4 I/O接口电路 如何实现I/O接口的扩展。Intel公司的配套可编程
I/O接口芯片的种类齐全,为扩展I/O接口提供了很大 的方便。
常用的外围I/O接口芯片有: (1)8255A:可编程的通用并行接口电路(3个8位 I/O口)。 (2)8155H:可编程的IO/RAM扩展接口电路(2个8 位I/O口,1个6位I/O口, 256个RAM字节单元,1个14 位的减法定时器/计数器)。
2.内部结构
(1)端口A、B、C
功能和结构上有些差异
PA口:输出锁存和缓冲;输入锁存 PB口:输出锁存和缓冲;输入缓冲 PC口:输出锁存;数据输入缓冲
PC口可在软件的控制下,分为两个4位端口,作为 PA口、PB口选通方式操作时的状态控制信号。
(2)A组和B组控制电路
A组:PA口和PC口的上半部(PC7~PC4); B组:PB口和PC口的下半部(PC3~PC0),可根据“命