【STC单片机】VSCode PlatformIO Led呼吸灯示例程序

【STC单片机】VSCode PlatformIO Led呼吸灯示例程序


工程新建和项目名称

在这里插入图片描述

在这里插入图片描述

项目结构

在这里插入图片描述

主程序示例代码

#include<lint.h>//包含SDCC_mcs51定义
#include <8052.h>//51头文件
//#include "delay.h"
#define MAIN_Fosc 16000000uL  //时钟频率

#define Led10 P1_0
typedef unsigned int u16;

unsigned char atime = 128;

// 仅作为延时, pms取值区间为 0 - 128
void delay(u16 pms) {
  u16 x, y;
  for (x=pms; x>0; x--) {
    for (y=11; y>0; y--);
  }
}

// 这里控制占空比, i取值区间为 0 - 128, 
// i越大脉冲宽度越低, 因为输出是低位点亮, 所以i越大LED越亮
void ledfade(u16 i) {
  Led10 = 0;
  delay(i);
  Led10 = 1;
  delay(atime-i);
}

int main(void) {
  u16 a, b;
  // 每个循环, 小灯
  while(1) {
    // a增大, 脉冲宽度降, 亮度增
    for (a=0; a<atime; a++) {
      for (b=0; b < (atime - a)/4; b++) {
        ledfade(a);
      }
    }
    // a减小, 脉冲宽度增, 亮度降
    for (a=atime; a>0; a--) {
      for (b=0; b < (atime - a)/4; b++) {
        ledfade(a);
      }
    }
  }
}

编译和上传

在这里插入图片描述

说明

目前VSCode PlatformIO平台支持的STC开发板自带支持的类型不多,如果自己要选择的开发板不在其中,可以自行添加补充单片机型号。但是有一个很鸡肋的问题就是头文件,可能需要自己参照自带的头文件来补充。例如自带的自由STC12.h头文件,但是没有STC15.h头文件,那么只能参照STC12.h文件进行移植修改。如果是简单的开发只要有通用的8052.h的头文件即可,如果要使用到特殊的功能寄存器的话,还是需要去参照已有的头文件进行移植操作了。不同的型号的STC 单片机寄存器还是有些差异的。

版权声明:本文为CSDN博主「perseverance52」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42880082/article/details/122742897

生成海报
点赞 0

perseverance52

我还没有学会写个人说明!

暂无评论

相关推荐

VSCode PlatformIO开发STC单片机注意事项

VSCode PlatformIO开发STC单片机注意事项首先需要注意代码的语法 附上本论坛一位网友总结的笔记 其实开源的SDCCcode blocks也不错的。SDCC语法与keil C有一点点不同,记录如下:*