第七章 单片机简单I-O口扩展
简单的单片机I-O口扩展实例

简单的单片机I/O口扩展实例扩展实例 简单的I/O口扩展通常是采用TTL或CMOS电路锁存器、三态门等作为扩展芯片,通过P0口来实现扩展的一种方案。
它具有电路简单、成本低、配置灵活的特点。
下图为采用74LS244作为扩展输入、74LS273作为扩展输出的简单I/O口扩展。
芯片及连线说明 图中电路中采用的芯片为TTL电路74LS244、74LS273。
其中,74LS244为8缓冲线驱动器(三态输出),、为低电平有效的使能端。
当二者之一为高电平时,输出为三态。
74LS273为8D触发器,为低电平有效的清除端。
当=0时,输出全为0且与其它输入端无关;CP端是时钟信号,当CP由低电平向高电平跳变时刻,D端输入数据传送到Q输出端。
P0口作为双向8位数据线,既能够从74LS244输入数据,又能够从74LS273输出数据。
输入控制信号由P2.0和相或后形成。
当二者都为0时,74LS244的控制端有效,选通74LS244,外部的信息输入到P0数据总线上。
当与74LS244相连的按键都没有按下时,输入全为1,若按下某键,则所在线输入为0。
输出控制信号由P2.0和相或后形成。
当二者都为0后,74LS273的控制端有效,选通74LS273,P0上的数据锁存到74LS273的 输出端,控制发光二极管LED,当某线输出为0时,相应的LED发光。
 I/O口地址确定 因为74LS244和74LS273都是在P2.0为0时被选通的,所以二者的口地址都为FEFFH(这个地址不是惟一的,只要保证P2.0=0,其它地址位无关)。
但是由于分别由和控制,因而两个信号不可能同时为0(执行输入指令,如MOVX A,@DPTR或MOVX A,@Ri时,有效;执行输出指令,如MOVX @DPTR,A或MOVX @Ri,A时,有效),所以逻辑上二者不会发生冲突。
。
第7章MCS-51单片机的常用外设扩展

(2)数据线
2732的8位数据线直接与单片机的P0口相连。P0口作 为地址/数据线分时复用。
(3)控制线
CPU执行2732中存放的程序指令时,取指阶段就是对 2732进行读操作。注意,CPU对EPROM只能进行读操作, 不能进行写操作。CPU对2732的读操作控制都是通过控制线 实现的。2732控制线的连接有以下几条:
2.硬件电路 单片机与6116的硬件连接如图7-4所示。
3.连线说明
• 地址线:A0~A10连接单片机地址总线P0.0~P0.7、P2.0、P2.1、P2.2 共11根;
• 数据线:I/O0~I/O7连接单片机的数据线,即P0.0~P0.7;
• 控制线:片选端连接单片机的P2.7,即单片机地址总线的最高位A15; 读允许线连接单片机的读数据存储器控制线;
• 对于没有内部ROM的单片机或者程序较长、片内ROM容 量不够时,用户必须在单片机外部扩展程序存储器。 MCS-51单片机片外有16条地址线,即P0口和P2口,因此 最大寻址范围为64K字节(0000H—FFFFH)。
• 这里要注意的是,MCS-51单片机有一个管脚 EA跟程序存 储器的扩展有关。如果接高电平,那么片内存储器地址范 围是0000H—0FFFH(4K字节),片外程序存储器地址范 围是1000H—FFFFH(60K字节)。如果接低电平,不使 用片内程序存储器,片外程序存储器地址范围为0000H— FFFFH(64K字节)。
1. 芯片选择
单片机扩展数据存储器常用的静态RAM芯片有6116(2K×8 位)、6264(8K×8位)、62256(32K×8位)等。
根据题目容量的要求我们选用SRAM6116,采 用单一+5V供电,输入输出电平均于TTL兼容,具有 低功耗操作方式,管脚如图7-3所示。
单片机实验报告_简单I/O端口扩展

