第二讲:如何让点亮的发光管进行闪烁
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--);
}
}
将我们写好的程序文件添加到工程里面。
最后通过上次学习的下载步骤将我们的工程下载到单片机里,也是冷启动,最后看效果。
以上是关于第二讲:如何让点亮的发光管进行闪烁的主要内容,如果未能解决你的问题,请参考以下文章