mac os 进行51单片机开发

由于个人电脑是苹果mac, 平时也没有使用windows. 最近对计算机原理比较感兴趣,想从单片机入手,了解一些底层软硬件知识。本文记录如何在mac电脑上配置使用单片机开发

Mac 环境搭建,主要参考了网上文章: 单片机—Mac下的开发环境【1】(STC单片机 + SDCC + Stcgal)

环境说明

Mac系统版本: macOS High Sierra
USB转串口: CH340
单片机: STC90C516RD+ / STC90C52RC / STC89C52RC
Python环境:3.7 (python一定要用3.2+)

此处要说明一下,在电商网站某宝了买了两个单片机开发版系统,MCU是STC89C52(注意区别STC89C52RC, 要买带RC的)。 结果环境搭建完毕总是按操作不成功。最后想起来大学毕业买过一个单片机,翻了好半天找到,型号:STC90C516RD+ 。 利用搭建的环境成功跑通。只想说mac下开发stcgal对有些型号不支持的,单片机型号选对很重要,挥泪又重新下单了STC89C52RC、STC90C52RC

1、安装usb转串口通信驱动 CH340 . 用于烧录程序和通电等。

去官网下载mac驱动(某宝上某些商家为了成本都采用了CH340串口通信模块,其他的还有PL2303等通信模块,需要安装对应的官方驱动)。 此处只安装CH340驱动。下载地址链接:

CH341SER_MAC.ZIP

安装成功后可能要重启,怎么确认驱动安装成功了?

将单片机插入电脑的usb口。然后在命令行终端中执行命令,查看是否有 tty.wchusbserial*  存在,有说明驱动正常安装。

bogon:dev chenlei$ ls -l /dev/* | grep usb
crw-rw-rw-  1 root     wheel           21,  13  7 20 17:00 /dev/cu.wchusbserial1410
crw-rw-rw-  1 root     wheel           21,  12  7 20 17:32 /dev/tty.wchusbserial1410

2、安装SDCC。

sdcc是用于Intel 8051 Maxim 80DS390和Zilog Z80的ANSI C编译器

brew install sdcc

3、安装烧录工具 stcgal. 源码: https://github.com/grigorig/stcgal

pip3 install stcgal

 

举例如何编写烧录程序?

1、编写c程序。网上案例大多是采用跑马灯程序,这里也举例控制单个灯闪烁。假设P10端口连接了led灯。文件命名flash.c

#include <8052.h> // 引用头文件
#define LED P1_0 // P10端口

//========= 延时 ============
void delay_ms(unsigned int s)
{
    unsigned int x;
    for (s; s > 0; s--)
    {
        x = 98;
        while (x--)
            ;
    }
}

//================ 主函数 ===================
void main()
{
    LED = 0; // 亮
    while (1)
    { //主循环
        delay_ms(150);
        LED = 1; // 灭
        delay_ms(150);
        LED = 0; // 亮
    }
}

 

2、采用sdcc进行编译。

sdcc flash.c

sdcc 会生成很多文件。这里51单片机的烧录主要使用 *.ihx 文件进行烧录

3、stcgal 进行烧录。需要安装提示,重起一次电源开关。

stcgal -p /dev/tty.wchusbserial1410 -P stc89 -D flash.ihx

提示执行成功后。即可看到单片机上led灯一闪一闪了。

 

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据