完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
#include #define uchar unsigned char ***it SCL=P3^4; //定义串行时钟线 ***it SDA=P3^5; //定义串行应答线 void delay(int ms) { while(ms--); } void init_24C02() //初始化24C02 { SCL=1; _nop_(); //延时一个机器周期 SDA=1; _nop_(); } void start() { SDA=1; _nop_(); SCL=1; _nop_(); SDA=0; //当时钟线为高电平时数据线拉低,AT24C02开始工作 _nop_(); SCL=0; //时钟线清零便于后续操作 _nop_(); } void stop() //停止信号 { SDA=0; _nop_(); SCL=1; _nop_(); SDA=1; //当时钟线为高电平时,数据线拉高AT24C02停止 _nop_(); } void Write_Byte_24C02(uchar date) //写一个字节的数据 { uchar i; for(i=0;i<8;i++) //传送八位数据 { date=date<<1; //每次传送一位 SCL=0; _nop_(); SDA=CY; _nop_(); SCL=1; _nop_(); //左移一位,将发送的最高位舍弃 } SCL=0; _nop_(); SDA=1; _nop_(); //等待AT24C02的应答信号 } uchar Read_Byte_24C02() //读取一个字节数据 { uchar i,j,result; SCL=0; _nop_(); SDA=1; for(i=0;i<8;i++) //每次读取一位 { _nop_(); SCL=1; _nop_(); if(SDA==1) //读出高电平 j=1; else //读出低电平 j=0; result=(result<<1)|j; //将读出来的数值放在最低位 SCL=0; } _nop_(); return result; //返回读出来的数值 } void clock() //等待AT24C02的应答 { uchar i=0; SCL=1; _nop_(); while((SDA==1)&&(i<255)) //等待拉低做出应答(如果不应答则在一定时间之后跳出,避免程序死在此处) i++; SCL=0; _nop_(); } uchar Read_24C02(uchar address) { uchar ReadData; start(); Write_Byte_24C02(0xa0); //写入写数据的命令 clock(); Write_Byte_24C02(address); //写入地址 clock(); start(); //将数据线和时钟线拉低 Write_Byte_24C02(0xa1); //写入读数据命令 clock(); ReadData=Read_Byte_24C02(); stop(); delay(50); return ReadData; } void Write_24C02(uchar address,uchar date) //在指定地址处写入数据 { start(); //开始AT24C02 Write_Byte_24C02(0xa0); //写入写数据的命令 clock(); Write_Byte_24C02(address); //写入地址 clock(); Write_Byte_24C02(date); //写入读数据的命令 clock(); stop(); //停止24C02 delay(50); } void main() { uchar i; init_24C02(); Write_24C02(0x00,0x00); //将数据0写到AT24C02的0x00地址上面 delay(500); i=Read_24C02(0); while(1); }
|
|
相关推荐
1个回答
|
|
你是如何看的现象没反应的?
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
串口发送中断中对发送I/O口定义为GPIO输出,出现发送数据不完整,缺少2个字节,求解答
187 浏览 0 评论
630 浏览 0 评论
【xG24 Matter开发套件试用体验】10-Bluetooth示例1
723 浏览 0 评论
781 浏览 0 评论
【xG24 Matter开发套件试用体验】power specification电源规格参数配置
599 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10834 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-24 05:14 , Processed in 0.469295 second(s), Total 70, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191