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