微控制器原理及应用第11章MCS-51单片机扩展技术.ppt

微控制器原理及应用第11章MCS-51单片机扩展技术.ppt

11.2.2 并行数据存储器的扩展 数据存储器RAM是用来存放各种数据的,MCS-51单片机内部有128/256字节的数据存储器,CPU对内部RAM具有丰富的操作指令。但是,当单片机用于实时数据采集或处理大批量数据时,仅靠片内提供的RAM是远远不够的。此时,可以利用单片机的扩展功能,扩展外部数据存储器。数据存储器在使用时,可读可写,因此其读/写控制连线不同于程序存储器扩展,而地址译码方法、低8位地址锁存和数据总线连接与程序存储器扩展是相同的。图11-9为一种典型的MCS-51单片机的数据存储器扩展电路。电路中的数据存储器为8K×8位的高速CMOS SRAM 6164。由于电路中只有一片外扩SRAM,因此存储器的片选信号/CS1和CS2可以直接由高位地址信号进行控制。存储器的读、写控制信号/OE、/WE分别与单片机的/RD、/WR连接。    在该电路中,高位地址A15没有使用,因此其电平可以为1也可以为0。如果设定高位地址A15为1,则存储器6164的地址范围为:0C000H~0DFFFH。假设CPU读取地址为0C0FFH单元的数据,并将该数据取反后写入到该存储器的0D000H单元,参考程序如下。 MOV DPTR, #0C0FFH   MOVX A, @DPTR   CPL A   MOV DPTR, #0D000H   MOVX @DPTR, A 图11-9 MCS-51数据存储器扩展电路 在实际应用中,可能有多个数据存储器同时存在,此时只需利用第二章讲解的译码方法正确实现各个数据存储器的片选控制即可。 11.2.3 串行数据存储器扩展   在MCS-51单片机的实际应用中,通常需要外扩一些数据存储器,用于保存系统参数或测试数据。采用并行扩展外部数据存储器的方法,需要使用大量的地址总线和数据总线。这一方面受到单片机地址总线和数据总线数量的限制;另一方面也给PCB布线带来不便。为了解决这一矛盾,通常以串行方式实现数据存储器扩展。串行存储器扩展主要采用SPI总线和I2C总线实现。下面将以实例介绍MCS-51单片机模拟SPI总线实现串行存储器扩展。     由于MCS-51系列单片机多数本身不具有标准的SPI总线接口,需要使用普通I/O接口模拟SPI总线时序,实现与外接SPI存储器进行读写控制。图11-10为AT89C51单片机与带有E2PROM多功能芯片X5045连接电路。 图11-10 AT89C51与X5045的连接电路 X5045是在单片机系统中广泛应用的一种看门狗芯片,将上电复位、看门狗定时器、电压监控和E2PROM四种常用功能集成在单个芯片里,以降低系统成本、节约电路板空间。其中片内512×8位的E2PROM采用串行SPI总线进行读写访问。 X5045内部含有一个位指令移位寄存器,该寄存器可以通过SI来访问。数据在SCK的上升沿由时钟同步输入。在整个工作期内,片选信号/CS必须是低电平且WP(写保护)必须是高电平。 X5045内部有一个“写使能”锁存器,在执行写操作之前该锁存器必须被置位,在写周期完成之后,该锁存器自动复位。X5045还有一个状态寄存器,用来提供X5045状态信息以及设置块保护和看门狗的定时周期。对芯片内部寄存器的读/写均按一定的指令格式进行,表11-4为X5045的指令格式。其中读取指令中A8表示最高地址为数据,由于X5045片内只有512个字节的存储器空间,因此以字节为单位存储空间,地址编码只需由A0~A8表示即可;同时,由于X5045串行传输的信息为字节方式,因此9位地址码需要分两次传输,而高位地址码A8在送读/写命令时同步传输,因此后续只需传输低8位地址就能实现指定存储单元的数据读/写操作。 表11-4 X5045的指令格式   当用单片机IO口模拟SPI总线时,需要严格遵守SPI设备的时序,否则无法正确读写/数据。X5045的读/写时序如图11-11和图11-12所示。 图11-11 X5045读数据时序 图11-12 X5045写数据时序     在图11-10中,单片机的P10控制X5045的片选信号端,P11连接X5045的数据输出端,P12控制X5045的数据输入端,P13控制X5045的时钟输入端。根据图11-11和图11-12所示的X5405读/写时序,单片机读/写X5045的C语言参考代码如下。   sbit CS = P1^0; //X5045片选   sbit SO = P1^1;

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档