?? led.c
字號(hào):
/*******************************************
文件:LED.C
環(huán)境:編譯為ICC AVR6.25A,仿真為AVR Studio4.10
硬件:ATMEGA16芯片
日期:2006年12月10日
功能:驅(qū)動(dòng)開(kāi)發(fā)板上的LED。1. 流水燈 2.閃爍指定的LED
備注:參考《AVR系列單片機(jī)C語(yǔ)言編程與應(yīng)用實(shí)例》(清華大學(xué)出版社)
/******************************************/
#include <iom16v.h> //包含型號(hào)頭文件
#include <macros.h> //包含"位"操作頭文件
#include <stdio.h> //標(biāo)準(zhǔn)輸入輸出頭文件
/*******************************************
函數(shù)名稱: One_led
功 能: 點(diǎn)亮或者熄滅指定的LED
參 數(shù): number--指定的LED
light--為T(mén)RUE的時(shí)候?yàn)辄c(diǎn)亮LED,為FALSE的時(shí)候?yàn)橄鏛ED
返回值 : 無(wú)
/********************************************/
void One_led(uchar number,uchar light)
{uchar i;
if(light==TRUE) //點(diǎn)亮操作
{
PORTB&=~BIT(number); //輸出數(shù)據(jù)
PORTA|=BIT(LEDLK); //更新數(shù)據(jù)
Delayms(5); //調(diào)整時(shí)序
PORTA&=~BIT(LEDLK); //鎖存數(shù)據(jù)
}
else
{
PORTB|=BIT(number); //輸出數(shù)據(jù)
PORTA|=BIT(LEDLK); //更新數(shù)據(jù)
Delayms(5); //調(diào)整時(shí)序
PORTA&=~BIT(LEDLK); //鎖存數(shù)據(jù)
}
}
/*******************************************
函數(shù)名稱: All_led
功 能: 點(diǎn)亮或者熄滅全部LED
參 數(shù): light--為T(mén)RUE的時(shí)候?yàn)辄c(diǎn)亮全部LED,為FALSE的時(shí)候?yàn)橄缛縇ED
返回值 : 無(wú)
/********************************************/
void All_led(uchar light)
{
if(light)
{
PORTB&=~ALLLED;
PORTA|=BIT(LEDLK);
Delayms(5);
PORTA&=~BIT(LEDLK);
}
else
{
PORTB|=ALLLED;
PORTA|=BIT(LEDLK);
Delayms(5);
PORTA&=~BIT(LEDLK);
}
}
/*******************************************
函數(shù)名稱: Flow_led
功 能: 流水燈(循環(huán)一次)
參 數(shù): MS--點(diǎn)亮相鄰LED的時(shí)間間隔
返回值 : 無(wú)
/********************************************/
void Flow_LED(uchar MS)
{
uchar i;
for(i=0;i<8;i++)
{
All_led(FALSE); //全部熄滅
One_led(i,TRUE); //點(diǎn)亮指定的LED
Delayms(MS); //延時(shí)指定的時(shí)間
}
}
/*******************************************
函數(shù)名稱: Flash_led
功 能: 閃爍指定的LED(循環(huán)一次)
參 數(shù): number--指定的LED
MS--LED閃爍的時(shí)間間隔
返回值 : 無(wú)
/********************************************/
void Flash_LED(uchar number,uchar MS)
{
One_led(number,TRUE); //點(diǎn)亮指定的LED
Delayms(MS); //延時(shí)指定的時(shí)間
All_led(FALSE); //熄滅所有的LED
Delayms(MS); //延時(shí)指定的時(shí)間
One_led(number,FALSE); //熄滅指定的LED
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -