原创 MCS-51单片机访问超大容量存储器的实现

2009-8-13 18:56 1672 8 8 分类: MCU/ 嵌入式
摘要】 使MCS-5164K
*b@_ESk0
  :MCS-51
n)S&@&~/aP o+}e0  电子园51单片机学习网/M4V1ry%iD.N:K
1 电子园51单片机学习网$u1`0e-^a| n } AO*L
  MCS-51系列单片机有着优越的性价比,因此应用面宽,使用量也非常大;然而它只有16位地址线,最大能访问的存储空间为64K,且扩展接口与存储器统一编址,扩展接口会占用大量的地址空间,致使该系列单片机在数据量大的数据采集系统中,存储空间明显不足。电子园51单片机学习网lh4M2X4c
  笔者最近在开发一数据采集系统时,经分析、探索,找到了解决的办法。
` qDeC"\'{#v k02 使电子园51单片机学习网 F2A/WKR ^0W
2.1 使 电子园51单片机学习网l4ZLMD

  由于MCS-51单片机的扩展接口与存储器统一编址,采用常规的方法扩展接口时会占用大量的地址空间,而多数应用系统均会要求扩展接口(本例有七段LED的段输出口、位输出口、键盘口各一个),为此,使扩展接口不占用单片机的存储地址空间对于要求大容量数据存储器的系统是必要的。电子园51单片机学习网+m.v+s*mz
  如图1,用P1口的一位,只要确保写数据到显示的段口时,使用一空余(或专门预留)的地址(如0000H),即可使扩展接口不占用单片机的存储地址空间且不会相互干扰、发生冲突,同时还可保证有足够的响应速度。

-u-{3zhbR[t"K0
电子园51单片机学习网'um8U4X})}r
 

6136_200904061947401rKbt.jpg

6136_200904061947402DL99.jpg
j-|L$V/@Z0
2.2  外部数据存储采用大容量存贮芯片,分段使用
电子园51单片机学习网@vD\SsA]e/Kf
    如图示,MCS-51的16位地址线作为存储芯片的低位地址,可访问64K的存储空间(作为一段);再用P1口的D1、D0位作为存储芯片的高位地址(段地址),则可把存储器分为4段,最大访问能力可达256K(见下表),若使用更多的位,则访问能力可更大。编程时只要确保高位地址(A16~A19)在访问存储芯片的指令执行前确定,即可实现存储芯片全部空间的访问。
h;P+G2C}O0
6136_200904061947403Enig.jpg电子园51单片机学习网 I,i{(uD8R4E

6136_200904061947404L4hD.jpg
$E#_*m JT+Q ^z0
电子园51单片机学习网wEA1W-}

3 电子园51单片机学习网!pZ*yQp
3.1 访   电子园51单片机学习网,Sp~%z a7F?
    .

u,E~%e4u8F } BA Yy0

Eb z4J2M&cY0    .  电子园51单片机学习网GJ/y5yH Vj KF#{

电子园51单片机学习网K*j0iV W!J]6G9~

    .电子园51单片机学习网0qi w!@1w0Z(UU
    CLR P1.7电子园51单片机学习网#Wn^ zQlh-l7l.J
    MOV DPTR,#0000H  ;专门预留的一个地址MOV A, #DATA1
To];Ue;U-m3FP0    MOVX   @DPTR,A  ;数据输出到显示的段口SETB   P1.7
"A5TYT+n0    MOV A,#DATA2MOVX@DPTR,A  ;数据输出到显示的位口  

}D8U2EP%y!O|-Ep0 电子园51单片机学习网S St:eIE4}2_

    .  电子园51单片机学习网)L gy5sn

电子园51单片机学习网tUT&e\ V}2l

    .   电子园51单片机学习网 D]k+sqEx

电子园51单片机学习网sy0nX4U)_ I

   .
-M\[{1o la_8bm7Z0    SETB P1.7电子园51单片机学习网$@wi5w{3fw Z
    MOV DPTR,#0000H  ;专门预留的一个单  元地址
e#O[*K x%w0    MOVX A,@DPTR    ;读键盘口数据到ACC  

!}6I7{c`0 电子园51单片机学习网xs%d OX5~X9@*t

    .   

)Q!R9?*ew \0 电子园51单片机学习网"e&pge)r.AB

    .    电子园51单片机学习网?%p?PAn$zd

电子园51单片机学习网#D+N3\.Lc

    .
P/nwoY V:jv [03.2 访
'Q)T c-B1HZ A6d M"^g0程序中要访问存储器时,只需按如下顺序编写程序即可:设定片选(CLR P1.7);设定存储器的段位置;用MOVX读写存储器

:i(dnug]-ISe0 电子园51单片机学习网N3|L-D2a[

    例:  
n/d/\(TW:o0JNU3b0    . 电子园51单片机学习网U;~|,A;a

电子园51单片机学习网P+nD@9B#ZX

   .   电子园51单片机学习网x#q3}sm

电子园51单片机学习网LyGC"d1M/y4z

   .
es$bsL4^6e{0    CLR  P3.0  ;使存储芯片的片选有效CLR P1.0电子园51单片机学习网6A.?0Cj4g C
    CLR P1.1  ;选取0FFFFH~00000H存储区间MO DPTR,#ADDR1
{d$[1?7Tz&q0    MOV  A,#DATA1  ;数据写到ADDR1单元MOVX@DPTR,AMOV DPTR,#ADDR2
is)ff'Gw/S0  MOVX A,@DPTR  ;读ADDR2单元的数据到A
5U\o Nh1|04 电子园51单片机学习网{~3oL4?o }7Y
  使用本方法可轻易地为MCS-51单片机扩展大容量的数据存储器,这对于数据量大的数据采集系统有着非常大的意义。电子园51单片机学习网d7`Wy:R2Z Bz G[
电子园51单片机学习网T-C$G`#h


nQP6W7`mYf0      电子园51单片机学习网;pt1| E9x%kQ,V{1r



&y*uj}2M G#Z"z `&Bo0
1 胡汉才.单片机原理及接口技术.北京:北京航空航天大学出版社
hr\&\)I4rL02 白驹珩,雷晓平.单片计算机及其应用.成都:电子科技大学出版社
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条