第六章MCS51存储器和IO扩展_第1页
第六章MCS51存储器和IO扩展_第2页
第六章MCS51存储器和IO扩展_第3页
第六章MCS51存储器和IO扩展_第4页
第六章MCS51存储器和IO扩展_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章MCS-51存储器和I/O扩展

§6-1存储器扩展 §6-2并行I/O口扩展§6-1存储器扩展

一、MCS-51总线扩展结构 1、单片机系统结构 2、单片机总线扩展结构 (1)

地址线与存储器容量的关系 A7~A0: 8根地址线, 有 28=256个单元 A9~A0: 10根地址线, 有 210=1KB A10~A0: 11根地址线, 有 211=2K A11~A0: 12根地址线, 有 212=4K A12~A0: 13根地址线, 有 213=8K等等 (2)16位地址/8位数据的形成

51系列单片机P0口和P2口既是通用I/O口,同时P0口还是分时复用的双向数据总线和低8位地址总线(一般需要加一级锁存器),而P2口则是高8位地址总线。

低8位地址和数据的区分:ALE高电平信号与P0口有效地址信号同时出现,ALE下降沿时锁存低8位地址,ALE低电平时P0口为数据。 高8位地址的形成:有P2口送出高8位地址,A15~A8,在执行MOVX、MOVC指令时P2口数据作为地址送出,常用来作为RAM、ROM的片选信号。(3)地址锁存器---74LS373(8D三态同相锁存器) ①引脚功能: D7~D0:8位并行数据输入端 Q7~Q0:8位并行数据输出端G: 为1时D端数据=Q端数据,为0时Q端数据保持。:片选端,低电平有效 ②74LS373的引脚和示意图:

③真值表: G D Q L H H H L H L L L L × 不变 H × × 高阻 3、典型RAM和ROM芯片介绍 1)

半导体存储器的分为:RAM和ROM。RAM分为静态RAM(SRAM)和动态RAM(DRAM)两种。目前计算机内的主存储器都是DRAM。图示为静态RAM的原理图2)6116的引脚结构如下图所示6116----2KSRAM6116引脚功能A0~A10地址线CE选片OE读D0~D7数据线A7A6A5A4A3A2A1A0D0D1D2GNDVccA8A9WEOEA10CED7D6D5D4D36116写WE3)ROM的组成结构 典型的EPROM芯片有Intel公司的2716(2K×8)、2732(4K×8)、2764(8K×8)、27128(16K×8)、27256(32K×8)、27512(64K×8)等。2732---4KEPROM2732引脚功能A0-A11地址线CE选片OE/Vpp输出允许/编程电源O0-O7数据线A7A6A5A4A3A2A1A0O0O1O2GNDVccA8A9A11OE/VppA10CEO7O6O5O4O32732二、存储器扩展的基本方法 1、存储器扩展的基本问题。

1)扩展容量:16根地址线最大可扩展到64K

2)扩展要解决的问题:地址线、扩展芯片在64K范围内所占的地址范围

3)存储器扩展的编址:存储芯片片的选择、片内单元的编址

4)选择芯片的方法:片选技术 2、存储器扩展的片选技术 一般产生片选有两种方法:线选法和译码法。(1)线选法 线选法用低位地址线对片内的存储单元进行寻址,所需的地址线由片内地址线决定,用余下的高位地址线分别接至芯片的片选端,以区分各芯片的地址范围。例如要扩展8K容量的外RAM,地址线和片选如下: 地址线:log2(8K)=log2(213)=13条(A12~A0)

片选线:余下的A15~A13分别接至芯片的片选端。A15~A13轮流 出现低电平,可保证一次只选一片。

用线选法扩展存储器的缺点 ①

各芯片间地址不连续。而习惯上使用连续地址,如24K范围地址从0000H到5FFFH。

