【STC单片机】VSCode PlatformIO Led呼吸灯示例程序
- 自制开发板(【开源分享】自制STC15W408AS开发板)
工程新建和项目名称
项目结构
主程序示例代码
#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
暂无评论