【极光 Orbit•STC8A-8H】02. STC8 单片机工程模板创建

【极光 Orbit•STC8A-8H】02. STC8 单片机工程模板创建

七律 · 单片机

小小芯片大乾坤,集成世界在其中。
初学虽感千重难,实践方知奥妙通。

今天的讲法和过去不同,直接来一个多文件模块化的工程模板创建,万事开头难,我们把难事开头做,后面的就简单了,一个月之后感谢我吧。

本教程将详细指导你完成 STC8A8K64S4 单片机工程模板的创建与使用。我们将基于 Keil C51 开发工具,详细讲解每一步操作,包括文件结构的创建、移植过程、移植文件名称及对应目录,以及 Keil 分组目录和对应文件的说明。


1️⃣ Keil C51 开发环境安装

1.1 Keil C51 介绍

Keil C51 是 Keil 公司推出的用于 8051 系列单片机的集成开发环境(IDE),支持 C 语言和汇编语言开发。

1.2 Keil C51 下载与安装

  1. 访问下载页面
    打开 Keil 官网:https://www.keil.com,下载 Keil C51 安装包。

  2. 安装 Keil C51

    • 右键以管理员身份运行安装包。
    • 按照提示选择安装路径(路径中不能包含中文)。
    • 填写个人信息(可随意填写)。
    • 等待安装完成。
  3. 激活 Keil C51

    • 以管理员身份运行 Keil C51。
    • 点击 File -> License Management
    • 点击 Get LIC via Internet,按照提示填写信息并获取激活码。
    • 将激活码粘贴到 New License ID Code (LIC) 中,点击 Add LIC 完成激活。

2️⃣ STC8A8K64S4 器件支持安装

2.1 下载 STC-ISP 工具

  1. 访问 STC 官网
    打开 STC 官网:https://www.stcmcudata.com,下载 STC-ISP 工具。

  2. 安装 ST极-ISP 工具

    • 双击安装包,按照提示完成安装。

2.2 添加 STC 器件支持

  1. 打开 STC-ISP 工具
    安装完成后,打开 STC-ISP 工具。

  2. 添加器件支持

    • 在 STC-ISP 工具中,点击 Keil 仿真设置 选项卡。
    • 点击 添加 STC 仿真驱动到 Keil 中,选择 Keil 的安装路径。
    • 等待驱动添加完成。
  3. 验证器件支持

    • 打开 Keil C51,点击 Project -> Manage -> Pack Installer,查看是否已添加 STC8A8K64S4 器件支持。

3️⃣ 工程模板创建与使用

3.1 创建新工程

  1. 新建工程文件夹
    在本地创建一个文件夹,例如 STC8A_Project,注意路径中不能包含中文。

  2. 打开 Keil C51 并创建工程

    • 打开 Keil C51,点击 Project -> New uVision Project
    • 选择刚才创建的文件夹,输入工程名称,例如 STC8A_Template
    • 点击 Save
  3. 选择芯片型号
    在弹出的窗口中选择 STC8A8K64S4(根据实际芯片型号选择),点击 OK

3.2 文件结构创建

  1. 创建文件夹结构
    在工程文件夹 STC8A_Project 中创建以下文件夹:
    • Projects:存放不同 IDE 的工程文件。
      • MDK-RAM:存放 Keil C51 极工程文件。
    • Drivers:存放所有驱动相关文件。
      • BSP:存放底层相关的支持包。
      • Module:存放各类软件模块,如定时器、状态机等。
      • Core:存放核心文件。
      • Libraries:存放 STC8A 外设库文件。
    • APP:存放应用程序,由用户编写,包含 main 函数。
  2. 目录结构图示
STC8A_Project/
├── Projects/
│   └── MDK-RAM/
├── Drivers/
│   ├── BSP/
│   ├── Module/
│   ├── Core/
│   └── Libraries/
└── User/
  1. 复制库文件与启动文件
    从 STC8A 外设库中复制以下文件到对应文件夹:
    • Drivers/Core
    • Drivers/STC8A_Libraries

3.3 Keil 分组目录与对应文件

  1. 在 Keil 中添加分组
    • 右键 Target 1,选择 Add Group,创建以下分组:
      • User
      • BSP
      • Module
      • Core
      • Libraries
  2. 添加文件到分组
    • BSP 分组:添加 Drivers/BSP 文件夹中的文件。
    • Module 分组:添加 Drivers/Module 文件夹中的文件。
    • Libraries 分组:添加 Drivers/Libraries/Src 文件夹中的所有 .c 文件。
    • Core 分组:添加 Drivers/Core 文件夹中的 所有 .c` 文件。
    • User 分组:添加 APP` 文件夹中的文件。
  3. 添加头文件路径
    • 点击 Project -> Options for Target -> C/C++
    • Include Paths 中添加以下路径:
      • Drivers/BSP
      • Drivers/Module
      • Drivers/Libraries/Inc
      • Drivers/Core
      • User

