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

Posted 慕青山

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二讲:如何让点亮的发光管进行闪烁相关的知识,希望对你有一定的参考价值。

打开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--);
    }
}

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

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

以上是关于第二讲:如何让点亮的发光管进行闪烁的主要内容,如果未能解决你的问题,请参考以下文章

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

C#的winform中如何实现按钮闪烁发光?

LED将为我闪烁:控制发光二级管

单片机原理及其应用——单片机控制8只发光二极管交替闪烁

单片机原理及其应用——单片机控制8只发光二极管交替闪烁

传感网灯闪烁代码