本篇文章由 VeriMake 旧版论坛中备份出的原帖的 Markdown 源码生成
原帖标题为:以 CH549 为例的 51 教程 | 图文 1. 开发环境配置(使用 VS Code + SDCC)
原帖网址为:https://verimake.com/topics/256 (旧版论坛网址,已失效)
原帖作者为:Xy(旧版论坛 id = 73,注册于 2020-10-15 13:03:26)
原帖由作者初次发表于 2021-08-18 23:18:48
📇 点此回到教程主索引
目录
开发环境的选择
关于本项目说明
下载与配置步骤
用 SDCC 编译第一个 CH549 例程
参考资料
开发环境的选择
常用51单片机编译器有keil c51,sdcc,wave6000
为什么选择SDCC而不是使用较多的keil c51
SDCC 与 Keil 相比优点
- 借助vscode强大的代码编辑能力,编写代码舒适方便,解决keil内部中文注释乱码,配套编辑器缩进不方便等问题。
- SDCC免费开源,而keil c51是收费软件。
- SDCC与keil相比,更适合中型,大型开发。
SDCC 与 Keil 相比缺点
- SDCC无法在线调试单片机(沁恒51本来就不支持在线调试)
- makefile配置稍复杂(本项目已经完成配置并逐步教导你如何修改Makefile文件)
- 沁恒官方无支持SDCC的头文件(本项目配套文件内有转换工具,可参考:https://verimake.com/d/18)
关于本项目说明
此教程配套文件有
- 安装包与所需文件
编译开发环境的主要软件与支持 SDCC 的 CH549 头文件 CH549_sdcc.H
(在 此处 下载,提取码为大写的 “vm51”,其中的“例程”文件夹下包含用于测试实验环境是否搭建成功的例子 sdcc-example-ch549-led
)
- keil_to_sdcc 语法转换脚本
一键解决 Keil 和 SDCC 语法差异
(在 此处 查看)
SDCC 和 Keil 语法差异
sbit pin=P1^0;//KEIL 中定义 pin 为 P1.1
#define pin P1_0//SDCC 中定义 pin 为 P1.1
__sbit __at 0x90 pin//SDCC
SBIT(pin,0x90,0);//SDCC
void Timer0() interrupt 1//KEIL 中定义 Timer0()为中断1的中断服务函数
void Timer0() __interrupt 1//SDCC 中定义 Timer0()为中断1的中断服务函数
//declare nvic function before use 在使用中断函数之前要声明
//keil
int data number;
//sdcc
int __data sdcc;
//在keil关键字data、bdata、idata、xdata、code等前面加上两个_就是sdcc关键字,如__code
下载与配置步骤
安装 VS Code
- 进入官网 (https://code.visualstudio.com) 下载(配套文件内有已下载好的安装包 VSCodeUserSetup-x64-1.49.3.exe )

- 按照自己需求安装即可。
TIPS:在这一步骤建议如下设置

- 安装完成之后在左侧选择 拓展 添加 C/C++ 拓展。

安装 SDCC
第一种方法(推荐)
使用安装包安装(无需配置path环境变量)
前往SourceForge (https://sourceforge.net/projects/sdcc/files/sdcc-win64/ )下载(配套文件内有已下载好的安装包 sdcc-4.0.0-x64-setup.exe )

强烈建议安装在默认目录,若不安装在默认路径,则路径则不能带有空格(中文路径,隐藏路径,英文句号均支持,仅空格不支持。原因是因为命令行调用不支持空格)。
重新启动。
第二种方法
使用压缩文件安装(需配置path变量)
- 解压缩 安装包与所需文件 中 SDCC.zip。
- 右击 此电脑 点击 属性。

- 选择左侧的 高级系统设置。

- 点击 环境变量。
- 找到系统变量中的 path 变量,点击 编辑。
- 点击 新建 然后点击 浏览
- 找到SDCC解压缩后的 SDCC/bin文件夹,点击确定完成添加 path环境变量。

检测是否完成安装 SDCC
打开 cmd (windows键+R,输入cmd打开)

输入
sdcc -v
显示 sdcc 版本则安装配置成功
如若
则安装配置失败,需检查path环境变量是否配置成功。
安装 make
- 解压缩 安装包与所需文件 中的 make.zip。
- 像SDCC第二种安装方法中配置SDCC的path环境变量一样将 解压缩后文件的 GUN_MAKE\bin\bin 添加到 path 环境变量。
注意:是最终目录里的 bin 文件夹。

检测是否完成安装make
- 打开 cmd (windows键+R 输入cmd打开)
- 输入
make
显示如下则安装配置成功
如若
则安装配置失败,需检查path环境变量是否配置成功。
用 SDCC 编译第一个 CH549 例程
将 安装包与所需文件 中的 CH549_sdcc.H 复制到SDCC的安装目录下 include\mcs51 文件目录下。
默认安装地址为:C:\Program Files\SDCC\include\mcs51

右键点击 例程 中的 sdcc-example-ch549-led 文件夹选择 通过Code打开 。

在左侧代码中打开 main.c。
点击上方菜单栏 终端 即 Terminal
点击 新终端 即 New Terminal

在终端中输入
make clean//删除之前编译的程序

在终端中输入
make//开始编译
如果终端中显示如上内容恭喜你,完成沁恒51教程项目开发环境配置工作。
如果有错误,不要灰心,大部分错误都是 path 变量未成功配置。
参考资料
- 使用SDCC编译51单片机,代替弱鸡keil
- 使用VSCode结合SDCC作为51单片机开发环境
- 51单片机开发环境的建设
- CH554 software development kit for SDCC