单片机原理与接口技术实验
实验二简单I/O端口扩展实验(1)
系别:通信工程系
专业:通信工程系11级
学号:
姓名:
实验时间:2014年3月13日
撰写日期:2014年m月n日
实验二简单I/O端口扩展实验(1)
一、实验目的
1、学习单片机扩展简单I/O端口的方法;
2、掌握通过总线输入/输出的编程方法;
3、掌握扩展总线接口芯片的地址分配方法。
二、实验内容(与本次实验报告标题括号中的数字对应)
1、先将8个开关量(K1~K8)从74244的输入端口读入,再把开关量的状态通过74273实时显示在发光二极管上。
【基础,周二/四下午每人做】
三、实验设计思路
通过中间变量,将244的内容传到273输出。
四、电路原理图及接线说明
74273接片选CS1,74244接片选CS2;开关状态接到244的输入;273的输出接到LED灯。
五、实验流程图
运行程序,拨动开关,LED
七、总结
此次实验一步到位。
附录:实验源程序以压缩包提供整个项目文件例如: s03_lab02_1a.rar。
第七章 单片机IO口扩展

D0 D1 D2 D3 D4 D5 D6 D7
74LS373
EXINT0:
MOV
MOVX MOV INC
DPTR,#0BFFFH
A, @DPTR @R0 A R0
RETI
3、用三态门扩展8位输入并行口 74LS244:两个4位并行三态门控制芯片
P2.6 RD
G1 G2 D0 D1 D2 D3 D4 D5 D6 D7 CE Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 80C51 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7
MOV MOVX
DPTR,#0BFFFH A, @DPTR
74LS244
4、简单输入、输出并行口
P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 D0 D1 D2 D3 D4 D5 D6 D7 G Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 G1 G2 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 LED0 LED1 LED2 LED3 LED4 LED5 LED6 LED7 K0 K1 K2 K3 K4 K5 K6 K7 +5V
然后输入口位(P1口低4位)读入,若P1.Y为 “0” ,其它三位读入“1”(只有一个键按下); 则按下键的坐标就是(X,Y)
去抖动处理:
原因:闭合或断开瞬间出现电压抖动
键按下
闭合稳定
键释放
前沿抖动
后沿抖动
方法: 硬件:加入去抖动电路(RS触器或单稳态电路),从根本上消除去抖动电路; 软件:软件延时,躲过抖动时间,一般延时20-30ms,等到线上状态稳定,再进行状态的确认.
MOV
MOV MOVC MOVX
课件:第七章 单片机IO扩展及应用

例:PA口以方式0输入,PB口以方式1输出,PC口高位输出、 PC口低位输入。控制寄存器地址为003AH。
MOV
R0,#3AH
;控制口地址
MOV
A,#10010101B ;写控制字
MOVX
@R0,A
;设工作方式
例:8255的片选 CS 地址为7F00H-7F03H,PA口以方式0输出单
片机片内RAM数据,PB口工作于方式1输入。
ACK :应答信号,输出,低电平有效。
7.3.3 8255A的工作方式及数据I/O操作
1. 8255A的工作方式 1)方式0:基本输入/输出方式 2)方式1:选通输入/输出方式
3)方式2:双向数据传送方式
输入:
仅A口、C口控制线
C口位线: ACKA IBFA STBA INTRA
输出:
C口位线: OBFA
1)速度协调(异步)。 2)输出数据所存。 3)输入数据三态缓冲。 4)数据转换。
7.1.3 I/O扩展的相关技术 1. 接口与端口(一个接口包含多个端口)。 2. 数据总线隔离技术。 3. 单片机I/O编址计数(独立编址、统一编址)。
7 单片机I/0扩展及应用
7.1 单片机为什么需要I/O扩展
7.1.1 I/O口的直接使用 7.1.2 为什么要扩展I/O口 7.1.3 I/O扩展的相关技术 7.1.4 单片机I/O控制方式 1. 无条件传送方式 2. 查询方式 3. 中断方式
7.4 8155带RAM和定时器/计数器的可编程并行接口芯 片7.4.1 8155基本结构及工作方式
1. 主要接口信号
AD7-AD0 :地址数据复用线 ALE :地址锁存信号
RD :读选通信号 WR :写选通信号
7章I_O口扩展

