发布: 2009-4-04 00:49 | 作者: hnrain | 查看: 28次
ybla{Y459851 引言电子园51单片机学习网(`[?8kDHj5z ]E)q
?i!aOD })fm.l~ B45985
\JAS2v1f;z45985 MCS-51系列单片机有着优越的性价比,因此应用面宽,使用量也非常大;然而它只有16位地址线,最大能访问的存储空间为64K,且扩展接口与存储器统一编址,扩展接口会占用大量的地址空间,致使该系列单片机在数据量大的数据采集系统中,存储空间明显不足。
'o0e3U6y2LQ#Yp4H45985
@&~6Cep9R45985 笔者最近在开发一数据采集系统时,经分析、探索,找到了解决的办法。
$k!T*Fy[1i pf5v lh459852 使用大容量存储器的原理
W+m*ywq%M Mz6]459852.1 使扩展接口不占用单片机的存储地址空间 电子园51单片机学习网 s Mh*Tz%l*|g
LV{7].U9]45985电子园51单片机学习网r\;P%l F)}[
由于MCS-51单片机的扩展接口与存储器统一编址,采用常规的方法扩展接口时会占用大量的地址空间,而多数应用系统均会要求扩展接口(本例有七段LED的段输出口、位输出口、键盘口各一个),为此,使扩展接口不占用单片机的存储地址空间对于要求大容量数据存储器的系统是必要的。
uq J%n9kl$Z._45985
9Ir#j2H$Z45985 如图1,用P1口的一位,只要确保写数据到显示的段口时,使用一空余(或专门预留)的地址(如0000H),即可使扩展接口不占用单片机的存储地址空间且不会相互干扰、发生冲突,同时还可保证有足够的响应速度。
;q:szQ*i}45985
M oW-eV6Sq%`U45985kBw1\ \T45985
K L:r!U~%C7D s45985电子园51单片机学习网;f+Cu5@t;{
电子园51单片机学习网 Y| @uw"i9hB%F
电子园51单片机学习网8J4b H^'z_2.2 外部数据存储采用大容量存贮芯片,分段使用
z p9S9H6`$J(z4Q459851S;t Sus{N)B45985 电子园51单片机学习网Z@#[f!Lkd
电子园51单片机学习网i7xx7~k#P'Z$w如图示,MCS-51的16位地址线作为存储芯片的低位地址,可访问64K的存储空间(作为一段);再用P1口的D1、D0位作为存储芯片的高位地址(段地址),则可把存储器分为4段,最大访问能力可达256K(见下表),若使用更多的位,则访问能力可更大。编程时只要确保高位地址(A16~A19)在访问存储芯片的指令执行前确定,即可实现存储芯片全部空间的访问。电子园51单片机学习网^!B-t!vM/D(K9h
电子园51单片机学习网"K{)}W zT3Kx4g7?B7i gW:Z*eErt459853 编程实现电子园51单片机学习网t!]3\s*P F%eY0_.p'P
LH4W:vED"L0x M45985电子园51单片机学习网:`)~1}#U,QX+G
3.1 访问扩展接口
电子园51单片机学习网9tc,O,Evy
...
&g"u$t+` {5r T45985 CLR P1.7
+W3d2}eH;K ?5COR45985 MOV DPTR,#0000H ;专门预留的一个地址MOV A, #DATA1电子园51单片机学习网ZHr } J3u-lB|]
MOVX @DPTR,A ;数据输出到显示的段口SETB P1.7电子园51单片机学习网V9sUu/V5^"B
MOV A,#DATA2MOVX@DPTR,A ;数据输出到显示的位口
_ k)REd^45985 ...电子园51单片机学习网/Dvnv`A8X"F
SETB P1.7
L0Y`t"L45985 MOV DPTR,#0000H ;专门预留的一个单 元地址电子园51单片机学习网"l$e5C.?z`w6i
MOVX A,@DPTR ;读键盘口数据到ACC
4\l6H MUNn45985 ...
J)x,?)zs)T4T45985
电子园51单片机学习网2wYR(F ia:r{#N
3.2 访问存储器电子园51单片机学习网 Z7I$Ev8Y#j%\ w/X&Tn
程序中要访问存储器时,只需按如下顺序编写程序即可:设定片选(CLR P1.7);设定存储器的段位置;用MOVX读写存储器
例: 电子园51单片机学习网` _l]$D G9TkA
... 电子园51单片机学习网8T%?1\'OOh#r@y
CLR P3.0 ;使存储芯片的片选有效CLR P1.0
$[1d{7_;fU\a3g45985 CLR P1.1 ;选取0FFFFH~00000H存储区间MO DPTR,#ADDR1电子园51单片机学习网A1N)Q|laC~G
MOV A,#DATA1 ;数据写到ADDR1单元MOVX@DPTR,AMOV DPTR,#ADDR2
Q ~6\ Z0[dq Qc45985 MOVX A,@DPTR ;读ADDR2单元的数据到A电子园51单片机学习网o6ah Ij9@#v
;Wl$P]9sZN-G45985电子园51单片机学习网U7mc!sCsY%s
4 结束语电子园51单片机学习网`4n;fas
电子园51单片机学习网j3s c,C#]
使用本方法可轻易地为MCS-51单片机扩展大容量的数据存储器,这对于数据量大的数据采集系统有着非常大的意义。
文章评论(0条评论)
登录后参与讨论