3.4 编写主程序

  1. 创建 main.c 文件

    • 右键 User 分组,选择 Add New Item to Group,创建 main.c 文件。
  2. 编写代码
    main.c 中添加以下代码:

#include "stc8a8k64s4.h"
#include "board_init.h"void Delay(uint32_t count) {while (count--);
}int main(void) {// 板子初始化Board_Init();// 配置 P1.0 为推挽输出P1M0 |= 0x01;  // P1.0 推挽输出P1M1 &= ~0x01;while (1) {P1_0 = 0;  // 点亮 LEDDelay(1000000);P1_0 = 1;  // 熄灭 LEDDelay(1000000);}
}

3.5 编译与下载

  1. 编译工程
    点击 Build 按钮(或按 F7),确保没有错误和警告。

  2. 下载程序
    连接开发板,点击 Download 按钮(或按 F8),将程序下载到开发板。


4️⃣ 使用例程或模板

4.1 复制模板工程

  1. 从 STC8A 外设库中复制模板
    找到 STC8A 外设库,将其复制到本地并重命名。

  2. 打开工程
    在 Keil C51 中打开复制的工程文件(.uvprojx)。

4.2 修改头文件路径

  1. 调整头文件路径
    点击 Project -> Options for Target -> C/C++,修改头文件路径为相对路径。

4.3 编译与下载

  1. 编译工程
    点击 Build 按钮,确保没有错误和警告。

  2. 下载程序
    连接开发板,点击 Download 按钮,将程序下载到开发板。


5️⃣ 总结

通过本教程,你已经完成了 STC8A8K64S4 开发环境的安装、器件支持的添加以及工程模板的创建与使用。接下来,你可以基于模板开发自己的应用程序,探索 STC8A8K64S4 的更多功能!🌟

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

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

相关文章

mac安装nvm=>node=>nrm

下载并安装 NVM 运行以下命令下载并安装 NVM: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash 配置环境变量 vim ~/.zshrc 按 i 将如下代码复制进去,controlc ,再按 :wq完成编辑 export NVM_DIR…

K8S学习之基础十一:k8s中容器钩子

容器钩子 容器钩子分为post-start和pre-stop post-start:容器启动后执行的命令 pre-stop:容器关闭前执行的命令,可用于优雅关闭 # 分别定义两个钩子,启动pod后更新index.html,关闭pod前正常关闭服务 vi post-pre.…

K8s 1.27.1 实战系列(三)安装网络插件

Kubernetes 的网络插件常见的有 Flannel 和 Calico ,这是两种主流的 CNI(容器网络接口)解决方案,它们在设计理念、实现方式、性能特征及适用场景上有显著差异。以下是两者的综合对比分析: 一、Flannel 和 Calico 1. 技术基础与网络实现 Flannel 核心机制:基于 Overlay …

【五.LangChain技术与应用】【24.LangChain RAG文本向量化与存储:智能检索的核心技术】

凌晨三点,北京中关村的某栋办公楼依然灯火通明。28岁的算法工程师小李盯着屏幕上的代码,突然拍案而起:"终于成了!"他开发的智能客服系统在连续失败78次后,首次准确识别出用户"我想换个能打游戏的便宜手机"的真实需求——需要兼顾游戏性能和价格的机型…

深度学习五大模型:CNN、Transformer、BERT、RNN、GAN详细解析

卷积神经网络(Convolutional Neural Network, CNN) 原理 :CNN主要由卷积层、池化层和全连接层组成。卷积层通过卷积核在输入数据上进行卷积运算,提取局部特征;池化层则对特征图进行下采样,降低特征维度&…

特征分解(Eigen decomposition)在深度学习中的应用与理解

特征分解在深度学习中的应用与理解 特征分解(Eigendecomposition)是线性代数中的一个核心工具,在深度学习领域有着广泛的应用,尤其是在涉及矩阵操作和概率模型时。对于研究者来说,理解特征分解不仅有助于掌握数学基础…

分布式ID生成方案:数据库号段、Redis与第三方开源实现

分布式ID生成方案:数据库号段、Redis与第三方开源实现 引言 在分布式系统中,全局唯一ID生成是核心基础能力之一。本文针对三种主流分布式ID生成方案(数据库号段模式、Redis方案、第三方开源框架)进行解析,从实现原理…

