单片机学习笔记---LED流水灯

本文讲述了作者在准备期末考试期间,回顾并实践了LED流水灯的编程,包括创建项目、编写代码实现延时函数的自适应调整,最终实现不同间隔的流水灯效果。
摘要由CSDN通过智能技术生成

因为准备期末考试,停更了一个月,今天回老家开始继续学习~~~~~~

有了前两个代码的经验,我们第三个LED流水灯就容易完成了!

首先我们先打开keil,点击新建工程项目

新建一个文件夹

点击进去,文件名写project

点击保存,选择器件,输入AT89C52搜索出来,选择它点击OK

弹出一个窗口,点击否

左栏点击添加新项目

选择C文件,命名main,点击添加

此时已经创建了一个main.c文件

先插入一个头文件#include <REGX52.H>

然后把点亮一个灯的程序写上

再调用一个让灯闪烁起来的函数

以下就是Delay500ms函数的定义:

怎么定义让灯闪烁起来的函数?

这个上一节已经讲过了,可以看看上一篇(让LED闪烁起来)

单片机学习笔记---让LED闪烁起来-CSDN博客

接下来写出一个流水灯程序:

完整的代码如下:

点击编译,0错误,0警告

然后点击左上角这个图标

再次点击编译(一定要编译一下,要不然不生成Hex文件!),下栏提示创建好了一个Hex文件

选择,点击打开

下载

重启板子就能看到LED以500ms为间隔在向左移动

成功!

但是,假如我们想要把500ms改成200ms或者100ms等等情况,如果每次都要改变很多处的数字是不是很麻烦?

接下来我们可以升级一下代码。

我们重新建立一个文件,名字叫做1-4流水灯Plus

在1-4的文件里新建一个工程project

保存

新建项目

选择C文件,创建main.c文件

空白处右击insert一个头文件#include <REGX52.H>

然后我们要改造一下Delay500ms函数,我们想要延时多少毫秒就是多少毫秒,而不是每次想要延时多少毫秒都要生成新的延时函数

我们先在STC上面定义一个延时1ms的延时函数,点击复制代码

我们改造一下这个函数

给它传个参数过去,类型是unsigned int

我们在函数定义里面增加一个while循环

这样我们就能保证传过来几毫秒就延时几毫秒了

点击编译无错误。

然后我们就把前面写的流水灯代码复制粘贴过来,把Delay500ms函数名改成Delay1ms,实参我们可以假设传个500过去。

完整的代码如下:

点击编译无错误,创建Hex文件,再点击编译

再STC上面打开Hex文件,然后下载程序,重启板子,看效果

功能和前面Delay500ms函数一样

成功!

那如果我们想要让流水灯更快,可以把实参改为100

点击编译,下载,重启板子,可以看到流水灯比之前运行得更快了!

我们也可以把流水灯的间隔改成不一样的,比如前两个500,后面是100

编译,下载,重启板子,看看效果

这时我们发现前两个运行的慢,后面的就变快了。

成功!

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vera工程师养成记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值