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

#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灯啦
在这里插入图片描述

成品展示:

在这里插入图片描述
本系列会持续更新下去,有问题及时找博主哦

  • 30
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
51单片机移位LED实验是一种通过移位寄存器来控制LED显示效果的方法。具体实现如下: 1. 连接电路 将8个LED按顺序连接在P1口的8个引脚上。然后将P2.0口连接到74HC595移位寄存器的SER(串行数据输入)引脚上,将P2.1口连接到74HC595移位寄存器的SRCLK(移位寄存器时钟输入)引脚上,将P2.2口连接到74HC595移位寄存器的RCLK(储存寄存器时钟输入)引脚上。 2. 编写代码 编写程序实现通过移位寄存器控制LED的移位效果。具体代码如下: ``` #include <reg51.h> // 定义移位寄存器控制引脚 sbit SER = P2^0; // 串行数据输入 sbit SRCLK = P2^1; // 移位寄存器时钟输入 sbit RCLK = P2^2; // 储存寄存器时钟输入 // 定义控制LED移位的函数 void shift(unsigned char dat) { unsigned char i; for (i = 0; i < 8; i++) { // 将数据从高位到低位依次输入移位寄存器 SER = (dat >> 7) & 0x01; dat <<= 1; SRCLK = 0; SRCLK = 1; } // 移位寄存器的8位数据全部输入后,将数据输出到储存寄存器 RCLK = 0; RCLK = 1; } void main() { unsigned char i; while (1) { // 循环显示8个LED for (i = 0; i < 8; i++) { shift(1 << i); // 移位寄存器输出位移的数据,使对应的LED delay(50000); // 延时一段时间,控制LED移位的速度 } } } ``` 在上述代码中,通过定义SER、SRCLK、RCLK等控制引脚,实现移位寄存器控制LED的移位效果。shift函数用于将数据从高位到低位依次输入移位寄存器,并将数据输出到储存寄存器,控制LED。while循环中不断循环显示8个LED,并通过调整delay函数的参数来控制LED移位的速度。 3. 烧录程序 将编写好的程序烧录到单片机中,然后连接电路,开启电源即可看到LED移位的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值