vscode+platformio IDE+sdcc搭建51单片机开发环境(win764)

vscode+platformio IDE+sdcc搭建51单片机开发环境,使用的单片机是STC89C52RC,最终我们使用单片机引脚的pwm输出实现两颗led拖尾交替输出,模拟警车上的灯的一个效果。

依然老套路,安装在虚拟机里,为什么呢?为了模拟一个完全从0开始的环境。
首先准备需要的软件
1.

VSCODE,这个安装此处不再赘述,网上有很多教程,基本就是点下一步就完成了。

2.

vscode插件,其中包括 platformIO IDE,这是一个单片机开发的集成环境,内部直接包含编译器,可以帮助我们链接,编译,生成2进制文件,等于把makefile该干的事都干了。虽然它自称是IDE,但它是以插件的形式安装在其他编辑器或IDE上的IDE。

3.

二进制文件下载软件,STC官方提供的一个软件,后面会说明。

首先我们安装vscode需要安装的插件

1.中文插件

在这里插入图片描述

2.C/C++ 语言包,微软官方提供的插件,可以做一些语法检查,智能提示等。

在这里插入图片描述

3.platformIO IDE 这个是重头戏,功能非常强大的一个IDE,我也只是略懂皮毛,有兴趣的小伙伴可以自行百度。反正我们能知道此处他就是帮我们,链接,编译,生成二进制文件就可以了,使用的编译器是sdcc。

在这里插入图片描述

安装的时间可能会有点长,等待右下角的进度条走完,安装完成以后右下角会提示重启vscode,如果还没有切换到中文环境又不认识英文,那么里面有个单词restar,看到这个单词说明装完了,直接重启vscode。

在这里插入图片描述

此处可以看到我圈出来了两个地方,一个是一只蚂蚁的头,一个是房子图标,蚂蚁头是IDE的主界面,房子是创建项目的界面,然后我们点击房子,然后跟着图示操作即可。

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

上图忘记了写项目名,大家可以写一下。

在这里插入图片描述

下面我们编写代码
delay.h
#ifndef __DELAY_H
#define __DELAY_H

#define MAIN_Fosc 11059200L //晶振频率,每秒


void delay_ms(unsigned int ms);
#endif

delay.c

#include <delay.h>
void delay_ms(unsigned int ms)
{
    unsigned int i;
    do
    {
        i = MAIN_Fosc / 1300000;
        while (--i)
            ;
    } while (--ms);
}

led_out.h
#ifndef __LED_OUT
#define __LED_OUT

#include "mcs51/stc12.h"
#include "mcs51/8052.h"

void led_pwm_out();
void led_out();
void ztim(void) __interrupt 1;

#endif
led_out.c
#include "led_out.h"
#include "delay.h"

#define MAIN_Fosc 11059200L //晶振频率
#define LED1 P1_1           //输出1
#define LED2 P1_2           //输出2

unsigned char CYCLE;  //定义周期该数字X基准定时时间如果是10 则周期是10x 0.1ms
unsigned char PWM_ON; //定义高电平时间

void led_out()
{
    while (1)
    {
        LED1 = 0;
        LED2 = 1;
        delay_ms(100);
        LED1 = 1;
        LED2 = 0;
        delay_ms(100);
    }
}

void led_pwm_out()
{
    __bit ZFlag;
    TMOD |= 0x01; //定时器设置 0.1ms in 12M crystal
    TH0 = (65536 - 45872) / 256;
    TL0 = (65536 - 45872) % 256; //定时0.1mS
    IE = 0x82;                   //打开中断
    TR0 = 1;
    CYCLE = 50; // 时间可以调整这个是10调整8位PWM就是256步
    while (!ZFlag)
    {
        delay_ms(25); //延时时间,从一个亮度到下一个亮度的间隔时间,速度快就能看到连续效果
        PWM_ON++;     //这个使用较长延时,以便能看清楚变化过程
        if (PWM_ON == CYCLE)
        { //这个里可以添加其他程序😂如到最亮时候控制设备
            ZFlag = 1;
        }
    }
    while (ZFlag) //亮度递减同上,是个相反的过程
    {
        delay_ms(25); //延迟时间为20000*0.4=8000us
        PWM_ON--;
        if (PWM_ON == 0)
        {
            ZFlag = 0;
        }
    }
}

