51单片机8255A扩展IO口解析

合集下载

单片机用8255A扩展I0口

单片机用8255A扩展I0口

单片机用8255A扩展I/O口图中,P0口为地址/数据复用口,数据通过P0口直接传送,地址的低8位通过74LS373锁存,系统的读/写控制及复位信号与8255A的读/写及控制端对应相连,系统地址总线的A1、A0(P0。

1、P0.0)直接与8255A的地址线A1、A0对应相连,利用高8位地址线的P2。

7作为选通信号,直接与8255A的片选端相连,A口接8个发光二极管作为输出,B口接1只8位拨码开关作为输入,C口空置.8255A地址设置表单片机引脚P27 P26 P25 P24 P23 P22 P21 P20 P07 P06 P05 P04 P03 P02 P01 P00 8255A引脚CS A1 A0 A口0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 B口0 1 1 1 1 1 1 1 1 1 1 1 1 1 O 1 控制口0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 十六进制值7 F F X 8255A各端口的地址如下:A口地址:7FFCH;B口地址:7FFDH;C口地址:7FFEH;控制口地址:7FFFH.控制字设置D7=1,方式控制,D6、D5决定控制方式,D4决定A口,D1决定B口。

8255A控制字:82H。

用C语言编写的控制程序如下:#include〈reg51.h>#include〈absacc。

h> //扩展地址解析头文件#define PAC XBYTE[0x7FFF]//控制地址定义#define PA XBYTE[0x7FFC] //A口地址定义#define PB XBYTE[0x7FFD]//B口地址定义void delay(void) //延时子程序{unsigned int m,n;for(m=0;m<500;m++)for(n=0;n〈500;n++);}void main(void){unsigned char n;//数据存储变量PAC=0x82;//设控制字while(1){n=PB;//从B口读数据delay();PA=n; //在A口输出数据delay();}}控制功能:B口上预置的拨码开关状态会由A口上发光二极管的显示反映出来。

51单片机总线扩展 io口扩展

51单片机总线扩展 io口扩展

(1)程序存储器地址空间 在一般情况下,在51单片机程序存储器的64KB地址 空间中,最低的4KB(0000H-0FFFH0)对于片内ROM和片外 ROM是公共的,而1000H——FFFFH的地址空间是片外ROM 专用。CPU专门提供一个控制信号/EA来区分片内片外ROM: 当/EA接高电平时,单片机从片内ROM的4KB地址空间取指 令,当地址超过0FFFH后,自动转向片外ROM取指令;当 /EA为低电平时,CPU只从片外ROM取指令。 (2)数据存储器地址空间 片内数据存储器地址是00H——FFH,片外数据存储器 地址范围是0000H ——FFFFH。 特别需要注意:64KB数据存储器RAM的地址空间和 64KB程序ROM的地址空间是重叠的,51单片机是通过不 同的信号还选通RAM和ROM:当由片外RAM读写数 据时,用读写信号/RD或者/WR来选通;当由片外ROM取 指令时,则采用选通信号/PSEN。
(2) 最后51单片机内部安排了21个特殊功能 寄存器,这里只列出P0、P1、P2、P3(带有”*” 表示寄存器是可以位寻址,这为51单片机的外部 存储器扩展带来了极大的方便)。
2:单片机的I/O口 51单片机有4个并行I/O 口,分别命名为P0、P1、P2、 P3,它们是特殊寄存器中的4个,每个I/O口即可以作输入, 也可以作输出。 下面分别按照功能介绍。
Flash简介
Flash介绍:
flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦 写和再编程。 Intel于1988年首先开发出NOR Flash 技术,紧接着,1989年,东芝 公司发表了NAND Flash 结构。 NOR Flash 的特点是芯片内执行,这样应用程序可以直接在Flash闪 存内运行,不必再把代码读到系统RAM中。NOR 的传输效率很高,在 1~4MB的小容量时具有很高的成本效益。NAND的结构能提供极高的 单元密度,可以达到高存储密度。应用NAND的困难在于Flash的管理 和需要特殊的系统接口。通常NOR的速度比NAND稍快一些,而NAND 的写入速度比NOR快很多。闪存只是用来存储少量的代码,这时NOR 闪存更适合一些;而NAND则是高数据存储密度的理想解决方案。 NOR/ NAND Flash 比较 • 1 NOR的读速度比NAND稍快一些。 • 2 NAND的写入速度比NOR快很多。 • 3 NAND擦除速度远比NOR快。 • 4 NOR Flash上数据线和地址线是分开的;NAND Flash上数据线和地址 线是共用的 (所以单片机可以对NOR Flash扩展)。

