Proteus仿真I2C存储器实验.doc

上传人:wj 文档编号:2486393 上传时间:2023-05-03 格式:DOC 页数:6 大小:111KB
下载 相关 举报
Proteus仿真I2C存储器实验.doc_第1页
第1页 / 共6页
Proteus仿真I2C存储器实验.doc_第2页
第2页 / 共6页
Proteus仿真I2C存储器实验.doc_第3页
第3页 / 共6页
Proteus仿真I2C存储器实验.doc_第4页
第4页 / 共6页
Proteus仿真I2C存储器实验.doc_第5页
第5页 / 共6页
Proteus仿真I2C存储器实验.doc_第6页
第6页 / 共6页
亲,该文档总共6页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Proteus仿真I2C存储器实验.doc

《Proteus仿真I2C存储器实验.doc》由会员分享,可在线阅读,更多相关《Proteus仿真I2C存储器实验.doc(6页珍藏版)》请在冰点文库上搜索。

Proteus仿真I2C存储器实验.doc

Proteus仿真IC存储器实验

一、实验目的

1、了解I2C总线的工作原理

2、掌握I2C总线驱动程序的设计和调试方法

3、掌握I2C总线存储器的读写方法

二、实验说明

1、I2C总线常识

I2C总线上的每个器件均由一个存储于该器件中的唯一地址来识别,并可被用作一个发送器或接收器(视其功能而定)。

AT24C02是一个2K位串行EEPROM,内部含有256个8位字节,AT24C02有一个8字节页写缓冲器,该器件通过I2C总线接口进行操作。

引脚名称和功能如图1所示。

图124系例I2C存储器引脚说明

通过器件地址输入端A0、A1和A2可以实现将最多8个24C02器件连接到总线上。

2、I2C总线协议

(1)只有在总线空闲时才允许启动数据传送。

(2)在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态,不允

许有跳变。

时钟线为高电平时,数据线的任何电平变化将被看作总线的起始或停止

信号。

(3)起始信号,时钟线保持高电平期间,数据线电平从高到低的跳变作为IC总线的起始信号。

(4)停止信号,时钟线保持高电平期间,数据线电平从低到高的跳变作为IC总线的停止信号。

IC总线时序:

3、页写操作的数据帧结构

根据页缓冲区的大小,页写的字节数不能超过缓冲区大小。

如果在发送停止信号之前主器件发送超过缓冲区大小,地址计数器将自动翻转,先前写入的数据被覆盖。

如图2所示。

图2页写操作数据帧结构

三、实验内容

先搭建一个“IC存储器实验”的仿真电路,该单片机系统功能是采用页写的方式,把器件地址为A0H的24C02器件的片内50H地址开始的8个存储单元分别写入数据“00、11、22、、、、、、77”。

四、.参考硬件电路

五、参考汇编程序

SDAEQUP3.5 ;定义24c02的串行数据线

SCLEQUP3.4;定义24c02的串行时钟线

SNUMEQU40H

SLAWEQU41H

ORG0000H

AJMPMAIN

ORG0040H

MAIN:

MOVSP,#5FH

LCALLLDATA

MOVSLAW,#0A0H;24c02的器件地址

MOVSNUM,#9 ;要发送9个字节数据

MOVR1,#30H ;数据缓冲区的首地址

CALLWRNB ;调用发送n个字节的子程序

SJMP$

LDATA:

MOVR0,#30H ;片内ram的地址:

30H31H32H33H34H35H…..

MOV@R0,#50H ;存放的数据:

50H00H11H22H33H44H……

INCR0

MOV@R0,#00H

INCR0

MOV@R0,#11H

INCR0

MOV@R0,#22H

INCR0

MOV@R0,#33H

INCR0

MOV@R0,#44H

INCR0

MOV@R0,#55H

INCR0

MOV@R0,#66H

INCR0

MOV@R0,#77H

RET

;起始信号

STA:

SETBSDA

SETBSCL

NOP

NOP

CLRSDA

NOP

NOP

CLRSCL

RET

;终止信号

STP:

CLRSDA

SETBSCL

NOP

NOP

SETBSDA

NOP

NOP

CLRSDA

CLRSCL

RET

;发应答位"0"

ASK:

CLRSDA

SETBSCL

NOP

NOP

CLRSCL

SETBSDA

RET

;发非应答位"1"

NAS:

SETBSDA

SETBSCL

NOP

NOP

CLRSCL

CLRSDA

RET

;应答位检查,正常应答时F0标志为0,否则F0为1

ASKC:

SETBSDA

SETBSCL

CLRF0

MOVC,SDA

JNCCEND;应答位为1,不置位F0

SETBF0

CEND:

CLRSCL

RET

;发送到24c02一个字节,预发送的数据存于A中

WRB:

MOVR0,#08H

LOOP0:

RLCA

MOVSDA,C

NOP

NOP

SETBSCL

NOP

NOP

NOP

NOP

CLRSCL

DJNZR0,LOOP0

RET

;--------------------------------*

;*函数名称:

WRNB*

;*功能描述:

对E2PROM指定的页写入SNUM个字节的数据*

;*调用函数:

STAWRBASKCSTP*

;*入口条件:

SLAW--I2C器件写地址*

;*R1-片内RAM发送数据缓冲区的首地址*

;--------------------------------*

WRNB:

LCALLSTA

MOVA,SLAW

LCALLWRB;写器件的写地址

LCALLASKC

JBF0,WRNB

WLP:

;向E2PROM写入SNUM个字节的数据

MOVA,@R1

LCALLWRB

LCALLASKC

JBF0,WRNB

INCR1

DJNZSNUM,WLP

LCALLSTP

RET

END

六、思考练习题

1、请说说I2C总线的优点有哪些?

2、编写程序,将自己学号写入24C02地址为30H开始的存储单元。

3、编写程序,将写入24C02的数据读出。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 家庭教育

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2