加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 电子发烧 > 单片机学习

51单片机访问大容量存储器的实现

时间:2013-11-23  来源:123485.com  作者:9stone

1 引言
  MCS-51系列单片机有着优越的性价比,因此应用面宽,使用量也非常大;然而它只有16位地址线,最大能访问的存储空间为64K,且扩展接口与存储器统一编址,扩展接口会占用大量的地址空间,致使该系列单片机在数据量大的数据采集系统中,存储空间明显不足。
  笔者最近在开发一数据采集系统时,经分析、探索,找到了解决的办法。
2 使用大容量存储器的原理
2.1 使扩展接口不占用单片机的存储地址空间
  由于MCS-51单片机的扩展接口与存储器统一编址,采用常规的方法扩展接口时会占用大量的地址空间,而多数应用系统均会要求扩展接口(本例有七段LED的段输出口、位输出口、键盘口各一个),为此,使扩展接口不占用单片机的存储地址空间对于要求大容量数据存储器的系统是必要的。
  如图1,用P1口的一位,只要确保写数据到显示的段口时,使用一空余(或专门预留)的地址(如0000H),即可使扩展接口不占用单片机的存储地址空间且不会相互干扰、发生冲突,同时还可保证有足够的响应速度。

 

2.2  外部数据存储采用大容量存贮芯片,分段使用

        如图示,MCS-51的16位地址线作为存储芯片的低位地址,可访问64K的存储空间(作为一段);再用P1口的D1、D0位作为存储芯片的高位地址(段地址),则可把存储器分为4段,最大访问能力可达256K(见下表),若使用更多的位,则访问能力可更大。编程时只要确保高位地址(A16~A19)在访问存储芯片的指令执行前确定,即可实现存储芯片全部空间的访问。

 
 

3 编程实现
3.1 访问扩展接口   
    ...
    CLR P1.7
    MOV DPTR,#0000H  ;专门预留的一个地址MOV A, #DATA1
    MOVX   @DPTR,A  ;数据输出到显示的段口SETB   P1.7
    MOV A,#DATA2MOVX@DPTR,A  ;数据输出到显示的位口  
   ...

    SETB P1.7
    MOV DPTR,#0000H  ;专门预留的一个单  元地址
    MOVX A,@DPTR    ;读键盘口数据到ACC  
   ...

3.2 访问存储器
程序中要访问存储器时,只需按如下顺序编写程序即可:设定片选(CLR P1.7);设定存储器的段位置;用MOVX读写存储器

    例:  
   ... 
    CLR  P3.0  ;使存储芯片的片选有效CLR P1.0
    CLR P1.1  ;选取0FFFFH~00000H存储区间MO DPTR,#ADDR1
    MOV  A,#DATA1  ;数据写到ADDR1单元MOVX@DPTR,AMOV DPTR,#ADDR2
 MOVX A,@DPTR  ;读ADDR2单元的数据到A
4 结束语
  使用本方法可轻易地为MCS-51单片机扩展大容量的数据存储器,这对于数据量大的数据采集系统有着非常大的意义。


分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->单片机学习
  • 电子应用基础
  • 电源技术
  • 无线传输技术
  • 信号处理
  • PCB设计
  • EDA技术
  • 单片机学习
  • 电子工具设备
  • 技术文章
  • 精彩拆解欣赏
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门