?? led._c
字號:
#include <iom16v.h> //包含單片機型號頭文件
#include <macros.h> //包含"位"操作頭文件
#include <delay.h> //包含延時頭文件
#include <AVR_XQV12.h> //包含通用函數及宏定義頭文件
/*******************************************************/
/****** 函數名稱: Scan_Int_Key() ******/
/****** 功 能: 掃描INT0、INT1按鍵,使鍵值改變******/
/****** 參 數: 無 ******/
/****** 返回值 : 無 ******/
/*******************************************************/
void Scan_Int_Key(void)
{
if(KEY0==0) //判斷是否有鍵按下
{
delay_nms(10); //延時去抖
if(KEY0==0) //再次判斷是否有鍵按下
{
while(KEY0==0); //等待按鍵釋放
Key_Number++; //鍵值加1
if(Key_Number>2)
Key_Number=2;
}
}
if(KEY1==0) //判斷是否有鍵按下
{
delay_nms(10); //延時去抖
if(KEY1==0) //再次判斷是否有鍵按下
{
while(KEY1==0); //等待按鍵釋放
Key_Number--; //鍵值減1
if(Key_Number>2)
Key_Number=0;
}
}
}
/*******************************************************/
/****** 函數名稱: main() ******/
/****** 功 能: 流水燈、按鍵INT0、INT1改變顯示方式**/
/****** 參 數: 無 ******/
/****** 返回值 : 無 ******/
/*******************************************************/
void main(void)
{
unsigned char i;
CPU_Init(); //初始化CPU
En_Led(); //使能LED
while(1)
{
switch(Key_Number) //選擇LED掃描方式
{
case 0:
while(1)
{
for(i=0;i<8;i++)
{
LED=0xff; //LED全部熄滅
LED&=~BIT(i); //點亮相應位LED
delay_nms(100); //延時大約100毫秒
Scan_Int_Key(); //查詢是否有按鍵按下
if(Key_Number!=0)
break; //如果鍵值改變退出
}
if(Key_Number!=0)
break;
for(i=9;i>1;i--)
{
LED=0xff; //LED全部熄滅
LED&=~BIT(i-2); //點亮相應位LED
delay_nms(100); //延時大約100毫秒
Scan_Int_Key(); //查詢是否有按鍵按下
if(Key_Number!=0)
break; //如果鍵值改變退出
}
if(Key_Number!=0)
break;
}
break;
case 1:
while(1)
{
for(i=0;i<8;i++)
{
LED=0xff; //LED全部熄滅
LED&=~BIT(i); //點亮相應位LED
delay_nms(50); //延時大約50毫秒
Scan_Int_Key(); //查詢是否有按鍵按下
if(Key_Number!=1)
break; //如果鍵值改變退出
}
if(Key_Number!=1)
break;
}
break;
case 2:
while(1)
{
for(i=9;i>1;i--)
{
LED=0xff; //LED全部熄滅
LED&=~BIT(i-2); //點亮相應位LED
delay_nms(50); //延時大約50毫秒
Scan_Int_Key(); //查詢是否有按鍵按下
if(Key_Number!=2)
break; //如果鍵值改變退出
}
if(Key_Number!=2)
break;
}
break;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -