#include<reg52.h>
sbit P1_1=P1^0;
void main()
{
P1_1=0;
while(1); //让程序停在这一行
}
上面是使第一个灯保持常亮。
下面可以使灯保持亮的状态一段时间,熄灭一段时间。每一行执行的时间和晶振的频率有关,所以定义了常量a,执行了a次语句,就会进行灯的点亮或者熄灭。
#include<reg52.h>
sbit P1_1=P1^0;
unsigned int a;
void main()
{
while(1) //一个大循环
{
a=5000;
P1_1=0;
while(a--); //持续到a减到0
a=5000;
P1_1=1;
while(a--); //持续到a减到0
}
}
上面每用到一次延时,都需要写一个while,而且具体时间还要调节。下面就写一个函数用来实现延时的功能。函数的定义如下,使一个没有返回值的函数。
void delay()
{
uint x,y;
for (x=10; x>0; x--)
{
for (y=5000;y>0;y--)
{}
}
}
我们在用这个delay函数一起实现灯的亮灭控制。调用函数前要先声明,注意声明时句尾要加分号。
#include<reg52.h>
#define uint unsigned int
#define uchar