51单片机之LED闪烁,简单的延时函数

2019-09-26  本文已影响0人  David_Rao

LED灯原理图

点亮LED的几种方法

#include <reg52.h>

//P1控制所有P1开头的引脚
//P1=0所有LED灯被点亮
void main()
{
    P1 = 0;
}
#include <reg52.h>

/*main函数自动循环,相当于P1=0和P1=255各占一半时间地循环进行,故亮度是原来一半*/
void main()
{
    P1 = 0;
    P1 = 255;//相当于二进制的1111 1111
}
#include <reg52.h>

//和上方代码运行效果一样
void main()
{
    while(1)
    {
        P1 = 0;
        P1 = 0xff;  //也可以用16进制写
    }
}
#include <reg52.h>

//只有最右边的LED灯亮
void main()
{
    while(1)
    {
        P1 = 0xfe;  //1111 1110(左边是高位,右边是低位)
    }
}

以下是简单的延时函数,可以作为模块函数使用

//这是一个毫秒级延时
//使用方法,给形式参数z赋值,如延时100毫秒:delay(100)
void delay(unsigned int z)
{
    unsigned int x, y;
    for(x = z; x > 0; x--)
        for(y = 114; y >0; y--);
}

使用简单的延时函数做LED闪烁

#include <reg52.h>

void delay(unsigned int z)
{
    unsigned int x, y;
    for(x = z; x > 0; x--)
        for(y = 114; y >0; y--);
}

void main()
{
    while(1)
    {
        P1 = 0xfe;  //亮100毫秒
        delay(100);
        P1 = 0xff;  //灭100毫秒
        delay(100);
    }
}
上一篇 下一篇

猜你喜欢

热点阅读