




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文件 2001/09/18*/*调用方式:Void WriteIlC_24CXX(enum EEPRoMTYFeePromtype,unsignedint address,unsignedChar ddata) 2001/09/18函数说明:对于IlC芯片24CXX在指定地址 address写入一个字节 ddata调用方式:UnSigned Char ReadIIC_24CXX(enum EEPROMTYPeepromtype,unsignedint address) 2001/09/18函数说明:读取IIC芯片24CXX指定地址address的数据。*/#i nclude #i nclude
2、 Sbit SCL= P27;Sbit SDA= P26;enum EEPROMTYPEIIC24C01,IIC24C01A,IIC24C02,IIC24C04,IIC24C08,IIC24C16,IIC24C32,IIC24C64,IIC24C128,IIC24C256;en Um EEPROMTYPE eepromtype;delay()UnSigned int i=1200;while(i-);/*调用方式: Write_8bit(unsigned Char Ch) 2001/03/23函数说明:内函数,私有,用户不直接调用。*/void Write_8bit(u nsig ned Ch
3、ar Ch)unsigned char i=8;SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_(); while (i-)SDA=(bit)(ch&0x80); _nop_();_nop_();_nop_();_nop_();_nop_();chAT24C02 是美国 ATMEL 公司的低功耗 CMOS 串行 EEPROM ,它是内含 256 8 位存储空间,具有工作电压宽()、擦写次数多(大于 10000次)、写入速度快(小于10ms)等特点。AT24C02 的 1 、 2、 3 脚是三条地址线,用于确定芯片的硬件地址。在 AT89C51 试验开发 板
4、上它们都接地,第 8脚和第 4脚分别为正、负电源。第 5脚 SDA 为串行数据输入 /输出,数 据通过这条双向 I2C 总线串行传送,在 AT89C51 试验开发板上和单片机的连接。第 6 脚 SCL 为串行时钟输入线,在 AT89C51 试验开发板上和单片机的连接。 SDA 和 SCL 都需要和正电源间各接一个的电阻上拉。第7 脚需要接地。 24C02 中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动 加 1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的 写入时间,一次操作可写入多达 8 个字节的数据。;这是将 0600H 地址中以下的 8 个数据
5、写到 24C02 的 01H 为首址单元中去的汇编程序 ORG 0000HSCL BIT ; 定义 24C02 的串行时钟线SDA BIT;定义24C02的串行数据线LJMP STARTSTART:LCALL STAR; 调用MOV R2,#08H; 一个数据有 8 位MOV DPTR,#0600H; 定义源数据的位置LOOP:MOV A,#00HMOVC A,A+DPTRLCALL SDATALCALL ACKJC LOOPINC DPTRDJNZ R2,LOOPLCALL STOP; 调用停止子程序STAR:SETB SDASETB SCLNOPNOPNOPNOPCLR SDANOPNOP
6、NOPNOPCLR SCLRETSDATA:MOV R0,#08HLOOP0:RLC AMOV SDA,CNOPNOPSETB SCLNOPNOPNOPNOPCLR SCLDJNZ R0,LOOP0RETACK:SETB SDANOPNOPSETB SCLNOPNOPNOPNOPMOV C,SDACLR SCLRETSTOP:CLR SDANOPNOPNOPNOPSETB SCLNOPNOPNOPNOPSETB SDANOPNOPNOPNOPRETORG 0600HDB 0A0H,10H,01H,02H,03H,04H,05H,06HEND 读写子程序如下:000);写串行 E2PROM 子程
7、序 EEPW; R3= (命令 1010+器件 3位地址 +读/写。 器件地址一个芯片,是; (R4)= 片内字节地址; (R1)= 欲写数据存放地址指针; (R7)= 连续写字节数 nEEPW: MOVP1,#0FFHCLR;发开始信号MOVA,R3;送器件地址ACALLSUBSMOVA,R4;送片内字节地址ACALLSUBSAGAIN: MOV A,R1ACALL SUBS DJNZ CLR ACALL SETB ACALL SETB RETR1;调发送单字节子程序 INC R7,AGAIN; 连续写 n 个字节;SDA 置 0, 准备送停止信号 DELAY ; 延时以满足传输速率要求 ;
8、发停止信号SUBS: MOVR0,#08H ; 发送单字节子程序DELAYLOOP: CLR RLC A MOV ,C NOP SETBACALL DELAY DJNZ R0,LOOP ; 循环 8 次送 8 个 bit CLRACALL DELAY SETB;判应答到否,未到则等待REP: MOV C, JC REP CLR RETDELAY: NOP NOP RET ;读串行 E2PROM 子程序 EEPR000);(R1)= 欲读数据存放地址指针; R3= (命令 1010+器件 3位地址 +读/写。 器件地址一个芯片,是;(R4)= 片内字节地址;(R7)= 连续读字节数EEPR: M
9、OVP1,#0FFHCLR;发开始信号MOVA,R3;送器件地址ACALL SUBS;调发送单字节子程序MOVA,R4;送片内字节地址ACALL SUBSMOVP1,#0FFHCLR;再发开始信号MOVA,R3SETB;发读命令ACALL SUBSMORE: ACALL SUBR MOV R1,AINC R1DJNZ R7,MORECLRACALL DELAYSETBACALL DELAYSETB;送停止信号RETSUBR: MOV R0,#08H ; 接受单字节子程序LOOP2: SETBACALL DELAYMOV C,RLC ACLRACALL DELAYDJNZ R0,LOOP2CJN
10、E R7,#01H,LOW SETB;若是最后一个字节置A=1AJMP SETOKLOW: CLR;否则置 A=0SETOK: ACALL DELAYSETBACALL DELAYCLRACALL DELAYSETB;应答毕 ,SDA 置 1RET 程序中多处调用了 DELAY 子程序 (仅两条 NOP 指令 ),这是为了满足 I2C 总线上数据 传送速率的要求,只有当 SDA 数据线上的数据稳定下来之后才能进行读写(即 SCL 线发出正脉冲 )。另外,在读最后一数据字节时,置应答信号为“1”,表示读操作即将完成。下面是本人编写的源程序,已经调试成功,下载就可以使用,程序编写的不是很规范 ,希
11、望各位读者批评指正! !/* 模块名称: 24C02 的读写* 编写人: bradley 日期 2005 5 1* 修改人: bradley* 功能描述:将 8 字节数据写入 24C02 中,然后再读出来送 P1 口显示*其他说明:本程序是采用24C02的页面写入连续读写8字节数据* 版本: keil#in elude #in ClUde #define UChar UnSigned Char#define Uint UnSigned int# i ncUde # i ncUde # i ncUde SbitSCI=P35;*IAD- Al. A2.U iilnu-i JA-1rjWtM Il
12、 fj Il .H-i ,Pifi 护VUC I M -A (W MLB24U02B 分士 EdJtn l c51. -J(Jnl2接8位数码管的显示位线。将数码管部份的显示位口JP8接到CPU部份的P2 口 JP52.3用一根2PIN数据线一端插入 CPU部分JP53 (P3 口)的,另外一端插入24C02部分的控制端JP3&烧写后用手按复位键可以看到数码管每按一下加一。实验馄储jR机次敬买验ir5 I. CIFSDA24 EQUSETB SCLK24SCLK24 EQUMOV C,SDA24ORG OoooHMOV ,CAJMPMAINCLR SCLK24ORG 0030HDJNZ R7,
13、RD000MAIN:CLR;打开写保护RETMOVDPTR,#TABWT24:PUSH ACC;写入 24C02 程序:MoVA,#OoH读地址SETB SDA24LCALLRD24CLR SCLK24CJNEA,#10,TTCALL START24TT:JNC TT1MOV A,#0A0HAJMPTT2CALL SHIFT8TT1:MOVA,#00CALLACKTT2:MOV30H,APOP ACCMOVCA,A+DPTRCALL SHIFT8CLR;开数码管CALLACKMOVP0,A;送显示MOV A,BMOVA,30HCALL SHIFT8INC ACALLACKMOVB,ACALL
14、STOPMOVA,#00HCALL DELAY2LCALLWT24RETAJMP$TAB: DB28H,7EH,0A2H,62H,74H,61H,21H,7AH,20H,60HRD24: PUSH ACC;读 24C02 子程序。SETB SDA24CLR SCLK24CALL START24;启动MoV A,#0A0HCALL SHIFT8;移位CALL ACK 响应POP ACCCALL SHIFT8CALLACKCALL START24MOV A,#0A1HSTART24:CLR SDA24;开始条件SETB SDA24SETB SCLK24CLR SDA24CLR SCLK24RETSTOP:CLR SDA24;停
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数据隐私审计的重要性及流程试题及答案
- 中级审计师考试系统构建与试题及答案的整合
- 高效学习试题及答案助力建造师考试
- 初级审计师专题复习试题及答案
- 消防安全制度建设的必要性思考试题及答案
- 维修人员职能和职责试题及答案
- 高效率工具培训体系构建
- 掌握核心概念审计师试题及答案
- 高级审计师考试影响因素及试题及答案
- 外语水平测试数据分析的试题及答案
- 2025年小学科学考调试题及答案
- 中华人民共和国传染病防治法培训课件
- 甘特图培训课件
- 舞弊检测中的深度学习特征提取-深度研究
- 第3课《在北京的金山上》-课件 花城版音乐三年级下册
- SCR脱硝催化剂体积及反应器尺寸计算表
- 2025年度麻醉科人才培养计划
- 2025年春新人教版语文一年级下册教学课件 14 文具的家
- 2025-2031年中国电竞俱乐部行业市场需求预测及投资规划建议报告
- 学校环境对儿童心理健康的积极影响
- 2025年中国石油集团招聘笔试参考题库含答案解析
评论
0/150
提交评论