第九章8051单片机系统扩展
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0000H
~ 1FFFH
地址译码进行外部扩展举例
扩 展 器 件 6264 8255 0832
片内字节地址数 8K 4 1
地址编码 0000H~1FFFH 3FFCH~3FFFH 7FFFH
9.2 存储器的并行扩展
9.2.1 数据存储器扩展概述 单片机应用系统中并行扩展的数据存储器都是静态随 机存储器 SRAM,常用的SRAM有62系列的6264、62256、 628128、628512等,存储容量分别为 8KB、32KB、128KB、 512KB等。 数据存储器地址空间同程序存储器一样,由 P2 口 提供高 8 位地址, P0 口分时提供低 8 位地址和 8 位双向数 据线。 访问片外扩展数据存储器的4条寄存器间址指令:
S6
S1
第二个机器周期 S2 S3 S4 S5
S6
高8位PCH 低8位PCL 指令
高8位DPH或P2输出 低8位DPL 数据输出
(b)数据存储器写周期时序 图9-3 访问片外RAM的操作时序
9. 2. 3
数据存储器扩展举例
图9-4 扩展64KB RAM
9.3 并行I/O接口的扩展
9.3.1 简单的并行I /O扩展
8051单片机系统扩展
本节介绍8051单片机系统扩展技术,主 要介绍一下2点: 1、存储器的扩展 2、 I/O接口扩展电路设计
9.1 并行扩展概述
9.1.1 外部并行扩展总线
1.扩展方式 并行I/O口 并行扩展总线:三总线方式
P2 8 8 8 A8 ~ A15 地址总线
P0
地址 8 A0 ~ A7 锁存器 D 0 ~ D7
S1 ALE RD P2 P0 高8位PCH 低8位PCL 指令 高8位DPH或P2输出 低8位DPL 数据输入 第一个机器周期 S2 S3 S4 S5 S6 S1 第二个机器周期 S2 S3 S4 S5 S6
(a)数据存储器读周期时序
S1 ALE RD P2 P0
第一个机器周期 S2 S3 S4 S5
2、地址译码法 对于容量较大的存储器或I/O端口较多的单 片机应用系统进行外部扩展,当芯片所需要 的片选信号多于可利用的高位地址线时,就 需要采用地址译码法。地址译码法必须采用 地址译码器,常用的地址译码器有3-8译码器 74HC138(3个选择输入端,组成8个输入状态, 有8个输出端,0电平有效)、双2-4译码器 74HC139等。
图9-7 8255A控制字的格式与定义
5.80C51和8255A的接口及应用
图9-11 80C51与8255的接口电路
图9-8 80C51与8255A的接口电路
本例要求8255A按方式0工作,A口各位作为输入,B口各 位作为输出,C口高4位作为输出,低4位作为输入。将A口数 据存入R1,则编程如下: MOV MOV MOVX MOV MOVX MOV DPTR,#0FF7FH A,#10010001B @DPTR ,A DPTR ,#0FF7CH A, @DPTR R1 ,A ;指向控制寄存器地址 ;按要求设的控制字 ;控制字送入控制寄存器 ;指向A口地址 ;取A口数据
在需要扩展I/O口,或者需要提高系统的带负
载能力的情况,常采用锁存器、缓冲/驱动器 等作为I/O口扩展芯片 ,这是单片机应用系 统中经常采用的方法。这种I/O口一般都是通 过P0口扩展,具有电路简单、成本低、配置 灵活的优点。一般在扩展单个8位输出/输入 口时,十分方便。
图9-8 简单I/O接口扩展电路
80C51 ALE PSEN WR RD
数据总线 控制总线
图9-1 单片机的外部扩展三总线
2. 并行总线扩展基本问题
总线连接电路设计、地址译码、器件地址.并 行总线扩展电路设计。 并行总线扩展连接方式符合三总线连接方式。 数据总线为三态口,在不传送数据时为高阻态。 总线分时对不同的外设进行数据传送。
MOVX A,@DPTR MOVX @DPTR,A 或 MOVX A,@Ri MOVX @Ri,A
9.2.2 访问片外RAM的操作时序
访问片外RAM的操作包括读写两种操作时序,通过对 操作时序的了解,可以更好地理解ALE、/RD、/WR、P0及 P2等信号和数据线的作用,及P0口是如何分时控制低8位 地址线和数据线的。
线选法进行外部扩展举例
6264的地址范围: 高8位地址变化范围 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 1 1 0 × × × × × 低8位地址变化范围:P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 × × × × × × × × 由此可得6264的地址范围为:C000H~DFFFH。
0832的地址: 高8位地址变化范围: P2.7 0 低8位地址变化范围: P0.7 1
P2.6 1 P0.6 1
P2.5 P2.4 P2.3 1 1 1 P0.5 P0.4 P0.3 1 1 1
P2.2 1 P0.2 1
P2.1 1 P0.1 1
P2.0 1 P0.0 1
由此可O接口电路的扩展
可编程序接口是指其功能可由计算机的指令来
加以改变的接口芯片。可编程I/O接口利用软 件设置片内控制寄存器,可使一个接口芯片执 行多种不同的接口功能,因此使用十分灵活。 在此仅以在单片机中常用的一种可编程通用并 行接口芯片8255A为例说明问题 。
8255可编程并行I/O接口扩展芯片
8255的地址范围: 高8位地址变化范围 :P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 1 0 1 1 1 1 1 1 低8位地址变化范围:P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 1 1 1 1 1 1 × × 由此可得8255的地址范围为:BFFCH~BFFFH。
B组 端 口 B ( 8)
I/O PB7~ PB0
(2)端口
PA0~PA7、PB0~PB7、PC0~PC7共24 条端口线。3个口皆为锁存/缓冲寄存器,A 口、B口有锁存功能,C口无锁存功能。A、 B、C 3口的工作方式由程序设置。 (3)数据线 8255是8位芯片,有8位数据线D0~D7。 数据线接于8051单片机的P0接口,
(3)控制线 控制线控制8255的读RD:、写WR、复位RESET 及片选CS等。
(4)地址线
A1 A0 0 0 0 1 1 0 1 1 选择口 A口 B口 C口 控制口
3. 8255A的工作方式 方式0(基本输入/输出方式) 方式1(选通输入/输出方式) 方式2(双向数据传送方式) 最常用和最简单的方法是方式0 4. 8255A的控制寄存器 8255A的工作方式选择是通过对控制寄存器输入控制 字(或称命令字)的方式实现的 。 ① 方式选择控制字 ② C口置/复位控制字
程序存储器的扩展
在8051单片机外部扩展8K字节程序存储器2764的连接图
数据存储器扩展
在8051单片机外部扩展一片8K字节数据存储器6264的连接图
系统扩展选址方法
1、线选法: 利用单片机的一根空闲高位地址线(通常采用P2的 某根口线)选中一个外部扩展I/O端口芯片,若要 选中某个芯片工作,将对应芯片的片选信号端设 为低电平,其它未被选中芯片的片选信号端设为 高电平,从而保证只选中指定的芯片工作。 优点:不需要地址译码器,可以节省器件,减小 体积,降低成本 缺点:可寻址的器件数目受到很大限制,而且地 址空间不连续,这些都会给系统设计带来 不便。
图9-5
简单I/O接口扩展电路
图中输入和输出都是在P2.0为0时有效,它们占 有相同的地址空间,但由于它们分别用读和写信号控 制,因而尽管它们都直接与P0口相接,却不可能同时 被选中,这样在总线上就不会发生冲突。 系统中若有其它扩展RAM,或其它输入/输出接 口,则可用线选法或译码法将地址空间区分开。 按照图9-5电路的接法,要求实现如下功能:任 意按下一个键,对应的LED 亮,例如,按K1则LED1亮, 按K2则LED2亮等。则编写程序如下: LOOP:MOV DPTR,#0FEFFH ;指向 I/O口地址 MOVX A, @DPTR ;从244读入数据,检测按钮 MOVX @DPTR,A ;向273输出数据,驱动LED SJMP LOOP ;循环
(1)8255内部结构及引脚功能
A组 控制 A组 端 口 A ( 8) A组 端 口 C 上半部 ( 4) B组 端 口 C 下半部 ( 4)
RD WR A0 A1 RESET I/O PA7~ PA0
D7~ D0
数据总线 缓冲器
I/O PC7~ PC4
I/O PC3~ PC0
读写 控制 逻辑
CS
B组 控制
数据存储器与外设的统一编址 线选地址译码 :用译码器将寻址范围等分的 译码方法见下图。
A15 A14 A13 +5V C B A Vcc 74HC 138 G1 G2A G2B
GND
Y7 Y6 Y5 Y4 Y3 Y2 Y1
Y0
E000H ~ FFFFFH C000H ~DFFFH A000H ~BFFFH 8000H ~ 9FFFH 6000H ~ 7FFFH 4000H ~ 5FFFH 2000H ~ 3FFFH
~ 1FFFH
地址译码进行外部扩展举例
扩 展 器 件 6264 8255 0832
片内字节地址数 8K 4 1
地址编码 0000H~1FFFH 3FFCH~3FFFH 7FFFH
9.2 存储器的并行扩展
9.2.1 数据存储器扩展概述 单片机应用系统中并行扩展的数据存储器都是静态随 机存储器 SRAM,常用的SRAM有62系列的6264、62256、 628128、628512等,存储容量分别为 8KB、32KB、128KB、 512KB等。 数据存储器地址空间同程序存储器一样,由 P2 口 提供高 8 位地址, P0 口分时提供低 8 位地址和 8 位双向数 据线。 访问片外扩展数据存储器的4条寄存器间址指令:
S6
S1
第二个机器周期 S2 S3 S4 S5
S6
高8位PCH 低8位PCL 指令
高8位DPH或P2输出 低8位DPL 数据输出
(b)数据存储器写周期时序 图9-3 访问片外RAM的操作时序
9. 2. 3
数据存储器扩展举例
图9-4 扩展64KB RAM
9.3 并行I/O接口的扩展
9.3.1 简单的并行I /O扩展
8051单片机系统扩展
本节介绍8051单片机系统扩展技术,主 要介绍一下2点: 1、存储器的扩展 2、 I/O接口扩展电路设计
9.1 并行扩展概述
9.1.1 外部并行扩展总线
1.扩展方式 并行I/O口 并行扩展总线:三总线方式
P2 8 8 8 A8 ~ A15 地址总线
P0
地址 8 A0 ~ A7 锁存器 D 0 ~ D7
S1 ALE RD P2 P0 高8位PCH 低8位PCL 指令 高8位DPH或P2输出 低8位DPL 数据输入 第一个机器周期 S2 S3 S4 S5 S6 S1 第二个机器周期 S2 S3 S4 S5 S6
(a)数据存储器读周期时序
S1 ALE RD P2 P0
第一个机器周期 S2 S3 S4 S5
2、地址译码法 对于容量较大的存储器或I/O端口较多的单 片机应用系统进行外部扩展,当芯片所需要 的片选信号多于可利用的高位地址线时,就 需要采用地址译码法。地址译码法必须采用 地址译码器,常用的地址译码器有3-8译码器 74HC138(3个选择输入端,组成8个输入状态, 有8个输出端,0电平有效)、双2-4译码器 74HC139等。
图9-7 8255A控制字的格式与定义
5.80C51和8255A的接口及应用
图9-11 80C51与8255的接口电路
图9-8 80C51与8255A的接口电路
本例要求8255A按方式0工作,A口各位作为输入,B口各 位作为输出,C口高4位作为输出,低4位作为输入。将A口数 据存入R1,则编程如下: MOV MOV MOVX MOV MOVX MOV DPTR,#0FF7FH A,#10010001B @DPTR ,A DPTR ,#0FF7CH A, @DPTR R1 ,A ;指向控制寄存器地址 ;按要求设的控制字 ;控制字送入控制寄存器 ;指向A口地址 ;取A口数据
在需要扩展I/O口,或者需要提高系统的带负
载能力的情况,常采用锁存器、缓冲/驱动器 等作为I/O口扩展芯片 ,这是单片机应用系 统中经常采用的方法。这种I/O口一般都是通 过P0口扩展,具有电路简单、成本低、配置 灵活的优点。一般在扩展单个8位输出/输入 口时,十分方便。
图9-8 简单I/O接口扩展电路
80C51 ALE PSEN WR RD
数据总线 控制总线
图9-1 单片机的外部扩展三总线
2. 并行总线扩展基本问题
总线连接电路设计、地址译码、器件地址.并 行总线扩展电路设计。 并行总线扩展连接方式符合三总线连接方式。 数据总线为三态口,在不传送数据时为高阻态。 总线分时对不同的外设进行数据传送。
MOVX A,@DPTR MOVX @DPTR,A 或 MOVX A,@Ri MOVX @Ri,A
9.2.2 访问片外RAM的操作时序
访问片外RAM的操作包括读写两种操作时序,通过对 操作时序的了解,可以更好地理解ALE、/RD、/WR、P0及 P2等信号和数据线的作用,及P0口是如何分时控制低8位 地址线和数据线的。
线选法进行外部扩展举例
6264的地址范围: 高8位地址变化范围 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 1 1 0 × × × × × 低8位地址变化范围:P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 × × × × × × × × 由此可得6264的地址范围为:C000H~DFFFH。
0832的地址: 高8位地址变化范围: P2.7 0 低8位地址变化范围: P0.7 1
P2.6 1 P0.6 1
P2.5 P2.4 P2.3 1 1 1 P0.5 P0.4 P0.3 1 1 1
P2.2 1 P0.2 1
P2.1 1 P0.1 1
P2.0 1 P0.0 1
由此可O接口电路的扩展
可编程序接口是指其功能可由计算机的指令来
加以改变的接口芯片。可编程I/O接口利用软 件设置片内控制寄存器,可使一个接口芯片执 行多种不同的接口功能,因此使用十分灵活。 在此仅以在单片机中常用的一种可编程通用并 行接口芯片8255A为例说明问题 。
8255可编程并行I/O接口扩展芯片
8255的地址范围: 高8位地址变化范围 :P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 1 0 1 1 1 1 1 1 低8位地址变化范围:P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 1 1 1 1 1 1 × × 由此可得8255的地址范围为:BFFCH~BFFFH。
B组 端 口 B ( 8)
I/O PB7~ PB0
(2)端口
PA0~PA7、PB0~PB7、PC0~PC7共24 条端口线。3个口皆为锁存/缓冲寄存器,A 口、B口有锁存功能,C口无锁存功能。A、 B、C 3口的工作方式由程序设置。 (3)数据线 8255是8位芯片,有8位数据线D0~D7。 数据线接于8051单片机的P0接口,
(3)控制线 控制线控制8255的读RD:、写WR、复位RESET 及片选CS等。
(4)地址线
A1 A0 0 0 0 1 1 0 1 1 选择口 A口 B口 C口 控制口
3. 8255A的工作方式 方式0(基本输入/输出方式) 方式1(选通输入/输出方式) 方式2(双向数据传送方式) 最常用和最简单的方法是方式0 4. 8255A的控制寄存器 8255A的工作方式选择是通过对控制寄存器输入控制 字(或称命令字)的方式实现的 。 ① 方式选择控制字 ② C口置/复位控制字
程序存储器的扩展
在8051单片机外部扩展8K字节程序存储器2764的连接图
数据存储器扩展
在8051单片机外部扩展一片8K字节数据存储器6264的连接图
系统扩展选址方法
1、线选法: 利用单片机的一根空闲高位地址线(通常采用P2的 某根口线)选中一个外部扩展I/O端口芯片,若要 选中某个芯片工作,将对应芯片的片选信号端设 为低电平,其它未被选中芯片的片选信号端设为 高电平,从而保证只选中指定的芯片工作。 优点:不需要地址译码器,可以节省器件,减小 体积,降低成本 缺点:可寻址的器件数目受到很大限制,而且地 址空间不连续,这些都会给系统设计带来 不便。
图9-5
简单I/O接口扩展电路
图中输入和输出都是在P2.0为0时有效,它们占 有相同的地址空间,但由于它们分别用读和写信号控 制,因而尽管它们都直接与P0口相接,却不可能同时 被选中,这样在总线上就不会发生冲突。 系统中若有其它扩展RAM,或其它输入/输出接 口,则可用线选法或译码法将地址空间区分开。 按照图9-5电路的接法,要求实现如下功能:任 意按下一个键,对应的LED 亮,例如,按K1则LED1亮, 按K2则LED2亮等。则编写程序如下: LOOP:MOV DPTR,#0FEFFH ;指向 I/O口地址 MOVX A, @DPTR ;从244读入数据,检测按钮 MOVX @DPTR,A ;向273输出数据,驱动LED SJMP LOOP ;循环
(1)8255内部结构及引脚功能
A组 控制 A组 端 口 A ( 8) A组 端 口 C 上半部 ( 4) B组 端 口 C 下半部 ( 4)
RD WR A0 A1 RESET I/O PA7~ PA0
D7~ D0
数据总线 缓冲器
I/O PC7~ PC4
I/O PC3~ PC0
读写 控制 逻辑
CS
B组 控制
数据存储器与外设的统一编址 线选地址译码 :用译码器将寻址范围等分的 译码方法见下图。
A15 A14 A13 +5V C B A Vcc 74HC 138 G1 G2A G2B
GND
Y7 Y6 Y5 Y4 Y3 Y2 Y1
Y0
E000H ~ FFFFFH C000H ~DFFFH A000H ~BFFFH 8000H ~ 9FFFH 6000H ~ 7FFFH 4000H ~ 5FFFH 2000H ~ 3FFFH