背景 不管是51内核单片机还是arm内核的单片机,相信很多同学在开发的时候首先接触的就是keil。没有用过其他IDE的同学可能没有感觉,但是对于使用过IDEA或者VSCODE开发的同学就会对keil的使用感觉很不舒服:
老旧的窗口形式; 奇怪的工程目录; 繁琐的配置; 没有高亮; 关键它不是免费的,虽然最近出了社区板,非盈利可以免费使用。但还是保留了代码量的限制。
以上这些问题也有相应的解决方案了,比如VSCode插件EIDE就可以使用VSCode编辑代码,然后配置插件关联到已经安装的keil上,类似的方案还有Keil uVision Assistant 。
但是当家里只有一台mac电脑时,这条路就因为keil不支持mac而不得不放弃。归根结底是编译器的问题,所以就要解决根本问题。带着问题去寻找答案。皇天不负有心人,终于还是找到了。其中编辑器就使用风靡全球的vscode。重点就是编译器,使用SDCC(Small Device C Compiler),它的主要优点就是开源,跨平台,缺点就是使用的人少,参考资料不多;
只有这两个还是不能完成开发任务的。我们还需要一个构建打包的工具,比如CMAKE大家用的比较多,但是也需要进行一系列繁琐的配置。我这里选择的是platformIO简称PIO,而且它还有VSCODE的插件。现在很多开源项目都是使用PIO开发的。
至此,摆脱keil开发51单片机的开发环境需要的内容基本就全了。这里我给他们简称VPS,V-VSCODE; P-PIO; S-SDCC;
环境搭建
VSCODE 安装 这个就是安装一个软件,很简单,懒得说了。有的可能会按照中文支持,感觉非必要。
PIO 安装 在写这篇文章的时候我已经用了一段时间的VPS了。环境也已经安装搭建好了,简单介绍一下步骤:
step2:点击左边的第四个按钮,搜索platformio,点击安装;
step3:安装成功后在左侧会出现小蚂蚁图标; step4:安装platform,这里的platform可以理解成不同单片机平台;点击小蚂蚁 -> 点击Home -> 点击Platforms -> 搜索 Intel 找到Intel MCS-51 安装,这里可能会花费一些时间来安装相关的工具链,其中就包括sdcc
SDCC 安装 已经在PIO 中安装了,可以到以下目录查看PIO下已经安装的工具链:C:\Users\Administrator.platformio\packages
DEMO 演示:
step4:编写代码,在src目录下新建文件 main.c 代码如下:
#include <compiler.h>
SFR(P0, 0X80);
void Delay500ms() //@11.0592MHz
{
unsigned char __data i, j, k;
NOP();
NOP();
i = 22;
j = 3;
k = 227;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main(void)
{
// STC89C52单片机的P0口输出高电平点亮LED
P0 = 0XF0;
while (1)
{
Delay500ms();
P0 = 0X00;
Delay500ms();
P0 = 0XFF;
}
} 复制代码
step5:编译,生成的hex 文件在 ./pio/build/STC89C52RC 目录下
效果演示:
Your browser does not support video tags.
最后:
仅仅是搭建环境是开启VPS开发51单片机的第一步,正如前文说的sdcc 是一个开源的跨平台的编译器,这是它的优点,但是关于它的资料太少了。在使用的过程中也遇到了很多问题,这些就放在后边跟大家分享。