使用AT24C02芯片做51单片机的外存储器,并且要求最多存储5000这个数字,求代码

时间: 2023-07-15 19:11:14 浏览: 48
以下是使用AT24C02芯片做51单片机的外存储器,最多存储5000这个数字的代码: ```c #include <reg52.h> #include <intrins.h> #define SDA P1_1 // SDA引脚连接P1.1口 #define SCL P1_0 // SCL引脚连接P1.0口 sbit WP = P2^7; // WP引脚连接P2.7口 sbit SDA_OUT = P1^1; // SDA口输出模式 sbit SDA_IN = P1^1; // SDA口输入模式 void I2C_Start(void); void I2C_Stop(void); bit I2C_SendByte(unsigned char dat); unsigned char I2C_ReadByte(void); void AT24C02_Write(unsigned char addr, unsigned char dat); unsigned char AT24C02_Read(unsigned char addr); void main() { unsigned int num = 5000; unsigned char high_byte, low_byte; high_byte = num / 256; // 分解高8位 low_byte = num % 256; // 分解低8位 AT24C02_Write(0x00, high_byte); // 将高8位写入AT24C02 AT24C02_Write(0x01, low_byte); // 将低8位写入AT24C02 while (1) { high_byte = AT24C02_Read(0x00); // 从AT24C02中读取高8位 low_byte = AT24C02_Read(0x01); // 从AT24C02中读取低8位 num = high_byte * 256 + low_byte; // 合成数字 if (num == 5000) { // 进行相应的操作 } } } void I2C_Delay(void) // I2C总线延时函数 { unsigned char i; for (i = 0; i < 100; i++); } void I2C_Start(void) // I2C总线起始信号函数 { SDA_OUT = 1; I2C_Delay(); SCL = 1; I2C_Delay(); SDA_OUT = 0; I2C_Delay(); SCL = 0; I2C_Delay(); } void I2C_Stop(void) // I2C总线停止信号函数 { SDA_OUT = 0; I2C_Delay(); SCL = 1; I2C_Delay(); SDA_OUT = 1; I2C_Delay(); } bit I2C_SendByte(unsigned char dat) // I2C总线发送数据函数 { unsigned char i; bit ack; for (i = 0; i < 8; i++) { if (dat & 0x80) SDA_OUT = 1; else SDA_OUT = 0; dat <<= 1; I2C_Delay(); SCL = 1; I2C_Delay(); SCL = 0; I2C_Delay(); } SDA_OUT = 1; I2C_Delay(); SCL = 1; I2C_Delay(); ack = SDA_IN; SCL = 0; I2C_Delay(); return ack; } unsigned char I2C_ReadByte(void) // I2C总线读取数据函数 { unsigned char i, dat = 0; for (i = 0; i < 8; i++) { dat <<= 1; SCL = 1; I2C_Delay(); if (SDA_IN) dat |= 0x01; SCL = 0; I2C_Delay(); } return dat; } void AT24C02_Write(unsigned char addr, unsigned char dat) // AT24C02芯片写入数据函数 { I2C_Start(); I2C_SendByte(0xA0); I2C_SendByte(addr); I2C_SendByte(dat); I2C_Stop(); } unsigned char AT24C02_Read(unsigned char addr) // AT24C02芯片读取数据函数 { unsigned char dat; I2C_Start(); I2C_SendByte(0xA0); I2C_SendByte(addr); I2C_Start(); I2C_SendByte(0xA1); dat = I2C_ReadByte(); I2C_Stop(); return dat; } ``` 注意:以上代码仅供参考,具体实现还需要根据具体的硬件电路和AT24C02芯片的规格书进行调整和优化。

相关推荐

最新推荐

recommend-type

MSP430硬件I2C使用方法——以BH1710和AT24C02为例

硬件的I2C控制器终于调出来了,这些天一直在钻死胡同,其实最好的参考资料还是TI官方提供的。代码参考了MSP430的User’s Guide和Application Note,下面提供IAR工程并做简要解释。
recommend-type

at24c256中文手册.doc

AT24C256是ATMEL公司256kbit串行电可擦的可编程只读存储器,8引脚双排直插式封装,具有结构紧凑、存储容量大等特点,可以在2线总线上并接4片该IC,特别适用于具有高容量数据储存要求的数据采集系统。AT24C256采用SOP...
recommend-type

AMPIRE12864液晶的应用及AT24C02与单片机通信在Proteus中的仿真

AMPIRE12864液晶的应用及E2PROM AT24C02与单片机通信在Proteus中的仿真
recommend-type

LGM12641BS1R液晶的应用AT24C02与单片机通信在proteus中的仿真

LGM12641BS1R液晶的应用及E2PROM AT24C02与单片机通信在proteus中的仿真
recommend-type

STC89C51单片机EEPROM读写例程

原来STC单片机本身就有EEPROM的,可惜发现晚了点,不然很多同学的毕设上就可以省块24C02,也不用去搞那个IIC程序了。 下午花了点时间看了资料,然后写了个例子程序,本程序在STC89C52RC上测试,运行成功。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【实战演练】MATLAB用遗传算法改进粒子群GA-PSO算法

![MATLAB智能算法合集](https://static.fuxi.netease.com/fuxi-official/web/20221101/83f465753fd49c41536a5640367d4340.jpg) # 2.1 遗传算法的原理和实现 遗传算法(GA)是一种受生物进化过程启发的优化算法。它通过模拟自然选择和遗传机制来搜索最优解。 **2.1.1 遗传算法的编码和解码** 编码是将问题空间中的解表示为二进制字符串或其他数据结构的过程。解码是将编码的解转换为问题空间中的实际解的过程。常见的编码方法包括二进制编码、实数编码和树形编码。 **2.1.2 遗传算法的交叉和
recommend-type

openstack的20种接口有哪些

以下是OpenStack的20种API接口: 1. Identity (Keystone) API 2. Compute (Nova) API 3. Networking (Neutron) API 4. Block Storage (Cinder) API 5. Object Storage (Swift) API 6. Image (Glance) API 7. Telemetry (Ceilometer) API 8. Orchestration (Heat) API 9. Database (Trove) API 10. Bare Metal (Ironic) API 11. DNS
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。