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

来源:本站
导读:目前正在解读《51单片机访问大容量存储器的实现》的相关信息,《51单片机访问大容量存储器的实现》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《51单片机访问大容量存储器的实现》的详细说明。
简介:使用本文方法可轻易地为MCS-51单片机扩展大容量的数据存储器,这对于数据量大的数据采集系统有着非常大的意义。

1引言

MCS-51系列单片机有着优越的性价比,因此应用面宽,使用量也非常大;然而它只有16位地址线,最大能访问的存储空间为64K,且扩展接口与存储器统一编址,扩展接口会占用大量的地址空间,致使该系列单片机在数据量大的数据采集系统中,存储空间明显不足。

笔者最近在开发一数据采集系统时,经分析、探索,找到了解决的办法。

2使用大容量存储器的原理

2.1使扩展接口不占用单片机的存储地址空间

由于MCS-51单片机的扩展接口与存储器统一编址,采用常规的方法扩展接口时会占用大量的地址空间,而多数应用系统均会要求扩展接口(本例有七段LED的段输出口、位输出口、键盘口各一个),为此,使扩展接口不占用单片机的存储地址空间对于要求大容量数据存储器的系统是必要的。

如图1,用P1口的一位,只要确保写数据到显示的段口时,使用一空余(或专门预留)的地址(如0000H),即可使扩展接口不占用单片机的存储地址空间且不会相互干扰、发生冲突,同时还可保证有足够的响应速度。

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

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

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

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

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

3编程实现

3.1访问扩展接口

...

CLRP1.7

MOVDPTR,#0000H;专门预留的一个地址MOVA,#DATA1

MOVX@DPTR,A;数据输出到显示的段口SETBP1.7

MOV A,#DATA2MOVX@DPTR,A;数据输出到显示的位口

...

SETB P1.7

MOV DPTR,#0000H;专门预留的一个单元地址

MOVX A,@DPTR;读键盘口数据到ACC

...

3.2访问存储器

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

例:

...

CLRP3.0;使存储芯片的片选有效CLR P1.0

CLR P1.1;选取0FFFFH~00000H存储区间MO DPTR,#ADDR1

MOVA,#DATA1;数据写到ADDR1单元MOVX@DPTR,AMOV DPTR,#ADDR2

MOVX A,@DPTR;读ADDR2单元的数据到A

4结束语

使用本方法可轻易地为MCS-51单片机扩展大容量的数据存储器,这对于数据量大的数据采集系统有着非常大的意义。

提醒:《51单片机访问大容量存储器的实现》最后刷新时间 2024-03-14 00:51:58,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《51单片机访问大容量存储器的实现》该内容的真实性请自行鉴别。