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

合集下载

3.1MCS-51单片机的并行IO口

3.1MCS-51单片机的并行IO口

一、并行I/O口的功能结构
2、接口功能 (2)通用I/O接口
(四)P0口
此时“控制”信号为“0”,多路开关 MUX向下,输出驱动器处于开漏状态,故需 外接上拉电阻,这种情况下,电路结构与P1 相同,所以也是一个准双向口,当要作为输 入时,必须先向口锁存器写“1”。
一、并行I/O口的功能结构
(四)P0口
这是由接口的特殊结构所决定的。每一个 口都包含一个锁存器,一个输出驱动器和两 个(P3口为3个)输入缓冲器。各口的结构也 P 3 有些差异,下面分别介绍。
一、并行I/O口的功能结构
1、接口结构
(一)P1口
P1口一位的结构如下图所示:
图2.15
一、并行I/O口的功能结构
1、接口结构
(一)P1口
接口结构中锁存器起输出锁存作用, 8位锁存器组成特殊功能寄存器P1,场 效应管和上拉电阻组成输出驱动器,以 增大负载能力,三态门1和三态门2分别 用于控制输入引脚和锁存器的状态。
作为I/O口应用的一个实例,下面介绍 8031单片机的最小应用系统如下图所示
二、产生接口控制信号的指令
(四)P0口
8051指令系统中能与接口打交道的指令 大体可分两类 1.一般的输入/输出指令 2.“读-修改-写”指 令
二、产生接口控制信号的指令
1.一般的输入输出指令
(四)P0口
输入指令执行时,内部产生“读引脚”信号, 直接从口线读入,亦称“读引脚”指令。 下面是属于这种指令的各种实例:
二、产生接口控制信号的指令
(四)P0口 2.“读-修改-写”指令 INC P2 接口锁存器加1 DEC P1 接口锁存器内容减1 DJNZ P3,LOOP 减1后不为零则跳转 还有三条虽不明显,但也属此列: MOV P1.1,C CLR P1.1 SETB P1.1 将进位位送接口的某位 清接口的某一位 接口的某一位置位

74.56MCS51并行IO端口的扩展PPT课件

74.56MCS51并行IO端口的扩展PPT课件

(1) 监视键盘的方法 3) 根据键盘布局构建键值表
1FH 1EH 1DH 1CH 1BH 1AH 19H 18H
L3
17H 16H 15H 14H 13H 12H 11H 10H
L2
0FH 0EH 0DH 0CH 0BH 0AH 09H 08H
L1
07H 06H 05H 04H 03H 02H 01H 00H
ORG 0100H
READKEY: MOV A , #0FFH ; 准备读P1口
MOV P1, A
JNB ACC.0 , RP10 ; 若0#键按下,则转RP10
JNB ACC.1 , RP11 ; 若1#键按下,则转RP11

JNB ACC.7 , RP17 ; 若7#键按下,则转RP17
DONE : RET
7.4 MCS-51并行I/O端口的扩展
MCS-51单片机虽然有四个并行端口(P0~P3),但是真正留给 用户使用的只有P1,其它的3个并口都有其它的工作:P0和P2常 用作扩展外存储器,P3经常用到它的各引脚的第二功能。因此, 需要扩展I/O
两种方法: 1) 借用外部RAM的地址来扩展I/O端口(统一编址); 方法简单,但使用受限,尤其在使用无接口能力的外设
设计者按照需要固定好各个按键的位置后,即可以根据 当前的键盘布局,确定某键盘所在的行值和列值。例如按键 “7”的行值为0(L0),列值为0(R0)。
为方便编程,需要将所有按键的键值按照固定的顺序保 存在表格中。因为键值和按键是一一对应的,只要通过查表 查到键值,也就知道用户按下了哪个键。其中各个键值对应 的偏移量是由按键的行值和列值确定的。确切的说,是由列 值和所在行的行首键号(顺序号)确定的。如下图所示:

8255并行口扩展控制

8255并行口扩展控制

桂林电子科技大学微机单片机接口设计报告指导老师:吴兆华学生:史海玲学号:092011110桂林电子科技大学机电工程学院《微机综合设计》设计报告一、设计题目 (1)二、设计内容与要求 (1)三、设计目的意义 (1)四、系统硬件电路图 (1)五、程序流程图与源程序 (2)5.1 程序流程图 (2)5.2 源程序 (3)六、系统功能分析与说明 (3)6.1 总体功能实现说明 (3)6.2 元器件的选择及功能介绍 (3)6.2.1 元器件的选择 (3)6.2.2 元器件的功能介绍 (4)七、设计体会 (8)八、参考文献 (9)《8255并行口扩展控制》设计报告一、设计题目8255并行口扩展控制二、设计内容与要求用8051单片机控制实现8255的PB口输出数据等于PA口输入数据三、设计目的意义1、通过8255并行口扩展控制,进一步熟悉和掌握单片机的结构及工作原理,加深对单片机理论知识的理解;2、掌握单片机内部功能模块的应用;3、掌握单片机的接口及相关外围芯片的特性、使用与控制方法;4、掌握单片机的编程方法,调试方法;5、掌握单片机应用系统的构建和使用,为以后设计和实现单片机应用系统打下良好的基础。

四、系统硬件电路图(1) 8255并行口扩展控制硬件电路原理图如下:图1:电路原理图(2)8255并行口扩展控制硬件电路仿真图:图2:电路仿真图(3) PCB图如下:图3:PCB图五、程序流程图与源程序5.1 程序流程图5.2 源程序ORG 0000H ;程序入口MOV DPTR,#7FFFH ;送控制口地址MOV A,#90H ;送8255状态字至控制口MOVX @DPTR,ALOOP:MOV DPTR,#7CFFH ;送PA口地址MOVX A,@DPTR ;读PA口状态MOV DPTR,#7DFFH ;送PB口地址MOVX @DPTR,A ;把PA口状态送至PB口JMP LOOP ;循环END六、系统功能分析与说明6.1 总体功能实现说明本次设计单片机采用89S51,它是一种低功耗、高性能的8位CMOS微控制器。

第八章 MCS-51的IO接口扩展

第八章 MCS-51的IO接口扩展

0
0 0 0
0
0 0 0
1
1 1 0
1
0 0 1
0
1 1 1
1
0 1 0
1
0 1 0
1
0 1 0
1 1 1
0 0 0 1 1 1 0 0 0
1
0 1 0
1
0 1 0
1 1 1
0 0 0 1 1 1 0 0 0
37FFH
2800H 2FFFH 1800H
0
0
0
1
1
0
0
0
0 0 0
0
0
0 1 1
1803H
中断扩展
• 标准的8051单片机只有两个外部中断输入端。 • 而当系统的外部中断源大于或等于3个时,则考虑通过中断 扩展获得更多的外部中断端口。 • 中断扩展的基本思想就是,通过系统的标准外部中断端口( 一级中断)的复用来扩展若干个二级中断。 • 当有扩展的中断请求输入时,在中断服务程序的开始处,读 入二级中断向量,依据不同的中断向量来区别不同的中断请 求源,然后执行对应的中断服务程序代码。 • 常见的中断扩展有编码器线和与两种方式。前者适合中断源 较多的情况,后者电路简单,但只适合中断源扩展较少的情 况。编码器方式的扩展电路如图8.6所示。
图8.7 线与方式的中断扩展电路

• • • • •

