综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章单片机正文
 
串行E2PROM 24LC65在单片机中的应用
发布日期:2005-12-27 作者:李华贵 王运鹏 张国安 来源:国外电子元器件

  摘  要:本文介绍了串行E2PROM 芯片24LC65的工作原理及其与单片机的硬件连接和软件编程。提供了一个结构简单而且十分实用的存储系统实例。
    关键词:E2PROM; 串行接口;I2C总线;串行存储

1. 概述
  24LC65是目前容量较大的一种串行E2PROM 芯片,具有8kB的存储容量,体积小,功耗低,可掉电保护。AT89C52单片机亦具有8kB内部ROM,同样具备低功耗和控制功能强等特点,由两者构成的单片机小系统硬件开销少,数据可串行传送,功耗低,非常实用。但是,读、写24LC65的程序编写却比较麻烦,本文将介绍对其编程的方法,并介绍采用子程序结构编写的已通过的写、读24LC65的应用编程。

2. 24LC65与单片机的连接
2.1 24LC65的引脚功能
  24LC65采用8脚DIP封装,引脚功能如下:
  1~3脚(A0、A1、A2)为三位地址输入端;
  4脚GND为接地端;
  5脚SDA为二进制数据输入输出端;
  6脚SCL为时钟输入端;
  7脚NC悬空;
  8脚VCC为5V正电源。
2.2 24LC65与单片机的连接
  连接电路如图1所示,图中共接有8片24LC65芯片,芯片的三位地址A2、A1、A0接成8种组态,由A2、A1、A0排列组成8个片选地址,因此在两线上最多可选用8片,可寻址64kB存储空间,每片寻址8kB,其中,1#芯片地址范围是0000H~1FFFH,8#芯片地址范围是 E000H~FFFFH。SDA为串行数据输入输出线,SCL是时钟输入端,每次访问24LC65之前,必须执行启动I2C数据总线操作,每次结束访问时,也必须执行停止I2C数据总线操作,其操作时序由SCL与SDA的关系确定,如图2的示,可以看出,当SCL为高电平时,SDA由高变低时启动I2C总线,而SDA由低变高时,停止总线操作。若启动总线为读操作,则在SCL脉冲的下降沿读出1 bit的数据,若启动写操作,则在SCL脉冲的上升沿写入1 bit 的数据。

3. 数据格式
  对E2PROM 24LC65每次写一个字节操作的数据格式由4个字节构成。第1字节为: 

 1

0

1

0

A2

A1

A0

R/W

  其中A2、A1、A0为地址位,R/W为读写位,R/W=1,读E2PROM操作;R/W=0,写E2PROM操作。
  第2字节为:

X

X

X

A12

A11

A10

A9

A8

  其中,×为任意,A12、A11、A10、A9、A8为E2PROM 24LC65的高5位地址。
  第3字节是E2PROM 24LC65的低8位地址A7~A0。第4字节才是8位数据。注意,每个字节后紧跟一个回答(ACK)信号。

4. 写24LC65程序

  用MCS-51单片机的指令编写对24LC65写一字节的子程序是关键,主程序连续调四次便可实现对24LC65写一字节数据的目的。假设待写入字节在单片机内字节地址分别是6FH、6EH、…、68H,并分别存放在待写入字节的D7、D6、…、D0位,作为调用写一字节子程序的入口参数。由主程序启动,并停止总线。其程序分别如下:
  ;主程序启动与停止总线
  SETB P3.1 ;SCL=1
  SETB P3.0 ;SDA=1
  CLR P3.0 ;SDA=0,启动总线
  
        
    CLR P3.0
  SETB P3.1
  SETB P3.0 ;停止总线操作
  ; 写一字节的子程序
  MOV C,6FH ;D7位送给进位C
  CLR P3.1
  MOV P3.0,C
  SETB P3.1;写入D7位
  CLR P3.1
  MOV C,6EH ;D6位送给进位C
  MOV P3.0,C
  SETB P3.1 ;写入D6位
  CLR P3.1
  MOV C,6DH ;D5位送给进位C
  MOV P3.0,C
  SETB P3.1 ;写入D5位
  CLR P3.1
  MOV C,6CH
  MOV P3.0,C
  SETB P3.1 ;写入D4位
   CLR P3.1
  MOV C,6BH
  MOV P3.0,C
  SETB P3.1 ;写入D3位
  CLR P3.1
  MOV C,6AH
  MOV P3.0,C
  SETB P3.1 ;写入D2位
  CLR P3.1
  MOV C,69H
  MOV P3.0,C
  SETB P3.1 ;写入D1位
  CLR P3.1
  MOV C,68H
  MOV P3.0,C
  SETB P3.1 ;写入D0位
  CLR P3.1
  NOP
  SETB P3.1 ;写一字节结束
  CLR P3.1  ;ACK
  RET

