西藏自治区建设厅造价信息网站/seo是什么服

西藏自治区建设厅造价信息网站,seo是什么服,wordpress数据端口,门户网站建设单位资质要求写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.03.20 51单片机学习——第28节: [12-2] AT24C02数据存储&秒表(定时器扫…

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做!

本文写于:2025.03.20

51单片机学习——第28节: [12-2] AT24C02数据存储&秒表(定时器扫描按键数码管)

  • 前言
  • 开发板说明
  • 引用
  • 解答和科普
  • 一、编写AT24C02的读写函数
  • 二、加入延迟函数实现LED闪烁
  • 问题
  • 总结

前言

   本次笔记是用来记录我的学习过程,同时把我需要的困难和思考记下来,有助于我的学习,同时也作为一种习惯,可以督促我学习,是一个激励自己的过程,让我们开始51单片机的学习之路。
   欢迎大家给我提意见,能给我的嵌入式之旅提供方向和路线,现在作为小白,我就先学习51单片机了,就跟着B站上的江协科技开始学习了.
   在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容,因为我之前有一个开发板,我大概率会用我的板子模仿着来做.让我们一起加油!
   另外为了增强我的学习效果:每次笔记把我不知道或者问题在后面提出来,再下一篇开头作为解答!

开发板说明

   本人采用的是慧净的开发板,因为这个板子是我N年前就买的板子,索性就拿来用了。不再另外购买视频中的普中开发板了。
   原理图如下
在这里插入图片描述
视频中的都用这个开发板来实现,如果有资源就利用起来。
仔细看了看:开发板的晶振为:11.0592Mhz;12Mhz晶振是用来给CH340G芯片外置晶振;

下图是实物图
在这里插入图片描述

引用

51单片机入门教程-2020版 程序全程纯手打 从零开始入门
还参考了下图中的书籍:
手把手教你学51单片机(C语言版)
在这里插入图片描述
STC89C52手册
在这里插入图片描述

解答和科普

一、编写AT24C02的读写函数

1.I2C的拼图
在main函数中调出来,AT.C就不用调出来I2C了。
在这里插入图片描述
在这里插入图片描述

位声明:

sbit I2C_SCL =P1^7;
sbit I2C_SDA=P1^2;

1.1起始拼图
在这里插入图片描述

void I2C_Start(void)
{I2C_SDA=1;I2C_SCL=1;I2C_SDA=0;I2C_SCL=0;}

1.2终止拼图
在这里插入图片描述

void I2C_Stop(void)
{I2C_SDA=0;I2C_SCL=1;I2C_SDA=1;
}

1.3发送一个字节
在这里插入图片描述

void I2C_SendByte(unsigned char Byte)	
{unsigned char i;for(i=0;i<8;i++){I2C_SDA=Byte&(0x80>>i);		//把数据放在线上I2C_SCL=1;I2C_SCL=0;			//看时序是否满足能够承受的时间是多少}
}

1.4接受一个字节

在这里插入图片描述

unsigned char I2C_ReceiveByte(void)	
{unsigned char i,Byte=0x00;I2C_SDA=1;					//释放总线for(i=0;i<8;i++){I2C_SCL=1;if(I2C_SDA){Byte|=(0x80>>i);}I2C_SCL=0;}return Byte;
}

1.5主机的发送应答
在这里插入图片描述
这里相当于主机写:

void I2C_SendAck(unsigned char AckBit)
{I2C_SDA=AckBit;I2C_SCL=1;I2C_SCL=0;
}

1.6 从机的接收应答
这里是从机写,反过来就是主机读
在这里插入图片描述

unsigned char I2C_ReceiveAck(void)
{unsigned char AckBit=0;I2C_SDA=1;I2C_SCL=1;AckBit=I2C_SDA;			//高电平读取I2C_SCL=0;return AckBit;
}

2.AT24C02 的数据帧

先宏定义一个地址:W

#define AT24C02_ADDRESS   0xA0

地址:R

AT24C02_ADDRESS|0x01

2.1字节写
在这里插入图片描述

#define AT24C02_ADDRESS   0xA0/*** @brief    AT24C02向指定地址写入一个字节数据* @param    WordAddress:字地址 范围0-255,Data要写入的数据* @retval   无*/
void AT24C02_WriteByte(unsigned char WordAddress,Data)
{I2C_Start();I2C_SendByte(AT24C02_ADDRESS);I2C_ReceiveAck();	//先不处理I2C_SendByte(WordAddress);I2C_ReceiveAck();I2C_SendByte(Data);I2C_ReceiveAck();I2C_Stop();
}

2.2 随机读
在这里插入图片描述

/*** @brief    AT24C02从指定地址读出一个字节数据* @param   WordAddress:要读出的字地址和写入的地址一样* @retval 	读出的字节数据*/unsigned char  AT24C02_ReadByte(unsigned char WordAddress)
{unsigned char Data;I2C_Start();I2C_SendByte(AT24C02_ADDRESS);I2C_ReceiveAck();I2C_SendByte(WordAddress);I2C_ReceiveAck();I2C_Start();I2C_SendByte(AT24C02_ADDRESS|0x01);I2C_ReceiveAck();Data=I2C_ReceiveByte();I2C_SendAck(1);I2C_Stop();return Data;
}

3、写入数据测试
在这里插入图片描述

#include <REGX52.H>
#include "Key.h"
#include "LCD1602.h"
#include "AT24C02.h"
#include "Delay.H"unsigned char Data;
void main(void)
{LCD_Init();LCD_ShowString(1,1,"HELLO");AT24C02_WriteByte(1,66);Delay(5);Data=AT24C02_ReadByte(1);LCD_ShowNum(2,1,Data,2);while(1){}
}

测试现象
在这里插入图片描述
先写后读,掉电不丢失。在这里插入图片描述
AT24C02按键控制

#include <REGX52.H>
#include "Key.h"
#include "LCD1602.h"
#include "AT24C02.h"
#include "Delay.H"
#include "Init.h"unsigned char KeyNum;
unsigned int Num;
void main(void)
{LCD_Init();LCD_ShowNum(1,1,Num,5);Nixietube_OFF();DianZhengGuan();while(1){KeyNum=Key();if(KeyNum==1){Num++;LCD_ShowNum(1,1,Num,5);}if(KeyNum==2){Num--;LCD_ShowNum(1,1,Num,5);}if(KeyNum==3){AT24C02_WriteByte(0,Num%256);Delay(5);AT24C02_WriteByte(1,Num/256);Delay(5);LCD_ShowString(2,1,"Write  OK");Delay(1000);LCD_ShowString(2,1,"         ");}if(KeyNum==4){Num=AT24C02_ReadByte(0);Num|=AT24C02_ReadByte(1)<<8;		LCD_ShowNum(1,1,Num,5);LCD_ShowString(2,1,"Read   OK");Delay(1000);LCD_ShowString(2,1,"         ");}}}

实现现象

AT24C02存储数据(按键控制)

二、加入延迟函数实现LED闪烁

问题

总结

本节课主要学

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/72918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Verilog-HDL/SystemVerilog/Bluespec SystemVerilog vscode 配置

下载 verible https://github.com/chipsalliance/verible的二进制包 然后配置 vscode

STM32使用HAL库,模拟UART输出字符串

测试芯片是STM32F103C8T6&#xff0c;直接封装好了&#xff0c;波特率是 9600 MyDbg.h #ifndef __MYDBG_H #define __MYDBG_H #include "stm32f1xx_hal.h" #include <stdio.h> #include <stdarg.h>/*使用GPIO口 模拟 UART 输出字符串 */ //初始化调试…

[工控机安全] 使用DriverView快速排查不可信第三方驱动(附详细图文教程)

导语&#xff1a; 在工业控制领域&#xff0c;设备驱动程序的安全性至关重要。第三方驱动可能存在兼容性问题、安全漏洞甚至恶意代码&#xff0c;威胁设备稳定运行。本文将手把手教你使用 DriverView工具&#xff0c;高效完成工控机驱动安全检查&#xff0c;精准识别可疑驱动&a…

洛谷P1434 [SHOI2002] 滑雪

P1434 [SHOI2002] 滑雪 - 洛谷 代码区&#xff1a; #include<algorithm> #include<iostream> #include<cstring> using namespace std;const int MAX 105; int r, c; int arr[MAX][MAX], dp[MAX][MAX]; int xindex[4] {-1,1,0,0};//上下左右 int yindex[…

【操作系统】进程间通信方式

进程间通信方式 前言 / 概述一、管道管道命名管道 二、消息队列三、共享内存四、信号量信号量概述互斥访问条件同步信号 五、socket总结 前言 / 概述 每个进程的用户地址空间都是独立的&#xff0c;⼀般而言是不能互相访问的&#xff0c;但内核空间是每个进程都共享的&#xff…

【程序人生】成功人生架构图(分层模型)

文章目录 ⭐前言⭐一、根基层——价值观与使命⭐二、支柱层——健康与能量⭐三、驱动层——学习与进化⭐四、网络层——关系系统⭐五、目标层——成就与财富⭐六、顶层——意义与传承⭐外层&#xff1a;调节环——平衡与抗风险⭐思维导图 标题详情作者JosieBook头衔CSDN博客专家…

【最后203篇系列】020 rocksdb agent

今天还是挺开心的一天&#xff0c;又在工具箱里加了一个工具。嗯&#xff0c;但是快下班的时候也碰到一些不太顺心的事&#xff0c;让我有点恼火。我还真没想到一个专职的前端&#xff0c;加测试&#xff0c;以及其他一堆人&#xff0c;竟然不知道后端返回的markdown,在前端渲染…

vulhub靶机----基于docker的初探索,环境搭建

环境搭建 首先就是搭建docker环境&#xff0c;这里暂且写一下 #在kali apt update apt install docker.io配置docker源&#xff0c;位置在/etc/docker/daemon.json {"registry-mirrors": ["https://5tqw56kt.mirror.aliyuncs.com","https://docker…

网络编程之解除udp判断客户端是否断开

思路&#xff1a;每几秒发送一条不显示的信息&#xff0c;客户端断开则不再发送信息&#xff0c;超时则表示客户端断开连接。&#xff08;心跳包&#xff09; 服务器 #include <head.h>#define MAX_CLIENTS 100 // 最大支持100个客户端 #define TIMEOUT 5 // 5秒…

B树与B+树在MySQL中的应用:索引

数据结构演示网站&#xff1a;Data Structure Visualization 先来了解两个数据结构B树与B树 B树&#xff1a; N阶B树每个节点最多存储N-1个Key&#xff0c;N个指针 例如&#xff1a;一个5阶B树&#xff0c;当前节点存储到5个Key时&#xff0c;中间的数会向上分离&#xff0c;…

Centos7配置本地yum源

Centos7配置本地yum源 1、基于iso镜像的centos源 1.1 准备iso <span style"color:#000000"><span style"background-color:#ffffff"><code class"language-bash"><span style"color:#008000"># 首先看自己使用…

VNA操作使用学习-14 再测晶振特性

再测一下4Mhz晶振&#xff0c;看看特性曲线&#xff0c;熟悉一下vna使用。 s11模式&#xff0c;找遍了各种format都无法显示&#xff0c;只有这一种&#xff08;s11&#xff0c;Resistance&#xff09;稍微显示出一个谐振&#xff0c;但是只有一个点。 s21模式 这是201p&#…

Tr0ll2靶机详解

一、主机发现 arp-scan -l靶机ip&#xff1a;192.168.55.164 二、端口扫描、漏洞扫描、目录枚举、指纹识别 2.1端口扫描 nmap --min-rate 10000 -p- 192.168.55.164发现21端口的ftp服务开启 以UDP协议进行扫描 使用参数-sU进行UDP扫描 nmap -sU --min-rate 10000 -p- 19…

基于开源模型的微调训练及瘦身打造随身扫描仪方案__用AI把手机变成文字识别小能手

基于开源模型的微调训练及瘦身打造随身扫描仪方案__用AI把手机变成文字识别小能手 一、准备工作&#xff1a;组装你的"数码工具箱" 1. 安装基础工具&#xff08;Python环境&#xff09; 操作步骤&#xff1a; 访问Python官网下载安装包安装时务必勾选Add Python to…

GitHub 超火的开源终端工具——Warp

Warp 作为近年来 GitHub 上备受瞩目的开源终端工具&#xff0c;以其智能化、高性能和协作能力重新定义了命令行操作体验。以下从多个维度深入解析其核心特性、技术架构、用户评价及生态影响力&#xff1a; 一、背景与核心团队 Warp 由前 GitHub CTO Jason Warner 和 Google 前…

使用C#创建安装Windows服务程序

在实际工作中&#xff0c;如果我们需要开发一个运行在后台&#xff0c;无需用户交互&#xff0c;不需要界面的应用程序&#xff0c;我们可以通过Windows服务来实现。 本文主要介绍如何基于C#创建一个Windows服务&#xff0c;来实现西门子PLC的定时读取保存。 一、Windows服务…

吴恩达机器学习笔记复盘(六)梯度下降算法

简介 梯度下降&#xff08;Gradient Descent&#xff09;是一种常用的优化算法&#xff0c;广泛应用于机器学习、深度学习等领域&#xff0c;在这里是用于求J&#xff08;w,b&#xff09;局部最小值。 我自己觉得这样说有点过于抽象。换个直观点的说法就是&#xff0c;一个人…

使用JAVA-进行维吉尼亚密码的解密与加密

维吉尼亚密码 来源于百度百科 维吉尼亚密码_百度百科 具体代码 import java.util.*;public class WJMYmm {//常量 26public static final int N 26;//密码public static void main(String[] args) {//字母String ZM"abcdefghijklmnopqrstuvwxyz";char[] zm ZM.…

LeetCode 解题思路 22(Hot 100)

解题思路&#xff1a; 递归思路&#xff1a; 传入当前节点的最小值和最大值&#xff0c;递归判断左右子树。结束条件&#xff1a; 当前节点为空或不满足二叉搜索树。 Java代码&#xff1a; class Solution {public boolean isValidBST(TreeNode root) {return isValidBST(ro…

乐享数科:政策助推假日经济,2月普惠金融-景气指数稳中有升

数据显示&#xff0c;2025年2月普惠金融-景气指数达48.99点&#xff0c;较1月上升0.03点。 企业运行持续向好&#xff0c;企业信心预期和经营活力回升。“假日经济”与“政策效应”相互叠加&#xff0c;市场供求格局有所改善&#xff0c;景气水平稳步恢复。 普惠金融-景气指数…