您当前的位置:五五电子网电子知识单元电路接口电路MCS-51单片机与24LC系列的接口技术 正文
MCS-51单片机与24LC系列的接口技术

MCS-51单片机与24LC系列的接口技术

点击数:7295 次   录入时间:03-04 11:52:16   整理:http://www.55dianzi.com   接口电路

  下图为MCS-51单片机与24LC02接口电路。
  
  图中A2、A1、A0为从器件的地址选择信号,WP=1禁止写入,WP=0允许写入。由于SCL与SDA为漏极开路,所以要接R1、R2上拉电阻及外电源。

MCS-51单片机与24LC02接口电路


  
  1.单字节及页写入操作
  
  往E2PROM片内的单个单元进行数据写入的操作称为单字节写操作。其操作格式如下表所示

  表格符号含义如下。
  
  S指开始条件:当SCL.保持为1时,SDA由1变为O;其时序如下左图所示。
  
  P停止条件:当SCt一保持为1时,SDA由O变为1;其时序如下右图所示。
  
  ACK0为从器件的应答信号:在12C总线数据传送中,当从器件(E2PROM)收到主器件传递来的一个字节后,从器件必须向SDA线上返送一个应答信号(ACK0)给主器件,即于第9个时钟周期SCI.一到来之前将SDA置低电平以确认它成功地接收到该字节,此时如果SDA=1,则表示接收失败。
  
  如果接收失败必须重新握手。
  
  下表中的字节地址是指从器件的地址,下表中的数据是指待写入的数据。

  设单片机的晶振为6MHz,则T机=2us,定义P1.7BlTSDA,P1.6BlTSCI.现分别给出S、P、ACK0及往E2PROM写一字节子程序。
  
  ;开始条件子程序

START:CLRSDA
SETBSCL

SETBSDA

NOP

NOP

NOP

CLRSDA

NOP

NOP

CLRSCL

REP


;停止条件子程序

  ;应答信号子程序,出口:FO=1应答失败,FO=O应答成功

  :往E2PROM写一宇节子程序,入口:A的内容为待发数据;注意:数据高位先送。

  例:如何将立即数53H写到24LC02的7AH单元。其程序片断如下:

  对E2PROM的数据写入也可以实现页写入。对E2PROM片内连续装载8个字节数据的写入操作,每收到一个数据以后,数据字地址的低3位自动加1。而高位是不改变的,以保持存储器页位置不变。
  
  如果多于8个数据被送到E2PROM,则数据地址重复滚动,以前输入的数据将被覆盖。其操作格式如下表所示。



www.55dianzi.com

  2.单字节及页读出操作
  
  从E2PROM片内的单个单元进行数据读出的操作称为单字节读操作。其操作格式如下表所示。

  
  页读出操作格式如下表所示。


  
  单字节及页读出操作与单字节及页写入操作雷同。

  应答信号(ACKl):当主器件(如单片机)读E2ROM片内数据时,应答信号由主器件产生,当SDA=0,表示ACKl;当SDA=1,表示/ACKl。即在主器件(如单片机)读E2PROM片内数据时。也要根据要求给从器件ACKl或/ACKl信号。其时序如下左图,下右图所示。几个子程序如下。

  ;单片机应答信号(ACKl)

  :单片机非应答信号(/ACK/)(SDA=1)

  :从E2PROM中读一字节,出口:A的内容为接收数据

RBYTE:SETBSDA;SDA作为输入口

NOP

NOP

MOVR7,#08H

RBYTEl:CLRSCL.

N0p

NOP

SETBSCL

NOP

NOP

MOVC,SDA

RLcA;注意,先读高位

DJNZR7.RBYTEI

CLRSCL

RET

  例:如何将24LC02的5CH单元内容读到单片机内部了RAM的33H单元。其程序片断如下:

LOOP:ACALLSTART

MOVA.#0AOH

ACALLWBYTE

ACALLCHACK

JBF0,LOOP;成功接收?
MOVA,#5CH;待访问的单元

ACALLWBYTE
ACALLCHACK

JBFo,LOOP;成功接收?
ACALLSTART

MOVA.#0AtH

ACALI.WBYTE

ACALLCHACK
JBF0.L00P;成功接收?

ACALLRBYTE
MOV33H,A

ACALL.MNACK

ACALLSTOP

  三、结论

  由于l℃总线的时序较为复杂且容易出错,所以笔者对其协议作了较为深入的分析,同时也对各个子程序作了调试并在实践中成功应用。希望上述协议及时序的解析能为初学者在工程实践中提供借鉴作用。

 




本文关键字:技术  单片机  接口  接口电路单元电路 - 接口电路