有相当数量的地址不能使用,否则造成片选混乱。 例6-1扩展三片2K存储芯片,试用线选法给出接线图和地址。分析:显然要11根地址线和3根片选线,分配如下低位地址线:P0.7~P0.0--A7~A0,P2.2~P2.0--A10~A8, 合成11根地址线;高位地址线:P2.5、P2.4、P2.3--A13、A12、A11,作3片的片选,余下:P2.7、P2.6不用,取00 扩展接线结构如图:编址: P2.7、P2.6、P2.5、P2.4、P2.3、P2.2、P2.1、P2.0P0.7~P0.0 1号片0 01 1 000000H 0 011 0111FFH2号片 0 01 0 100000H 0 01 0 1111FFH3号片 0 00 1 100000H 0 001 1111FFH 显然,三片的地址范围是: 1号片 3000H~37FFH 2号片 2800H~2FFFH 3号片 1800H~1FFFH (2)译码法

译码法将低位地址总线直接连至各芯片的地址线,将高位地址总线经地址译码器译码后作为各芯片的片选信号。 一般使用2/4译码器、3/8译码器,对P2口高位地址线进行译码,适用于大规模扩展。

2/4译码器、3/8译码器的引脚图:如图所示

74LS13974LS138

ABCG2AG2BGY7GNDVccY0Y1Y2Y3Y4Y5Y61162153144135126117108974LS138

1G1A1B1Y01Y11Y21Y3GNDVcc2G2A2B2Y02Y12Y22Y31162153144135126117108974LS13974LS138真值表例如:在上例中同样扩展三片2K存储芯片,采用译码法

低位地址线:同前P0口A7~A0,P2口A10~A8,合成作为11根地址线 ①2/4译码器作为片选

高位地址线:P2口A12、A11,作为译码器输入,利用2/4译 码输出端Y0、Y1、Y2作为片选。 三个信号作为3片芯片的片选,实际上可选4片,本例只需3片 扩展接线结构如图:编址: P2.7、P2.6、P2.5、P2.4、P2.3、P2.2、P2.1、P2.0P0.7~P0.0 1号片0 00 0 000000H 0 00 0 0111FFH2号片 0 00 0 100000H 0 00 0 1111FFH3号片 0 00 1 000000H 0 00 1 0111FFH 显然,三片的地址范围是: 1号片 0000H~07FFH 2号片 0800H~0FFFH 3号片 1000H~17FFH②3/8译码器作为片选 高位地址线:P2口A13、A12、A11,作为译码器输入,利用 3/8译码输出端Y0、Y1、Y2三个信号作为3片 芯片的片选,实际上可选8片,本例只需3片 扩展接线结构如图:编址: P2.7、P2.6、P2.5、P2.4、P2.3、P2.2、P2.1、P2.0P0.7~P0.0 1号片0 000 000000H 0 00 0 0111FFH2号片 0 00 0100000H 0 000 1111FFH3号片 0 00 1 000000H0 001 0111FFH 显然,三片的地址范围是: 1号片 0000H~07FFH 2号片 0800H~0FFFH 3号片 1000H~17FFH三、存储器扩展实例

1、

扩展外ROM 1)扩展一片4K容量的EPROM,2732 地址线:A11~A0,共12根,接8031的P2.3~.P2.0,P0.7~P0.0 片选线:P2.7~P2.4,不用,取0值,2732片选端直接接地,常选中。

扩展接线结构如图:

数据线:P0.7~P0.0→2732的D7~D0 控制线:PSEN→2732的OE端,ALE→锁存器74LS373门控端G 2732的地址范围:0000H~0FFFH

2)线选法扩展二片2K容量的EPROM,2716,共4K 地址线:A10~A0,共11根,接8031的P2.2~P2.0,P0.7~P0.0

片选线:利用P2.3,加一个非门,接存储芯片的片选端,既 可完成2片的选择,而P2.7~2.4,取0值 数据线:P0.7~P0.0→分别接2片2732的D7~D0 控制线:PSEN→分别接2片2732的OE端 ALE→锁存器74LS373的门控端G

