如何选择 IDE?
IDE 分类
首先,我所知能够进行 MCS-51 开发的编辑器有以下三种:
•微软 Vscode•jetbrains Clion•keil5
IDE 差别
以上编辑器如何作出选择呢?
•首先 Vscode
,Clion
都是基于 PlatformIO
插件,集成了一些关于 51 单片机的配置,C
语言必要头文件等,但 Vscode 网络要求较高,Clion 是一款专门写 C/C++ 的编辑器需要自己折腾一下才可以使用,过程中一定会遇到问题,如有问题,请点击下方原文链接
进行评论,我会一一作答。•其次 keil5
相对于Vscode
和Clion
来说更加专业和成熟,基本上下载安装完成就可以进行开发测试了,网络上教程也比较多,新手适用。•最后,无论选择何种编辑器,都请不要瞧不起任何其他的编辑器和使用其他编辑器的人,这和争论 php是不是世界上最好的语言
一样,非常可笑,工欲善其事必先利其器,但利何种器还不是你说了算吗?
我还在用记事本写 MCS-51 代码
抽象理解编程开发
环境
什么是编程 ? 简单的理解成: 使用代码操作计算机自动做一些事情。
计算机如何理解你写的代码呢? 需要一个中间层做转换
,最后将你写的 abcdefgxxxxx
转换成汇编语言
转换成 0
和 1
这样它就会理解了。
如何做中间层转换呢? 比如 A 说中国话,B 说英语,那么为了达到 A,B 相互理解,我们找即会翻译英文又会翻译中文的 C 来帮忙就好了。C 的工作,就类似于我们所谓 装环境
中的这个 环境
所做的事情。
比如,Java 拥有 Jvm,Golang 拥有 go build,C 拥有 gcc,Typescript 拥有 tsc,这些语言编译工具做的工作就好比 C 一样。
语言
和日常生活不同的是,我们出生自带一门语言,而对于计算机我们不会说话,所以要先学说话,比如 C 的输出是 print()
,Typescript 的是console.log()
,学习哪种说话的本领,哪门编程语言,看你自己喜欢什么就学什么好了。
一门编程语言无非是 特性
,流控
,变量
,类型
,运算
,常用代码库
,代码库下载
这些知识。
好了,现在我们学会了一种说话的方式,又拥有了转译的工具(环境
),那么我们在这个环境中就可以随意和计算机进行对话了。
过程抽象
以上抽象出两个基本步骤:
•获取环境•学习语言
我如何进行开发
我不会分解出第一步如何做第二步如何做,这样的学习本身没有意义,只分享我思考问题的过程:
•MCS-51需要什么环境,谁做转译?•用什么语言去写呢?•因为不是计算机本身,如何把写好的东西放到板子里呢?
编译工具
第一个问题,我找到了 SDCC
并查阅了 SDCC
的相关资料。

于是乎我就明白了,MCS-51
是用 C 语言写的,用 SDCC 进行转译,然后我去安装了 SDCC,最后拿到了计算机能理解的文件。
前两个问题解决了,那么思考第三个问题。
传递程序到板子里
百度给出的答案是 stcgal
,于是乎就去找如何安装 stcgal
,以及 stcgal
如何使用。

三个问题都解决了,至于用什么 IDE (编辑器)还重要吗?用记事本就可以写了,但是写着写着觉得记事本背景太白了,就换成了其他的编辑器。

如图,这是我用 vim 自己搭的一个编辑器,纯写代码,至于 转译
,写文件到板子里
基于 sdcc
, stcgal
用了最原始的方法。
用 sdcc 转译 (为了好理解所以说转译,确切的叫编译):sdcc ./src/led/led1.c -o /Users/ferried/Projects/mcs51/out/out.ihx
用 stcgal 刷程序:python3 ./tool-stcgal/stcgal.py -a -P stc89 -b 9600 -p /dev/tty.usbserial-14120 out/out.ihx
结尾
以上就是针对于编程和IDE的浅解,有问题下方留言。
来点启发
思考一下🤔
Question:
stcgal 是 python 写的,利用 串口通信库
将文件刷入了单片机中 那么,假如我不喜欢 python,那么如何用自己喜欢的语言去实现 一个 stcgal
呢?
Answer:
是不是你既要会 python
又要掌握你喜欢用的编程语言
的串口通信库
,然后以你自己为编译器(先用 python 理解 stcgal 实现方法,在用你喜欢的语言和理解来的实现方法结合,写出自己的 stcgal)
,将 python stcgal
的功能搞到你喜欢的编程语言中去呢,这个就是所谓的移植
了。