在图8.7中,直接使用二极管的“线与”操作来实现 中断输入的判别。当INT0到INT3的某个扩展中断源有中断请 求时,因二极管的“线与”功能,使得INT为低电平,从而 引起系统中断。进入中断后,通过查询P1.0到P1.3便可知道 应该执行哪一部分中断服务程序。假设INT接至51单片机的 脚,对应的中断服务程序的框架结构为: ORG 0013H JMP INTSERV …… INTSERV: … … ;现场保护 JNB P1.0,INT0SERV ;是中断INT0请求,则执行INT0对应的中断 服务程序 JNB P1.1,INT1SERV ;是中断INT1请求,则执行INT1对应的中断 服务程序

MCS51单片机总线系统与IO口扩展

MCS51单片机总线系统与IO口扩展

6.2.2 单片机总线扩展的编址技术
OE
LE
Dn
Qn
L
H
H
H
L
H
L
L
L
L
L
Qn-1
L
L
H
Qn-1
H
×
×
Z
地址锁存器74LS373
CLR D0-D7Q0-Q7 4 6 2 6 74LS24474LS273 E 0123456789E GG 12Q0-Q7CLKD0-D7AAAAAAAAAAA10A11A12I/O0I/O1I/O2I/O3I/O4I/O5I/O6I/O7OWCE1CE2 56? UUU P0.0-P0.7P0.0-P0.7 +5V 11 01234567 E >> QQQQQQQQ O 01234567 E DDDDDDDDL 2 U74LS373 012 YYY ABC 3 U74LS138 R AD E R P20P07P21P06P22P05P23P04P24P03P25P02P26P01P27P00 W ALE 89C51 1 U
MOV
DPTR,#0FEFFH ;确定扩展芯片地址
MOVX
A,@DPTR
;将扩展输入口内容读入累加器A
当与74LS244相连的按键都没有按下时,输入全为1,若按下某键,则所在线 输入为0。
6.2.1 单片机I/O口扩展
输出控制信号由P2.0和相“或”后形成。当二者都为0后,74LS273的控制端 有效,选通74LS273, P0上的数据锁存到74LS273的输出端,控制发光二极管 LED , 芯 片 地 址 与 74LS244 的 选 通 地 址 相 同 ( 都 是 ×××× ×××0 ×××× ××××B,通常取为FEFFH)。当某线输出为0时,相应的LED发 光。

5.4 单片机外部总线扩展并口芯片8255

5.4 单片机外部总线扩展并口芯片8255

可编程I/O扩展(8255A)
D7 D0
CS
8255A
RD
8255A
WR
8255A
A1 A0
8255A
PA7 PA0, PB7 PB0, PC7 PC0 A B C 8 I/O
RESET
VCC +5V
GND
可编程I/O扩展(8255A)
8255A
8255A
C
/
有缘学习更多+谓ygd3076考证资料或关注桃报:奉献教育(店铺)
B组 端口 C
B组 B组 端口 B
PA7~PA0
PC7~PC 4 PC3~PC 0
PB7~PB 0
可编程I/O扩展(8255A)
I/O
PA PB PC
CS A1 A0 RD WR
I/O操作
00 0 01
读A口寄存器内容到数据总线
00 1 01
读B口寄存器内容到数据总线
01 0 01
读C口寄存器内容到数据总线
D7
D6
D5
特征位0
这三位不用
D4
D3
D2
D1
D0
位选择位 000:C口0位 001:C口1位
…… 111:C口7位
0:复位 1:置位
可编程I/O扩展(8255A)
8255A
0 (1) (2) (3)
1 AB
8
(A B)
4
(C
4C
4)
I/O C
I/O
可编程I/O扩展(8255A)
0/
8255A
8051
uchar i; XBYTE[0x7f03]=0x82; // 8255A初始化,B口方式0输入,A口方式0输出 while(1) {

51单片机的扩展

51单片机的扩展