扩展的接线如下页图所示: 2732的地址范围:

1号片0000H~07FFH 2号片0800H~0FFFH扩展的接线如下页图所示:

2、

扩展外RAM 1)扩展一片2K容量的RAM,6116 地址线:A10~A0,共11根,接8031的P2.2~P2.0,P0.7~P0.0 片选线:P2.7~P2.3,不用,取0值,因为只扩展1片,6116片 选端直接接地,常选中 数据线:P0.7~P0.0→6116的D7~D0 控制线: WR→6116的WE端 RD→6116的OE端 ALE→锁存器74LS373的门控端G 6116的地址范围:0000H~07FFH

2)线选法扩展二片2K容量的RAM,6116,一片4K容量的 ROM,2716 接线图如下页所示:扩展一片2K容量的RAM,6116

线选法扩展二片2K容量,6116,一片4K容量,2716

2716:0000H~07FFH 6116(1):0000H~07FFH 6116(2):0800H~0FFFH§6-2并行I/O口扩展 一、用74系列器件扩展并行I/O口 常用并行I/O扩展芯片,如74LS244、74LS245、273、74LS377等 1、74LS273

2、74LS2443、扩展实例 高位地址组合法,如图所示:输入:74LS244扩展K0~K7 并由P2.0+RD端,全0时,74LS244选通读入 K0~K7状态。实现: MOV DPTR,#FEFFH

MOVX A,@DPTR ;读入输出:74LS273扩展LED0~LED7 并由P2.0+WR端,全0时,74LS273将P0口数据 送出,控制LED0~LED7实现: MOVX @DPTR,A ;输出二、可编程并行接口8255A

1、8255A的基本性能

可编程外设接口电路(ProgrammablePeripheralInterface)简称PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。

8255A具有三个相互独立的输入/输出通道: 通道A、通道B、通道C。

A,B,C三通道可以联合使用,构成单线、双线或三线联络信号的并行接口。 此时C口完全服务于A、B口。

A口有三种工作方式:方式0、方式1、方式2。 B口有两种工作方式:方式0、方式1。 2、8255A内部结构

8255A内部结构由以下四部分组成:数据端口A、B、C;A组控制和B组控制;读/写控制逻辑电路;数据总线缓冲器。结构如图所示

(1)3个数据端口A、B、C,分为A、B两组。A组:PA7~PA0;PC7~PC4。B组:PC3~PC0;PB7~PB0。(2)A组控制和B组控制。这两组控制部件都从读/写控制逻辑接收命令,从内部数据总线接收控制字,并向有关的口发出适当的命令。(3)读/写控制逻辑。该部件的功能是管理所有的内部和外部的传送过程,包括数据及控制字。接收来自CPU地址总线和控制总线的输入信号,然后向A和B两组的控制部件发送命令。(4)数据总线缓冲器三态双响8位缓冲器。8255A的引脚分两部分:(1)与CPU相连。RESET: 复位,高电平有效。复位后所有内部寄存器清除,I/O口均被置成输入方式。D7~D0:数据线和系统总线相连。CS:片选,低电平有效。接地址译码器。A0、A1:口选线,用于选择3个数据口和控制字。RD:读允许,低电平有效。WD:写允许,低电平有效。(2)与外设相连。PA0~PA7:A端口;PB0~PB7:B端口;PC0~PC7:C端口。2、8255A的控制字与状态字8255A有三种工作方式可选择:方式0:基本的输入/输出方式;方式1:带选通的输入/输出方式;方式2:双向传输方式。(1)方式选择控制字设8255A地址为320~323;要求A口方式0输出;B口方式0输入;C口高4位输入;C口低4位输出。方式选择控制为8A。

10001010(2)C口个别位置1/置0控制字设8255A地址为320~323;要求PC7置1;PC3置0。

