【極光 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.pswp.cn/web/71498.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71498.shtml
英文地址,請注明出處:http://en.pswp.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;具體可以查看我的文章《若依…