- 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中文资料
编辑本段 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
4K位串行CMOS E2PROM引脚的认识:SCL 串行时钟SDA 串行数据/地址A0、 A1、 A2 器件地址输入端WP 写保护(WP 管脚连接到Vcc, 所有的内容都被写保护(只能读)。当WP 管脚连接到Vss 或悬空,允许器件进行正常的读/写操作。)
图1 24c04连接图
我们要注意的第一点是器件地址全部是0,即接地处理。第二点是读写保护WP接地,意味着我们可以随意存取。第三点是我们要用到的引脚连接到了P3^6和P3^7上。在这里还要提醒一下,就是引脚上一定要有上拉电阻!阻值在470~1k都可以的,具体的数值可以参考相关的手册。
在程序里我们需要先做以下定义:
sbit AT24C04_SCL=P3^7;
sbit AT24C04_SDA=P3^6;
在写这个程序的时候,要使用到键盘,不用太多按键,我们暂时只用四个。把实验板上面的跳线JP8接到“-”端上,使第一行的按键变为独立键盘就可以了。线路图如图2所示。
图2 键盘部分电路图
键盘这部分我就不说了吧,直接附上我用到的这部分程序,在我的程序中,并没有判断按键是否松开,而是使用的延时,这样的好处是一直按着按键,数据会一直在变化,要不然,频繁的按真的很累人。
转到按键程序
对于里面用到的延时函数,一个是US级延时函数,一个是ms级延时函数,分别调用一下是延时2us和1ms。
对于显示部分吧,使用的就是LCD1602显示了。这部分程序参见这里。
显示程序
说完了这些,准备的就差不多了,我们可以对着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应答信号的内容,可以参考器件手册。
第二部分是从开始到停止。至于时序图中给出的时间我们可以不用考虑。只需要记住,当SDA变化时SCL为0,SDA变化完后,SCL在变为1来告知24C04接收数据线上的信号。具体的实现函数如下所示。
void I2C_Wdata(unsigned char data4)
{
unsigned char i;
unsigned char temp;
temp=data4;
for(i=0;
您可能关注的文档
最近下载
- 耳听眼看鼻嗅心动,学会领略自然之美--四年级语文上册第一单元“文学阅读与创意表达”学习任务群整体设计.docx VIP
- NBT10103风电场工程微观选址技术规范(2024).pdf VIP
- 2025-2026学年初中信息技术(信息科技)七年级上册川教版(2024)教学设计合集.docx
- 2024肠道微生物组研究白皮书-185页.doc VIP
- SYNTAX评分计算方法1.doc
- 商务经理招聘面试题(某大型国企)2025年精练试题精析.docx VIP
- 北京邮电大学1997年—2024年801通信原理真题及答案.pdf
- 2024-2025学年初中信息技术(信息科技)人教版(2024)八年级全一册教学设计合集.docx
- 商洪涛牵张成骨在颌面外科应用.ppt VIP
- 大客户经理招聘面试题(某大型国企)2025年精练试题解析.docx VIP
文档评论(0)