1.如何选择 IDE?
1.1 IDE 分类
首先,关于 MCS51 的
- 1.微软 Vscode
- 2.jetbrains Clion
- 3.keil5
1.2 IDE 差别
以上编辑器如何作出选择呢,首先
Vscode
,Clion
都是基于 PlatformIO
插件,集成了一些关于 51 单片机配置,C
语言必要文件头等,但 Vscode 网络要求较高,Clion 是一款专门写 C/C++ 的编辑器需要自己折腾一下才可以使用,过程中一定会遇到问题,如有问题,请在 github 的 iss 中留言,或直接在下方进行回复,我会一一作答。
其次 keil5
比较专业基本上下载安装完成就可以进行开发测试了,网络上教程也比较多,新手适用。
最后,无论选择何种编辑器,都请不要瞧不起任何其他的编辑器和使用其他编辑器的人,这和 php是世界上最好的语言
问题一致,非常可笑,工欲善其事必先利其器,但利何种还不是你说了算吗。
就比如我本身还在用记事本写 mcs51 代码。
2.抽象理解编程开发
2.1 环境
什么是编程 ? 简单的理解成: 使用代码操作计算机自动做一些事情。
计算机如何理解你写的代码呢,需要一个 中间层做转换
,最后将你写的 abcdefgxxxxx
转换成 汇编语言
转换成 01
这样它就会理解了。
如何做中间层转换呢,比如 A 说中国话,B 说英语,那么为了达到 A,B 相互理解,我们找即会翻译英文又会翻译中文的 C 帮忙就好了。C 的工作,就类似于 我们所为 装环境
这个 环境
所做的事情。
比如,Java 拥有 Jvm,Golang 拥有 go build,C 拥有 gcc,Typescript 拥有 tsc,这些语言编译工具做的工作就好比 C 一样。
2.2 语言
和日常生活不同的是,我们出生自带一门语言,而对于计算机我们不会说话,所以要先学说话,比如 C 的输出是 print()
,Typescript 的是 console.log()
,学习那种说话的本领,哪门编程语言,看你自己喜欢什么就学什么好了。
一门编程语言无非是 特性,流控,变量,类型,运算,常用代码库,代码库下载
这些知识
好了,现在我们学会了一种说话的方式,又拥有了 转译的工具(环境
),那么我们在这个环境中就可以随意和计算机进行对话了。
2.3 过程抽象
以上抽象出两个基本步骤
- 1.获取环境
- 2.学习语言
3.我如何进行开发
我不会分解出第一步如何做第二步如何做,这样的学习本身没有意义,只分享我思考问题的过程
1.mcs51 需要什么环境,谁做转译?
2.用什么语言去写呢?
3.因为不是计算机本身,如何把写好的东西放到板子里呢?
3.1 编译工具
第一个问题,我找到了 SDCC
并查阅了 SDCC
的相关资料
于是乎我就明白了,mcs51
是用 C 语言写的,用 SDCC 进行转译,然后我去安装了 SDCC,最后拿到了计算机能理解的文件
前两个问题解决了,那么思考第三个问题
3.2 传递程序到板子里
百度给出的答案是 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
4.结尾
以上就是针对于编程和 IDE 的浅解,有问题下方留言。
5.来点启发
思考一下 🤔
Q:
stcgal 是 python 写的,利用 串口通信库
将文件刷入了单片机中
那么,假如我不喜欢 python,那么如何用自己喜欢的语言去实现 一个 stcgal
呢?
A:
是不是你既要会 python
又要掌握 你喜欢用的编程语言
的 串口通信库
,然后以你自己为编译器 (先用python理解stcgal实现方法,在用你喜欢的语言和理解来的实现方法结合,写出自己的stcgal)
,将 python stcgal
的功能搞到你喜欢的编程语言中去呢,这个就是所谓的 移植
了
哇哦,理解的真深刻,学习了!👍