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