单片机系列(一):开发环境安装

前言

前几年一直想找机会学习嵌入式开发,幻想着自己可以做一些小的工具来使用,但是一直没怎么进行,今天为什么打算入坑呢?原因还得从我媳妇儿开始学习缝纫机这个事情说起,她之前是一个没什么兴趣的人,可能最大的兴趣就是看剧逛淘宝,但是最近买了一个缝纫机后,每天都在研究做各种各样的小玩意,整个人都变得有精气神了,这让我感受到很震惊。我一直觉得自己是兴趣很多的人,但是最近突然对所有事情都失去了兴趣,这不是一个好的兆头,因此我迫切希望学习一些新的事情,来让生活不那么无趣,想了想之前想做却未做的事情,单片机好像能排到前列,于是就有了今天的这篇文章,希望我能够坚持下去(^_^)

开发环境

从淘宝上火速下单了一块 51 开发板之后(选错了套餐,还有一块 stm32 的板子,后续再研究),一脸懵逼,感觉自己有些冲动了,但想了想,万事开头难,不能放弃这么快,如果放弃了一定会被我媳妇儿天天笑话。。。

既然要开发,那么一定要配置开发环境,研究了半天,发现嵌入式的开发工具都是上了年头的老软件,比如 keil,都 2026 年,没有什么新的 IDE 吗?一番搜索后,发现 vscode 或者 clion 也可以进行开发。本人之前是 IDEA 的重度使用者, 也用 clion 写过一些 C 代码,因此决定使用 Clion 来开发,一下是配置环境的过程

1. 安装 Clion

Clion 安装比较简单,直接在官网下载安装即可。同时因为之前参与过一些开源项目,所以我可以免费使用 Jetbrains 家的工具,直接可以开始使用
clion

新建项目时,显示未安装 platformio core,需要安装,参考官网 教程进行安装

2. Python

依赖 Python 开发环境,直接在 Microsoft Store 搜索安装即可
python

3. Platformio

cd E:\platformio\
python.exe get-platformio.py

4. 烧录程序

使用 aicube 将程序烧录到开发板中
aicube

Demo

安装好开发环境后,我们需要简单写个 Demo 验证一下

1. 创建项目

  • 选择开发板型号
    image

  • 修改 platformio.ini 文件

    [env:STC89C516RD]  # 默认是 `env:STC89C516RD+`,有问题
    platform = intel_mcs51
    board = STC89C516RD+
  • 添加自定义编译文件:custom-complier.yaml

    # Source - https://stackoverflow.com/a/79660618
    # Posted by lxhlll
    # Retrieved 2026-02-02, License - CC BY-SA 4.0
    
    compilers:
      - description: SDCC for 8051
        match-compiler-exe: "(.*/)?sdcc(.exe)?"
        match-args: -mmcs51
        match-language: C
        include-dirs:
          - ${project-path}/include
          - ${compiler-exe-dir}/../include/mcs51
          - ${compiler-exe-dir}/../include
          - ${compiler-exe-dir}/../non-free/include
        defines-text: "
        #define __SDCC_USE_NON_FREE 1
        #define __SDCC_MCS51 1
        #define __STC8G1K08A 1
        #define __8051__ 1
        #define __STDC_VERSION__ 201112L
        #define __STDC_ISO_10646__ 201409L
        #define __STDC_UTF_16__ 1
        #define __STDC_UTF_32__ 1
        #define __STDC__ 1
        #define __SDCC 4_4_0
        #define __SDCC_REVISION 14620
        #define __SDCC_VERSION_MAJOR 4
        #define __SDCC_VERSION_MINOR 4
        #define __SDCC_VERSION_PATCH 0
        #define __interrupt(vector)
        #define __using(regnum)
        #define __code
        #define __at(addr)
        #define __sfr
        #define __sfr16
        #define __sfr32
        #define __sbit
        #define __xdata
        "
  • 修改 Clion 配置
    image-02

2. 编写 main.c 代码

// 引入51单片机寄存器定义头文件,识别P1、延时函数相关寄存器
#include <mcs51/8051.h>

void delay(int ms) {
    ms = ms * 100;
    while (ms--) {

    }
}

// 程序入口函数
int main(void) {
    // 无限循环:让LED闪烁逻辑反复执行(防止程序跑飞,实现持续闪烁)
    while(1) {
        P2_0 = 0;  // P2.0引脚输出低电平,点亮LED
        delay(500);
        P2_0 = 1;  // P2.0引脚输出高电平,熄灭LED
        delay(500);
    }
}

3. 部署

  • 开发板插线
    P20 链接 D3(其实也可以连接其他 LED,比如 D1、D2)
    image-03

  • 烧录程序
    将 firmware.hex 程序烧录到开发板中
    image-04
    使用 aicube 烧录,选择对应型号、串口、程序文件,点击下载完成烧录
    image-05

  • 验证程序
    gif

Good Work!!!

嵌入式
作者:cserwen
链接:https://blog.cserwen.com/2026/02/03/learn-51-01/
来源:cserwen's blog
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 许可协议。著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
长风破浪会有时,直挂云帆济沧海