当前位置: 移动技术网 > IT编程>开发语言>.net > 51库-DS1302驱动程序(四-一)

51库-DS1302驱动程序(四-一)

2020年08月12日  | 移动技术网IT编程  | 我要评论
Module_Lib该文件夹下存放各种驱动文件,以单独文件夹内的方式体现。AT24C02AT24CXX.hEEPROM驱动头文件#ifndef __AT24CXX_H#define __AT24CXX_H#include "sim_i2c.h"#include "core51_uart.h"//-----------EEPROM的地址定义-----------//#define AT24C02_ADD 0xA0void At24c02Write(unsigned char ad

Module_Lib

该文件夹下存放各种驱动文件,以单独文件夹内的方式体现。

在这里插入图片描述

AT24C02

AT24CXX.h

EEPROM驱动头文件

#ifndef __AT24CXX_H
#define __AT24CXX_H

#include "sim_i2c.h"
#include "core51_uart.h"

//-----------EEPROM的地址定义-----------//
#define AT24C02_ADD 0xA0

void At24c02Write(unsigned char addr,unsigned char dat);		//往24c02的一个地址写入一个数据
unsigned char At24c02Read(unsigned char addr);					//读取24c02的一个地址的一个数据
void Test_AT24C02_UART(void);											//AT24C02测试程序

#endif

AT24CXX.c

EEPROM驱动源文件

#include "at24cxx.h"

/*******************************************************************************
* 函 数 名         : At24c02Write
* 输    入         : addr 地址  dat  数据
* 输    出         :	空
* 函数功能		    : 往24c02的一个地址写入一个数据
* 详细描述			 :	寻址范围为00-0xFF  2K Bit 32页 每页 8 Byte  共256Byte
*******************************************************************************/
void At24c02Write(unsigned char addr,unsigned char dat)
{
	I2c_Start();
	I2c_SendByte(AT24C02_ADD);					//发送写器件地址
	I2c_SendByte(addr);							//发送要写入内存地址
	I2c_SendByte(dat);							//发送数据
	I2c_Stop();
}

/*******************************************************************************
* 函 数 名         : At24c02Read
* 输    入         : 需要读取的地址 数值为 0x00-0xFF
* 输    出         :	读出的数据
* 函数功能		    : 读取24c02的一个地址的一个数据
* 详细描述			 :	发送器件地址加1 为读取模式
*******************************************************************************/
unsigned char At24c02Read(unsigned char addr)
{
	unsigned char num;
	
	I2c_Start();
	I2c_SendByte(AT24C02_ADD); 				//发送写器件地址
	I2c_SendByte(addr); 							//发送要读取的地址
	I2c_Start();
	I2c_SendByte(AT24C02_ADD + 1); 			//发送读器件地址
	num=I2c_ReadByte(); 							//读取数据
	I2c_Stop();
	
	return num;	
}

/*******************************************************************************
* 函 数 名         : Test_AT24C02_UART
* 输    入         : 空
* 输    出         :	空
* 函数功能		    : AT24C02测试程序
* 详细描述			 :	按下复位键或者断电重启单片机打印在串口助手上的计数值会自加1
*******************************************************************************/
void Test_AT24C02_UART(void)
{
	unsigned char Count = 0;
	
	Count = At24c02Read(0);				//读取保存好的值
	
	#if Uart
	UART1_Send_Data(&Count,1);
	#endif
	
	Count ++;								//修改计数值
	At24c02Write(0,Count);				//保存计数值
	
	while(1);
}

外部链接

码云下载:https://gitee.com/LWTDZ/Core8051.git
店铺地址:https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-22129052348.16.6b222269wKu2dH&id=615384296160
QQ群(STM32嵌入式Linux&单片机):950822175

本文地址:https://blog.csdn.net/qq_34390075/article/details/107941054

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网