void ztim(void) __interrupt 1
{
    static unsigned char count;
    TH0 = (65536 - 100) / 256;
    TL0 = (65536 - 100) % 256; //定时0.1mS
    if (count == PWM_ON)
    {
        LED1 = 1;
        LED2 = 0; //灯灭
    }
    count++;
    if (count == CYCLE)
    {
        count = 0;
        if (PWM_ON != 0) //如果开启时间是0 保持原来状态
        {
            LED1 = 0;
            LED2 = 1; //灯灭
        }
    }
}
main.c
#define MAIN_Fosc 11059200L
#define LED1 P1_1
#define LED2 P1_2
#include "led_out.h"

void main()
{
    //led_out();

    led_pwm_out();
}
最后我们编译程序 在英文输入法下ctrl+shift+b会看到如下界面

在这里插入图片描述

可以看到没有出现问题,编译成功

在这里插入图片描述

然后我们找到二进制文件,将其复制到桌面

在这里插入图片描述

使用这个程序将文件下载到单片机,我这里就不在虚拟机里演示了,直接在我主机上演示,虚拟机没有安装ch340驱动,懒得折腾了,装完虚拟机又得恢复了。

在这里插入图片描述
在这里插入图片描述

总结:
相较于stm32环境的搭建这个还是很简单的,尤其在platformIO IDE的加持下,依然是那个原则,能用开源免费的尽量用开源免费的东西,sdcc和vscode都是开源免费的,paltformIO IDE不太清楚,有兴趣的小伙伴可以查查。相较于keil sdcc最大的好处就是没人查水表,让律师函见鬼去吧,当然它也不是没有缺点,网上例程少,语法和keil略有出入,头文件名字和keil不一样,编译出的文件体积要大一些(据说是因为sdcc严格的检查机制)。
下载器用的是isp淘宝随便搜一下一大把。
遇到的问题主要还是头文件的问题,网上的例程大多是基于keil,sdcc的头文件,语法和keil c51略有出入,但不是太大,稍微有点编程功底的人应该都能解决这些问题。
最后放一张演示图

在这里插入图片描述

  • 17
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
要在VSCode上配置51单片机开发环境,你可以按照以下步骤进行操作: 1. 首先,安装虚拟机软件,以模拟一个完全从0开始的环境。这可以保证你的开发环境的独立性和稳定性。你可以选择常用的虚拟机软件,如VirtualBox或VMware。 2. 安装Keil软件。Keil是一款常用的单片机开发工具,提供了丰富的功能和易于使用的界面。你可以从官方网站下载Keil,并按照提示进行安装。 3. 在VSCode中安装PlatformIO IDE插件。PlatformIO IDE是一个单片机开发的集成环境,它内部包含了编译器,并能够帮助你进行链接、编译和生成二进制文件等操作。你可以在VSCode的插件市场中搜索并安装PlatformIO IDE插件。 4. 配置PlatformIO IDE插件。在安装完PlatformIO IDE插件后,你需要进行一些基本的配置。首先,你需要指定使用的单片机型号,比如STC89C52RC。其次,你需要配置编译器和生成的二进制文件的路径等。这些配置可以在PlatformIO IDE插件的设置中进行。 5. 创建一个新的项目。使用PlatformIO IDE插件,你可以在VSCode中创建一个新的单片机项目。在项目中,你可以编写程序代码,并进行编译、调试和上传到单片机等操作。你可以使用该项目实现各种功能,比如使用单片机引脚的PWM输出来实现LED的拖尾交替输出。 总结起来,要在VSCode上配置51单片机开发环境,你需要安装虚拟机软件,安装Keil,安装PlatformIO IDE插件,并进行相应的配置。然后,你可以在VSCode中创建一个新的项目,并使用PlatformIO IDE插件进行开发和调试。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vscode+platformio IDE+sdcc搭建51单片机开发环境win764)](https://blog.csdn.net/weixin_42485732/article/details/111938463)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [51单片机开发环境配置(使用VScode开发)](https://blog.csdn.net/YBH1916326465/article/details/128200761)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

x县豆瓣酱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值