(a)程序存储器的扩展
.程序存储器的作用----存放程序代码或常数表格
.扩展时所用芯片----一般用只读型存储器芯片(可以是 EPROM、E2PROM、 FLASH芯片等)。 .扩展电路连接 ---- 用EPROM 2732扩展程序存储器。 .存储器地址分析----究竟单片机输出什么地址值时,可以
一、系统扩展的含义
单片机中虽然已经集成了CPU、I/O口、定时器、 中断系统、存储器等计算机的基本部件(即系统资 源),但是对一些较复杂应用系统来说有时感到以 上资源中的一种或几种不够用,这就需要在单片机 芯片外加相应的芯片、电路,使得有关功能得以扩 充,我们称为系统扩展(即系统资源的扩充)。 需要解决的问题是单片机与相应芯片的接口电 路连接(即地址总线、数据总线、控制总线的连接) 与编程。
指向存储器中的某一单元。
.扩展时所用芯片
2732----4K EPROM
A7 A6 A5 A4 A3 A2 A1 A0 O0 O1 O2 GND Vcc A8 A9 A11 OE/Vpp A10 CE O7 O6 O5 O4 O3
2732引脚功能
A0-A11 CE 地址线 选片 输出允许/ 编程电源 数据线
P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7
A8 A9 A10 A11
2732
CE OE
ALE
PSEN 图4.2 扩展电路
8031
2732
数据总线的连接: P0.0-P0.7(数据总线)----------------------------------------O0-O7 地址总线的连接: 经过锁存器373 P0.0-P0.7(地址总线低8位)---------------------------------- A0-A7 P2.0-P2.3(地址总线高8位中的4位)--------------------------- A8-A11 控制总线的连接: PSEN(程序存储器允许,即读指令) -------------------------- OE ALE(地址锁存允许)-------------------------------------接373的使能端 G

7.4.5.6MCS-51并行IO端口的扩展

7.4.5.6MCS-51并行IO端口的扩展
RD P1.0 ALE G Q0 . P0.0 . EA P0.7 8 位 锁 存 器 A7 CS Q7 Y0 器 DB0 DB7 A0 外 部 RAM 字 打印机 STB ACK
8031
Y15
7.4.2 采用8255A扩展I/O端口 采用8255A扩展 端口 扩展I/O
8051同8255A连结非常简单,只需要一个 位地址锁存器即可. 同 连结非常简单, 位地址锁存器即可. 连结非常简单 只需要一个8位地址锁存器即可
相应程序
ORG 0100H READKEY: MOV A , #0FFH ; 准备读P1口 准备读 口 MOV P1, A JNB ACC.0 , RP10 ; 若0#键按下,则转 键按下, 键按下 则转RP10 JNB ACC.1 , RP11 ; 若1#键按下,则转 键按下, 键按下 则转RP11
MCS-51对独立式非编码键盘的接口 1. MCS-51对独立式非编码键盘的接口 每个按键都是独立的, 分别占用CPU的一条 数据输入线. 的一条I/O数据输入线 占用 的一条 数据输入线. 每个按键都是独立的,都分别占用
+5V
P1.7 P1.6 P1.5 8031 P1.4 P1.3 P1.2 P1.1 P1.0 EA

