|
/**************************************************************************************
* LED流水燈的實(shí)驗(yàn) *
實(shí)現(xiàn)現(xiàn)象:下載程序后P2口8個(gè)Led輪流點(diǎn)亮
程序?qū)崿F(xiàn)思想:通過設(shè)置0x01和0x80兩個(gè)初始值,000000001和100000000分別左移和右移,因?yàn)槭堑碗娖近c(diǎn)亮LED,左右移后需要取反
再加上一定的延時(shí)就可以實(shí)現(xiàn)LED流水燈效果。
注意事項(xiàng):無
***************************************************************************************/
#include "reg52.h" //此文件中定義了單片機(jī)的一些特殊功能寄存器
void RunningLight (void); //LedOnOff()函數(shù)聲明
void Delay(unsigned int i);//延時(shí)函數(shù)
typedef unsigned int u16;
typedef unsigned char u8;
#define led P2
int light;
/*******************************************************************************
* 函 數(shù) 名 : main
* 函數(shù)功能 : 主函數(shù)
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void main(void) //程序從main函數(shù)開始執(zhí)行
{
while(1) //1表示條件表達(dá)式值為真,程序一直循環(huán)
{
RunningLight();
}
}
/*******************************************************************************
* 函 數(shù) 名 : Delay
* 函數(shù)功能 : 延時(shí)i*10us的時(shí)間
* 輸 入 : i<65536
* 輸 出 : 無
*******************************************************************************/
void Delay(unsigned int i)
{
while(i--); //i-1,直到i=0,退出
}
/*******************************************************************************
* 函 數(shù) 名 : RunningLight
* 函數(shù)功能 : 流水燈
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void RunningLight()
{
u8 i,j;
light=0x01;
for(i=0;i<8;i++) //led循環(huán)左移
{
led=~(light<<i);
Delay(1000);
}
light=0x80;
for(j=0;j<8;j++) //led循環(huán)右移
{
led=~(light>>j);
Delay(20000);
}
}
|
評(píng)分
-
查看全部評(píng)分
|