基于STC12C5A60S2系列1T 8051单片读写掉电保存数据IIC总线器件AT24C02多字节并显示在液晶显示器LCD1602上应用

基于STC12C5A60S2系列1T 8051单片读掉电保存数据IIC总线器件AT24C02本身器件地址码并显示在液晶显示器LCD1602上应用 DDRAM : 数据显示随机存储器 液晶显示器显示数据是来于数据显示随机存储器CGRAM:字符生成随机存储器 用户自定义字符会存储在字符生成存储器CGROM:字符库只读存储器 只提供字符 用液晶显示器显示这些字符总结:不管是CGRAM(字符生成随机存储器)自定义的字符 还是CGROM(字符库只读存储器)原有的字符 写进DDRAM(数据显示随机存储器)内存地址上 才能在液晶显示器屏幕显示出来#define uchar unsigned char//自定义无符号字符型为uchar。 阅读详情

STC12C5A60S2系列1T 8051单片机管脚图

在这里插入图片描述在这里插入图片描述

STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置

在这里插入图片描述

STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍

在这里插入图片描述在这里插入图片描述

液晶显示器LCD1602简单介绍

在这里插入图片描述在这里插入图片描述
DDRAM : 数据显示随机存储器 液晶显示器显示数据是来于数据显示随机存储器
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
CGRAM:字符生成随机存储器 用户自定义字符会存储在字符生成存储器
在这里插入图片描述
CGROM:字符库只读存储器 只提供字符 用液晶显示器显示这些字符

总结:不管是CGRAM(字符生成随机存储器)自定义的字符 还是CGROM(字符库只读存储器)原有的字符 写进DDRAM(数据显示随机存储器)内存地址上 才能在液晶显示器屏幕显示出来
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

IIC通信简单介绍

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

掉电保存数据芯片AT24C02简单介绍

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

通过液晶显示器LCD1602显示掉电保存数据芯片AT24C02内存地址上的多个数据

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
main.c

#include "STC12C5A60S2.h" 
#include "AT24C02.h" 
#include "AT24C02OfI2C.h" 
#include "LCD1602.h" 
#define uchar unsigned char//自定义无符号字符型为uchar
#define uint unsigned int//自定义无符号整数型为uint 
 void main()//主函数
{
   
   
//  uchar Data;//声明数据变量
//	uchar String[10];//声明字符串数组变量
//	LCD1602Init();//液晶显示器初始化函数
  uchar i;//声明循环变量
  uchar String[20];//声明字符串数组变量
  uchar StringCache[5];//声明字符串缓存数组变量
  LCD1602Init();//液晶显示器初始化函数
//  Data = ReadByteFromAT24C02(0x50,0x20);//单片机作为主机通过I2C通信从AT24C02内存地址0x20上读取一个字节 
//  LCD1602SetDisplayPosition(0,0);//液晶显示器LCD1602第一行第一个位置显示字符串
//  LCD1602WriteData(Data/100 + '0');//液晶显示器LCD1602写数据函数 显示百位数据 为什么数据分解后+'0'? 因为液晶显示器LCD1602要显示数据的字符串 而单片机运算字符串的字符是字符对应的ASCII码的二进制数值或十进制数值或十六进制数值 这里取单片机运算字符串的字符对应的ASCII码十进制数值 如:字符'0'的ASCII码十进制数是48 字符'1'的ASCII码十进制数是49 字符'2'的ASCII码十进制数是50 .... 字符'9'的ASCII码十进制数是57 而编译器对于'0'会自动视为是'0'的ASCII码 即ASCII码十进制数是48 举例:拿Data = 251来分解 则有:Data/100=2 Data/10%10=5 data%10=1 要把数据251转化成字符串为"251" 可拆开看成字符'2' '5' '1' 它们对应的ASCII码十进制数分别为50 53 49 而Data/100=2+'0'=2+48=50 Data/10%10=5+'0'=5+48=53 data%10=1+'0'=1+48=49 算出50 53 49这三个ASCII码十进制数分别对上字符'2' '5' '1'的ASCII码十进制数为50 53 49 这就是为什么数据分解后+'0'的原因
//  LCD1602WriteData(Data/10%10 + '0');//液晶显示器LCD1602写数据函数 显示十位数据
//  LCD1602WriteData(Data%10 + '0');//液晶显示器LCD1602写数据函数 显示个位数据
//  NumberTransformedToHexString(Data,String);//无符号字符型数据转化为十六进制数的字符串函数 无符号字符型数据要转化为十六进制数的字符串 可以把无符号字符型数据拆成高四位与低四位来分别转化成表示十六进制数的字符串两位数字符
//  LCD1602ShowString(5,0,String);//液晶显示器LCD1602第一行第六个位置显示字符串
//  Data++;//数据变量自加
//  WriteByteToAT24C02(0x50,0x20,Data);//写字节给AT24C02函数 单片机作为主机通过I2C通信在AT24C02内存地址0x20上写一个字节 
//  LCD1602SetDisplayPosition(0,1);//液晶显示器LCD1602第二行第一个位置显示字符串
//  LCD1602WriteData(Data/100 + '0');//液晶显示器LCD1602写数据函数 显示百位数据 为什么数据分解后+'0'? 解释同上
//  LCD1602WriteData(Data/10%10 + '0');//液晶显示器LCD1602写数据函数 显示十位数据
//  LCD1602WriteData(Data%10 + '0');//液晶显示器LCD1602写数据函数 显示个位数据
//  NumberTransformedToHexString(Data,String);//无符号字符型数据转化为十六进制数的字符串函数 无符号字符型数据要转化为十六进制数的字符串 可以把无符号字符型数据拆成高四位与低四位来分别转化成表示十六进制数的字符串两位数字符
//  LCD1602ShowString(5,1,String);//液晶显示器LCD1602第二行第六个位置显示字符串
  ReadMultiByteFromAT24C02(0x50,0x50,StringCache,5);//单片机作为主机通过I2C通信从AT24C02内存地址0x50上连续读取五个字节 
  StringCacheTransformedToHexString(StringCache,5,String);//字符串缓存数组中的无符号字符型数据转化为十六进制数的字符串函数
  LCD1602ShowString(0,0,String);//液晶显示器LCD1602第一行第一个位置显示字符串
  for(i = 0;i < sizeof(StringCache);i++)
 {
   
   
   StringCache[i] = StringCache[i] + 1;//字符串缓存数组中的数据变量自加
  }
  WriteMultiByteToAT24C02(0x50,0x50,StringCache,5);//单片机作为主机通过I2C通信从AT24C02内存地址0x50上连续写入五个字节	
  while(1);//主循环
 }  

