由于MCS-51单片机的扩展接口与存储器统一编址,采用常规的方法扩展接口时会占用大量的地址空间,而多数应用系统均会要求扩展接口(本例有七段LED的段输出口、位输出口、键盘口各一个),为此,使扩展接口不占用单片机的存储地址空间对于要求大容量数据存储器的系统是必要的。电子园51单片机学习网+m.v+s*mz
如图1,用P1口的一位,只要确保写数据到显示的段口时,使用一空余(或专门预留)的地址(如0000H),即可使扩展接口不占用单片机的存储地址空间且不会相互干扰、发生冲突,同时还可保证有足够的响应速度。
3 编程实现电子园51单片机学习网!pZ*yQp
3.1 访问扩展接口 电子园51单片机学习网,Sp~%z a7F?
.
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 ;数据输出到显示的位口
. 电子园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
.
)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读写存储器
例:
n/d/\(TW:o0JNU3b0 . 电子园51单片机学习网U;~|,A;a
. 电子园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
文章评论(0条评论)
登录后参与讨论