|
內(nèi)容:是12個LED發(fā)光二極管左循環(huán)閃亮,然后右循環(huán)閃亮- #include "reg52.h"
- #define LEDPORT1 (P1) //定義LED燈的端口
- #define LEDPORT2 (P2)
- #define MOVESPEED (500) //定義流水的速度
- #define ALLLEDOFF (0xff) //使所有燈熄滅的值
- //初始化函數(shù)
- void Init(void)
- {
- LEDPORT1=ALLLEDOFF; //熄滅所有燈
- LEDPORT2=ALLLEDOFF;
- }
- //延時函數(shù)
- //x為延時時間,范圍1~65535
- void xDelay(unsigned int x)
- {
- unsigned char y;
- for(;x>0;x--)
- for(y=110;y>0;y--);
- }
- //流水效果1函數(shù)
- void Effect1(void)
- {
- unsigned char TempOut1,TempOut2,xIndex;
- TempOut1=0xfe; //輸出值賦初值
- TempOut2=0xfe;
- for(xIndex=8;xIndex>0;xIndex--) //循環(huán)處理8個燈
- {
- LEDPORT1=TempOut1; //輸出值刷新到端口線
- TempOut1<<=1; //計算下一個輸出值
- xDelay(MOVESPEED); //延時一會
- }
- LEDPORT1=ALLLEDOFF;
- for(xIndex=4;xIndex>0;xIndex--) //循環(huán)處理8個燈
- {
- LEDPORT2=TempOut2; //輸出值刷新到端口線
- TempOut2<<=1; //計算下一個輸出值
- xDelay(MOVESPEED); //延時一會
- }
- }
- //流水效果2函數(shù)
- void Effect2(void)
- {
- unsigned char TempOut1,TempOut2,xIndex;
- TempOut1=0xfe;
- TempOut2=0xfe;
- for(xIndex=8;xIndex>0;xIndex--)
- {
- LEDPORT1=TempOut1;
- TempOut1<<=1;
- TempOut1|=1;
- xDelay(MOVESPEED);
- }
- for(xIndex=4;xIndex>0;xIndex--)
- {
- LEDPORT2=TempOut2;
- TempOut2<<=1;
- TempOut2|=1;
- xDelay(MOVESPEED);
- }
- }
- void main(void)
- {
- Init(); //調(diào)用初始化函數(shù)
- while(1){ //無限循環(huán)
- Init();
- Effect1(); //調(diào)用效果1函數(shù)
- Init();
- Effect2(); //調(diào)用效果2函數(shù)
- }
- }
復制代碼
|
-
-
04實驗四 流水燈.zip
2016-11-5 20:57 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
18.54 KB, 下載次數(shù): 2, 下載積分: 黑幣 -5
|