第二讲:如何让点亮的发光管进行闪烁

本文介绍了如何使用Keil开发环境编写单片机程序,使LED灯实现闪烁效果。从基础的点亮LED开始,通过while(1)循环实现灯的亮灭交替,并调整延时时间达到一秒钟的闪烁频率。最后,对代码进行了优化,确保LED灯能以稳定的一秒间隔进行闪烁。整个过程涵盖了单片机编程的基础知识和循环结构的应用。
摘要由CSDN通过智能技术生成

打开Keil。

像之前讲的一样,建好工程、建好程序文件、然后我们直接进入程序部分

这是上次的程序:

这个程序只是让灯亮了,但这次我们需要的是闪烁,所以光是这样是不够的。

我们需要的是亮和灭这样才能看出闪烁。

那么首先我们需要了解的是main函数

我们要让他亮那么需要输入一个低电平0,就想上次一样这样就亮了,然后再输入一个高电平1,这样它就灭了,当亮灭都实现了接下来就是需要让它一直这样闪,那么需要用到的就是循环。

循环我们需要了解的就是while(1)

特点:先判断表达式,后执行语句

所以我们的程序就可以写成这样。(方法有很多,这里只是选择一种方式来实现)

#include<reg52.h>
sbit P1_1=P1^0;
unsigned int a;
Void main()
{
    a=50000;//亮的时间
    p1_1=0;//亮
    while(a--);
    a=50000;//灭的时间
    p1_1=1;//灭
    while(a--);
}

这样就可以做到一个简单的闪烁。

但是!!!我们一般在写程序的时候不能这样写,一般将while写在外面

#include<reg52.h>
sbit P1_1=P1^0;
unsigned int a;
Void main()
{
    while(1)
    {
    a=50000;//亮的时间
    p1_1=0;//亮
    while(a--);
    a=50000;//灭的时间
    p1_1=1;//灭
    while(a--);
    }
}

 写成这样就完了吗,当然不是,我们还可以再优化一下。

这样就可以将时间控制到亮一秒,灭一秒。

#include<reg52.h>
sbit P1_1=P1^0;
unsigned int a;
Void main()
{
    while(1)
    {
    a=51000;//亮的时间
    p1_1=0;//亮
    while(a--);
    a=51000;
    while(a--);

    a=51000;//灭的时间
    p1_1=1;//灭
    while(a--);
    a=51000;
    while(a--);
    }
}

将我们写好的程序文件添加到工程里面。

最后通过上次学习的下载步骤将我们的工程下载到单片机里,也是冷启动,最后看效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

慕青山

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

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

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

打赏作者

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

抵扣说明:

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

余额充值