LED燈的延時亮滅與循環流水

全是c語言程序,都已經用keil編譯並下載到開發板裏面測試過了= =


1.對單個led燈打開後延時並關閉的循環操作- -(通過位操作點實現)

#include <reg52.h>
sbit LED = P1^1;
Delay()
{
  int i;
  for(i=0;i<10000;i++);

}
main()
{ 


  while(1){
    LED = 0;
	Delay();
    LED = 1;
	Delay();
}

}

2.對於led燈的循環點亮(左邊開始)通過總線方式點亮

#include <reg52.h>
delay(unsigned int n)
{
   while(--n);
}
main()
{
    unsigned char i;
	delay(60000);
	P1 = 0xfe;    //P1=1111 1110
	
	while(1)
	{
	    for(i = 0;i < 8;i++)
	{
	     delay(60000);
	     P1 <<= 1;   
		 P1=P1|0x01;
	}
	    P1=0xfe;
	}




}

3.是左右循環(總線方式)

#include <reg52.h>
void delay()
{
	unsigned int a;
	for(a = 0;a<30000;a++);
}
void main()
{
	unsigned int i,j;
	
	while(1)
	{
		P1=j=0xfe;//1111 1110;
		delay();
		for(i = 0;i < 8;i++)
		{
			j = j<<1;
			j = j|0x01;//0000 0001
			P1=j;
			delay();	
		}
		P1=j=0x7f;//0111 1111;
		delay();
		for(i = 0;i < 8;i++)
		{
			j = j>>1;
			j = j|0x80;//1000 0000
			P1=j;
			delay();	
		}
	}
}

都是很基礎的東西,還有一個查表的準備等做最後作品花樣燈的時候做,雖然led部分很基礎,但是沒辦法只能先走馬觀花的學習了,希望以後能再回過頭來的時候可以輕鬆點,現在都是依葫蘆畫瓢階段,雖然看上去都懂,但是其實對於更深層次的內容瞭解的還是很有限,我想隨着學習的深入,我將會學到更多,到時候再回過頭,西瓜芝麻一起抓!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章