前言
😏 众所周知,很多嵌入式开发的学习是从认识单片机开始的,从编程,下载到跑通,学习的周期会比较长。有很多单片机产品可以帮助我们学习,这篇文章主要是测评单片机的基础开发测评,目的在于测评单片机产品可实现过程和学习难度。
10 月的时候,我收到了来自上海的包裹,是某个搞火箭研发的大佬发来的,一款单片机,外表黑,体积比较大,是我之前玩的 STM32 的两倍。既然大佬寄过来,肯定要开始整活!!本次项目实操可以供新人学习和了解单片机。
从上图显示上的标记我们初步认识一下板子结构。
(从官方的说明中获得开发板信息)
点 LED 灯是玩单片机的入门课程,主要编程的平台用 Keil,这里注意需要下载的是 Keil C51,不要下载成 Keil ARM
建立项目步骤
STEP1:安装好我的 Keil,点击梦开始的地方 “Project”→“New uversion project”
新建过程中,在 “Search” 的选项中可以选择不填,因为这个项目主要是搜索项,搜索芯片使用的,下面有很多芯片都可以使用。另外我们需要再新建的栏目里找到 Atmel 选项,按照个人的需求,我会选择 Microchip 的 AT89C52。
选择建立一个 “LED” 项目,在提示栏里点击 “Yes” ,我们建立起一个新项目。
STEP2:在新建立的工程新建新文件。
- 点击
File
->New…
- 点击
File
->Save
- 文件名为
LED.c
,一定要确保文件后缀为.c
格式 - 点击
保存(S)
,如下图所示。
下一步则需要将 LED.c 这个文件添加到工程目录
- 找到工程界面左侧的
source Group1
,并单击右键 - 点击
Add Existing Files to Group ‘Source Group1’…
- 选中刚才新建的
LED.c
文件 - 单击
Add
,如下图所示
当出现图示所示的 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);
}
}
接下来的处理步骤
- 我用的是指导书里面的代码,如果是直接复制过去的,会出现无法显示的“?”,需要在
Edit
→Configuration
将 Encoding 格式变为 UTF-8 即可,如果在文件输出格式上出现问题,按照官方说明书指导就可以。
- 在用 Keil 编译前,需要找到工程左侧的 Target1,并单击右键选择
Options for Target ‘Target 1’…
, 勾选输出格式为 HEX-80。
STEP4:编译代码
在写完简单的代码后,用 Keil 自带的编译功能进行编译,显示为:
0Error,0Warning
,代码是没问题的,但能不能跑就需要看结果了,为了验证,需要先让板子通电。
神奇的是,通电后数码管亮了。正常的流程是通过 STC-ISP
下载程序后在单片机跑。
出现这种情况一般是出厂程序还在单片机运行,有些厂家为了检验产品一般会做产品测试,不会消除出厂程序,消除出厂程序,只需要将自己编译好的代码下载下来就可以覆盖掉。
清除流程
- 用
STC-ISP
打开编译后生成的LED.hex
文件,一般会在自己建的工程里的Objects
文件夹里。 - 点击
下载/编程
,让其自动运行就可以了
但是问题又来了,程序下载不下来........
反反复复操作 停止→下载→拔开关→上电
,但还是下载不下来。难道我的手艺不行,代码出问题了,操作检测了也没问题啊???
最后当你无路可走的时候,找卖货老板就对了。
结果是手册说明里的芯片型号写错了,最后锁定芯片型号为 STC89C52RC/LE52RC
,原本说明书上标注的芯片型号是 STC89C52
。
在进行了一番友好交流后,终于要验证关键成果了!!给板子上电。
最终成果展示:绿灯一排,最左边的绿灯(D0)被点亮,说明此次点 LED 项目成功了。
总结
点亮 LED 项目的学习目的是初步掌握使用 Keil 创建项目,下载程序看板子跑的结果。一般都是按照流程化的操作,不出问题都会成功。除非遇见我遇到的问题,这个时候多问问商家就可以了,玩单片机是个长久的过程,以后会再多写点东西。不光是点灯还有信号传输等。
若有收获,就点个赞吧
😝
🐛