【极光 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;  // 点亮 LED
        Delay(1000000);
        P1_0 = 1;  // 熄灭 LED
        Delay(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 的更多功能!🌟

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端跨域设置 withCredentials: true

在做登录认证的时候,会出现请求未登录的情况,查看请求头的时候发现并没有把登录时的cookie设置到第二次的请求头里面。查看资料才知道跨域请求要想带上cookie,必须要在ajax请求里加上 withCredentials: true 再次访问发现请求头可以携带cook…

【漫话机器学习系列】122.相关系数(Correlation Coefficient)

深入理解相关系数(Correlation Coefficient) 1. 引言 在数据分析、统计学和机器学习领域,研究变量之间的关系是至关重要的任务。我们常常想知道:当一个变量变化时,另一个变量是否也会随之变化?如果会&…

uniapp+微信小程序+地图+传入多个标记点显示+点击打开内置地图导航+完整代码

一、效果展示 二、完整代码 <template><view class"container"><map class"map-container" :latitude"latitude" :longitude"longitude" :markers"markers" :controls"controls" show-location m…

高效数据管理:WPF中实现带全选功能的DataGrid复选框列

目录 引言项目结构与准备工作XAML布局设计后台代码实现视图模型设计总结引言 在许多应用场景中,我们需要在表格中选择多行数据进行批量操作,如删除、导出等。为了提高用户体验,通常会在表格的第一列添加一个复选框,允许用户逐个或批量选择数据项。本文将详细介绍如何在 WP…

一周学会Flask3 Python Web开发-SQLAlchemy简介及安装

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射&#xff08;ORM&#xff09;工具&#xff0c;…

《Linux C 智能 IO 矩阵:输入输出的自适应数据流转》

1. 标准库IO简介 标准库IO特点&#xff1a;通过操作系统提供的接口&#xff08;API&#xff09;和操作系统进行交互。&#xff08;接近100个函数&#xff09; 1.1. IO的过程 操作系统&#xff1a;向上为用户提供操作接口&#xff0c;向下为统筹控制硬件。 操作系统的组成&#…

【大模型理论篇】--Mixture of Experts架构

Mixture of Experts&#xff08;MoE&#xff0c;专家混合&#xff09;【1】架构是一种神经网络架构&#xff0c;旨在通过有效分配计算负载来扩展模型规模。MoE架构通过在推理和训练过程中仅使用部分“专家”&#xff08;子模型&#xff09;&#xff0c;优化了资源利用率&#x…

智能云呼叫中心如何升级企业服务?带来新商机

当某国际零售品牌通过部署云呼叫中心将客服响应效率提升73%时&#xff0c;这场由云计算掀起的客户服务革命已悄然渗透到企业运营的毛细血管。在数字化转型的深水区&#xff0c;云呼叫中心正从"成本中心"蜕变为"价值引擎"&#xff0c;推动企业构建差异化的服…

java+jvm笔记

JUC synchornized原理&#xff08;java锁机制&#xff09;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 升级顺序&#xff1a; 无锁偏向锁&#xff0c;只有一个线程来访问轻量级锁&#xff0c;有两个线程交替访问重锁&#xff0c;两个及以上线…

CES Asia 2025增设未来办公教育板块,科技变革再掀高潮

作为亚洲消费电子领域一年一度的行业盛会&#xff0c;CES Asia 2025&#xff08;第七届亚洲消费电子技术贸易展&#xff09;即将盛大启幕。今年展会规模再度升级&#xff0c;预计将吸引超过500家全球展商参展&#xff0c;专业观众人数有望突破10万。除了聚焦人工智能、物联网、…

Sass 模块化革命:深入解析 @use 语法,打造高效 CSS 架构

文章目录 前言use 用法1. 模块化与命名空间2. use 中 as 语法的使用3. as * 语法的使用4. 私有成员的访问5. use 中with默认值6. use 导入问题总结下一篇预告&#xff1a; 前言 在上一篇中&#xff0c;我们深入探讨了 Sass 中 import 语法的局限性&#xff0c;正是因为这些问题…

AI-Deepseek + PPT

01--Deepseek提问 首先去Deepseek问一个问题&#xff1a; Deepseek的回答&#xff1a; 在汽车CAN总线通信中&#xff0c;DBC文件里的信号处理&#xff08;如初始值、系数、偏移&#xff09;主要是为了 将原始二进制数据转换为实际物理值&#xff0c;确保不同电子控制单元&…

解锁前端表单数据的秘密旅程:从后端到用户选择!✨

&#x1f604; 解锁前端表单数据的秘密旅程&#xff1a;从后端到用户选择&#xff01;✨ 嘿&#xff0c;技术爱好者们&#xff01;&#x1f44b; 你有没有在开发中遇到过这样的困惑&#xff1a;表单里的数据&#xff08;比如图片附件、识别点 ID&#xff09;从哪儿来的&#x…

【Linux】进程间通信 续

目录 管道的原理&#xff08;匿名管道&#xff09; 核心原理 站在内核的角度看管道的本质 接口 创建管道文件 代码示例 管道的特征 管道读写端的四种情况 管道的应用场景 命令行的管道。 使用管道实现进程池 初始化 控制子进程 退出 命名管道 命名管道的理解 …

宇树科技再落一子!天羿科技落地深圳,加速机器人创世纪

2025年3月5日&#xff0c;机器人行业龙头宇树科技&#xff08;Unitree&#xff09;在深圳再添新动作——全资子公司深圳天羿科技有限公司正式成立。这家注册资本10万元、法定代表人周昌慧的新公司&#xff0c;聚焦智能机器人研发与销售&#xff0c;标志着宇树科技在华南市场的战…

AI-Ollama本地大语言模型运行框架与Ollama javascript接入

1.Ollama Ollama 是一个开源的大型语言模型&#xff08;LLM&#xff09;平台&#xff0c;旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。 Ollama 提供了一个简单的方式来加载和使用各种预训练的语言模型&#xff0c;支持文本生成、翻译、代码编写、问答等多种…

SQLAlchemy系列教程:基本数据类型及自定义类型

在SQLAlchemy、Python SQL工具包和ORM中定义模型时&#xff0c;理解基本数据类型至关重要。本教程提供了在SQLAlchemy模型中有效使用内置基本类型的指南。 SQLAlchemy中的基本类型 SQLAlchemy支持一组与SQL数据库类型一致的基本数据类型。SQLAlchemy中的每种类型都为各种SQL类…

K8s The connection to the server 192.168.56.120:6443 was refused报错解决

虚拟机获取不到其他node节点的信息&#xff0c;通过使用docker ps -a 排查看到k8s的组件都是exited的状态&#xff0c;通过手动拉起docker 镜像id 起来之后&#xff0c;又变为exited的状态&#xff01;&#xff01;&#xff01; 解决方法&#xff1a;重置k8s集群 使用 kubeadm…

随机树算法 自动驾驶汽车的路径规划 静态障碍物(Matlab)

随着自动驾驶技术的蓬勃发展&#xff0c;安全、高效的路径规划成为核心挑战之一。快速探索随机树&#xff08;RRT&#xff09;算法作为一种强大的路径搜索策略&#xff0c;为自动驾驶汽车在复杂环境下绕过静态障碍物规划合理路径提供了有效解决方案。 RRT 算法基于随机采样思想…

【实战 ES】实战 Elasticsearch:快速上手与深度实践-2.3.1 避免频繁更新(Update by Query的代价)

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 Elasticsearch数据更新与删除深度解析&#xff1a;2.3.1 避免频繁更新&#xff08;Update by Query的代价&#xff09;案例背景1. Update by Query的内部机制解析1.1 文档更…