Upload
thi
View
128
Download
0
Embed Size (px)
DESCRIPTION
MCS-51 单片机原理及应用教程. 清华大学出版社 刘迎春 主编. 第 8 章 MCS-51 单片机的系统扩展. 程序存储器的扩展 数据存储器的扩展 外部 I/O 的扩展. 8.1 程序存储器的扩展. 8.1.1 外部程序存储器的操作时序 MCS-51 系列单片机扩展外部程序存储器的硬件电路如图 8.1 所示。. 图 8.2 单片机访问外部程序存储器的时序图. 8.1.2 地址锁存器及 EPROM,EEPROM 芯片介绍. 1. 地址锁存器. 图 8.3 为几种常用的地址锁存器的管脚图。. - PowerPoint PPT Presentation
Citation preview
MCS-51 单片机原理及应用教程
清华大学出版社
刘迎春 主编
第 8 章 MCS-51 单片机的系统扩展
程序存储器的扩展数据存储器的扩展外部 I/O 的扩展
8.1 程序存储器的扩展
8.1.1 外部程序存储器的操作时序
MCS-51 系列单片机扩展外部程序存储器的硬件电路如图 8.1 所示。
¸ß8λµØÖ·
µÍ8λµØÖ·Ëø´æÆ÷
P0
PSEN
P2
ALE
OE
µØÖ·
³ÌÐòÖ¸Áî
EPROMEEPROMMCS-51
EA
S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6
ALE
PSEN
P2
P0
RD
µÚÒ»¸ö»úÆ÷ÖÜÆÚ µÚ¶þ¸ö»úÆ÷ÖÜÆÚ
PCHÊä³ö PCHÊä³ö PCHÊä³ö PCHÊä³ö
Êý¾Ý²ÉÑù
Êý¾Ý²ÉÑù
Êý¾Ý²ÉÑù
Êý¾Ý²ÉÑù
Êý¾Ý²ÉÑù
PCLÊä³ö
PCLÊä³ö
PCLÊä³ö
PCLÊä³ö
图 8.2 单片机访问外部程序存储器的时序图
8.1.2 地址锁存器及 EPROM,EEPROM 芯片介绍
1. 地址锁存器
图 8.3 为几种常用的地址锁存器的管脚图。
图 8.4 是这几种常用的锁存器与单片机的连接图。
2. EPROM 与 EEPROM 扩展电路
紫外线擦除电可编程只读存储器 EPROM ,以前常用作 MCS-51 系列单片机的外部程序存储器,常见的型号有:2764(8K×8) , 27128(16K×8) , 27256(32K×8) , 27512(64K×8) 等。管脚分布如图 8.5 所示 。
VppA12A7A6A5A4A3A2A1A0D0D1D2Vss
VccPGMNCA8A9A11OEA10CED7D6D5D4D3
图 8.6 27C64 与单片机的连线图
图 8.8 MCS-51 单片机与 EEPROM 28C17 的连接图
8.2 数据存储器的扩展 8.2.1 外部数据存储器的操作时序
如图 8.9 所示为单片机片外数据存储器的读时序 。
P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2
S1 S2 S3 S4 S5 S6
ALE
PSEN
RD
P2
P0
µØÖ·A15-A8
Ö¸ÁîÊäÈëÐü¿Õ A7-A0Ðü¿Õ Êý¾ÝÊäÈë Ðü¿Õ
¢Ù
¢à
¢ß
¢Þ
¢Ý
¢Ü¢Û
¢Û
¢Ú
如图 8.10 所示为单片机片外数据存储器的写时序。
P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2
S1 S2 S3 S4 S5 S6
ALE
PSEN
P2
P0 Ö¸ÁîÊäÈëÐü¿Õ
¢Ù
¢Ý
¢Û¢Ú
¢Ú
¢Ü
¢Þ
Êý¾ÝÊä³öA7-A0
µØÖ·A15-A8
WR
8.2.2 常用的单片机外部数据存储器常用的单片机外部数据存储器有6116(2K×8) 、 6264(8K×8) 、 62256(32K×8 位 ) 、 62512(64K×8) 及628128(128K×8) 等多种,图 8.11 为 6116 和 6264 的管脚图。
A12A7A6A5A4A3A2A1A0D0D1D2Vss
Vcc
A8A9A11OEA10
D7D6D5D4D3
NCWECE2
CE1
A7A6A5A4A3A2A1A0D0D1D2Vss
A8A9
OEA10
D7D6D5D4D3
VCC
WE
CE6116 6264
下面的程序为向 6116 内写入 00~FFH 的数据。
ORG 0000H ; 单片机上电复位地址 AJMP MAIN ; 转移至以 MAIN 为标记的地址 ORG 0040H ; 以 MAIN 为标志的程序段放在的起始地址MAIN: MOV SP, #60H ; 程序内容,将堆栈首地址设置为 60H 单元 MOV DPTR, #0000H ; 给外部数据指针 DPTR 赋首地址 0000H MOV R2, #0FFH ; 设置循环次数 MOV A, #00H ; 给 A 赋初值 00HLOOP: MOVX @DPTR, A ;((DPTR))←(A) INC DPTR ; 外部数据指针地址加 1 INC A ;A 内的数据加 1 DJNZ R2, LOOP ;R2 是否为零?否,转向 LOOP END ; 否则程序停止以上程序段是将数据写入外部数据存储器的例程,如将数据读出单片机外,只需将: LOOP: MOVX @DPTR, A改写为:LOOP: MOVX A, @DPTR
8.3 外部 I/O 的扩展8.3.1 I/O 口扩展概述
常用的单片机外围器件有:82C55 、 81C55 、 82C53 、 82C54 、 82C52 、 8279 等芯片。
8.3.2 I/O 口地址译码方法
1. 线选法
图 8.13 为采用线选法的实例。
6116 8255 8155
DAC083282C53ADC1674
CE CE CE
CECECE
A0 A0
A0 A1
AD7AD0A1A10
P2.2P2.4
P2.3
P2.5P2.6P2.7P2.1
8051 IO/M
…
…
线选法的优点是硬件结构简单,不需要应用译码芯片,但由于所用片选线都是位于 P2 口的高位线,它们的权值较大,地址空间没有充分地利用,造成单片机地址资源的浪费,并且芯片之间的地址也不连续。
2. 全地址译码法
它将低位地址作为芯片的片内地址,而用译码器对高位地址线进行译码,译出的信号作为片选线。一般采用 74LS138(3-8) , 74LS154(4-16) ,或CPLD 等来实现译码。下面以 74LS138 为例来讲述其应用方法。
6116 8255 8155
DAC083282C53ADC1674
CE CE CE
CECECE
A0 A0
A0 A1
AD7AD0A1A10
8051
P2.5P2.6P2.7
ABC
G2AG2B
G16 16
+5V
Y1Y0
Y2Y3Y4Y5
IO/MP2.0
…
…
8.3.3 82C55 可编程并行 I/O 口
1. 82C55 芯片介绍
82C55 的管脚图如图 8.15 所示,其内部结构如图 8.16 所示。PA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2 PB3
PB4PB5PB6PB7VCCD7D6D5D4D3D2D1D0RESET
PA4PA5PA6PA7WR
A ×é¿ØÖÆ
A ×é¿ØÖÆ
A ×é¿ØÖÆ
A×é¶Ë¿ÚCÉϰ벿
B×é¶Ë¿ÚCÉϰ벿
¶Á/дÂß¼
Êý¾Ý×ÜÏß»º³åÆ÷
D0-D7
RD
A1A0WR
RESETCS
A ×é¿ØÖÆ
PA0~PA7
PB0~PB7
PC0~PC3
PC4~PC7
表 8.4 82C55 内部的单元地址
A1 A0 82C55 内部寄存器0 00 11 01 1
端口 A端口 B端口 C
控制寄存器
A×é
¶Ë¿ÚA1:ÊäÈë0:Êä³ö
·½Ê½Ñ¡Ôñ00:·½Ê½001:·½Ê½11X:·½Ê½2
D7
Ö÷½Ê½ ±êÖ¾1:ÓÐЧ
B×é
¶Ë¿ÚB1:ÊäÈë0:Êä³ö
¶Ë¿ÚCPC0~PC31:ÊäÈë0:Êä³ö
·½Ê½Ñ¡Ôñ0:·½Ê½01:·½Ê½1
¶Ë¿ÚCPC4~PC71:ÊäÈë0:Êä³ö
D6 D5 D4 D3 D2 D1 D0
82C55 控制字格式
D7
λ£ºÖÃλ/¸´Î»1£ºÖÃλ 0£º¸´Î»
10 2 3 4 5 6 7
0
0
0
0
0
0
0 0
0
0 0
01
1
1
1
1
1
1 1
1
1
1
1
λ£ºÖÃλ/¸´Î»±êÖ¾ 0£ºÓÐЧ
²»ÓÃ
D6 D5 D4 D3 D2 D1 D0
图 8.18 82C55 C 口位操作控制字
82C55 的三种工作模式:工作模式 0工作模式 1工作模式 2
2. 8051 与 82C55 的接口举例
在 8051 单片机的 I/O 上扩展 82C55 芯片,其接口逻辑相当简单,如图 8.25 所示。 WR
P2.0RD
CS
WRRD
Q1 A1Q0 A0P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
D0
D1
D2
D3D4
D5D6
D7
D0D1
ALE G E
8
8
8PA0¡«7
PB0¡«7
PC0¡«7
8051 82C55
74LS373
例程如下: ORG 0000H ; 上电复位程序入口 AJMP MAIN ; 转移到以 MAIN 为标号的程序入口; ORG 0040H ; 主程序存放在以 0040H 单元开始的空间内MAIN: MOV SP, #60H ; 将堆栈调至 60H 单元处 MOV DPTR, #0FEFFH ; 将 82C55 的控制字节地址赋给数据指针 MOV A, #8BH ; 将数据 8BH 传送给 A MOVX @DPTR, A ; 由 A 将 8BH 这个控制字写入 82C55 的控制单元 MOV DPTR, #0FEFCH ; 数据指针指向 A 端口 MOV A, #3FH ; 将 3FH 这个数传送给 A MOVX @DPTR, A ; 由 A 将数据传送到 DPTR 制定的字节地址 MOV DPTR, #0FEFDH ; 将 B 口的地址传送给数据指针 MOVX A, @DPTR ; 将 B 口的数据传送给 A MOV 30H, A ; 通过 A 将 B 口内的数据传送到 30H 单元内 MOV DPTR, #0FEFEH ; 把端口 C 的地址赋予数据指针 MOVX A, @DPTR ; 把 C 内的数据传送给 A MOV 31H, A ; 通过 A 把数据传送到 31H 单元内 END ; 整个程序结束
8.3.4 81C55 可编程并行 I/O 口 1. 81C55 芯片简介
图 8.26 为 81C55 芯片的管脚和内部结构示意图。VCCPC3
PC4TIMERIN
RESETPC5
TIMEROUT
RDWRALEAD0AD1AD2AD3AD4AD5AD6AD7VSS
CEIO/M
PC2PC1PC0PB7PB6PB5PB4PB3PB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA0
8155
1234567891011121314151617181920 21
22232425262728293031323334353637383940
¿ØÖÆÂß¼
¶¨Ê±Æ÷
A256¡Á8RAM
IO/M
B
C
PA0¡«PA7
PB0¡«PB7
AD0¡«AD7
CE
ALE
RD
WR
RESET
¶¨Ê±Æ÷/¼ÆÊýÆ÷
¶¨Ê±Æ÷Òç³ö
PC0¡«PC5
VCC
VSS
2. 8051 与 81C55 的接口举例图 8.29 描述了一个 8051 与 81C55 连接的电路图。
P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7
P2.0P2.7ALE
WRRD
RESET
AD0AD1AD2AD3AD4AD5AD6AD7
IO/MALE
WRRD
RESET
CE
TIMER INTIMEROUT
PA0¡«PA7
PB0¡«PB7
PC0¡«PC5
81C558051
设通过 8051 向 81C55 中 RAM 的第 30H 单元送入数 87H ,则例程如下。
ORG 0000H AJMP MAIN ORG 0040HMAIN: MOV SP, #60H MOV DPTR, #7E30H MOV A, #78H MOVX @DPTR, A END
8.4 思考练习题
(1) 简述单片机系统扩展的基本原则和实现方法。(2) 什么是 RAM ?有什么特点?(3) 线选法和全地址译码法有什么区别?(4) 在一个 8051 应用系统中扩展 64K EPROM ,并扩展两片 82C55 和一片 6264 ,试画出其线路原理图,并说明各自的地址范围。(5) 设采用一片 8051 和一片 81C55 设计一个 24 位的定时器 / 计数器。(6) 某厂生产的酒瓶盖原采用称重装箱的方式,现要改为按数量装箱的方式,设其每箱要求装满 5000 只,试应用 8051 单片机设计其应用系统。(7) 由于 8051 内部有 4K 的程序存储器,有人考虑采用控制 EA 端的方式来给程序加密,试讨论该办法的可行性。(8) 试讨论在不加其他逻辑芯片的情况下,一片 8051 和一片 81C55 可提供多少输入 /输出的端口。