原创 MCS-51单片机与二线制串行E2PROM的接口方法

2009-8-13 18:55 2168 5 5 分类: MCU/ 嵌入式

 :本文介绍二线制串行E2PROM的操作协议以及和MCS-51系列单片机的接口方法,着重讨论如何利用MCS-51的两条I/O线通过软件产生I2C总线所要求的操作时序,以实现MCS-51对二线制串行E2PROM的读写操作。电子园51单片机学习网;^]6]5Oxd[,j`$|
关键词:二线制串行EEPROM;I2C总线;主器件;从器件电子园51单片机学习网JytzF

q Gp'd0T0  二线制串行E2PROM是一种非易失存储器,以其体积小、功耗低、操作灵活、性价比高、存储数据可靠等诸多优点,是单片机应用系统中非易失存储器的理想选择。但二线制串行E2PROM的操作采用I2C总线协议,而MCS-51系列单片机没有I2C接口,我们在研制“GLM-500测湿仪”时,利用MCS-51单片机的两条I/O线,通过软件产生I2C总线所要求的操作时序,可方便地实现MCS-51对二线制串行E2PROM的读写操作。电子园51单片机学习网1Q J9x iO7G\r:X

jP)N%n5k0x01 二线制串行E2PROM的引脚功能及基本操作时序

u X-`[WA6S)Dk0电子园51单片机学习网 o J A,G?W:H

  图1是二线制串行E2PROM 24C01/02/04/08/16的引脚排列图。
j Y2bhv0  仅SCL和SDA端为基本的总线操作端;SCL是串行时钟输入端;SDA是串行数据输入/输出端;漏极开路输出需接上拉电阻到VDD;WP是写保护端,接高电平时,只能读出,禁止写入;A0、A1、A2是片选端,对于
C*~A uP'X0  24C01/02/04/08/16,内部无连接,可接至VSS电子园51单片机学习网 }*y?:D i%k:Y(P.o8d

K_g ~'e^k}N0

6136_200904061948201taYE.jpg电子园51单片机学习网-B0z?5Vgo+[


G*[Uc R0    I2C总线协议运用主/从双向通讯。发送数据到总线上的器件定义为发送器,接收数据的器件定义为接收器。主器件和从器件都可工作于接收器和发送器状态,但总线必须由主器件(通常为微处理器)控制,主器件产生串行时钟(SCL),控制总线上数据传送的方向,并产生开始和停止信号。电子园51单片机学习网LeYT}%Ea6f])P
  总线从主器件产生开始条件后到产生停止条件期间有效,微处理器对串行E2PROM的读写操作在开始位控制下开始,在停止位控制下结束。电子园51单片机学习网4B5[&?"I.q.\"m:j'CD5M
  当SCL和SDA均为高电平时,定义为总线空闲状态,数据的传送必须在总线空闲时才能开始。当SCL为高电平时,SDA由高到低的变化为传送数据的开始位;而当SCL为高电平时,SDA由低到高的变化为停止位。在开始条件以后,SDA上数据的改变必须在SCL为低电平期间进行,在SCL为高电平期间, SDA必须保持稳定。每传送一位数据,主器件必须发出一个时钟脉冲。开始与停止条件如图2所示。电子园51单片机学习网A X;[Wr1|

v5t'c$w"\s0

6136_2009040619482029B94.jpg

.T^1^4N#]:y Z0电子园51单片机学习网3][%QSCGPE)Z-H

  一次读操作读出的字节数由主器件决定,没有限制,多到一次可以读出整个存储器的内容;而对于写操作,一次最多可以写入一个页面的字节数,如果超过了节),则前面接收到的数据将被覆盖。电子园51单片机学习网;i@,Dh*^)W1A
  数据传送过程中,每接收一个数据,接收器必须产生一个低电平的确认信号,主器件必须产生一个与此确认位相应的时钟脉冲。
\w7UWa0Jc0  开始位以后,主器件需送出8位的控制字节,其格式请参考有关的文献。电子园51单片机学习网N$iLC-a

2 接口方法
Hwol d"~t}0电子园51单片机学习网F6]+J(^7yFc{*_z
  MCS-51系列单片机由于没有I2C总线接口,可利用两条I/O线P1.0和P1.1分别连至串行E2PROM的SCL和SDA端,通过软件产生E2PROM所要求的读写时序,MCS-51系列单片机与24C04的硬件连接如图3所示。

