最近 DIY 之心又又又又复活了,翻出来吃灰多年的 51 开发板,重新学习一下 51。现在主力系统已经换成了 macOS,在折腾环境搭建的过程中,踩了一丢丢坑,特此记录一下。

环境搭建

在 macOS 下没有 Keil C51 (有也不想用ಥ_ಥ),之前都是用的 sdcc 编译,stcflash 烧录。这会想起来之前在 VSCode 尝试过的 PlatformIO IDE 插件,搜了一下,果然支持,开搞。

安装 PlatformIO IDE

很简单,在 VSCode 的应用市场里,搜索 PlatformIO IDE 安装即可。

安装 MCS-51 (8051) 支持

默认情况下,PlatformIO IDE 没有安装 8051 的支持库,导致我们创建工程的时候,无法选择 8051 平台,所以先安装一下:

-w1286

我使用的 宏晶 STC89C52RC 正在支持板子列表中~

-w1237

Hello, LED

新建工程: -w601

新建文件 led.c,写入如下内容:

1
2
3
4
5
6
7
8
#include <8052.h>

int main(int argc, char *argv[]) {
    P1_0 = 0xff;
    while(1) {
        P1_0 = 0x0;
    }
}

PlatformIO IDE 使用的编译工具是 sdcc,所以头文件及 GPIO 口的表示方式与 keil 稍有不同,见下表:

SSDC keil
头文件 8051.h/8052.h reg51.h/reg52.h
IO口 P1_0 P1^0
IO口定义 #define LED P1_0 sbit LED = P1^0
中断函数 void INT0_ISR() __interrupt 0 void INT0_ISR() interrupt 0

-w675

编译烧录之后,顺利点亮 LED ~ -w858

附录

  1. STC89C52RC datasheet