rabbitmq-amqp事务消息+消费失败重试机制+prefetch限流

1. 安装和配置 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency><dependency> <groupId>com.fasterxml.jackson.core</groupId> <arti…

【Python】05、Python运算符

文章目录 1.算术运算符2.赋值运算符3.关系运算符4.逻辑运算符4.1 布尔值逻辑运算4.2 非布尔值的逻辑运算符 5.条件运算符6.运算符优先级 运算符也称为操作符&#xff0c;可以对一个或多个值进行运算或各种操作。比如、-、都属于运算符 1.算术运算符 加法 如果是两个字符串之间…

2025-03-06 学习记录--C/C++-PTA 习题6-6 使用函数输出一个整数的逆序数

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、题目描述 ⭐️ 二、代码&#xff08;C语言&#xff09;⭐️ #include <stdio.h>int reverse( int number );int main…

简记_硬件系统设计之需求分析要点

目录 一、 功能需求 二、 整体性能需求 三、 用户接口需求 四、 功耗需求 五、 成本需求 六、 IP和NEMA防护等级需求 七、 认证需求 功能需求 供电方式及防护 供电方式&#xff1a;市电供电、外置直流稳压电源供电、电池供电、PoE&#xff08;Power Over Ether…

[原创](Modern C++)现代C++的关键性概念: 利用“概念(Concepts)“,可以优雅地约束模板参数

[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi、XCode、Eclipse…

Self-Pro: A Self-Prompt and Tuning Framework for Graph Neural Networks

Self-Pro: A Self-Prompt and Tuning Framework for Graph Neural Networks ​#paper/GFM/GNN-BASED#​ #paper/⭐⭐⭐#​ 注意&#xff1a;这篇文章是每个图一个GCN模型&#xff0c;而不是所有图一个GCN 模型 算是最早的涉及异配图的prompt了 贡献和动机&#xff1a; 非对…

宝塔 Linux 计划任务中添加运行项目网站PHP任务-定时任务

一、指定php版运行&#xff0c; cd /www/wwwroot/www.xxx.com/ && /www/server/php/56/bin/php think timedtasks start >> /tmp/timedtasks.log 2>&1 二、不指定php版 cd /www/wwwroot/www.xxx.com/ && php think timedtasks start >> …

【电控笔记z29】扰动估测器DOB估测惯量J-摩擦系数B

基本原理 扰动估测器的核心思想是通过向电机系统施加特定的扰动信号&#xff0c;观察系统响应的变化&#xff0c;然后利用系统的动态模型和控制理论来估计未知参数&#xff0c;如惯量和摩擦系数 。一般基于电机的运动方程建立数学模型&#xff0c;结合观测到的电机实际运行数据…

要查看 SQLite 数据库中的所有表,可以通过查询 SQLite 的系统表 sqlite_master

要查看 SQLite 数据库中的所有表&#xff0c;可以查询 SQLite 的系统表 sqlite_master。 每个 SQLite 数据库都包含一个名为 sqlite_master 的系统表。该表定义了数据库的模式&#xff0c;存储了数据库中所有表、索引、视图和触发器等对象的信息。 通过查询 sqlite_master&am…

如何在Spring Boot中读取JAR包内resources目录下文件

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 以下是如何在Spring Boot中读取JAR包内resources目录下文件的教程&#xff0c;分为多种方法及详细说明&#xff1a; 方法1&#xff1a;使用 ClassPathResour…

清华大学DeepSeek赋能家庭教育【附下载链接】

核心要点&#xff1a; DeepSeek通过基础模型&#xff08;V3&#xff09;、深度思考模型&#xff08;R1&#xff09;及联网模型&#xff0c;为家庭教育提供分层支持&#xff1a;V3用于作业辅导&#xff0c;R1培养批判性思维&#xff0c;联网模型助力探究性学习。家长需遵循目标导…

C语言番外篇(5)-------------->作用域与生命周期

作用域与生命周期是非常重要的编程知识。本篇文章使用C语言讲述作用域与生命周期。 一、作用域 在程序设计中&#xff0c;变量并非总是有效的&#xff0c;可以使用的区域就是作用域。 1.1局部变量的作用域 在{}中的都是局部变量&#xff0c;只是作用大小不一样而已。我们可…

若依前后端分离版使用Electron打包前端Vue为Exe文件

1.前言 本文详细介绍如何使用electron将若依框架前后端分离版的前端Vue页面打包为Exe文件&#xff0c;并且包括如何实现应用更新。使用若依基础代码体现不出打包功能&#xff0c;因此我使用开发的文件管理系统&#xff0c;介绍上述过程&#xff0c;具体可以查看我的文章《若依…