IO接口的扩展方法

IO接口的扩展方法

P2.7 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 /WR
8051
OE D7 Q7 D6 Q6 D5 Q5 D4 Q4 D3 Q3 D2 Q2 D1 Q1 D0 Q0 G
74LS373
D7 D6 D5 D4 D3 D2 D1 D0
输出Байду номын сангаас备
程序如下: MOV DPTR, #7FFFH MOV A, 60H MOVX @DPTR, A
C口置位/复位控制字
D7 × × × D3 D2 D1 D0 0: 复位 1: 置位 位选择 0 00 0 01 0: 复位 1: 置位 位选择 0 00 0 01 PC0 PC1 0 10 0 11 1 00 1 01 1 10 1 11 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
例:如图上页所示,假设8255A芯片的PA接一组8只状态指示灯,PB接一组
8个开关,现须将开关闭合的状态输入到片内60H单元保存,将70H单元的内 容送状态指示灯显示,并置位PC7引脚,编写相应程序。
解:根据题意,设置8255A的A口方式0输出,B口方式0输入,C口高四位输
出 , 则 8255A 的 方 式 字 为 82H ( 10000010B ) , C 口 置 位 / 复 位 字 为 0FH ( 00001111B), 8255A的方式字及置位 /复位控制字地址为 7FFFH。初始化 过程及输入/输出的程序如下:
方式 1: 选通输入/输出方式。 共有3口, 被分为两组。A组包括A口和PC7-PC4, A口可由 编程设定为输入或输出, PC7-PC4作为输入/输出操作的选通信 号和应答信号。B组包括B口和PC3-PC0, 这时C口作为 8255A和 外设或CPU之间传送某些状态信息及中断请求信号。 方式 2: 双向传送方式。 只有A口有方式 2, 此时, A口为8位双向传送数据口, C

单片机io口扩展技术详解

单片机io口扩展技术详解

单片机io口扩展技术详解
单片机如何扩展IO口?
首先我们先讲讲为什幺要扩展IO口。

在我们使用51单片机的时候,有时候会出现IO口不够用的情况。

比如键盘!这个时候IO口的资源就十分有限了。

按键是我们常用的器件,做某些东西的时候又不能缺少按键。

如果一个按键对应一个IO口,那幺可想而知,按键所占的IO口的数量是很大的。

单片机IO口的资源是有限的,因此我们要采取一些方法来扩展单片机的IO 口,控制按键所占的单片机IO口。

下面有几种方法可以扩展单片机的IO口:
1. 通过数据缓存器、锁存器来扩展单片机IO口。

这里采用74HC164来扩展单片机IO口。

第14讲:MCS-51单片机系统的并口IO扩展(8255)

第14讲:MCS-51单片机系统的并口IO扩展(8255)