AT24C02.c

#include "AT24C02.h" 
#include "AT24C02OfI2C.h" 
#define uchar unsigned char//自定义无符号字符型为uchar
#define uint unsigned int//自定义无符号整数型为uint
// uchar ReadByteFromAT24C02(uchar IcAddress,uchar Address)//读AT24C02字节函数
//{
   
   
//  uchar Data;//声明数据变量
//  I2CStar();//I2C启动函数
//  I2CWriteByte(IcAddress << 1);//I2C写字节函数 单片机通过I2C通信写匹配通信地址给AT24C02
//  I2CWriteByte(Address);//I2C写字节函数 单片机通过I2C通信写AT24C02的地址
//  I2CStar();//I2C启动函数
//  I2CWriteByte((IcAddress << 1) | 0x01);//I2C写字节函数 单片机通过I2C通信写入读AT24C02
//  Data = I2CReadByte();//I2C读字节函数含有的数据赋给数据变量
//  SendAck(1);//I2C发送应答函数 单片机作为主机通过I2C通信只读AT24C02内存地址上的一个字节 
//  I2CStop();//I2C停止函数
//  return Data;//返回数据变量含有的数据
// }

  void ReadMultiByteFromAT24C02(uchar IcAddress,uchar Address,uchar *StringCache,uchar StringLength
基于STC12C5A60S2系列1T 8051单片机设定按键确定按键值后EEPROM掉电保存应用 作用:用来设置STC12C5A60S2系列1T 8051单片机EEPROM读写数据。 阅读详情

相关推荐

基于STC12C5A60S2系列1T 8051单片机的数码管显示IIC总线器件AT24C02实现掉电保存计时时间应用

DDRAM : 数据显示随机存储器 液晶显示器显示数据是来于数据显示随机存储器CGRAM:字符生成随机存储器 用户自定义字符会存储在字符生成存储器CGROM:字符库只读存储器 只提供字符 用液晶显示器显示这些字符总结:不管是CGRAM(字符生成随机存储器)自定义的字符 还是CGROM(字符库只读存储器)原有的字符 写进DDRAM(数据显示随机存储器)内存地址上 才能在液晶显示器屏幕显示出来main.c。

CWQLTYH的博客 1024

基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602显示功能菜单应用

DDRAM : 数据显示随机存储器 液晶显示器显示数据是来于数据显示随机存储器CGRAM:字符生成随机存储器 用户自定义字符会存储在字符生成存储器CGROM:字符库只读存储器 只提供字符 用液晶显示器显示这些字符总结:不管是CGRAM(字符生成随机存储器)自定义的字符 还是CGROM(字符库只读存储器)原有的字符 写进DDRAM(数据显示随机存储器)内存地址上 才能在液晶显示器屏幕显示出来main.c。

CWQLTYH的博客 1130

基于STC12C5A60S2系列1T 8051单片按页写IIC总线器件AT24C02并显示在液晶显示器LCD1602上应用

DDRAM : 数据显示随机存储器 液晶显示器显示数据是来于数据显示随机存储器CGRAM:字符生成随机存储器 用户自定义字符会存储在字符生成存储器CGROM:字符库只读存储器 只提供字符 用液晶显示器显示这些字符总结:不管是CGRAM(字符生成随机存储器)自定义的字符 还是CGROM(字符库只读存储器)原有的字符 写进DDRAM(数据显示随机存储器)内存地址上 才能在液晶显示器屏幕显示出来main.c。

CWQLTYH的博客 885

基于STC12C5A60S2系列1T 8051单片机的LCD1602显示IIC总线器件AT24C02记录单片机上电次数应用

DDRAM : 数据显示随机存储器 液晶显示器显示数据是来于数据显示随机存储器CGRAM:字符生成随机存储器 用户自定义字符会存储在字符生成存储器CGROM:字符库只读存储器 只提供字符 用液晶显示器显示这些字符总结:不管是CGRAM(字符生成随机存储器)自定义的字符 还是CGROM(字符库只读存储器)原有的字符 写进DDRAM(数据显示随机存储器)内存地址上 才能在液晶显示器屏幕显示出来main.c。

CWQLTYH的博客 870

基于STC12C5A60S2系列1T 8051单片读写掉电保存数据IIC总线器件AT24C02一字节并显示在液晶显示器LCD1602上应用

DDRAM : 数据显示随机存储器 液晶显示器显示数据是来于数据显示随机存储器CGRAM:字符生成随机存储器 用户自定义字符会存储在字符生成存储器CGROM:字符库只读存储器 只提供字符 用液晶显示器显示这些字符总结:不管是CGRAM(字符生成随机存储器)自定义的字符 还是CGROM(字符库只读存储器)原有的字符 写进DDRAM(数据显示随机存储器)内存地址上 才能在液晶显示器屏幕显示出来main.c。

CWQLTYH的博客 701

基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602显示整数、小数应用

DDRAM : 数据显示随机存储器 液晶显示器显示数据是来于数据显示随机存储器CGRAM:字符生成随机存储器 用户自定义字符会存储在字符生成存储器CGROM:字符库只读存储器 只提供字符 用液晶显示器显示这些字符总结:不管是CGRAM(字符生成随机存储器)自定义的字符 还是CGROM(字符库只读存储器)原有的字符 写进DDRAM(数据显示随机存储器)内存地址上 才能在液晶显示器屏幕显示出来main.c。

CWQLTYH的博客 1026

基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602移屏显示应用

DDRAM : 数据显示随机存储器 液晶显示器显示数据是来于数据显示随机存储器CGRAM:字符生成随机存储器 用户自定义字符会存储在字符生成存储器CGROM:字符库只读存储器 只提供字符 用液晶显示器显示这些字符总结:不管是CGRAM(字符生成随机存储器)自定义的字符 还是CGROM(字符库只读存储器)原有的字符 写进DDRAM(数据显示随机存储器)内存地址上 才能在液晶显示器屏幕显示出来main.c。

CWQLTYH的博客 904

基于STC12C5A60S2系列1T 8051单片机的数码管显示IIC总线器件AT24C02记录单片机上电次数应用

DDRAM : 数据显示随机存储器 液晶显示器显示数据是来于数据显示随机存储器CGRAM:字符生成随机存储器 用户自定义字符会存储在字符生成存储器CGROM:字符库只读存储器 只提供字符 用液晶显示器显示这些字符总结:不管是CGRAM(字符生成随机存储器)自定义的字符 还是CGROM(字符库只读存储器)原有的字符 写进DDRAM(数据显示随机存储器)内存地址上 才能在液晶显示器屏幕显示出来main.c。

CWQLTYH的博客 611

基于STC12C5A60S2系列1T 8051单片机的IIC通信的0.96寸4针OLED12864显示中文的功能

main.c#define uchar unsigned char//自定义无符号字符型为uchar#define uint unsigned int//自定义无符号整数型为uintvoid main()//主函数//OLED12864初始化函数while(1)//主循环//从第0小页(即8小行为一小页)开始到第1小页(即8小行为一小页)的第0大列(即16小列为一大列)显示ChineseCharacterArrayOf16Row16Column[][16]变量中的第0个汉字"欢"

CWQLTYH的博客 731

蓝桥杯-单片机设计与开发-AT24C02模块

AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节。该模块具有掉电存储功能,是蓝桥杯单片机比赛中常见考点。

weixin_53390357的博客 1327

【STC15系列】SYK-0806-A2S1 工业自动化控制之【17-EEPROM实现数据掉电保存】

大家好,我是『芯知识学堂』的SingleYork,前一篇文章给大家介绍了“【STC15系列】SYK-0806-A2S1 工业自动化控制之【16-自定义协议通信】”,这一篇中,笔者将会给大家介绍“EEPROM的基本操作”。 在实际应用中,很多时候我们需要对一些设置参数实现掉电保持,以免每次上电都需要重新设置参数,或者产品在运行过程中,需要实时保存一些数据,下次开机后还能查询到。像这种应用场合,就需要用到单片机的EEPROM功能了,当然,也可以用到外部FLASH、EEPROM等芯片,只是,单片机本身自带EEPR

『芯知识学堂』SingleYork 的博客 2142

【STC15系列】SYK-0806-A2S1- 17-EEPROM实现数据掉电保存.rar

【STC15系列】SYK-0806-A2S1- 17-EEPROM实现数据掉电保存

stc单片机eepROM实验(掉电不丢失设置)

stc单片机eepROM实验(掉电不丢失设置) 傻瓜式教程 很简单 高手飘过

Android BluetoothSocket

BluetoothSocket是Android中用于在蓝牙设备之间进行数据传输的一种Socket。它提供了一种类似于TCP/IP协议的数据传输方式,可以在两个设备之间建立一个虚拟的通信管道,使得两个设备之间可以进行数据的传输和接收。BluetoothSocket可以用于客户端和服务端之间的通信,通过BluetoothSocket可以实现数据的双向传输。

liuning1985622的博客 1477

如何使用Dify 搭建一个用自然语言查询数据库的 Agent?

这样就会发布完毕。

AI Agent 首席体验官 1697

Nmap的介绍、安装 并进行网络扫描

Nmap概述 Nmap(Network Mapper(网络映射器))是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。 正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。

Cheney ' blog 2万+

【高级-RAG-优化方法】

本文介绍了两种优化RAG(检索增强生成)系统的高级方法。第一部分介绍KnowFlow项目,它采用父子分块技术,将文档分为父分块(800-1500字符)和子分块(200-400字符),通过精确匹配子分块再返回父分块内容来保证搜索精确性和上下文完整性。第二部分探讨Milvus的多种增强技术,包括查询增强(如假设问题生成、回溯提示)、索引增强(自动合并块、分层索引)、检索器增强(句子窗口检索、元数据过滤)、生成器增强(提示压缩、块排序)以及管道增强(自我反省、代理查询路由)。这些方法共同提升了RAG系统的检索效率

weixin_48585108的博客 958

蓝桥杯嵌入式(基础教程)STM32G431RBT6——创建工程以及点灯

首先选择正确的芯片类型:STM32G431RBT6工程的创建主要有配置时钟以及烧录的方式。在配置好之后需要对时钟进行配置,由于蓝桥杯的外部晶振是24MHz因此需要对时钟树进行相应的配置。第一步先点击时钟配置之后就可以对时钟进行相应的配置了最后一步,需要对工程起一个名字,并且要选择KEIL做为其相应的软件之后再需要再生成代码那里进行相应的控制。当然这样根据生成的工程不能直接使用会有一个报错,所以需要添加一个启动文件。这个启动文件可以在官方的LCD文件夹下复制到自己的工程中。

m0_74051113的博客 1093

QQ的TEA填充算法C#实现 By Red_angelX

注:本人只是从LUMA QQ的 Source Code里面把相应Java语言翻译成C#,纯技术研究,并没有对TC产品做任何逆向分析,不承担任何法律责任!转载请保持本文完整性网上有c/c++,vb,delphi,java,perl各种版本的tea填充算法,唯独没有C#的,这让我这种狂热喜爱C#的人如何承受,于是,花3天时间看了各种代码经历无数失败的挫折终于用C#完成了该填充算法,废话不多说,直接

Red_angelX的专栏 1万+

STC单片机使用FatFs文件系统读取SD卡指定文件内容

STC单片机使用FatFs文件系统读取SD卡指定文件内容

perseverance51博客 2744

YOLOv5改进 | 低照度检测 | 2024最新改进CPA-Enhancer链式思考网络(适用低照度、图像去雾、雨天、雪天)

本文给大家带来的2024.3月份最新改进机制,由CPA-Enhancer: Chain-of-Thought Prompted Adaptive Enhancer for Object Detection under Unknown Degradations论文提出的CPA-Enhancer链式思考网络CPA-Enhancer通过引入链式思考提示机制,实现了对未知退化条件下图像的自适应增强。该方法的核心在于能够利用CoT提示对图像退化进行动态分析和适应,从而显著提升物体检测性能。

Snu77的博客 2222

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: 基于STC12C5A60S2系列1T 8051单片读写掉电保存数据IIC总线器件AT24C02一字节并显示在液晶显示器LCD1602上应用
下一篇: 基于STC12C5A60S2系列1T 8051单片按页写IIC总线器件AT24C02并显示在液晶显示器LCD1602上应用
CWQLTYH
博客等级 码龄10年 1432粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值