/*
如果按键按下时间小于1秒,则切换灯的闪烁效果
如果按键按下时间大于1秒,则不切换灯的闪烁效果
*/
#include <ioCC2530.h>
#define D3 P1_0
#define D4 P1_1
#define SW1 P1_2
#define D5 P1_3
#define D6 P1_4
unsigned char flag=0;
void inline 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 |= 0x01<<0|0x01<<1|0x01<<3|0x01<<4;
IEN2 |= 1<<4; //使能P1中断
P1IEN |= 1<<2; //P1_2中断使能
PICTL |= 1<<1; //下降沿触发
EA = 1; //使能总中断
while(1)
{
if(flag==0)
{
D4=0;D3=0;D6=0;D5=0;
}
else
{
D4=~D4;D3=~D3;D6=~D6;D5=~D5;
delay(500);
}
}
}
#pragma vector=P1INT_VECTOR //vector小写,结尾不能加分号
__interrupt void P1INT(void)
{
// unsigned char i;
if(P1IFG&(1<<2)!=0) //P1IFG寄存器:P1口引脚中断标志位寄存器,
//当对应引脚有上升或下降沿后标志位变1
{
// for(i=0;i<10;i++)
// {
// delay(100);
// if(SW1==1) break;
// }
// if(i!=10)
// {
// flag = (flag+1)%2;
// }
flag = (flag+1)%2;
P1IFG &= ~(0x01<<2);//清除对应中断标志位
}
P1IF = 0; //P1IF位:为P1口中断申请标志位,
//当P1IFG中断标志寄存器有位为1,并且开启了此位的中断时,P1IF位变1
}
C__ren
- 粉丝: 0
- 资源: 1
最新资源
- 海思hi3519dv500-toolchain(aarch64-v01c01-linux-gnu)
- 数据中心建设标准国标与Uptime标准对标解释
- 164-ssm定西扶贫惠农推介系统-java毕业设计.zip
- springboot069机场乘客服务系统.zip
- springboot个人博客项目.zip
- weixin266基于微信小程序的在线点餐堂食平台的设计与实现ssm.rar
- 基于Django的定点景点及酒店推荐预订系统项目资源.zip
- 556-Java农村事务管理与交流平台.zip
- Scratch少儿编程项目音效音乐素材-动物音效-麋鹿.zip
- Scratch少儿编程项目音效音乐素材-动物音效-猫.zip
- Scratch少儿编程项目音效音乐素材-动物音效-马.zip
- Scratch少儿编程项目音效音乐素材-动物音效-蜜蜂.zip
- Scratch少儿编程项目音效音乐素材-动物音效-鸟.zip
- 513-springbootJava Web的租房管理系统.zip
- 546-springboot高校学术交流平台.zip
- 课程思政元素收集遴选系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