8255A 74LS373
1D ~ 8D 2Q 1Q G /OC
8 8
微型打印机
P0
PA0~PA7
A1 A0 PC0 PC7
DB0~DB7
8031
ALE /RD /WR RST /EA
BUSY /STB
D0 ~D7 /RD /WR RESET
分析:因为PC0连接BUSY,所以,PC3~PC0为输入,又因PC7连接 /DATA
STROBE ,所以PC7~PC4为输出;STROBE表示重复的意思;/DATA STROBE 数据选通信号。作用是通知打印机,8255A要给它传数。 PA口输出,PB口未用。 故 8255A的控制字可设为:1000 0001B=81H 由电路图,得PA口地址:7FFCH(地址的无关位取“1”) PB口地址:7FFDH PC口地址:7FFEH 控制口 : 7FFFH
I/O
I/O INTRA /STBA IBFA × ×
I/O
I/O INTRA × × /ACKA / OBFA
(4)8255A的4个端口的地址
①8255各端口的地址如何确定?
CS
0 0 0 0 1
②对8255各端口的操作?
A1
0 0 1 1 ×
A0
0 1 0 1 ×
选中的端口
PA PB PC 控制寄存器 芯片未选中
C口:除了单独作为8位输入、输出口使用外, 还可以按控制命令被分成两个4位端使用, 分别作为A口和B口输出控制信号和输入 状态信号。
A组控制和B组控制:这两组控制电路由 工作方式控制字来设定两组端口的工作 方式和读/写操作。 A组的控制电路管理A口和C口的高5位 (PC7~PC3)的工作方式和读/写操作。 B组的控制电路管理B口和C口的低3位 (PC2~PC0)的工作方式和读/写操作。

单片机并行I-O口的扩展方法

单片机并行I-O口的扩展方法

单片机并行I/O口的扩展方法摘要:由于在MCS-51单片机开发中P0口经常作为地址/数据复用总线使用,P2口作为高8位地址线使用,P3口用作第二功能(定时计数器、中断等)使用,所以对于51单片机的4个I/O口,其可以作为基本并行输入/输出口使用的只有P1口。

因此在单片机的开发中,对于并行I/O口的扩展十分重要,主要分析3种扩展并行I/O口的方法。

关键词: MCS-51单片机; 并行I/O口; 扩展MCS-51单片机有4个并行的I/O口,分别为P0口、P1口、P2口和P3口,4个并行I/O 口在单片机的使用中非常重要,可以说对单片机的使用就是对这4个口的使用。

这4个并行I/O口除了作为基本的并行I/O口使用,还常作为其他功能使用,如P0口经常作为地址/数据复用总线使用[1], P2口作为高8位地址线使用,P3口用作第二功能(定时计数器、中断等等)使用。

这样,单片机只有P1口作为基本的并行I/O口使用,如果在单片机的使用中对并行I/O口需求较多,对于并行I/O口的扩展就非常重要了。

下面通过具体的实例(8位流水灯设计)来给出几种不同的并行I/O口扩展方法。

为了更好地说明以下几种不同的并行I/O口扩展方法,假设利用单片机实现流水灯的设计。

采用单片机的P1口设计流水灯,电路。

由图1可知,8只LED直接连接在单片机的P1口上,通过对单片机进行编程即可以实现8只发光二极管产生流水灯。

1 使用单片机的串行口扩展并行I/O口单片机有一个全双工的串行口[2],这个口既可以用于网络通信,也可以实现串行异步通信,还可以作为移位寄存器使用。

当单片机的串行口工作在模式0时,若外接一个串入/并出的移位寄存器(74LS164),就可以扩展一个8 bit并行输出口;若外接一个并入/串出的移位寄存器(74LS165),就可以扩展一个8 bit并行输入口。

,单片机外接一个串入/并出的移位寄存器(74LS164),这样就可以扩展8 bit并行输出口。

实验 并行IO口8255扩展

