王二妮歌曲我从西边来:基于单片机P0口的片外数据存储器扩展

来源:百度文库 编辑:偶看新闻 时间:2024/07/02 19:30:34
基于单片机P0口的片外数据存储器扩展 2010年4月27日 13:15 维库开发网

随着单片机运算速度和处理能力的不断提高,其在各个领域得到更广泛的应用。然而。随着其应用领域的不断扩大及集成化的不断提高,其内部资源已不能满足实际需求,往往需要对其内部资源进行扩展。经典的扩展方法主要是通过地址总线、数据总线即P0、P2口,以及控制线ALE、*****等来进行数据或程序存储器的扩展,最大寻址空间可达64KB,但这种方法占用端口较多,在有些情况下不能满足需求。这里以MCS-8051系列单片机为例,介绍一种新的片外数据存储器扩展方法,仅用单片机的P0口、P1.6及P1.7共10个端口便可实现256 KB数据存储器的扩展。

1 总体设计思路

MCS-8051单片机片内部存储空间为256 B,有P0、P1、P2、P3 4个I/O端口。实际应用中,其内部存储空间往往不能满足需求,常常会在片外进行扩展。有别于经典的扩展方法,这里并没有用到P2口,仅用P0口和各个存储器的地址线、数据线连接,组成地址总线和数据总线。同时将PO口的P0.0、P0.1和P0.2这3个端口引到译码器件的输入端,译码后作为数据存储器件的片选择控制线,与单片机的其他控制端口一起形成控制总线。从而通过数据总线、地址总线和控制总线这3个总线实现单片机片外256 KB数据存储器的扩展。

单片机的PO口具备地址总线、数据总线及控制线的功能。由软件来分时传送地址信号、数据信号和片选择控制信号。

2 硬件接口电路设计

MCS-805l单片机与多片62256数据存储器的扩展电路主要由8片62256型数据存储器、3片74IS373锁存器和1片74LS138译码器件组成。62 256数据存储器为32 KB静态随机存取存储器,CS为片选信号输入线,WE为写选通信号输入线,OE为读选通信号输人线,A0~A14为地址输入线,D0~D7为双向三态数据线。该存储器件在不同操作方式下控制引脚电平的状态如表1所示。74LS373是带三态缓冲输出的8D触发器,OE为使能端,G为控制端。其功能如表2所示。

图l是MCS-8051单片机与多片62256数据存储器的硬件连接电路。单片机的P0口与译码器741S138、锁存器74LS373-0和74LS373-l的输入端口相连,用来传输地址信息和控制信息。同时,P0口还与数据存储器的数据线相连接,用来传输数据信息。P1.6接到锁存器74LS373-2的控制端G,P1.7接到锁存器74LS373-1的控制端G,ALE接到锁存器74LS373-0的控制端上。由此,在P1.6、P1.7和ALE 3个端口共同作用下,使可实现地址信息和数据信息的分时传送。T0~T7是8片62256数据存储器,组成片外256 KB存储空间。

3 软件设计

3.1 数据存储器扩展的软件设计

MCS-8051单片机片外256 KB数据存储器扩展,其软件设计的主要思路是如何在MCS-805l单片机与要访问的片外存储单元之间建立联系,实现两者的信息传递。MOVX指令执行时,将地址信息同时进行锁存,然后开始传送数据,其读、写周期很短,但占用端口较多。为了节约端口资源,可将地址信息分时传送,图2是单片机读、写片外数据存储器的过程。与MOVX指令不同,单片机在访问片外存储单元时,首先是分时将片外存储单元的地址信息送入锁存器并锁存起来,然后再对片外数据存储单元进行读、写操作,这是2个完全独立的过程,这一特点大大节约了端口资源,但读、写周期较长。

3.2 数据存储器扩展的软件实例分析

请教一个单片机P0口的问题 外部数据从单片机的P0脚输入到单片机里是不是要在指令前加上一个"MOV P0,#FFH"? 基于单片机的数据采集系统的设计 外部数据从8051单片机的P0(或P1~P3)脚输入到单片机里是不是要在指令前加上一个"MOV P0(或P1~P3),#FFH"? 单片机的P0~~P3这32个口,能不能全部用来做输入与输出? 单片机 P2 P0 存储器的扩展方式分类 存储器的扩展怎么实现? 8051单片机的内部数据存储器最多能存储多少位的二进制数? 8051单片机的内部数据存储器最多能存储多少位的二进制数?? 数据存储器的结构 单片机怎样扩展两片8255? 基于单片机的视频转换 基于单片机的锅炉控制系统 谁能帮帮我?~~基于dsp和单片机的数据采集与处理系统设计?? 什么型号的单片机具有8051的指令系统,但是它的输入输出(8051的P0~~P3)只有一组(P0)? 什么型号的单片机具有8051的指令系统,但是它的输入输出(8051的P0~~P3)只有一组(P0)?? INTEL什么型号的单片机具有8051的指令系统,但是它的输入输出(8051的P0~~P3)只有一组(P0)?? INTEL什么型号的单片机具有8051的指令系统,但是它的输入输出(8051的P0~~P3)只有一组(P0)? MCS-8051单片机有没有"CLR P0(或者P1.P2.P3)";(P0.0~P0.7位全部清零)的指令? 基于单片机的数字式方向继电器设计 单片机I/O口扩展的各种方法 片内数据程序存储器有多少个字节 8051单片机存储器结构图