然章 80c51单片微机的系统损展 原理及接口技术
第八章 80C51单片微机的系统扩展 原理及接口技术
8.1系统扩展原理 系统扩展是指单片微机内部各功能部件不能满足应用系 统要求时,在片外连接相应的外围芯片以满足应用系统要求。 80C51有很强的外部扩展能力,扩展电路及扩展方法较典型、 规范。80C51主要有程序存储器(ROM)的扩展、数据存储 器(RAM)的扩展、IO口的扩展、中断系统扩展以及其它特 殊功能接口的扩展等。 对于单片微机系统扩展的方法有并行扩展法和串行扩展 法两种。并行扩展法是指利用单片微机本身具备的三组总线 AB、DB、CB)进行的系统扩展。近几年,由于集成电路设计 工艺和结构的发展,串行扩展法得到了很快发展,它利用 SPI三线总线和C双线总线进行串行系统扩展。有的单片微机 应用系统可能同时采用并行扩展法和串行扩展法
8.1 系统扩展原理 系统扩展是指单片微机内部各功能部件不能满足应用系 统要求时,在片外连接相应的外围芯片以满足应用系统要求。 80C51有很强的外部扩展能力,扩展电路及扩展方法较典型、 规范。80C51 主要有程序存储器(ROM)的扩展、数据存储 器(RAM)的扩展、I/O口的扩展、中断系统扩展以及其它特 殊功能接口的扩展等。 对于单片微机系统扩展的方法有并行扩展法和串行扩展 法两种。并行扩展法是指利用单片微机本身具备的三组总线( AB、DB、CB)进行的系统扩展。近几年,由于集成电路设计 、工艺和结构的发展,串行扩展法得到了很快发展,它利用 SPI三线总线和I 2C双线总线进行串行系统扩展。有的单片微机 应用系统可能同时采用并行扩展法和串行扩展法
81.1外部并行扩展原理 单片微机是通过芯片的引脚进行系统扩展的 80C51系列带总线的芯片引脚可以构成图8-1所示的三总 线结构.即地址总线(AB)数据总线(DB)和控制总线(CB) 具有总线的外部芯片都通过这三组总线进行扩展。 1)地址总线(AB) 由单片微机P0口提供低8位地址A0~A7,P2口提供高8位 地址A8~A15。P0口是地址总线低8位和8位数据总线复用口,只 能分时用作地址线。故P0口输出的低8位地址A0~A7必须用锁存 器锁存。 锁存器的锁存控制信号为单片微机ALE引脚输出的控制信 号。在ALE的下降沿将P0口输出的地址A0~A7锁存。P0、P2口 在系统扩展中用做地址线后便不能作为一般IO口使用 由于地址总线宽度为16位,故可寻址范围为64KB
单片微机是通过芯片的引脚进行系统扩展的。 80C51系列带总线的芯片引脚可以构成图8-1所示的三总 线结构.即地址总线(AB)数据总线(DB)和控制总线(CB) 。具有总线的外部芯片都通过这三组总线进行扩展。 (1)地址总线(AB) 由单片微机P0口提供低8位地址A0~A7,P2口提供高8位 地址A8~A15。P0口是地址总线低8位和8位数据总线复用口,只 能分时用作地址线。故P0口输出的低8位地址A0~A7必须用锁存 器锁存。 锁存器的锁存控制信号为单片微机ALE引脚输出的控制信 号。在ALE的下降沿将P0口输出的地址A0~A7锁存。P0、P2口 在系统扩展中用做地址线后便不能作为一般I/O口使用。 由于地址总线宽度为16位,故可寻址范围为64 KB。 8.1.1外部并行扩展原理
(2)数据总线(DB) 由P0口提供,用D0~D7表示。P0口为三态双向口,是应 用系统中使用最为频繁的通道。所有单片微机与外部交换的数据 指令、信息,除少数可直接通过P1口外,全部通过P0口传送。 数据总线是并连到多个连接的外围芯片的数据线上,而在 同一时间里只能够有一个是有效的数据传送通道。哪个芯片的数 据通道有效,则由地址线控制各个芯片的片选线来选择。 3)控制总线(CB) 包括片外系统扩展用控制线和片外信号对单片微机的控制线 b2EW EA WR RD 系统扩展用控制线有ALE ALE:输出P0口上地址与数据隔离信号,用于锁存P0口输出的 低8位地址的控制线。通常,ALE信号的下降沿控制锁存器来锁 存地址数据,通常选择下降沿选通的锁存器做低8位地址锁存器
(2)数据总线(DB) 由P0口提供,用D0~D7表示。P0口为三态双向口,是应 用系统中使用最为频繁的通道。所有单片微机与外部交换的数据 、指令、信息,除少数可直接通过P1口外,全部通过P0口传送。 数据总线是并连到多个连接的外围芯片的数据线上,而在 同一时间里只能够有一个是有效的数据传送通道。哪个芯片的数 据通道有效,则由地址线控制各个芯片的片选线来选择。 (3)控制总线(CB) 包括片外系统扩展用控制线和片外信号对单片微机的控制线。 系统扩展用控制线有ALE、 ·ALE:输出P0 口上地址与数据隔离信号,用于锁存P0口输出的 低8位地址的控制线。通常,ALE信号的下降沿控制锁存器来锁 存地址数据,通常选择下降沿选通的锁存器做低8位地址锁存器 。 PSEN EA WR RD
b2EM输出,用于读片外程序存储器( EPROM)中的数据。“ 读”取 EPROM中数据(指令)时,不能用RD”信号,而 信号。 EA:输入,用于选择片内或片外程序存储器 当EA=0时,只访问外部程序存储器。当EA=1时,先访问内部 程序存储器,内部程序存储器全部访问完之后,再访问外部程序 存储器
· :输出,用于读片外程序存储器(EPROM)中的数据。 “ 读”取EPROM中数据(指令)时,不能用“ ”信号,而只用 信号。 :输入,用于选择片内或片外程序存储器。 当 =0时,只访问外部程序存储器。当 =1时,先访问内部 程序存储器,内部程序存储器全部访问完之后,再访问外部程序 存储器。 PSEN PSEN RD EA EA EA
WR、RD:输出,用于片外数据存储器(RAM)的读、写控 制。当执行片外数据存储器操作指令MOVx时,自动生成RD、WR 控制信号。 常用地址锁存器管脚见图82。 8D透明锁存器74LS373的锁存允许信号G是电平锁存。当G 从高电平转为低电平时,将其输入端的数据锁存在输出端。当 ALE为高电平时,8D锁存器74LS373的输入和输出是透明的。当 ALE出现下降沿后,8D锁存器74LS373的输出即为A0~A7,这时 P0口上出现的是数据,实现了地址低8位和数据线的分离。 在单片微机应用系统中,为了唯一地选择片外某一存储单元 或IO端口,需要进行二次选择。一是必须先找到该存储单元或IO 端口所在的芯片,一般称为“片选”,二是通过对芯片本身所具 有的地址线进行译码,然后确定唯一的存储单元或IO端口,称为
、 :输出,用于片外数据存储器(RAM)的读、写控 制。当执行片外数据存储器操作指令MOVX时,自动生成 、 控制信号。 常用地址锁存器管脚见图8–2。 8D透明锁存器74LS373的锁存允许信号G是电平锁存。当G 从高电平转为低电平时,将其输入端的数据锁存在输出端。当 ALE为高电平时,8D锁存器74LS373的输入和输出是透明的。当 ALE出现下降沿后,8D锁存器74LS373的输出即为A0~A7,这时 P0口上出现的是数据,实现了地址低8位和数据线的分离。 在单片微机应用系统中,为了唯一地选择片外某一存储单元 或I/O端口,需要进行二次选择。一是必须先找到该存储单元或I/O 端口所在的芯片,一般称为“片选” ,二是通过对芯片本身所具 有的地址线进行译码,然后确定唯一的存储单元或I/O端口,称为 “字 选” 。 WR RD RD WR
片选”保证每次读或写时,只选中某一片存储器芯片 或ⅣO接口芯片。常用的方法有四种:“线选法”、“地址译码 法”、应用“可编程器件PAL/GAL”或“IO口线”。 (1)线选法:。线选法常一般是利用单片微机的最高几位 空余的地址线中一根(如P2.7)作为某一片存储器芯片或O接口 芯片的“片选”控制线。用于应用系统中扩展芯片较少的场合 2)译码法:用译码器对空余的高位地址线进行译码, 而译码器的输出作为“片选”控制线。常用的译码器有3/8译码 器74LS138、双2/4译码器74LS139、4/16译码器74LS154等 38译码器74538的管脚见图83。C2AG2B G1 :使能端。当G1=1, 0时 芯片使能 、B、A:译码器输入,高电平有效。 :译码器输出,低电平有效
“片选” 保证每次读或写时,只选中某一片存储器芯片 或I/O接口芯片。常用的方法有四种: “线选法” 、 “地址译码 法” 、应用 “可编程器件PAL/GAL” 或“I/O口线” 。 (1) 线选法:。线选法常一般是利用单片微机的最高几位 空余的地址线中一根(如P2.7) 作为某一片存储器芯片或I/O接口 芯片的“片选” 控制线。用于应用系统中扩展芯片较少的场合 。 (2) 译码法:用译码器对空余的高位地址线进行译码, 而译码器的输出作为“片选” 控制线。常用的译码器有3/8译码 器74LS138、双2/4译码器74LS139、4/16译码器74LS154等。 3/8译码器74LS138的管脚见图8–3。 ·G1、 、 :使能端。当G1=1, = =0时, 芯片使能。 ·C、B、A:译码器输入,高电平有效。 · :译码器输出,低电平有效。 G2A G2B G2A G2B Y
正常情况下,只有一根输出是低电平,其余输出都是高电平。这 样,当译码器输出作为单片微机应用系统中外扩芯片的片选控制 线时,保证每次读或写时只选中一个芯片。 部分地址线参加译码时,称为部分地址译码,这时芯片的 地址会有重叠。16根地址线全部参加译码的,称为全地址译码。 图84示意的是通过3/8译码器74LS138获得64K地址。 图8-4中3/8译码器74LS138已经使能,其输出由C、B、A的状态 决定,作为各个扩展芯片的片选控制信号,加上芯片本身所具有 的地址线共同决定每一个存储单元或I/O端口的地址,全地址译 码的地址是唯一的
正常情况下,只有一根输出是低电平,其余输出都是高电平。这 样,当译码器输出作为单片微机应用系统中外扩芯片的片选控制 线时,保证每次读或写时只选中一个芯片。 部分地址线参加译码时,称为部分地址译码,这时芯片的 地址会有重叠。16根地址线全部参加译码的,称为全地址译码。 图8–4示意的是通过3/8译码器74LS138获得64K地址。 图8–4中3/8译码器74LS138已经使能,其输出由C、B、A的状态 决定,作为各个扩展芯片的片选控制信号,加上芯片本身所具有 的地址线共同决定每一个存储单元或I/O端口的地址,全地址译 码的地址是唯一的
0RAM地址分配为000~1FFFH,共8K。(A15=A14=A13=0) #1芯片地址分配为2000H~3FFH,共8K。(A15=0,A14=0, A13=1) #2芯片地址分配为4000H~5FFFH,共8K。(A15=0,A14=1, A13=0) #3芯片地址分配为6000~7FFH,共8K。(A15=0,A14=1, A13=1) #4芯片地址分配为8000H~9FFFH,共8K。(A15=1,A14=0, A13=0) #5芯片地址分配为A00~ BFFFH,共8K。(A15=1,A14=0, A13=1) #6芯片地址分配为C000H~ DFFFH,共8K。(A15=1,A14=1, A13=0) #7IO地址分配为E000~ FFFFH,共8K。(A15=1,A14=1 A13=1)
#0 RAM地址分配为0000H~1FFFH,共8K。(A15=A14=A13=0) #1芯片地址分配为2000H~3FFFH,共8K。(A15=0,A14=0, A13=1) 芯片地址分配为4000H~5FFFH,共8K。 (A15=0,A14=1, A13=0) #3 芯片地址分配为6000H~7FFFH,共8K。(A15=0,A14=1, A13=1) #4 芯片地址分配为8000H~9FFFH,共8K。(A15=1,A14=0, A13=0) #5 芯片地址分配为A000H~BFFFH,共8K。 (A15=1,A14=0, A13=1) #6 芯片地址分配为C000H~DFFFH,共8K。(A15=1,A14=1, A13=0) #7 I/O地址分配为E000H~FFFFH,共8K。(A15=1,A14=1, A13=1)
2.80C51系列单片微机的系统并行扩展能力 由于地址总线宽度为16位,在片外可扩展的存储器最大容 量为64KB,地址为0000H~ FFFFH。片外数据存储器与程序存 储器的操作使用不同的指令和控制信号,允许两者的地址重复, 故片外可扩展的数据存储器与程序存储器分别为64KB。 片外数据存储器与片内数据存储器的操作指令不同(片外 RAM只能用MOvX指令)。允许两者地址重复,亦即外部扩展 数据存储器地址可从0000开始。 I/O口扩展与片外数据存储器统一编址,不再另外提供地 址线
由于地址总线宽度为 16位,在片外可扩展的存储器最大容 量为64KB,地址为0000H~FFFFH。片外数据存储器与程序存 储器的操作使用不同的指令和控制信号,允许两者的地址重复, 故片外可扩展的数据存储器与程序存储器分别为64 KB。 片外数据存储器与片内数据存储器的操作指令不同(片外 RAM只能用MOVX指令)。允许两者地址重复,亦即外部扩展 数据存储器地址可从0000H开始。 I/O口扩展与片外数据存储器统一编址,不再另外提供地 址线