当前位置:首页 > 单片机 > 单片机
[导读]/*------------------------------------------------------------------------------为了安全起见,程序中很多NOP是冗余的,希望读者能进一步精简,但必须经过验证。 Atmel 24C01 比较特殊,为简约型. 51晶振为11.059

/*------------------------------------------------------------------------------
为了安全起见,程序中很多NOP是冗余的,希望读者能进一步精简,但必须经过验证。
Atmel 24C01 比较特殊,为简约型.
51晶振为11.0592MHz
〖参考〗http://www.c51bbs.com
〖版本〗V1.00A Build 0918
-----------------------------------------------------------------------------*/

#include "reg51.h"
#include "intrins.h"

sbit SCL= P1^5;
sbit SDA= P1^4;

delay()
{
unsigned int i=1200;
while(i--);
}

/*----------------------------------------------------------------------------
调用方式:write_8bit(unsigned char ch)﹫2001/03/23
函数说明:内函数,私有,用户不直接调用。
-------------------------------------------------------------------------------
*/
voidwrite_8bit(unsigned char ch)
{
unsigned char i=8;
SCL=0;
_nop_();_nop_();_nop_();_nop_();_nop_();
while (i--)
{
SDA=(bit)(ch&0x80);
_nop_();_nop_();_nop_();_nop_();_nop_();
ch<<=1;
SCL=1;
_nop_();_nop_();_nop_();_nop_();_nop_();
SCL=0;
_nop_();_nop_();_nop_();_nop_();_nop_();
}
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
}

/*------------------------------------------------------------------------------
调用方式:void ACK(void)﹫2001/03/23
函数说明:内函数,私有,用户不直接调用。
-------------------------------------------------------------------------------
*/
void ACK(void)
{
unsigned char time_1;
SDA=1;
SCL=0;
_nop_();_nop_();_nop_();_nop_();_nop_();
SCL=1;
time_1=5;
while(SDA) {if (!time_1) break;} //ACK
SCL=0;
_nop_();_nop_();_nop_();_nop_();_nop_();
}

unsigned char ReadIIC_24C01(unsigned char address)
{
unsigned char ddata=0;
unsigned char i=8;

SCL=1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); //Tsu:STA
SDA=0;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //Thd:STA
SCL=0; //START

write_8bit( (address<<1) | 0x01); //写页地址和操作方式
ACK();

while (i--)
{
SDA=1;
ddata<<=1;
SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=1;
if (SDA) ddata|=0x01;
}

SCL=0;_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
SDA=0;_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
SDA=1; //STOP
delay();
return ddata;

}

void WriteIIC_24C01(unsigned char address,unsigned char ddata)
{
SCL=1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); //Tsu:STA
SDA=0;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //Thd:STA
SCL=0; //START

write_8bit( (address<<1) & 0xfe); //写页地址和操作方式,对于24C32-24C256,page不起作用
ACK();
write_8bit(ddata); //发送数据
ACK();
SDA=0;
_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
SDA=1; //STOP
delay();
}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京2023年9月5日 /美通社/ -- 浪潮云海在2023年5月正式发布新一代InCloud Rail G7系列超融合一体机,其内置的InCloud dSAN超融合存储组件,基于新一代的硬件平台设计,支持全栈RDMA协...

关键字: IO 读写 软件 测试

北京2023年2月23日 /美通社/ -- 晴空万里、群星璀璨的丽江高美古,在纳西语中的释义是"天气好、星星多、离天最近的地方"。这里的年平均晴天超200天,视宁度达到世界优良台址的水平,大气洁净透明...

关键字: 分布式 望远镜 节点 读写

深圳2022年12月26日 /美通社/ -- 为更好地满足超大规模的数据应用,忆联发布数据中心级NVMe SSD -- UH711a以及UH711a E3.S形态。该系列产品使用自研控制器与长江存储128L 3...

关键字: SSD 数据中心 IO 读写

深圳2022年11月30日 /美通社/ -- 不久前,专业存储研究机构Forward Insights发布了新版《中国固态硬盘市场》报告,本次报告包含了其对2021年中国固态硬盘市场份额统计分析。在中国Clie...

关键字: CLIENT OEM SSD 读写

深圳2022年11月11日 /美通社/ -- 2022年11月9日,由百易传媒(DOIT)主办,以"数据觉醒新时代"为主题的2022中国数据与存储峰会在北京举行,并重磅发布了《年度评选之百易风云榜单》...

关键字: 固态硬盘 读写 SSD PHOENIX

(全球TMT2022年10月31日讯)10月26日,由IDC中国主办的2022 第七届IDC中国数字化转型年度盛典在北京举行。忆联携旗下存储产品及解决方案首度亮相本次IDC DX年度盛典。忆联分享了在存储领域的最新技术...

关键字: IDC 数字化 读写 固态硬盘

深圳2022年10月28日 /美通社/ -- 10月26日,由IDC中国主办的2022 第七届IDC中国数字化转型年度盛典在北京盛大举行,IDC资深研究团队、与会企业家以及业界专家学者们汇聚一堂,共同探讨数字化...

关键字: IDC 数字化 数据存储 读写

深圳2022年9月14日 /美通社/ -- 近日,忆联旗下企业级固态硬盘UH811a/UH831a系列经过微软中国技术中心的各项严格测试,已正式通过了微软WHQL认证。标志着忆联UH811a/UH831a系列与Windo...

关键字: 微软 硬件 SSD 读写

深圳2022年9月8日 /美通社/ -- 9月5-6日,由开放数据中心委员会(ODCC)主办的"2022开放数据中心峰会"于北京国际会议中心隆重召开。作为ODCC白金会员单位,忆联受邀出席本次峰会,一...

关键字: DC 固态硬盘 读写 GB

北京2022年8月26日 /美通社/ -- 8月25日,由国际权威财经杂志《亚洲银行家》主办的"中国未来金融峰会"在北京成功举办;华为携手中国银行荣获2022年度金融技术与平台奖项"最佳银行...

关键字: 华为 数据中心 读写 PS
关闭
关闭