macOS实现51单片机编程(不建议)

sdcc编译器和Keil软件语法相差较大,建议使用虚拟机。 —— 2021.8.5

感谢灰佬送的开发板!

郭天祥老师的《51单片机C语言教程》是单片机入门很好的教材,但是它使用的是Keil软件进行的教学,而Keil不但不支持macOS系统,而且还是一款收费软件。本文介绍如何在macOS上进行51单片机开发。

1. 安装sdcc编译器

使用homebrew安装,一般来说,如果您安装过Xcode,那么您的电脑上就会带有homebrew,如果依然没有,您可以通过如下命令安装:

1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装完成后,通过homebrew安装sdcc

1
brew install sdcc

2. 安装单片机驱动

下载地址:http://www.wch.cn/download/CH341SER_MAC_ZIP.html

直接点击那个大大的下载就行。

请注意,安装过程会重启电脑

3. 连接单片机

重启完成后,将单片机连接至Mac,打开终端,输入:

1
ls /dev/tty.wchusbser*

如果出现:

image-20200925112434320

则说明驱动安装成功并可以正确检测到单片机。

请复制并留存好这次的输出(记做MCUPath),以后会用到。

4. 安装烧录工具stcgal

项目地址:https://github.com/grigorig/stcgal

首先确认您的电脑有安装python3,如果没有,先去官网下载一个。

直接输入:

1
pip3 install stcgal

等待安装完成即可。

5. HelloWorld

先在自己的开发目录里新建一个项目文件夹,比如我的是~/Developer/MCU/HelloWorld,在里面新建一个HelloWorld.c的文件,写一个最基本的点亮发光二极管的程序:

1
2
3
4
5
#include <8052.h> //注意:教材中reg52的头文件在sdcc中叫做8052
void main() {
P1 = 0x2a; //点亮D1,D3,D5
while (1);
}

打开终端进入该文件夹,然后编译:

1
2
cd ~/Developer/MCU/HelloWorld
sdcc HelloWorld.c

编译完成后,项目文件夹里会出现一大堆东西:

image-20200925120143449

然后进行烧录:

先打开单片机,然后输入:

1
stcgal -P stc89 -p /dev/tty.wchusbserial1440 HelloWorld.ihx

当出现Waiting for MCU, please cycle power: 时,请按两下按钮重启单片机,然后会有:

image-20200925121106103

说明烧录完成,三颗指定的发光二极管也已经亮起:

IMG_20200925_120949