当前位置: 首页 > news >正文

51单片机学习笔记——找不到REG52.H头文件,点亮一个LED

创建工程

将STC型号导入keil并使用

STC可以从官网下载,也可我这的网盘:

链接:https://pan.baidu.com/s/1bO85DPN3IFaXGhiKSwyOrA?pwd=7f4h 
提取码:7f4h

打开STC,选择“keil仿真设置”,选择“添加型号和头文件到keil中 \ 添加STC仿真器驱动到keil中”

然后会有指引:

创建工程

1、点击“Project”,点击“New ...(阿巴阿巴) Project"

2、勾选“STC MCU Database”,选择对应型号。然后OK。

比如使用的是“STC12C5A60S2”

3、一般选择“是”。

4、选中下面高亮的"Add New Item to..."

5、在弹出页面中,点击“C File”,一般取名叫main

6、成功会看到左边出现“main.c”

:上面4和5步骤是在往Source Group 1添加一个c文件,还可以像下面这么添加:

(a)点击File,点击New(或者Ctrl+N)创建一个新文件

(b)Ctrl + S,取个名字保存(最好是这个默认的文件夹下,好找)

(c)右键Source Group 1,点击“Add Existing..."

(d)在弹出的窗口中,选中你要添加的文件,点击“Add”,然后“Close”

LED闪烁

单片机上电时,所有IO口默认都是高电平

点亮一个LED

需求:八个LED灯,点亮其中一个

分析:单片机上电时,默认所有IO都都是高电平。如果想让其中一个LED点亮,则需要该LED灯的另一端是低电平。要想修改LED另一端的电平,修改对应的端口寄存器即可。比如,让第八个LED点亮,只需要寄存器 P2 = 0xFE;

