闪烁灯的实验

效果:

灯灭:   

        

灯亮:

 

 以上不断循环,可以实现灯的不断闪烁的效果!

C代码:

#include <reg52.h>

// 为了程序的可移植性,这里进行宏定义
#define u16 unsigned int
#define u8  unsigned char
// 或者使用typedef关键字
//typedef unsigned int u16;
//typedef unsigned char u8;

// 单片机的端口
sbit led = P1^0;

// 延迟函数(这里延迟的时间应该是:完成循环所花费的时间)
void delay(u16 num)		// num:延迟的时间,单位ms
{
	u16 x, y;
	for(x = num; x > 0; x--)
	{
		for(y = 110; y > 0; y--)
		{
			// 延迟1ms
		}
	}
}

// 主函数
void main(void)
{
	led = 1;		// 设置P1的0号端口为输出模式
	while(1)
	{
		led = 0;		// led灯亮
		delay(500);	// 延迟500ms,即持续亮500ms
		led = 1;		// len灯灭
		delay(500);	// 延迟500ms,即持续灭500ms
	}
}

最后把C程序烧录到单片机中就可以看到灯不断闪烁!

posted @ 2018-01-19 13:23  半生戎马,共话桑麻、  阅读(192)  评论(0)    收藏  举报
levels of contents