5. 读24LC65程序

  读24LC65程序中既有写控制字和写地址操作,又有读数据的操作,其中,写控制字和写地址操作相同于写24LC65程序,即前三个字节相同,只不过第三字节结束后要停止总线操作。第四字节重新启动总线,送读命令。只有第五字节才是读24LC65的操作。读24LC65的程序如下:
    MOV R7,#08H
READ:SETB P3.1 ;读一字节于A中
     CLR P3.1  ;移出一位
    MOV C,P3.0 ;移出一位传给进位C
    RLC A
     DJNZ R7,READ
    SETB P3.1
    CLR P3.1 ;ACK
    CLR P3.0
    SETB P3.1
    SETB P3.0 ;停止总线
    RET
  该程序在实际使用中运行可靠,实用性强。如果希望增加存储容量,可以另选单片机的两条I/O线,同样可以连接8片24LC65芯片,组成另一64kB的串行E2PROM。


 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
用单片机实现通用存贮器IC卡的读写 (12-13)
基于单片机89C51的异步串行接口键盘设计 (03-05)
PCF8563 I2C实时时钟/日历芯片 在8051系统中的应用 (12-13)
基于单片机89C51的异步串行接口键盘设计 (04-24)
模块化LED大屏幕显示器的设计 (12-01)
USB接口的数字摄像系统设计 (12-01)
S3C2410X的I2C控制器及其应用开发 (12-12)
Blackfin531与PCF8576的接口设计及 I2C协议实现 (12-12)
基于I2C总线技术的USB接口设计 (12-18)
用汇编实现I2C BUS总线协议 (12-14)
具有I2C总线接口的A/D芯片PCF8591及其应用 (09-28)
在屏显示器件MC141541及其接口技术 (12-01)
在P87LPC674单片机I2C总线系统中扩展LCD显示器 (12-01)
基于CAN总线的数字式传感器群管理系统 (10-11)
基于MCU和CPLD系统中I2C总线控制器的设计与实现 (09-28)
ARM嵌入式系统软件实时时钟的设计 (11-21)
用户自定制LED驱动器的设计 (11-26)
I2C总线接口时钟芯片DS1307在坦克半主动悬挂电控单元中的应用 (01-05)
基于IIC1.0的时钟芯片应用程序设计 (11-29)
I2C总线在单片机上的实现 (11-30)
单片机无线串行接口电路设计 (01-06)
串行数据标准的选择与使用 (12-24)
AD7730在发动机燃油消耗测量仪中的应用 (12-17)
锂离子电池管理芯片bq2050H (12-31)
A/D芯片TLC2543与Neuron芯片的接口应用 (12-31)
尿液分析仪 (06-29)
集UART与RS232于一体的MAX3110E原理及应用 (01-12)
串行输入电压输出的14位DAC数模转换器芯片AD5551/AD5552 (12-11)
数字温度计和控温器DS1625 (12-10)
多种串行接口技术在LED大屏幕显示系统中的应用 (03-05)
数字温度测控芯片DS1620的应用 (01-04)
异步串行接口与以太网服务器的连接 (03-06)
基于串行接口方式单片机通用数据采集系统设计 (10-03)
具有串行接口的I/O扩展器EM83010及其应用 (12-05)
通用异步串行接口的VHDL实用化设计 (11-22)
模拟I2C总线多主通信研究与软件设计 (01-21)
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号