00001111(3)读C口的状态字方式1和方式2时,C口发送或者接收与外部设备进行联络的信号。方式1的输入状态字方式1输出状态字方式2状态字3、8255A的工作方式与操作时序(1)方式0基本输入/输出方式3个口都可提供简单的输入和输出操作。提供两个8位口(A和B);提供两个4位口(PC0~3,PC4~7)。(2)方式1选通输入/输出方式A、B两口都可工作在该方式下,可以输入也可以输出;C口的某些位用来作为选通信号。输入输出时选通信号不同。选通输入方式C口状态字INTEAINTEBSTB:选通输入信号,低电平有效。有效时把输入装置的数据送入输入锁存器。IBF:输入缓冲器满信号,高电平有效。有效时,表示数据已输至输入锁存器。由STB信号置位,由RD信号的后沿使其复位。INTR:中断请求信号,高电平有效。是8255A向CPU发出的中断请求信号。当STB、IBF和INTE(中断允许)均为高时被置位,由RD信号的下沿清除。INTE:中断允许信号,高电平有效。由PC4和PC2来置位或清0。选通输出方式C口状态字INTEAINTEBOBF:输出缓冲器满信号,低电平有效。有效时表明CPU把数据输出给指定的端口,外设可以输出数据。ACK:外设响应信号,低电平有效。有效时,表示数据已被外设接受。INTR:中断请求信号,高电平有效。是8255A向CPU发出的中断请求信号。当INTE(中断允许)为高且ACK由低变高时被置位,由WR信号的下沿清除。INTE:中断允许信号,高电平有效。由PC6和PC2来置位或清0。(3)方式2双向传输方式只允许A口使用该方式,8位总线实现双向通信。INTRA:中断请求信号,高电平有效。输入输出均可采用该信号。OBFA:输出缓冲器满信号,低电平有效。表示CPU已把数据写入A口。ACKA:外设输入响应信号,低电平有效。有效边沿启动端口A的三态输出缓冲器,送出数据。INTE1:与OBFA有关的中断允许信号。STBA:外设送来的输入选通信号,低电平有效。IBFA:输入缓冲器满信号,高电平有效。INTE2:与IBFA有关的中断允许信号。8255A的A端口工作在方式2时,B端口可以工作在0或1方式。工作方式:

1)方式0

是一种基本输入或输出方式,它适用于无需握手信号的简单输入输出应用场合,端口A、B、C都可作为输入或输出数据使用,输出有锁存而输入无锁存。 2)方式1

也称选通的输入/输出方式。在这种方式下,无论是输入还是输出都通过应答关系实现,这时端口A或B用作数据口,端口C的一部分引脚用作握手信号线与中断请求线。 若端口A工作于方式1,则B可工作于方式0;·

若端口B工作于方式1,则A可工作于方式0或余下的13位可工作于方式0;·

若端口A和B同时工作于方式1,端口C余下的两位还可用于传送数据或控制信号。 3、MCS-51和8255A的接口方法 如图所示为MCS-51和8255A的一种接口逻辑。 PA口、PB口、PC口、控制口的地址分别为:7FFCH、7FFDH、7FFEH、7FFFH。

假设图中8255A的PA口接一组开关,PB接一组指示灯,如果,要将MCS-51的寄存器R2的内容送指示灯显示,将开关状态读入MCS-51的累加器A,则8255初始化和输入/输出程序如下: ORG1000H R8255: MOVDPTR,#7FFFH; MOVA,#98H MOVX@DPTR,A MOVDPTR,#7FFDH MOVA,R2 MOV@DPTR,A MOVDPTR,#7FFCH MOVXA,@DPTR RET*三、可编程并行接口芯片8155

与8255A相比,8155具有更强的功能,可以扩展单片机的I/O口、定时器、外部数据存储器RAM。

1、8155芯片的构成 1)逻辑结构 2)引脚图 3)接口信号8155芯片的内部结构256B静态RAM

A

定时器B

C

