【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灯啦

成品展示:

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

相关推荐
闲晨2 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
scan17 小时前
单片机串口接收状态机STM32
stm32·单片机·串口·51·串口接收
DARLING Zero two♡7 小时前
关于我、重生到500年前凭借C语言改变世界科技vlog.16——万字详解指针概念及技巧
c语言·开发语言·科技
Qingniu017 小时前
【青牛科技】应用方案 | RTC实时时钟芯片D8563和D1302
科技·单片机·嵌入式硬件·实时音视频·安防·工控·储能
QAQ小菜鸟8 小时前
一、初识C语言(1)
c语言
何曾参静谧8 小时前
「C/C++」C/C++ 之 变量作用域详解
c语言·开发语言·c++
互联网打工人no18 小时前
每日一题——第一百二十一题
c语言
深圳市青牛科技实业有限公司9 小时前
【青牛科技】应用方案|D2587A高压大电流DC-DC
人工智能·科技·单片机·嵌入式硬件·机器人·安防监控
朱一头zcy9 小时前
C语言复习第9章 字符串/字符/内存函数
c语言
此生只爱蛋9 小时前
【手撕排序2】快速排序
c语言·c++·算法·排序算法