O F : 输出缓冲器满信号,低电平有效。用来告诉外设, B
在规定的接口上CPU已输出一个有效的数据,外设可以从该 口取走此数据。
AC :外设响应信号,低电平有效。用来通知接口外设 K
已经将数据接收,并使 O F =1。 B INTR:中断请求信号,高电平有效。当外设已从接口取 走数据,口的缓冲器变空,且接口允许中断时,INTR有效。 即, K =1O F =1 且允许中断,则INTR=1。 B AC
图7.13 8255工作方式控制字
对工作方式控制字作如下说明: A口可工作在方式0、方式1和方式2,B口可工作在方 式0和方式1 在方式1或方式2下,对C口的定义(输入或输出)不 影响作为控制信号使用的C口各位功能 最高位是标志位,作为方式控制字使用时,其值固定 为1。 2. 置位/复位控制字
在某些情况下,C口用来定义控制信号和状态信号,因 此C口的每一位都可以 进行置位或复位。对C口的置位或复 位是由置位/复位控制字进行的。各位的功能如图7.14所示。 其中,最高位必须固定为“0”。
B口
INTRB IBFB STBB
图7.10 A口和B口作输出口时, C口提供的控制引线
图7.11 A口和B口作输入口时, C口提供的控制引线
各控制信号的含义如下: STB :输入选通信号,低电平有效。它由外设提供,利用该 信号可以将外设数据锁存于8255的口锁存器中。 IBF:输入缓冲器满信号,高电平有效。当它有效时,表示 已有一个有效的外设数据锁存于8255的口锁存器中。可用此信号 通知外设数据已锁存于接口中,尚未被CPU读走,暂不能向接口 输入数据。 INTR:中断请求信号,高电平有效。当外设将数据锁存于 接口之中,且又允许中断请求发生时,就会产生中断请求。 2. 工作方式2,又称双向输入输出方式I/O操作 只有A口才能工作在方式2。A口工作方式2时要利用C口的5 条线才能实现。此时,B口只能工作在方式0或者方式1下,而C 口剩余的3条线可作为输入线、输出线或B口方式1之下的控制线。 C口提供的控制线如图7.12所示。
7单片机IO扩展