#include <REGX52.H>int main()
{while(1){P2 = 0xFE;  // 1111 1110}
}

编译试试,编译在下面这个地方

编译成功,成功创建目标,无错误。

重在上手,烧到开发板上试试。

烧录

为了生成可以烧到单片机的十六进制文件,我们需要调整一些配置。

1、点击魔法棒:

2、target中修改单片机频率成你使用的单片机频率,STC12C5A60S2是12MHz

3、output里勾选”Create HEX File"后点击OK

4、再次点击build,看看哪里不一样了

生成了一个hex file(十六进制文件)

接下来只需要将这个十六进制文件烧录进去即可。

5、打开STC,选择单片机型号并配置

问题补充

(一)找不到REGX52.H头文件

引入头文件REGX52.H,右键发现不能打开该文件,那编译肯定会出错。

解决方案:

1、点击魔法棒

2、以此点击“C51”和“..."

3、弹出的窗口,点击选中处

4、弹出的窗口,点击三个点

5、找到你自己的keil5安装路径,依次选中C51、INC、Atmel(因为Atmel型号和STC型号比较像),然后点击”选择文件夹“

6、后面就依次点击OK就行。然后发现可以打开了

(二)REGX51.H 与 REGX52.H

——一般来说,选中`"REGX51.H"`头文件还是`"REGX52.H"`头文件,主要取决于你所使用的单片机型号。

"REGX51.H"`是51系列单片机的通用头文件。它定义了51系列单片机的特殊功能寄存器(SFR)和特殊位。使用标准的8051或其兼容的单片机,那么应该使用`"REGX51.H"`头文件。

"REGX52.H"`则是52系列单片机的专用头文件。它包含了52系列单片机的专用寄存器定义和特殊功能寄存器定义,只适用于52系列单片机。STC12C5A60S2这样的增强型8051单片机,尽管其指令代码与传统8051兼容,但由于其拥有更多的功能和资源,因此更适合使用`"REGX52.H"`头文件。

像STC12C5A60S2这样的增强型8051单片机,应该选择`"REGX52.H"`头文件,因为它会提供更完整和准确的寄存器定义。

相关文章:

51单片机学习笔记——找不到REG52.H头文件,点亮一个LED

创建工程 将STC型号导入keil并使用 STC可以从官网下载&#xff0c;也可我这的网盘&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1bO85DPN3IFaXGhiKSwyOrA?pwd7f4h 提取码&#xff1a;7f4h 打开STC&#xff0c;选择“keil仿真设置”&#xff0c;选择“添加型号和头…...

07 基于OpenAMP的核间通信方案

引言 ZYNQ7020有两个CPU核心&#xff0c;这两个核心可以采用SMP或AMP方式进行调度&#xff0c;当采用AMP方式进行调度时核0和核1可以运行不同的操作系统&#xff0c;如核0运行Linux系统&#xff0c;提供有些复杂的用户交互工作&#xff0c;核1运行实时操作系统&#xff0c;对设…...

Ubuntu升级ssh版本到9.8

方案一&#xff1a;实测只有8.9有漏洞不推荐 1、更新软件包列表 sudo apt update 2、查找可用版本 apt-cache policy openssh-server 3、 选择版本 sudo apt install openssh-server1:9.8p1-<具体版本号> 4、 重启 sudo systemctl restart ssh 5、验证版本 /usr/sbin/ss…...

git设置项目远程仓库指向github的一个仓库

要将你的Git项目设置为指向GitHub上的远程仓库&#xff0c;你需要执行以下步骤&#xff1a; 创建GitHub仓库&#xff1a; 登录到你的GitHub账户。点击右上角的 “” 号&#xff0c;选择 “New repository” 创建一个新的仓库。填写仓库的名称&#xff0c;可以添加描述&#xff…...

【实战示例】面向对象的需求建模

前言 博主准备写一个以面向对象为核心思想的软件需求建模、领域建模的系列&#xff0c;总结一整套可落地的DDD的打法&#xff0c;前面几篇文章论述了如何进行面向对象的需求建模&#xff0c;本文将以一个简单的购物商城的需求来演示如何进行面向对象的需求建模。 面向对象的需…...

平方数的判断不用sqrt()函数

//判断一个数是不是平方数&#xff0c;13…&#xff08;2*m-1&#xff09;m*mn #include<stdio.h> int main(){ int n; scanf("%d",&n); int i; for(i1;n>0;i2){ nn-1; } if(n0){ printf("YES!\n"); …...

node.js之---回调函数

什么是回调函数&#xff1f; 为什么会有回调函数&#xff1f; 回调函数的特性 回调函数的应用场景 怎么解决回调地狱 什么是回调函数&#xff1f; 回调函数是一个函数&#xff0c;他作为参数传递给另外一个函数&#xff0c;并且会在另外一个函数执行完毕之后被调用&#…...

浏览器http缓存问题

一、什么是浏览器缓存 浏览器将请求过的资源&#xff08;html、js、css、img&#xff09;等&#xff0c;根据缓存机制&#xff0c;拷贝一份副本存储在浏览器的内存或者磁盘上。如果下一次请求的url相同时则根据缓存机制决定是读取内存或者磁盘上的数据还是去服务器请求资源文件…...

编写一个简单的引导加载程序(bootloader)

编写一个简单的引导加载程序&#xff08;bootloader&#xff09;通常用于嵌入式系统或自定义操作系统。这里&#xff0c;我将为你提供一个基于x86架构的简单汇编语言 bootloader 示例。这个 bootloader 将会在启动时打印一条消息到屏幕上。 使用 NASM 汇编器来编写这个 bootlo…...

Three.js 字体

在 Three.js 中&#xff0c;我们可以通过 FontLoader 加载字体&#xff0c;并结合 TextGeometry 创建 3D 文本。加载字体是因为字体文件包含了字体的几何信息&#xff0c;例如字体的形状、大小、粗细等&#xff0c;而 TextGeometry 则是根据字体信息生成 3D 文本的几何体。 在…...

Jenkins 构建流水线

在 Linux 系统上安装 Jenkins 服务&#xff0c;以及配置自动化构建项目 前置准备环境&#xff1a;docker、docker-compose、jdk、maven 一、环境搭建 1. Jenkins 安装 &#xff08;1&#xff09;拉取镜像 # 安装镜像包&#xff0c;默认安装最新版本 docker pull jenkins/jen…...

ES 磁盘使用率检查及处理方法

文章目录 1. 检查原因2. 检查方法3. 处理方法3.1 清理数据3.2 再次检查磁盘使用率 1. 检查原因 磁盘使用率在 85%以下&#xff0c;ES 可正常运行&#xff0c;达到 85%及以上会影响 PEIM 数据存储。 在 ES 磁盘分配分片控制策略中&#xff0c;为了保护数据节点的安全&#xff0…...

【回溯】LeetCode经典题目总结:组合、排列、子集、分割、N皇后、单词搜索

回溯 组合问题组合总和全排列子集分割回文串N皇后电话号码的字母组合单词搜索括号生成 组合问题 给定两个整数 n 和 k&#xff0c;返回 1 … n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 树形结构&#xff1…...

uniapp开发小程序内嵌h5页面,video视频两边有细小黑色边框

1.问题如图 2.原因分析 是否为设置上述属性呢&#xff1f; 设置了&#xff0c;但是仍然有黑边。经过选中页面元素分析后&#xff0c;判断video元素本身就有这种特点&#xff0c;就是视频资源无法完全铺满元素容器。 3.解决方案...

Ubuntu meson使用

一 下载pip3 &#xff0c;使用pip3下载 meson sudo apt install python3 sudo apt install python3-pip二 下载 nanjia sudo apt-get install ninja-build三 测试 meson 使用 1 同一个目录下创建两个文件 main.c #include<stdio.h> int main() {printf("meson t…...

实用技巧:关于 AD修改原理图库如何同步更新到有原理图 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/144738332 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…...

算法排序算法

文章目录 快速排序[leetcode 215数组中的第K个最大元素](https://leetcode.cn/problems/kth-largest-element-in-an-array/)分析题解快速排序 桶排序[leetcode 347 前K个高频元素](https://leetcode.cn/problems/top-k-frequent-elements/)分析题解 快速排序 leetcode 215数组…...

植物大战僵尸杂交版3.0.2版本

更新内容 植物大战僵尸杂交版3.0.2版本的更新内容如下&#xff1a; • 修复BUG&#xff1a; • 游戏内贴图错乱的BUG。 • 无尽模式卡死的BUG。 • 卡牌模仿者的一系列BUG。 • 干扰车可能同时出现多辆的BUG。 • 冒险模式部分关卡无法过关的BUG。 • 新增内容&#xf…...

Kafka数据迁移全解析:同集群和跨集群

文章目录 一、同集群迁移二、跨集群迁移 Kafka两种迁移场景&#xff0c;分别是同集群数据迁移、跨集群数据迁移。 一、同集群迁移 应用场景&#xff1a; broker 迁移 主要使用的场景是broker 上线,下线,或者扩容等.基于同一套zookeeper的操作。 实践&#xff1a; 将需要新添加…...

自动化测试模型(一)

8.8.1 自动化测试模型概述 在自动化测试运用于测试工作的过程中&#xff0c;测试人员根据不同自动化测试工具、测试框架等所进行的测试活动进行了抽象&#xff0c;总结出线性测试、模块化驱动测试、数据驱动测试和关键字驱动测试这4种自动化测试模型。 线性测试 首先&#…...

selenium(三)

总结 一、web基础 html、dom对象、javascript基本语法二、元素定位&#xff1a; find_element(定位方式) 八大定位方式&#xff1a;id、name、class、tag_name、class_name、link_text、partial_link_text、xpath、cssxpath://标签名[属性名值 and/or 属性名值]//标签名[tex…...

7.若依参数设置、通知公告、日志管理

参数设置 对系统中的参数进行动态维护。 关闭验证码校验功能 打开页面注册功能 需要修改前端页面代码 通知公告 促进组织内部信息传递 若依只提供了一个半成品&#xff0c;只实现了管理员可以添加通知公告。 日志管理 追踪用户行为和系统运行状况。 登录日志 和操作日志…...

vsftpd虚拟用户及其权限配置

目录 一、应用场景二、配置过程1、安装软件2、新建本地用户3、修改vsftpd的配置文件4、新建虚拟用户目录5、配置虚拟用户&#xff08;1&#xff09;创建虚拟用户列表文件&#xff08;2&#xff09;生成虚拟用户数据库&#xff08;3&#xff09;配置pam认证&#xff08;4&#…...

Android使用辅助服务AccessibilityService实现自动化任务

Android 辅助服务&#xff08;AccessibilityService&#xff09;旨在帮助具有视觉、身体或年龄相关限制的用户更轻松地使用 Android 设备和应用。通过辅助服务&#xff0c;可以将一些人工操作自动化&#xff0c;从而解放用户的双手。 因此我们可以使用它来实现一些自动化任务&a…...

brupsuite的基础用法常用模块(1)

proxy模块&#xff1a; Options: 设置代理端口&#xff0c;默认为8080端口&#xff0c;若8080端口被占用可在该界面更改代理端口. HTTP history: 拦截的历史请求&#xff0c;右键可做更多操作&#xff0c;很多操作与其他模块有关。&#xff08;清除历史的话右键选择clear p…...

基础的基础之 pillow与opencv相比的特点与优缺点比较

Pillow 和 OpenCV 都是人工智能图像处理的必不可少的常用库&#xff0c;但它们有各自的特点和适用场景。 以下是它们的主要特点、优缺点以及适用场景的对比&#xff1a; 1. Pillow&#xff08;Python Imaging Library&#xff09; Pillow 是一个轻量级的图像处理库&#xff0…...

代码随想录算法训练营第51期第32天 | 理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

理论基础 动态规划&#xff1a;dp&#xff0c;每一个状态都是由上个状态推导出来的&#xff0c;因为我是先写完三道题再看理论的&#xff0c;所以有点感概&#xff1b; 确定dp数组&#xff08;dp table&#xff09;以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举…...

街景主观感知1:街景图片两两对比程序

目录 1、为什么不用place pluse 2.0数据集&#xff1f;2、街景主观感知两两对比程序2.1 总框架2.2 两两对比程序流程2.2.1 准备数据集&#xff08;即街景图片&#xff09;2.2.2 数据集采用组合的思想构建排列前的两两对比csv2.2.3 两两对比程序使用 3、其他数据处理/程序/指导&…...

vue在action中调用action的函数

以下是在 Vue2 中一个 Vuex 的 action 中调用另一个 action 中的函数的解决思路&#xff1a; 首先&#xff0c;确保你已经在 Vue 项目中正确配置了 Vuex 状态管理。在 Vuex 的 actions 对象中定义不同的 action 函数。当需要在一个 action 中调用另一个 action 时&#xff0c;…...

探索 Java 静态变量(static)的奥秘

目录 一、静态变量初印象 &#xff08;一&#xff09;什么是静态变量 &#xff08;二&#xff09;静态变量的特点 二、静态变量的使用场景 &#xff08;一&#xff09;共享数据 &#xff08;二&#xff09;全局常量 &#xff08;三&#xff09;工具类中的变量 三、静态…...

Excel for Finance 07 `FV PV` 函数

Excel 的 FV 函数用于计算一笔投资在未来的价值&#xff0c;基于固定的利率和定期付款。这是一个金融函数&#xff0c;常用来分析储蓄计划、贷款、或投资的增长。 语法&#xff1a; FV(rate, nper, pmt, [pv], [type])参数说明&#xff1a; rate&#xff08;必需&#xff09;&…...

【GUI-PyQt5】简介

1. 简介 GUI&#xff1a;带图形的用户接口程序&#xff0c;也就是桌面应用。 2. 分类 2.1 基本窗口控件 QMainWindowQwidgetQlabelQLineEdit菜单工具栏 2.2 高级组件 QTableViewQListView容器多线程 2.3 布局管理 QBoxLayoutQGridLayoutQFormLayout嵌套布局 2.4 信号与…...

CMSeasy;大米CMS漏洞复现

一、越权漏洞 pikachu-Over permission 水平越权 ⽔平越权&#xff1a;指攻击者尝试访问与他拥有相同权限的⽤户资源。 登录lucy 查看lucy个人信息 在lucy页面修改usernamelili 可以跳转lili的个人信息页面 pikachu-Over permission 垂直越权 垂直越权&#xff1a;通过低权…...

【CSS in Depth 2 精译_093】16.2:CSS 变换在动效中的应用(上)—— 图标的放大和过渡效果的设置

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第五部分 添加动效 ✔️【第 16 章 变换】 ✔️ 16.1 旋转、平移、缩放与倾斜 16.1.1 变换原点的更改16.1.2 多重变换的设置16.1.3 单个变换属性的设置 16.2 变换在动效中的应用 ✔️ 16.2.1 放大图…...

代码随想录算法【Day5】

DAY5 1.熟悉哈希表的数据结构&#xff1a;数组、map和set&#xff0c;使用方法、使用场景 2.哈希表应用场景&#xff1a;解决给你一个元素&#xff0c;判断它在集合里是否出现过。 242.有效的字母异位词 本题用数组解决的。 class Solution { public:bool isAnagram(strin…...

工程师如何平衡工作和生活?

在快节奏的社会环境中&#xff0c;工程师面临着高强度的工作压力和长时间的工作需求&#xff0c;要做到工作和生活的平衡&#xff0c;确实不容易。然而&#xff0c;通过一些策略和改变工作方式&#xff0c;可以有效缓解压力&#xff0c;找到平衡点。以下是一些建议&#xff1a;…...

若依数据权限控制

效果 新建用户 表结构 sys_role_dept 这张表的存在。是为了实现数据权限自定义的功能 service层 mapper层 流程...

C++ 设计模式:抽象工厂(Abstract Factory)

链接&#xff1a;C 设计模式 链接&#xff1a;C 设计模式 - 工厂方法 链接&#xff1a;C 设计模式 - 原型模式 链接&#xff1a;C 设计模式 - 建造者模式 抽象工厂&#xff08;Abstract Factory&#xff09;是一种创建型设计模式&#xff0c;它提供一个接口&#xff0c;用于创…...

嵌入式系统 第十讲 字符设备和驱动程序设计

• 字符设备是Linux三大设备之一&#xff08;另外两种是块设备&#xff0c;网 络设备&#xff09;。 • 字符设备就是采用字节流形式通讯的I/O设备&#xff0c;绝大部分 设备都是字符设备。 • 常见的字符设备包括鼠标、键盘、显示器、串口等等。 • 10.1 字符设备驱动框架 …...

Cod---Class of Device for Bluetooth device

0 Preface/Foreword 蓝牙sink在广播时候&#xff0c;需要告知自己的设备类型&#xff0c;这样蓝牙source可以方便准备相应协议。 从可视化来看&#xff0c;cod&#xff08;设备类型&#xff09;&#xff0c;比如Android手机&#xff0c;在蓝牙可配对列表中&#xff0c;左边那…...

踏踏实实练SQLday2-3连续12345

3连续12345 连续12345 -- hive的连续开窗函数知识点&#xff1a;排序开窗函数--4种 (如果第2 和 3 名一样大)3种 序号排序 - rank() 12245 - 紧缩dense_rank() 12234 - row_number() 123451种百分比排序 - percent_rank() - 算百分比&#xff0c;超过了多少人top20排行榜 连续1…...

脱离电路图编程

SM0.0常开始终吸合 SM0.1&#xff08;特殊中继&#xff09; 常开&#xff1a;闭合一次再断开 常闭&#xff1a;断开一次再闭合 上述是依据电路图编程...

spring的@Transactional事务原理理解

目录 Transactional 普通例子代码和测试输出编程式事务事务代理实现和TransactionAspectSupport重要类复习Spring的事务传播机制有哪些实际工作中用到的事务处理 Transactional事务原理理解 Transactional 普通例子代码和测试输出 Transactional(rollbackFor Exception.class…...

机器学习之线性回归算法预测数据

机器学习之线性回归算法预测数据 目录 机器学习之线性回归算法预测数据线性回归算法概念理解算法导入线性回归模型参数理解误差项分析 LinearRegression理解参数理解返回值方法基本格式 预测一元线性回归数据问题及理解可视化数据理解数据预测 预测二元线性回归数据问题及理解数…...

Markdown如何填充前景色、背景色

Markdown如何填充前景色、背景色 前言语法详解前景色背景色 > 快来试试吧&#x1f60a; Markdown填充前景色、背景色讲解&#x1f448;点击这里也可查看 前言 颜色可以使普通文字表达出更深刻的含义&#xff0c;比如红色用于醒目与警示&#xff0c;绿色用于表达良好与正常等…...

SpringCloudAlibaba实战入门之路由网关Gateway断言(十二)

上一节课中我们初步讲解了网关的基本概念、基本功能,并且带大家实战体验了一下网关的初步效果,这节课我们继续学习关于网关的一些更高级有用功能,比如本篇文章的断言。 一、网关主要组成部分 上图中是核心的流程图,最主要的就是Route、Predicates 和 Filters 作用于特定路…...

Spring Boot Actuator、Spring Boot Actuator使用、Spring Boot Actuator 监控、Spring程序监控

SpringBoot四大核心之actuator——程序监控器 1. 添加 Spring Boot Actuator 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 2. 配置 …...

【机器学习】机器学习的基本分类-半监督学习(Semi-supervised Learning)

半监督学习是一种介于监督学习和无监督学习之间的机器学习方法。它利用少量的标注数据&#xff08;有监督数据&#xff09;和大量的未标注数据&#xff08;无监督数据&#xff09;来进行模型训练&#xff0c;从而在标注数据不足的情况下&#xff0c;提升模型的性能。 半监督学习…...

RAG挑战及其解决方案:实践中的应对策略

RAG挑战及其解决方案&#xff1a;实践中的应对策略 在将检索增强生成&#xff08;RAG&#xff09;技术应用于生产环境的过程中&#xff0c;我发现了许多在原型设计阶段不易察觉的挑战。RAG结合了生成模型和检索机制&#xff0c;以调用外部知识&#xff0c;从而提高语言模型的质…...

机器学习DAY7: 特征工程和特征选择(数据预处理)(完)

本文通过特征提取、特征转换、特征选择三个过程介绍数据预处理方法&#xff0c;特征提取将原始数据转换为适合建模的特征&#xff0c;特征转换将数据进行变换以提高算法的准确性&#xff0c;特征选择用来删除无用的特征。 知识点 特征提取特征转换特征选择 本次实验的一些示…...