RYMCU

通过NEBULA PI开发板(单片机)学习LED点灯

机智Simon 2 年前
# 51单片机 # 开发板

所属作品集

前言

😏 众所周知,很多嵌入式开发的学习是从认识单片机开始的,从编程,下载到跑通,学习的周期会比较长。有很多单片机产品可以帮助我们学习,这篇文章主要是测评单片机的基础开发测评,目的在于测评单片机产品可实现过程和学习难度。

10 月的时候,我收到了来自上海的包裹,是某个搞火箭研发的大佬发来的,一款单片机,外表黑,体积比较大,是我之前玩的 STM32 的两倍。既然大佬寄过来,肯定要开始整活!!本次项目实操可以供新人学习和了解单片机。

image.png

从上图显示上的标记我们初步认识一下板子结构。

image.png

(从官方的说明中获得开发板信息)

点 LED 灯是玩单片机的入门课程,主要编程的平台用 Keil,这里注意需要下载的是 Keil C51,不要下载成 Keil ARM

建立项目步骤

STEP1:安装好我的 Keil,点击梦开始的地方 “Project”→“New uversion project”

image.png

新建过程中,在 “Search” 的选项中可以选择不填,因为这个项目主要是搜索项,搜索芯片使用的,下面有很多芯片都可以使用。另外我们需要再新建的栏目里找到 Atmel 选项,按照个人的需求,我会选择 Microchip 的 AT89C52。

image.png

选择建立一个 “LED” 项目,在提示栏里点击 “Yes” ,我们建立起一个新项目。

STEP2:在新建立的工程新建新文件。

  1. 点击 File ->New…
  2. 点击 File ->Save
  3. 文件名为 LED.c,一定要确保文件后缀为 .c 格式
  4. 点击 保存(S),如下图所示。

image.png

下一步则需要将 LED.c 这个文件添加到工程目录

  1. 找到工程界面左侧的 source Group1,并单击右键
  2. 点击 Add Existing Files to Group ‘Source Group1’…
  3. 选中刚才新建的 LED.c 文件
  4. 单击 Add,如下图所示

image.png

当出现图示所示的 LED.c 项目时,我们前期的新建流程就算是告一段落。

STP3:编辑代码

#include <reg52.h>

sbit led0 = P1 ^ 0;

void delay(unsigned int x) {
    unsigned int i, j;
    for (i = 0; i < x; i++)
        for (j = 0; j < 113; j++);
}

void main() {
    while (1) {
        led0 = 0;
        delay(1000);
        led0 = 1;
        delay(1000);
    }
}

接下来的处理步骤

  1. 我用的是指导书里面的代码,如果是直接复制过去的,会出现无法显示的“?”,需要在 EditConfiguration 将 Encoding 格式变为 UTF-8 即可,如果在文件输出格式上出现问题,按照官方说明书指导就可以。

123.jpg

  1. 在用 Keil 编译前,需要找到工程左侧的 Target1,并单击右键选择 Options for Target ‘Target 1’…, 勾选输出格式为 HEX-80。

STEP4:编译代码

在写完简单的代码后,用 Keil 自带的编译功能进行编译,显示为:

image.png

0Error,0Warning,代码是没问题的,但能不能跑就需要看结果了,为了验证,需要先让板子通电。

神奇的是,通电后数码管亮了。正常的流程是通过 STC-ISP 下载程序后在单片机跑。

出现这种情况一般是出厂程序还在单片机运行,有些厂家为了检验产品一般会做产品测试,不会消除出厂程序,消除出厂程序,只需要将自己编译好的代码下载下来就可以覆盖掉。

1640603143(1).png

清除流程

  1. STC-ISP 打开编译后生成的 LED.hex 文件,一般会在自己建的工程里的 Objects 文件夹里。
  2. 点击 下载/编程,让其自动运行就可以了

image.png

但是问题又来了,程序下载不下来........

反反复复操作 停止→下载→拔开关→上电,但还是下载不下来。难道我的手艺不行,代码出问题了,操作检测了也没问题啊???

最后当你无路可走的时候,找卖货老板就对了。

结果是手册说明里的芯片型号写错了,最后锁定芯片型号为 STC89C52RC/LE52RC,原本说明书上标注的芯片型号是 STC89C52

image.png

在进行了一番友好交流后,终于要验证关键成果了!!给板子上电。

最终成果展示:绿灯一排,最左边的绿灯(D0)被点亮,说明此次点 LED 项目成功了。

微信图片_20211229172645(1).jpg

总结

点亮 LED 项目的学习目的是初步掌握使用 Keil 创建项目,下载程序看板子跑的结果。一般都是按照流程化的操作,不出问题都会成功。除非遇见我遇到的问题,这个时候多问问商家就可以了,玩单片机是个长久的过程,以后会再多写点东西。不光是点灯还有信号传输等。

若有收获,就点个赞吧
😝

所属作品集

后发布评论