51单片机现在不仅是电子信息专业学生的必修课,也是进入嵌入式领域的踏脚石。
本系列将会按照江科大的视频进行,也算是相当于一个笔记,进行巩固
实现第一个LED灯的点亮其实并不复杂,重要的是有一些准备工作比较繁琐,就像我们第一次打印HELLO WORLD
,创建文件和头文件,最后保存到哪个位置,对于初学者都比较繁琐,本文将会带着大家一步一步进行操作
目录
- 预备工作:
- 元件介绍:
- 代码实现:
- 成品展示:
注意:
需要的软件:可以自己在B站观看江科大的视频进行安装,遇到困难了可以私信我,尽力帮助
--------------------------分割线-------------------------------
预备工作:
- 打开
keil5
进行创建文件:
- 之后会让你选一个保存的位置,默认是文档,但我们要自己创建一个新的文件夹,专门用来存储代码
下图是默认:
这是我自己用来存储的文件夹:(可以看到路径是在
E盘
的一个keilProjec
t文件下) git是用来进行代码托管的,有或没有都不影响,可以不用关注这个文件夹。我们在选定的盘创建完
keilproject
文件夹后要再创建一个文件夹,防止存储的东西比较散乱,名字可以叫点亮一个LED灯
,然后点进这个文件
进行文件名的命名,点击保存
------------
最后要再在弹出的这个界面搜索at89c52
,因为keil5
是外国软件,对于中国的板子stc89c52
并不友好,但是这两个板子功能是一致的,点击OK
后会有一个弹窗,我们点击否
- 创建C语言文件
选择C语言实现,
最后点击Add
,预备工作就大工告成。以后的博客就会省略这一步。
--------------------------分割线-------------------------------
元件介绍:
进行编程要先了解LED的资料
发光二极管发光的条件是正接正,负接负
我们看到板子中LED
的原理图,那8个电阻是限流电阻,防止LED
被烧坏,此时我们要让LED
发光将8个引脚进行高低电平的控制就可以操纵亮灭,
单片机的高低电平叫做TTL电平,0V为低,5V为高,我们发现,原理图的左侧已经接上Vcc
,那我们此时将8个引脚设置为需要的高低电平就可以控制,那我们应该如何控制高低电平呢?
这是单片机如何控制硬件设备的示意图(下图)(驱动器是用来增大电流以便操纵硬件),我们操纵CPU,CPU操纵寄存器,寄存器输出高低电平进行控制硬件(LED灯),而这个寄存器就是P2
,也就是我们需要控制P2
P2是8个孔,我们的LED也是8个,就可以很好的匹配,
我们在P2中1
代表逻辑高电平,0
相反
我们在P2中写入1,那么对应的输出就是5V
接下来就可以写代码了
--------------------------分割线-------------------------------
代码实现:
先来看代码,在来进一步解释。
假设我们这里实现点亮1个LED灯
#include <REGX52.H>void main()
{P2 = 0xfe;//1111 1110while(1){}
}
我们在写C语言是需要include
,编写单片机当然也需要,我们单击左键,会有一个insert<REGX52.H>
(存放各种类似P2的寄存器的接口),我们点击就可以引用这个头文件了
关于P2 = 0xfe
,我们说要用高低电平来控制,那么P2 = 1111 1110
就可以,但这样单片机会识别为10进制,所以我们要用16进制来代替1111 1110
,即为P2 = 0xfe
(0x是代表这一串数字是16进制,方便识别,fe的大小写不重要)。
写好了后我们需要点击图中魔法棒
-------------勾选creat,点击OK
在左上角点击第二个,会生成.hex
文件,我们在待会要用到
然后打开STC软件(记住要先连接电脑与单片机),进行配置
--------接着
进入到你写程序时创建的文件,点击Objects
,进入点击
此时按单片机两次开关就可以点亮你的第一个LED灯啦
成品展示:
本系列会持续更新下去,有问题及时找博主哦