口APA0~PA7口BPB0~PB7PC0~PC5口CIO/MAD0~AD7CEALERDWRRESET定时器输入定时器输出接单片机接外设接外设接外设8155引脚功能PC3PC4

PC5

IO/MCERDWRALEAD0AD1AD2AD3AD4AD5AD6AD7VssVccPC2PC1PC0PB7PB6PB5PB4PB3PB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA08155TIMERINRESETTIMEROUTAD0-AD7三态地址/数据线IO/M端口/存储器选择RD读ALE地址锁存允许写WR选片CE定时器输入TIMERIN定时器输出TIMEROUTPA0-PA7A口端口线PB0-PB7B口端口线PC0-PC5C口端口线PA0-PA7端口A的I/O线(8位,接外设)PB0-PB7端口B的I/O线(8位,接外设)PC0-PC5端口C的I/O线(6位,接外设)AD0-AD7三态地址/数据复用线(8位,一般接单片机P0口,CPU与8155之间的地址、数据、命令、状态等信号都通过它来传送)端口/存储器选择控制“0”选择片内RAM“1”选择片内I/O口TIMERIN8155片内定时器/计数器的计数脉冲输入引脚TIMEROUT8155片内定时器/计数器的计满回零输出引脚分别是对8155片内的RAM或I/O口的的读、写控制信号ALE地址锁存引脚选片RESET复位引脚IO/MRD、WRCE

2、8155的RAM和I/O口地址

RAM地址----当IO/M加低电平: 此时AD0-AD7上得到的地址值是指8155的某一RAM单元的地址,地址范围是:00000000--11111111 分别指向8155RAM的256个存储单元。

I/O口地址----当IO/M加高电平: 此时AD0-AD7(仅用到低三位AD2、AD1、AD0)上得到的地址值是指8155的某一I/O口的地址,具体端口地址分配是:

8155的RAM和I/O口编址AD7AD6AD5AD4AD3AD2AD1AD0I/O端口╳╳╳╳╳000命令/状态寄存器╳╳╳╳╳001PA口╳╳╳╳╳010PB口╳╳╳╳╳011PC口╳╳╳╳╳100计数器低8位╳╳╳╳╳101计数器高6位

3、8155的使用 1)8155内RAM的使用: 与一般外部数据存储器的使用基本一样,唯一区别是事先要使IO/M为低电平。

2)8155各端口的使用: A、B、C各端口可工作于不同的工作方式,使用前要进行初始化(写命令字到命令口)。

4、扩展电路的连接实例 1)以高位地址直接作为IO/M信号扩展,接口电路非常简单,基本上是相同信号对接,如图:80318155RESETRDWRALEP2.4P0.0P0.1P0.2P.03P0.4P0.5P0.6P0.7RESETRDWRALEIO/MCEAD0AD1AD2AD3AD4AD5AD6AD7口APA0~PA7口BPB0~PB7PC0~PC5口C 2)多芯片扩展8031

373G27166116(2)6116(1)8155P0P2.2--P2.0PSENALEWRRDABCG2AG2BG1P1.0A0~A7A8~A10D7~D0D7~D0D7~D0CECECEOEA0~A7A8~A10WEWEOEOEWERDALEAD0~AD7CEY2Y1Y0+5VIO/MPAPBPCP2.3P2.4P2.5P2.6P2.7上图中的各扩展地址分别为: 8155:0000H、0001H、……、0005H

8031的P2.7-P2.3=00000时,选中8155,在此前提下,当8031的P0口输出地址是XXXXX000-XXXXX101,且IO/M=1时,选中8155的各端口,即:

当IO/M=0时,选中8155的RAM单元,所以: 其内部RAM地址范围是:0000H--00FFH。P2.7…P2.0P0.7…P0.0端口

0000000000000000(0000H)命令口

0000000000000001(0001H)PA口

0000000000000010(0002H)PB口

0000000000000011(0003H)PC口

0000000000000100(0004H)计数器低

0000000000000101(0005H)计数器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论