【51单片机】点亮第一个LED灯(含创建文件等基础操作)

51单片机现在不仅是电子信息专业学生的必修课,也是进入嵌入式领域的踏脚石。

本系列将会按照江科大的视频进行,也算是相当于一个笔记,进行巩固

实现第一个LED灯的点亮其实并不复杂,重要的是有一些准备工作比较繁琐,就像我们第一次打印HELLO WORLD,创建文件和头文件,最后保存到哪个位置,对于初学者都比较繁琐,本文将会带着大家一步一步进行操作

目录

注意:

需要的软件:可以自己在B站观看江科大的视频进行安装,遇到困难了可以私信我,尽力帮助

--------------------------分割线-------------------------------

预备工作:

  1. 打开keil5进行创建文件:
  2. 之后会让你选一个保存的位置,默认是文档,但我们要自己创建一个新的文件夹,专门用来存储代码

下图是默认:

这是我自己用来存储的文件夹: (可以看到路径是在E盘的一个keilProject文件下) git 是用来进行代码托管的,有或没有都不影响,可以不用关注这个文件夹。

我们在选定的盘创建完keilproject文件夹后要再创建一个文件夹,防止存储的东西比较散乱,名字可以叫点亮一个LED灯,然后点进这个文件

进行文件名的命名,点击保存

------------

最后要再在弹出的这个界面搜索at89c52,因为keil5是外国软件,对于中国的板子stc89c52并不友好,但是这两个板子功能是一致的,点击OK后会有一个弹窗,我们点击否

  1. 创建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灯

c 复制代码
#include <REGX52.H>

void main()
{
	P2 = 0xfe;//1111 1110
	while(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灯啦

成品展示:

本系列会持续更新下去,有问题及时找博主哦

相关推荐
女神下凡10 小时前
芯参谋(38):NAND_MCP_电路设计指南
arm开发·单片机·嵌入式硬件·设计规范
嵌入式学习菌10 小时前
FreeRTOS 中断管理实战:BASEPRI 寄存器实验
单片机·嵌入式硬件
HRTOS11 小时前
HRTOS:一个名字背后的目标——不断逼近硬实时
经验分享·单片机·系统架构·51单片机
UrSpecial13 小时前
GPIO 是什么?
单片机·嵌入式硬件
山下梅子酒22513 小时前
洛谷-入门-B2079
c语言
剑指offer.14 小时前
ARM裸机开发-SPI
arm开发·嵌入式硬件·嵌入式·arm
Mr_Macallon14 小时前
C++回顾(基础)(01)
c语言·开发语言·c++·学习
修船大队长15 小时前
配置接受报文每个报文对应一个mailbox配置流程记录
网络·单片机·mcu
wuminyu16 小时前
LockStack在虚拟线程Mount和Unmount拷贝过程剖析
java·linux·c语言·jvm·c++
Felven16 小时前
B. Reverse a Permutation
c语言