三态缓冲电路就是具有三种状态输出的门电路。 即:低电平、高电平和高阻抗3种状态。
三态控制信号 1
工作状态 高阻抗 驱动
数据输入 0 1
输出端状态 高阻抗 高阻抗 0 1
0
0 1
3、单片机I/O口编址技术 单片机I/O口编址技术 I/O 在计算机中,凡需要进行读写操作的设备都存在编址问题。在单片 机中有两个需要编址的子系统,一个是存储器,另一个是接口电路。存 储器是对存储单元进行编址,而接口电路则是对其中的寄存器进行编 址。也称为I/O编址。常用的I/O编址共有两种方式:独立编址方式和统 一编址方式。 ①独立编址方式 把I/O和存储器分开进行编址,这样在一个单片机系统中就形成两个 独立的地址空间:存储器地址空间和I/O地址空间,从而使存储器的读写 操作和I/O操作是针对两个不同存储空间的数据操作。 ②统一编址方式 把I/0接口中的寄存器与存储器中的存储单元同等对待,统一进行编 址。采用这种编址方式的计算机只有一个统一的地址空间,该地址空间 既供存储器编址使用,也供I/O编址使用。
1、用74LS244作输入口扩展(2个四位的三态缓冲器) 74LS244作输入口扩展(2个四位的三态缓冲器) 作输入口扩展(2个四位的三态缓冲器
2、多输入口的扩展
Байду номын сангаас
例:一个拨盘可产生一个BCD码形式的十进制数(4位)。现有A、B、 C、D 4个拨盘,要求把它们产生的BCD码数依次输入到通用寄存器R4 (B、A),R5(D、C)中去。 每个BCD码需4条输入线,4个BCD码共需16条输入线,用两74LS244 构成两个8位的输入口。假定以P2.7和P2.6分别作为1#口和2#口的地址选 通线(线选法)。假定其它地址线为“1”,则1#输入口地址7FFFH,2# 输入口地址为0BFFFH。 数据输入程序: MOV DPTR,#7FFFH MOVX A,@DPTR MOV R4,A MOV DPTR,#0BFFFH MOVX A,@DPTR MOV R5,A
第7章 单片机并行IO扩展

2. 总线接口电路
总线接口电路用于实现8255和单片机芯片的信号连接。 其中包括:
① 数据总线缓冲器。与I/O操作有关的数据、控制字和状态信 息都是通过该缓冲器进行传送的。
② 读/写控制逻辑。相关的控制信号有:
11 1
CLK CLR
74LS273
返回
P0.5 P0.6 P0.7
74LS273
P0.0 P0.1 P0.2 P0.3 P0.4
D0 D1 D2 D3 D4 D5 D6 D7 CP
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 CLR
LED0 LED1 LED2 LED3 LED4 LED5 LED6 LED7
7.1.3
I/O编址技术
单片机系统中存在两个需要编址的子系统: 一个是存储器,主要是对存储单元进行编址,已在第6章 讲解;
另一个是接口电路中的寄存器(可编址端口),主要是对
可编址端口进行编址,也称I/O编址。 常用I/O编址方式:独立编址方式和统一编址方式。 (a)独立编址方式 所谓独立编址,就是把I/O和存储器分开进行编址。 优点:I/O和存储器地址空间相互独立。 缺点:除存储器读/写指令外,还要设置一套I/O指令及控制信 号。
以改变的接口芯片,利用编程的方法,可以使一个接口芯片执行
不同的接口功能。 7.2.1 8255硬件逻辑结构 1、封装及引脚定义; 2、内部结构;
按功能可把8255的内部结构分为3个逻辑电路部分,分 别为: 口电路、总线接口电路和控制逻辑电路。如下图。
1. 口电路 8255共有3个8位口,其中A 口和B口是单纯的数据口,而C 口则既可以作数据口使用,又 可以作控制口使用,主要用于 实现A口和B口的控制功能。 在使用中常把C口分为两部 分,即C口高位部分(PC7~PC4) 和C口低位部分(PC3~PC0)。 把A口和C口高位部分合在 一起称为A组;把B口和C口低 位部分合在一起称为B组。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
端口地址的确定
单片机没有设置独立的I/O口地址空间,扩展I/O I/O口地址空间 I/O口与 51 单片机没有设置独立的I/O口地址空间,扩展I/O口与 外部RAM统一编址。I/O口当外部RAM单元对待 RAM统一编址 口当外部RAM单元对待, 外部RAM统一编址。I/O口当外部RAM单元对待,用相同的指令 MOVX访问 自动产生控制信号---- /RD、 /WR。 访问, ----读 MOVX访问,自动产生控制信号----读/RD、写/WR。 74LS273和74LS244都是在 和 都是在P2.0为0时被选通,与其他地址位 时被选通, 都是在 为 时被选通 无关,一般将未用地址设为1,所以二者地址都为FEFFH。 无关,一般将未用地址设为 , 在系统地址空间分配上,外部RAM与外部 口统一都在一 与外部I/O口统一都在一 在系统地址空间分配上,外部 与外部 空间中, 占低地址, 口占高地址 个64K RAM空间中,一般 空间中 一般RAM占低地址,I/O口占高地址 占低地址
第 章 单 片 机 系 统 扩 展
Single Chip Microcomputer 本章内容
程序存储器ROM的扩展 数据存储器RAM的扩展 并行I/O口的扩展
7.4
并行I/O口的扩展
51单片机4个并行I/O口的使用 51单片机4个并行I/O口的使用 单片机 I/O P0口分时地作低 位地址和8 口分时地作低8 P0口分时地作低8位地址和8位数据线 P2口作高 口作高8 P2口作高8位地址线 P3口部分作控制线 口部分作控制线, P3口部分作控制线,部分第二功能 只有P1口完全给用户使用, P1口完全给用户使用 只有P1口完全给用户使用,不够时必须外部扩展 并行I/O口的扩展有 并行I/O口的扩展有: I/O口的扩展 简单并行I/O口的扩展 简单并行I/O口的扩展 I/O 可编程I/O I/O口芯片扩展 可编程I/O口芯片扩展 利用串行口扩展并行口
简单I/O扩展接口 简单 扩展接口
扩展电路说明
74LS244为三态缓冲器,扩展输入口,外接8个开关,将开 为三态缓冲器,扩展输入口,外接 个开关 个开关, 为三态缓冲器 关信号通过总线P0输入到 输入到CPU,读有效和 有效时输入。 关信号通过总线 输入到 ,读有效和P2.0有效时输入。 有效时输入 74LS273为8D锁存器,扩展输出口,外接 个LED灯,将 为 锁存器 扩展输出口,外接8个 锁存器, 灯 CPU中的数据通过 口送出控制 个灯,在写和 中的数据通过P0口送出控制 个灯, 中的数据通过 口送出控制8个灯 在写和P2.0有效时输 有效时输 出。 锁存器:74LS273为上升沿锁存,低电平时数据直通 为上升沿锁存, 锁存器: 为上升沿锁存 低电平时数据直通Q=D。 。 锁存器将输出电路与总线隔离。 锁存器将输出电路与总线隔离。 读时: 控制信号/G1、/G2由P2.0和读信号 和读信号/RD相或 读时:74LS244控制信号 控制信号 、 由 和读信号 相或 后控制,都为0时输入有效 选通74LS244。 时输入有效, 后控制,都为 时输入有效,选通 。 写时:74LS273控制信号 控制信号CLK由P2.0和写信号 和写信号/WR相或后控 写时 控制信号 由 和写信号 相或后控 都为0时输出有效 选通74LS273。 时输出有效, 制,都为 时输出有效,选通 。 两个芯片的地址虽然相同,但可以通过读写操作来区别 两个芯片的地址虽然相同 但可以通过读写操作来区别
51单片机有 单片机有4 单片机有 组并口P0-P3, 组并口 , 为什么还要扩展 I/O口? 口
扩展I/O口与外部RAM统一编址 扩展I/O口与外部RAM统一编址 I/O口与外部RAM 使用同样的指令MOVX访问——控制总线RD/WR MOVX访问 控制总线RD/WR 使用同样的指令MOVX访问 控制总线
简单I/O口扩展 简单I/O口扩展 I/O
用并行口扩展I/O口 用并行口扩展 口
仅用锁存器和缓冲器扩展I/O口的方法,称为简单I/O口的扩 仅用锁存器和缓冲器扩展 口的方法,称为简单 口的扩 口的方法 展。 选择TTL电路或 电路或MOS电路即能组成简单的 口扩展 。 不需 电路即能组成简单的I/O口扩展 口扩展。 选择 电路或 电路即能组成简单的 要初始化设置,只有一个端口地址, 要初始化设置,只有一个端口地址,用选通操作 位三态缓冲器74LS244可扩展输入口; 可扩展输入口; 如:用8位三态缓冲器 位三态缓冲器 可扩展输入口 锁存器74LS273、74LS373、74LS377等可组成输出口 等可组成输出口。 用8D锁存器 锁存器 、 、 等可组成输出口 总线型I/O扩展 总线型 扩展 数据通过P0口输入 输出 三态缓冲器输入, 数据通过 口输入/输出 , 三态缓冲器输入 , 不影响总 口输入 输出, 线上的数据;数据锁存器输出,能保持输出数据稳定。 线上的数据;数据锁存器输出,能保持输出数据稳定。
仿真界面
仿真界面
仿真结果
发光” “按下任意键,对应的LED发光” 按下任意键,对应的 发光
AT89C51
仿真结果
发光” “按下任意键,对应的LED发光” 按下任意键,对应的 发光
FFFFH
地址分配
I/O口 口 64K片外 片外RAM 片外 RFra bibliotekM 0000H
应用编程
应用程序设计 若要实现“按下任意键,对应的 发光” 程序: 若要实现“按下任意键,对应的LED发光”,程序: 发光
LOOP:MOV : DPTR,#0FEFFH ;指向口地址 , ; 从74LS244读入数据 读入数据 输出数据, ;向74LS273输出数据,驱动 输出数据 驱动LED MOVX A,@DPTR , MOVX @DPTR,A , SJMP LOOP
以上扩展了两个I/O口 口仍可使用, 以上扩展了两个 口,P1口仍可使用,使I/O口的数量增加 口仍可使用 口的数量增加 了。 还可以通过总线扩展其它应用的I/O 口,都挂在总线口上,用 都挂在总线口上, 还可以通过总线扩展其它应用的 不同的端口地址访问。 不同的端口地址访问。 如果把P2.7接74LS244,P2.6接74LS273,那么扩展的输入、 接 如果把 , 接 ,那么扩展的输入、 输出口的地址是多少,程序如何修改? 输出口的地址是多少,程序如何修改?