6136_200904061948203SNiN.jpg电子园51单片机学习网h9y-W;r)j!o.A3Q


f}fGH-T D#i I03 读写程序
D"b S;D lm A0电子园51单片机学习网0si0Ggc
  MCS-51系列单片机对二线制串行E2PROM读写时,必须产生开始位,发送控制字节,控制数据传送,产生停止位。按照图3的连接,MCS-51系列单片机对24C04的读写程序如下:
(Y9n/fTvt0    ①字节读子程序电子园51单片机学习网Ag Se N([ pi
  入口条件:R0中存放块内写入单元的地址;R1中存放待写入的数据;R2中存放控制字节。电子园51单片机学习网AP6q*lVo*|
BYWR:SETBP1.0  ;产生开始位

f4m2lEQN-q0

Ta#O:jR@W5t+u0          CLRP1.1电子园51单片机学习网\ G)X&p%@5I


Sr:L)yrn0          CLRP1.0
]&m3LN5x?@hxtU0          MOV A,R2  ;发送控制字节

$m ~&g(@A&X0

D&M#m { S:V c I0          LCALLSBWR

-k*T%M:DKg3R0

4h1O D+yQ] z&Y.D9n [.o0          SETBP1.1

$u5PC!W:K:S;I5vJr0电子园51单片机学习网/LVx%zQ MyY+x

          SETBP1.0

!a({`i;u(t0

1tCF-b!{0          NOP
F%in6xpK;VI:ls0          JBP1.1,BYWR
,vZ}%q^C;uCC*Q|0            ;判有无确认信号,接收器没确认重新开始

c,P A WGA0电子园51单片机学习网6c:i0J*ur6D

          CLRP1.0电子园51单片机学习网I E'r*vf
          MOV A,R0  ;发送块内写入字节地址电子园51单片机学习网3Mk+C%hRLv,uy


Yb]]?DaN0          LCALLSBWR电子园51单片机学习网2jH V6_^g

电子园51单片机学习网)H%Gj"Se be

          SETBP1.1电子园51单片机学习网fhH!h G#LyEP

电子园51单片机学习网$@(frpL

          SETBP1.0
#N ynEt0          JBP1.1,$  ;判确认信号电子园51单片机学习网/Rp8`J~;e
          CLRP1.0电子园51单片机学习网JVu*?'P&_,\7N;R
          MOV A,R1  ;发送写入数据

wD~ ThQqP)As0

)P({:pU*q1x0          LCALLSBWR电子园51单片机学习网f!XP2c]

电子园51单片机学习网^N"a gQ{:s~

          SETBP1.1 

9C3KTN#|Q!LX R0电子园51单片机学习网x FF q8yhw

          SETBP1.0电子园51单片机学习网'k B O:k:feHM
          JBP1.1,$  ;判确认信号  

-b0~_#nbm/S0电子园51单片机学习网6W8LZv#d h

          CLRP1.0电子园51单片机学习网.Wf6cC1S3cv9\
          CLRP1.1  ;产生停止位电子园51单片机学习网8_+Emu+m#k{


Yy7?R0M#O1G0          SETBP1.0

4p3ww$G-k.?_h0

"s^1SsJ I)?P0          SETBP1.1

%\:n`3p wI2I4Af0

!S\ U%Gg]0          CLRP1.0电子园51单片机学习网2z$qb X5h*kebHV


x [` j'dA3Gbd0        RET电子园51单片机学习网!t4?0~9Y/y9I1YAi(j
②字节写子程序
dRg7z;CM5M}4E0  入口条件:R0中存放块内读出字节的地址;R2中存放控制字节,其最低位为0。
{L4MDo fO[(}v"b&M0返回结果:读出的数据存于R1中。
h9w-W&IR;OaH^0    BYRD:SETBP1.0  ;产生开始位电子园51单片机学习网3|@7eFDH


X(?S0Oq(P?0          CLR P1.1电子园51单片机学习网5OA2q/UL.t


4BN m.qa0          CLR P1.0电子园51单片机学习网3e%P D vF
          MOV A,R2  ;发送控制字节

z^eW(jAN0电子园51单片机学习网6Ga Q V"lLc8_

          LCALLSBWR电子园51单片机学习网 TG%d*XJ


-T2\Z!{/{~;k0          SETBP1.1

8hf F$@+`'XYr1}0电子园51单片机学习网)n Y~ Wk5q

          SETBP1.0

5KH+Xm]*\RO7Xg0

0\ X R} ^T2G Y0          NOP
G%T4S#c i%a8@f3C*H7w0          JBP1.1,BYRD
"nc ut(OD0              ;判确认信号,接收器未确认重新开始电子园51单片机学习网?)e F9j|5T gp:M


"kAE(eymV0          CLR P1.0电子园51单片机学习网;m^!q"X(h^u
          MOV A,R0  ;发送块内读出字节地址

3R H Z8Gh0

\`wg2|*]%{ }*^0          LCALLSBWR电子园51单片机学习网,k'}.x n+D9{6I(Y


9LeU|Ev0          SETBP1.1电子园51单片机学习网 h tY []/n8ER

电子园51单片机学习网Q Bq?E,?L

          SETBP1.0
\"c4HI5|4\0          JBP1.1,$  ;判确认信号

&L|^RQE ~(?/Z H0电子园51单片机学习网e+^I)a$@8l

          CLR P1.0  ;产生读开始位电子园51单片机学习网:TrI,D0XT

电子园51单片机学习网}y!Rx:zr [\q

          SETBP1.0

g#z2I,MF0n){0电子园51单片机学习网0EC b(Yp(R!q

          CLR P1.1电子园51单片机学习网 ZPX P+U*G7c.Qe

电子园51单片机学习网n1I X\g+G(?H

          CLR P1.0电子园51单片机学习网:d G jNH(kln
          MOV A,R2  ;发送控制字节

d#G!{"Di7j/Mj[!|*r+@0

!lH*H6k6Ehs;?0          SETBACC.0LCALLSBWR

8?%w1fIR[?u6p/d0

+z NN:\s0          SETBP1.1

P~B6S v0电子园51单片机学习网$T)mWH"p%II

          SETBP1.0电子园51单片机学习网z*zC \8X
          JBP1.1,$  ;判确认信号电子园51单片机学习网8h/V8J J-D


7qqW5hYe;{o?0          CLR P1.0
9W#NZD#Dn2`ch(D0         MOV R7,#8  ;接收8位数据

z Pv T%Jw0电子园51单片机学习网D gqv0];H

BYR1:SETBP1.0

#o7[9C%jX.z0电子园51单片机学习网Ha l.IR(P/~t{

      MOV C,P1.1

;}_|m AO|Jx0

;G(KP&z d2d@.U8d0      RLC ACLRP1.0

^`$PiW6QxY0

^F!x'Vb!p#c0   DJNZR7,BYR1

G$A Z$Al0电子园51单片机学习网4g+C7F:]%a7~x3?w

   CLRP1.1
3y!? }4|Cq2M0   SETBP1.0  ;产生停止位电子园51单片机学习网Z4BA QFp!x4Xs


:k%T^Ky5s!?#n/i0      SETBP1.1电子园51单片机学习网Fd bK%P{ V$b)zk


%H-k[\ YEk0      CLRP1.0电子园51单片机学习网8M\yI't


xXq.b2j/e}:n0      MOV R1,A电子园51单片机学习网q,U1b[2s{t


Qx^ v$^W\0    RET电子园51单片机学习网{ ~8O p^
      SBWR:MOV R7,#8电子园51单片机学习网*BP D5yJ'f H$I

电子园51单片机学习网y@qt"rKC+~U

      SB1: RLC A电子园51单片机学习网7fUNB0y
            MOVP1.1,C电子园51单片机学习网Nd,R2[*Y#Sv


6|j(j w4T4{2Q6b/BeE0            SETBP1.0
0uP%h)oj!i`{5F"j0            CLRP1.0电子园51单片机学习网wHJu%s1lh-MX X

电子园51单片机学习网nS2KBzv!D-I-M

            DJNZR7,SB1

3r!F ^;W2L:n&G;Hn!K)n0电子园51单片机学习网6J@7RstZ

            RET
/W$R-i3i+M|6uF5bu0  以上子程序对二线制串行E2PROM读写可靠,提供入口条件后可直接调用,此外,串行E2PROM还可进行顺序读和页面写,限于篇幅,不再列出其程序。
LaC0w&f m,U~0电子园51单片机学习网{*faCw M\%i!o


xFX C#Nd0 欢迎访问无由电子开发网技术文章在线阅读在线商城

k_7_qmJ0
 

[参考文献]


?x"xm} d E0
[1] 武汉力源单片机技术研究所.CMOS串行E2PROM原理及应用[M].
PARTNER CONTENT

文章评论0条评论)

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