- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AT24CO4中文资料
HYPERLINK javascript:; 编辑本段 AT24C04 特点
AT24C04,采用DIP封装方式。
存储器配置:512 x 8bit封装类型:DIP针脚数:8工作温度范围:-40°C to +85°C封装类型:DIP器件标号:24器件标记:24C04存储器容量:4Kbit存储器电压 Vcc:2.5V存储器类型:EEPROM
工作温度最低:-40°C工作温度最高:+85°C接口类型:Serial, I2C电压, Vcc:5.5V电源电压 最大:5.5V电源电压 最小:1.8V芯片标号:24C04表面安装器件:通孔安装逻辑功能号:24C04频率:1MHz
1、AT24C04介绍
关于I2C的介绍,这里就不用说了,直接介绍24C04了。24C04是4K位串行CMOS E2PROM。
引脚的认识:SCL 串行时钟引脚
SDA 串行数据/地址
A0、 A1、 A2 器件地址输入端
WP 写保护
(WP 管脚连接到Vcc, 所有的内容都被写保护(只能读)。当WP 管脚连接到Vss 或悬空,允许器件进行正常的读/写操作。)
2、AT24C04之准备工作
首先,我们先查看一下实验板上面的接线图。如图1所示。
图1 24c04连接图
我们要注意的第一点是器件地址全部是0,即接地处理。第二点是读写保护WP接地,意味着我们可以随意存取。第三点是我们要用到的引脚连接到了P3^6和P3^7上。在这里还要提醒一下,就是引脚上一定要有上拉电阻!阻值在470~1k都可以的,具体的数值可以参考相关的手册。
在程序里我们需要先做以下定义:
sbit AT24C04_SCL=P3^7;
sbit AT24C04_SDA=P3^6;
在写这个程序的时候,要使用到键盘,不用太多按键,我们暂时只用四个。把实验板上面的跳线JP8接到“-”端上,使第一行的按键变为独立键盘就可以了。线路图如图2所示。
图2 键盘部分电路图
键盘这部分我就不说了吧,直接附上我用到的这部分程序,在我的程序中,并没有判断按键是否松开,而是使用的延时,这样的好处是一直按着按键,数据会一直在变化,要不然,频繁的按真的很累人。
HYPERLINK \l _按键程序__ 转到按键程序
对于里面用到的延时函数,一个是US级延时函数,一个是ms级延时函数,分别调用一下是延时2us和1ms。
对于显示部分吧,使用的就是LCD1602显示了。这部分程序参见这里。
HYPERLINK \l _液晶显示程序__ 显示程序
说完了这些,准备的就差不多了,我们可以对着PDF写AT24C04程序了。
3、AT24C04之小试牛刀
我们打破PDF中的介绍顺序,按照实际写程序时的顺序分开分析。
第一项是我们要用她,那就要知道她是怎么开始吧?这就是I2C总线时序中的开始和停止。时序图如下。
图3 开始停止时序
有一个需要注意的地方,就是当SCL为高电平时,所有的SDA的变化都会被认为是开始或停止信号。所以,我们必须注意,在对SDA进行操作之前,一定要注意SCL的值。
例如在我们写开始信号之前,我们没法判断两个信号的具体电位,那么我们就要做最坏的打算。首先SDA=1,然后SDA=0,此间要让SCL保持在高电平。为保证SCL为高电平,我们要用SCL=1指令使SCL保持在高电平。SCL放在什么位置就成了重点。如果我们SDA变为高电平之前,这样却成了SCL=1后SDA=1,形成了停止信号!!这个是我们要避免的,那么我们就要让SDA变化的时候,全部避开SCL为高电平段。程序如下。
void I2C_START()
{
//AT24C04_SCL=0;delayus(1);
//这样做有些繁琐,我们可以直接不用,因为我们跳出
//所有的子函数时,都会让SCL=0!!!
AT24C04_SDA=1;delayus(1);//注意先后顺序
AT24C04_SCL=1;delayus(1);
AT24C04_SDA=0;delayus(1);//下降沿开始
AT24C04_SCL=0;delayus(1);
}
我们以同样的思维,可以得到停止子函数,如下。
void I2C_STOP()
{
AT24C04_SCL=0;delayus(1);
AT24C04_SDA=0;delayus(1);
AT24C04_SCL=1;delayus(1);
AT24C04_SDA=1;delayus(1);//上升沿停止
}
下面我们来看一下写的时序。
图4 写时序
时序的第一部分给我们展现了一个第八位数据写完后的情况,也就是说要有一个ACK应答信号。具体关于ACK应答信号的内容,可以参考器件手册。
第
您可能关注的文档
最近下载
- 2025青岛版小学科学三年级上册1-5《制作动物分类图册》(教学课件)(新教材).pptx
- 标准图集-17J008 挡土墙(重力式、衡重式、悬臂式) 无水印.pdf VIP
- JJF(陕) 048-2021 一体化振动变送器校准规范.docx VIP
- 退药申请单.doc VIP
- 2025年中国镁铝尖晶石行业投资前景及策略咨询研究报告.docx
- 农牧民培训国家通用语言.pptx
- 2022年度国铁集团质量安全红线检查迎检实施方案(最终版) (2).pdf VIP
- 六年级数学上册第一单元圆基础测试题北师大.doc VIP
- (高清版)B/T 42584-2023 信息化项目综合绩效评估规范.pdf VIP
- 《建筑给水复合管道工程技术规程》CJJ@T155-2011.pdf VIP
文档评论(0)