实验   并行IO口8255扩展
DelayMS (1);
}
}
//刷新显示一段时间后递增1,形成滚动效果,最大索引为14
i= (i+1)%15;
}
}
0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
//共阳极的7段集成式数码管对应编码
// 0:0xc0
// 1:0xcf
// 2:0xa4
// 3:0xb0
// 4:0x99
// 5:0x92
// 6:0x82
// 7:0xf8
// 8:0x80
#define PC XBYTE[0x0002] //定义8255B地址
#define COM XBYTE[0x0003] //定义8255B控制寄存器地址
//待显示字符队列编码
uchar code DSY_CODE_Queue[ ]=
{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
// 9:0x90
// A:0x88
// B:0x83
// C:0xc6
// D:0xa1
// E:0x86
// F:0x8e
// DOT:0x7f
// -:0xaf
//数码管选通
uchar DSY_Index[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
实验三并行I/O口8255扩展
一、实验目的
1、了解8255A芯片的结构以及编程方法
2、掌握通过8255A并行口读取开关数据的方法
二、实验说明
本次实验用通过8255扩展接口,仅通过P0端口控制8只集成式7段数码管的显示控制。8255A的PA、PB端口分别连接8位数码管的段码和位码,程序控制数码管滚动显示一串数字。

51单片机-8255A扩展_sxj

51单片机-8255A扩展_sxj

位选择 PC0 PC1 PC2 PC3 PC4 PC5
三位无效 可置000
D7=0 置位 / 复位控制字标志
1
1
1
1
0
1
PC6
PC7
信电学院 孙秀娟
写端口C的方法
• 通过端口C的I/O地址

– •
向C端口直接写入字节数据
向C端口写入位控字 使C端口的某个引脚输出1或0
• 通过控制端口
信电学院 孙秀娟
WR
1 D6 D5 D4 D3 D2 D1 D0
WR
RD
B组 (下半部) 1=输入 0=输出 端口B 1=输入 PB 0~ PB 7 0=输出 方式选择 0=方式0 1=方式1
PC 0~PC 7
CS
OE
端口C PA 0~PA 7
74LS 373
A1 A0 D0
8255A
D7
8255工作方式控制字 RESET
8 lines
8255A
PPI
24 lines
信电学院 孙秀娟
1、8255A的结构与功能
• 一种通用的多功能可编程RAM/IO扩展器
信电学院 孙秀娟
数据总线
缓冲器
D0-D7 A 组控 制器 /RD /WR RESET /CS
8255A
A口 C口 (高4位) C口 (低4位) PA0PA7 PC4PC7 PC0PC3 PB0PB7
D0-D7 A 组控 制器 /RD /WR RESET /CS
8255A
A口 C口 (高4位) C口 (低4位) PA0PA7 PC4PC7 PC0PC3 PB0PB7
控制 逻辑 Port A Port B Port C
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
D7 D6 D5 D4 D3 D2 D1 D0
PC口置/复位控制字
工作方式控制字
B组
D7 D6 D5 D4 D3 D2 D1 D0
PC置/复位控制字
0:复位 1:置位 位选择 000 PC0 001 PC1 010 PC2 011 PC3 100 PC4 101 PC5 110 PC6 111 PC7
I/O PC4-PC7
B组 端口C
下半部(4)
I/O PC0-PC3
PA口 PB口 PC口低4位
PC口高四位
PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
14 15 16 17 13 12 11 10
RD WR A0 A1 RESET
读写 控制 逻辑
B组 控制
B组 端口B (8) I/O PB0-PB7
单片机 8255A 外设
1. 8255A的结构及引脚功能
8255A为40引脚的双列直插式(DIP)封装
(1)引脚功能 ① D0~D7为数据线,与单片机的数据 总线连接,传数据、命令等。 ② PA0~PA7(PA口)、PB0~PB7(PB 口)、PC0~PC7(PC口)为3个8位并行 I/O口,用于8255A与外设之间传数据。 ③ 读写控制逻辑线
8255A
PA口: × PB口: × PC口: × 控制口:× × × × × × × × × × × × × × × × × × × × × × × × × × × × ×
CS
0 0 0 0 × × × × × × × × × × × × × × × × × × × ×
A1 0 0 1 1
A0 0 1 0 1
0 1 0 1
没接的地址线设为1,则4个端口地址为: PA=7FFCH PB=7FFDH PC=7FFEH 控制口=7FFFH
3. 8255A的控制字
8255A有两个控制字:
工作方式控制字
这两个控制字都写到8255A的控制口,用 同一个端口地址采用特征位识别。 D7=1,表示是工作方式控制字 D7=0,表示是PC口置/复位控制字
B组控制
34 33 32 31 30 29 28 27 D0 D1 D2 D3 D4 D5 D6 D7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 4 3 2 1 40 39 38 37
A组 控制
A组 端口A (8) A组 端口C
上半部(4)
I/O PA0-PA7
数据 总线 缓冲
片选地址
A1 0 0 1 1
A0 0 1 0 1


0 0 0 0
PA口 PB口 PC口 控制口
CS 、A1、A0接单片机的地址总线,构成单片机访问8255A的16位地址。
16位总线访问地址 = 片选地址 + 片内地址
CS 、A1、A0与地址总线的连接方案不同,端口地址不同。
例如
8255A端口地址的确定
特征位为0
C口 低4位 B口
0:输出 1:输入 0:输出 1:输入
方式 0:方式0 选择 1:方式1 A组 C口 0:输出 高4位 1:输入 A口 0:输出 1:输入
不用置000
00:方式0 方式 01:方式1 选择 1X:方式2 特征位,为1
① 工作方式控制字
作用是用来设置3个并行口作输入口还是作输出口、设置8255A的工作方式
7.5 可编程并行I/O口的扩展
学习要点:
理解并行通信的概念及特点,掌握 8255A 的功能、工作方式、编程 方法及其应用。
8255A和8155是两种常用的可编程并行I/O 口的扩展芯 片,优点是: 一个芯片可扩展多个并行I/O口 可用软件改变接口的功能 可直接与单片机连接,进行并行数据传送 8255A是Intel系列的可编程并行接口芯片,扩展一片 可获得3个8位的并行I/O口,是一种单片机与外设之间的接 口电路。
③ 读/写控制逻辑 接收CPU传来的控制信号,以控制8255A的操作
CS
WR
CS
A1、A0 、RESET
④ 数据总线缓冲器 双向三态8位缓冲器,与单片机的数据总线直接相连
2. 8255A端口的寻址
一片8255A占4个端口地址:PA口、PB口、PC口、控 制口,由/CS、A1、A0决定。
片内地址
CS
8255A CS
PA口: 0 × PB口: 0 × PC口: 0 × 控制口:0 × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × ×
ቤተ መጻሕፍቲ ባይዱ
A1 0 0 1 1
A0
CS ——片选信号,接单片机的地址总线
RD ——读信号,接单片机的读信号
WR ——写信号,接单片机的写信号
A1、A0 ——端口选择信号,接单片机 的地址总线,与片选/CS一起,确定8255A访 问的端口地址。
RESET——复位信号,接单片机的复位
(2)内部结构
① 并行I/O端口 有3个8位并行I/O口,PA、PB、 PC它们可以被设置成输入或输出 5 18 D0-D7 PB0 RD 36 19 ② A、B组控制电路 8255A PB1 WR 9 20 A0 PB2 8 21 A1 PB3 A、B两组控制电路将三个端口 35 22 RESET PB4 6 23 PB5 CS 24 PB6 分成A、B两组。 25 PB7 A组控制
没接的地址线设为1,则4个端口地址为: PA=FF7CH PB=FF7DH PC=FF7EH 控制口=FF7FH
例如
片选地址
8255A端口地址的确定
CS 接A15,A1、A0接CPU的A1、A0,则端口地址:
片内地址
8031 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P2.4 P0.3 P0.2 P0.1 P0.0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
CS 接A7,A1、A0接CPU的A1、A0,则端口地址:
片选地址 片内地址
8031 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P2.4 P0.3 P0.2 P0.1 P0.0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
相关文档
最新文档