順序賦值的方式實現流水燈

執ζ守發表於2020-10-04

順序賦值的方式實現流水燈

                                                                                                                                                      2020-10-04 週日
尷了個尬,這僅支援一上傳的視訊,所以視訊傳不了了。
放圖片沒什麼意義。。。自己模擬吧。

/**************************************************************************************************
*********利用順序賦值的方式實現流水燈**************************************************************
*********注意!!!!******************************************************************************
*********第一步:先確定流水燈模組是共陰極接法還是共陽極接法*****************************************
*********所  以:我的是共陽極,所以低電平點亮,那麼我的主函式裡就應該讓微控制器先置零再置一***********
*********最  後:我程式後面有讓微控制器先置一再置零的程式碼。程式碼是反的,所以結果也是反的***************
**************************************************************************************************/

#include<reg52.h>

sbit LED0 = P2^0;      //注意!!!!先確定流水燈模組是共陰極接法還是共陽極接法。
sbit LED1 = P2^1;      //我的是共陽極,所以低電平點亮,那麼我的主函式裡就應該先置零,點亮LED;
sbit LED2 = P2^2;
sbit LED3 = P2^3;
sbit LED4 = P2^4;
sbit LED5 = P2^5;
sbit LED6 = P2^6;
sbit LED7 = P2^7;

void delay(unsigned int i);

void main(void)
{
	while(1)             //先置零,效果在視訊前半部分。
 	{
		LED0 = 0;        //點亮
		delay(100);
		LED0 = 1;        //熄滅
		delay(100);
		LED1 = 0;
		delay(100);
		LED1 = 1;
		delay(100);
		LED2 = 0;
		delay(100);
		LED2 = 1;
		delay(100);
		LED3 = 0;
		delay(100);
		LED3 = 1;
		delay(100);
		LED4 = 0;
		delay(100);
		LED4 = 1;
		delay(100);
		LED5 = 0;
		delay(100);
		LED5 = 1;
		delay(100);
		LED6 = 0;
		delay(100);
		LED6 = 1;
		delay(100);
		LED7 = 0;
		delay(100);
		LED7 = 1;
		delay(100);
		
//		LED0 = 1;          //先置一,效果在視訊後半部分。
//		delay(100);
//		LED0 = 0;
//		delay(100);
//		LED1 = 1;
//		delay(100);
//		LED1 = 0;
//		delay(100);
//		LED2 = 1;
//		delay(100);
//		LED2 = 0;
//		delay(100);
//		LED3 = 1;
//		delay(100);
//		LED3 = 0;
//		delay(100);
//		LED4 = 1;
//		delay(100);
//		LED4 = 0;
//		delay(100);
//		LED5 = 1;
//		delay(100);
//		LED5 = 0;
//		delay(100);
//		LED6 = 1;
//		delay(100);
//		LED6 = 0;
//		delay(100);
//		LED7 = 1;
//		delay(100);
//		LED7 = 0;
//		delay(100);
	}
}

void delay(unsigned int i)  //11.0592MHz晶振時,延時約0.2s
{
	unsigned int j;
	for(j=0;j<50*i;j++);
}

相關文章