JNB ACC.7 , RP17 ; 若7#键按下,则转 键按下, 键按下 则转RP17 DONE : RP10 : RP11 : … RP17 : PROM0 : … LJMP PROM7 ;0#键的处理程序 键的处理程序 RET LJMP PROM0 LJMP PROM1
优点: 优点:硬件电路简单 缺点: 缺点:每个按键都要占 用一条I/O端口线 端口线. 用一条 端口线.
RD WR RESET 74LS373 Q7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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)的工作方式和读/写操作。
8255A三个8位并行数据端口都有自己各自的特点。 A口:具有一个8位数据输出锁存/缓冲器和一个数据输入锁存器。在数据 输入或输出时,数据均受到锁存。可对PA7~PA0设定为三种工作方式: 8位输入、输出或双向。 B口:具有一个8位数据输出锁存/缓冲器和一个数据输入缓冲器。可编程 为两种工作方式:8位输入或输出。
ORG 1000H PRINT:MOV DPTR,#7FFFH MOV A,#81H ;控制口地址
;控制字
MOVX @DPTR,A ;写入 ;数据指针,指向源数据的首地址 ;64个数
NEXT: MOV DPTR,#7FFEH ;PC口地址 MOV A, #80H ;使PC7为高电平 MOVX @DPTR,A ;输出/DATA STR OBE为 ;高电平;无效,不准备送数
可编程如下: MOV R0,#03H ;R0←03H,8255A控制口地址 MOV A,#07H ;A←07H,将PC3置1控制字 MOVX @R0,A ;(03H)←07h,送控制字,置PC3=1 MOV A,#0AH ;A←0AH,将PC5置0控制字 MOVX @R0,A ;(03H)←0AH,送控制字,置PC5=0
(1)8255A可编程并行I/O接口的片内结构
8255A具有三个8位并行I/O口, 称为PA口、PB口和PC口,其中 PC口又分为高4位和低4位口。 通过控制字设定可以选择三种 工作方式:基本输入/输出、选 通输入/输出、PA口为双向总线。 8255A与单片机和外设连接时, 由不同的初始化编程可用于无 条件传送,查询或中断传送, 以完成单片机和外设的信息交 换。
(5)8255A的控制字(两个:工作方式选择、C口控制)
8255的控制
1)工作方式选择控制字
8255A的三个端口工作在什么方式, 是输入还是输出,都是由工作方 式控制字设定。 D2~D0控制B口和PC7~PC4; D6~D3控制A口和PC7~PC4。
注意:用户选择方式1或2时,对 C口的定义无效,C口作为特定的 控制联络线使用(但没有用于控 制联络线的各位,仍用D0、D3定 义。 )
3) 方式2:双向传送(只有A口可以选择方式2)
此时,A口为8位双向传送数据口,C 口的高5位PC7~PC3用来作为指定的A口 输入/输出的控制联络线。 A口工作在方式2时,B口可作为方式 0或者方式1工作,PC2~PC0用作I/O线。
C口在设定为方式1或2时,各 引脚分配的固定功能如右表示。 表中I/O,C口末用的这些线 可以设定为一般的输入/输出线 使用。
课后习题:
P153
控制字格式:
寄存器地址
A口有方式2
(5)8255A的控制字(两个:工作方式选择、C口控制)
2)C口“置0/置1”控制 字 端口C的各位可以单独置1/置0(以
实现用户要求的控制功能) 用D3D2D1 来选择对C口的哪一位 进行操作;用D0来决定对所选中位 置0还是置1。 每次设定只能对C口的一个位置0 或置1 。 D7=0是这个控制字的特征位,CPU 靠这个位来区别共用一个地址 (A1A0=11)的两个字
单片机与控制技术
电气学院:胡学军
第05章:存储器与并行I/O口的扩展
本章主要内容: MCS51单片机的扩展总线(3总线结构与驱动能力) 在总线上扩展程序存储器和数据存储器的方法实例 串行存储器的扩展 用8255扩展单片机的I/O口(硬件与编程)【本讲内 容】
4、用8255来扩展单片机的并行I/O端口
在上述控制引脚中:CS、A1、A0可决定8255A的4个端口寄 存器地址。RD、WR可以决定CPU对8255A的读/写操作方式选择。
(3)8255A的三种工作方式
用户可以通过CPU对8255A方式控制字的设定来选择三 种不同的工作方式。
1)方式0:基本输入/输出方式 这种方式不需要选通信号 (?)。PA、PB和PC中任何一 个端口都可以通过方式控制字 设定为输入或输出。用于无条 件数据传送或查询方式传送数 据。
(2)8255A芯片引脚功能
8255A为双列直插式40条引脚, 除了电源VCC和地GND以外, 其它引脚信号可分为两组。 1)和外部设备一边相连接的: PA7~PA0 为 A 组 数 据 信 号 线 ; PB7~PB0为B组数据信号线。 这两组线根据用户需要工作方式 与外部设备的对应端连接 2)和单片机一边相连接的:D7~D0 为8255A双向数据总线;CS为片 选端,低电平有效;RD和WR为 读/写有效控制端。当CS=0时, RD和WR才能对8255A有效。
A1、A0为端口地址选择端:确定8255A内部3个数据口和一个控制 寄存器地址。如下所示 A1 A2 选中端口地址 0 0 —— A端口 0 1 —— B端口 1 0 —— C端口 1 1 —— 控制寄存器地址 RESET:复位端,高电平有效。当RESET=1 时8255A复位,内部控 制寄存器被清除。所有端口被设定为输入。
与方式选择控制 字相区别
8255的控制 寄存器地址
对8255A进行初始化程序设计 例如: 要求A口工作在方式 0,输入;B口为方式1,输出;C口高4位
PC7~PC4为输入;C口低4位PC3~PC0为输出。设控制端口地址为F003H。
分析:控制方式寄存器各位含义得8255A对应的工作方式选择控 制字为10011100B=9CH。 实现上述要求的初始化程序为 MOV DPTR,#0F003H ;F003H为8255A控制寄存器地址 MOV A,#9CH ;8255A工作方式字为9CH MOVX @DPTR,A ;(R1)←A,方式字送入8255A控制口 ……
C口的 位 PC0
方式1(A口、B口) 输入 INTRB 输出 INTRB
方式2(仅用于A口) 输入 I/O 输出 I/O
PC1
PC2 PC3 PC4 PC5 PC6 PC7
IBFB
/STBB INTRA /STBA IBFA I/O I/O
/OBFB
/ACKB INTRA I/O I/O ACKA OBFA
(6)8255A与8051的接口实例
实例:硬件电路如图。用户需要将C口的PC3位置1,而将PC5置0 。
分析:根据A1、A0和/CS线与MCU 的连接关系,得8255A的 A、B、C 口和控制寄存器地址依次为00H、 01H、02H和03H。 如果用户需要将C口的PC3位置1, 而将PC5置0,则需要分两次写入置 1/置0控制字。将PC3置1的控制字为 0000 0111B=07H;将PC5置0的控制 字为00001010B=0AH。
在MCS51系列单片机中,提供给用户的I/O线只有P1 口和P3口的某些位线可作为输入、输出口线使用。因 此,在较复杂的应用中仅仅依靠单片机本身的这些端 口资源并不够用。为了解决这一问题,需要我们设计 人员来利用通用的接口芯片(8255、8155、8253等) 来并行I/O、定时器等外部接口。 本节以可编程并行接口芯片8255A为例来介绍接口 芯片与MCS51单片机的接口技术。
2)方式1:选通输入/输出方式 三个口被分成两组: A组包括A口和PC7~PC3,A口可由编程设定为输入或输出口;PC7~PC4作 为输入/输出操作的选通信号和应答信号。 B组包括B口和PC3~PC0,这时C口作为8255A和外设(或CPU)之间传送某 些状态信息及中断请求信号。这些联络信号与C口的数位之间有着固定关 系,不是由用户设定的。
WAIT: MOVX A,@DPTR ;查询打印机状态 JB ACC.0, WAIT ;若PC0即BUSY = 1忙,则等待
MOV DPTR , #7FFCH
MOV A , @R1 MOVX @DPTR , A
;若BUSY = 0空闲,则指向PA口
;输出数据
MOV DPTR , #7FFEH库 ;指向PC口 MOV A , #00H MOVX @DPTR , A ACALL PDELAY ;8255A输出/DATA STR OBE信号 ;通知打印机,给它传数。
在8255A C口的PC3置1和置0控制中,第二次写入的0AH置 PC5=0的操作不影响第一次写入的置PC3=1的状态。
相关文档
最新文档