欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
CC2530中斷方式按鍵控制燈,單擊和長按效果 源程序
[打印本頁]
作者:
cler
時間:
2020-11-30 08:45
標題:
CC2530中斷方式按鍵控制燈,單擊和長按效果 源程序
IAR, 中斷方式按鍵控制燈,單擊和長按效果
CC2530源程序如下:
/*
如果按鍵按下時間小于1秒,則切換燈的閃爍效果
如果按鍵按下時間大于1秒,則保持常亮
*/
#include <ioCC2530.h>
#define K4 P0_1
#define K5 P0_4
#define D2 P1_0
#define D1 P1_1
unsigned char flag=0;
static inline void delay(unsigned int time) //因為中斷調用了此函數,
//所以要使用內聯函數inline修飾
{
unsigned int i,j;
for(i=0;i<time;i++)
{
for(j=0;j<500;j++);
}
}
void main(void)
{
P1DIR |= 1<<0|1<<1;
IEN1 |= 1<<5; //使能P0中斷
P0IEN |= 1<<1; //P0_1中斷使能
PICTL |= 1<<0; //下降沿觸發
EA = 1; //使能總中斷
while(1)
{
if(flag==0)
{
D1=~D1;
delay(500);
}
else
{
D1=~D1;
delay(100);
}
}
}
#pragma vector=P0INT_VECTOR //vector小寫,結尾不能加分號
__interrupt void P0INT(void)
{
if((P0IFG&(1<<1))!=0) //P0IFG寄存器:P0口引腳中斷標志位寄存器,
//當對應引腳有上升或下降沿后標志位變1
{
unsigned int i=0;
for(i=0;i<50;i++)//500ms內判斷50次,如果按鍵抬起馬上跳出
{
delay(10);
if(K4==1) break;
}
if(i>1)//如果不是抬起的抖動(因為長按抬起時的抖動會再次觸發中斷)
{
if(i!=50)//單擊
{
flag=0;
}
else //長按
{
flag=1;
}
}
P0IFG &= ~(1<<1);//清除對應中斷標志位
}
P0IF = 0; //P0IF位:為P0口中斷申請標志位,
//當P0IFG中斷標志寄存器有位為1,并且開啟了此位的中斷時,P0IF位變1
}
/*
如果按鍵按下時間小于1秒,則切換燈的閃爍效果
如果按鍵按下時間大于1秒,則保持常亮
*/
/*
#include <ioCC2530.h>
#define K4 P0_1
#define K5 P0_4
#define D2 P1_0
#define D1 P1_1
unsigned char flag=0;
static inline void delay(unsigned int time) //因為中斷調用了此函數,
//所以要使用內聯函數inline修飾
{
unsigned int i,j;
for(i=0;i<time;i++)
{
for(j=0;j<500;j++);
}
}
void main(void)
{
P1DIR |= 1<<0|1<<1;
IEN1 |= 1<<5; //使能P0中斷
P0IEN |= 1<<1; //P0_1中斷使能
PICTL |= 1<<0; //下降沿觸發
EA = 1; //使能總中斷
while(1)
{
if(flag==0)
{
D1=~D1;
delay(500);
}
else
{
D1=~D1;
delay(100);
}
}
}
#pragma vector=P0INT_VECTOR //vector小寫,結尾不能加分號
__interrupt void P0INT(void)
{
if((P0IFG&(1<<1))!=0) //P0IFG寄存器:P0口引腳中斷標志位寄存器,
//當對應引腳有上升或下降沿后標志位變1
{
unsigned int i=0;
delay(10);
if(K4==0)
{
for(i=0;i<50;i++)
{
delay(10);
if(K4==1) break;
}
if(i!=50)
{
flag = 0;
}
else
{
flag = 1;
}
}
P0IFG &= ~(1<<1);//清除對應中斷標志位
}
P0IF = 0; //P0IF位:為P0口中斷申請標志位,
//當P0IFG中斷標志寄存器有位為1,并且開啟了此位的中斷時,P0IF位變1
}
*/
復制代碼
所有程序51hei提供下載:
03-2. 中斷方式按鍵控制燈,單擊和長按效果.zip
(29.48 KB, 下載次數: 6)
2020-11-30 08:45 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1