1. 程式人生 > >C51微控制器LED燈的控制

C51微控制器LED燈的控制

1、一盞一盞的操作:即先令第一盞燈亮,延時,再令它熄滅,延時,再讓下一盞燈重複操作即可;(略)

2、利用陣列方法點亮:先定義一個數組,其中存入相應8盞燈亮的數字(即0xfe,0xfd,0xfb,0xf7,0xef,oxdf,0xbf,0x7f:依次代表只有第一盞燈,第二盞燈....亮),再利匯流排,按順序點亮八盞燈;(後面對數碼管的控制將用類似的方法)

3、利用移位方法點亮(這種方法,程式看起來簡單些,但實質上還是一個一個的控制)。下面是位移方法的程式

共陽,P2端控制。

下面的程式碼是兩種燈得控制:

#include<reg52.h>
typedef unsigned char uchar;
typedef unsigned int uint;

void delay(uint num)
{
	uint x=110;
	for(num;num>0;num--)
		for(x;x>0;x--);	
}

void LED1()//LED共陽接法,接在P2端,流水燈
{
	uint  i;
	uchar led;
	led=0xfe; 
	for(i=1;i<=8;i++)
	{
		P2=led;
	    delay(10000);
		led<<=1;
	}
}

void LED2()//LED共陽接法,接在P2端,燈間隔亮
{
	uint  i;
	uchar led;
	led=0xff;
	led=0x01;
	for(i=1;i<=8;i++)
	{
		P2=~led;
	    delay(5000);
		led<<=1;
	}
}

void main()
{
	//LED1();
	LED2();
}