1.單霹靂燈,使用次數控制燈號。

/*單向霹靂燈*/
#include<reg51.h>

void delay(int );

main()
{
	int i;
	P1=0xfe;
	while(1)
	{
		for(i=0;i<7;i++)
		{
			delay(100);
			P1=(P1<<1)|0x01;
		}
		for(i=0;i<7;i++)
		{
			delay(100);
			P1=(P1>>1)|0x80;
		}
	}
}

void delay(int x)
{
	int i,j;
	for(i=0;i<x;i++)
		for(j=0;j<600;j++);
}

 

2.單霹靂燈,使用判斷控制燈號。

/*單向霹靂燈*/
#include<reg51.h>

void delay(int );

main()
{
	int i;
	P1=0xfe;
	while(1)
	{
	    while(P1!=0x7f)
            {
              delay(100);
              P1=(P1<<1)|0x01;
             }
            while(P1!=0xfe)
            {
              delay(100);
              P1=(P1>>1)|0x80;
             }
	}
}

void delay(int x)
{
	int i,j;
	for(i=0;i<x;i++)
		for(j=0;j<600;j++);
}

 

3.雙向霹靂燈,使用陣列。

/*雙向霹靂燈*/
#include<reg51.h>

void delay(int );

main()
{
	char code led[]={0x7e,0xbd,0xdb,0xe7,0xdb,0xbd};
	int i;
	P1=0x7e;
	while(1)
	{
		for(i=0;i<6;i++)
		{
		P1=led[i];
		delay(100);
		}
		
	}
}

void delay(int x)
{
	int i,j;
	for(i=0;i<x;i++)
		for(j=0;j<600;j++);
}

 

arrow
arrow
    文章標籤
    8051 霹靂燈
    全站熱搜

    東勢厝滴yang 發表在 痞客邦 留言(0) 人氣()