標(biāo)題:
單片機(jī)實(shí)驗(yàn) 流水燈實(shí)驗(yàn)
[打印本頁(yè)]
作者:
xuelongxl
時(shí)間:
2016-11-5 20:57
標(biāo)題:
單片機(jī)實(shí)驗(yàn) 流水燈實(shí)驗(yàn)
內(nèi)容:是12個(gè)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í)函數(shù)
//x為延時(shí)時(shí)間,范圍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個(gè)燈
{
LEDPORT1=TempOut1; //輸出值刷新到端口線
TempOut1<<=1; //計(jì)算下一個(gè)輸出值
xDelay(MOVESPEED); //延時(shí)一會(huì)
}
LEDPORT1=ALLLEDOFF;
for(xIndex=4;xIndex>0;xIndex--) //循環(huán)處理8個(gè)燈
{
LEDPORT2=TempOut2; //輸出值刷新到端口線
TempOut2<<=1; //計(jì)算下一個(gè)輸出值
xDelay(MOVESPEED); //延時(shí)一會(huì)
}
}
//流水效果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){ //無(wú)限循環(huán)
Init();
Effect1(); //調(diào)用效果1函數(shù)
Init();
Effect2(); //調(diào)用效果2函數(shù)
}
}
復(fù)制代碼
04實(shí)驗(yàn)四 流水燈.zip
2016-11-5 20:57 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
18.54 KB, 下載次數(shù): 2, 下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1