中断方式控制LED灯

简介: 中断方式控制LED灯宏定义初始化中断函数主函数


宏定义



#include "ioCC2530.h"  // 引用头文件,包含对CC2530的寄存器、中断向量等的定义
/********************************************************************/
#define LED1 P1_0     // P1_0定义为P1.0
#define SW1  P1_2     // P1_2定义为SW1


初始化



/*********************************************************************
 * 函数名称:init
 * 功    能:初始化系统IO,使得P1_2引脚能接受并处理中断
 * 入口参数:无
 * 出口参数:无
 * 返 回 值:无
 ********************************************************************/
void init()
{    //P1SEL &=~0x3D;     // 设置LED1、SW1为普通IO口
     P1DIR |= 0x39 ;    // 设置LED1为输出
     P1DIR &= ~0x04;  //Sw1按键在 P1.2,设定为输入
     P1 &= ~0x39 ;        
     PICTL &= ~0x02;  //配置P1口的中断边沿为上升沿产生中断
     P1IEN |= 0x04;  //使能P1.2中断
     IEN2 |= 0x10;  //使能P1口中断    
     EA = 1;   //使能全局中断
}


中断函数



/*********************************************************************
 * 函数名称:EINT_ISR
 * 功    能:外部中断服务函数
 * 入口参数:无
 * 出口参数:无
 * 返 回 值:无
 ********************************************************************/
#pragma vector=P1INT_VECTOR
__interrupt void P1_INT(void)
{
    EA = 0;           // 关闭全局中断
   /* 若是P1.2产生的中断 */
    if(P1IFG & 0x04)
    { 
      LED1=!LED1;
      P1IFG &= ~0x04;   // 清除P1.2中断标志      
    }
    EA = 1;          // 使能全局中断 
}


主函数



/*********************************************************************
 * 函数名称:main
 * 功    能:main函数入口
 * 入口参数:无
 * 出口参数:无
 * 返 回 值:无
 ********************************************************************/
void main(void)
{  
   init();   //调用初始化函数
   while(1) 
   {
   }
}


相关文章
|
传感器 芯片
STM32--PWR电源控制
STM32--PWR电源控制
STM32--PWR电源控制
定时器+按键控制LED流水灯模式+定时器时钟——“51单片机”
定时器+按键控制LED流水灯模式+定时器时钟——“51单片机”
|
6天前
|
C语言
独立按键控制LED亮灭、独立按键控制LED状态、独立按键控制LED显示二进制、独立按键控制LED移位——“51单片机”
独立按键控制LED亮灭、独立按键控制LED状态、独立按键控制LED显示二进制、独立按键控制LED移位——“51单片机”
|
8月前
|
C语言
单片机控制LED灯
单片机控制LED灯
210 0
|
9月前
51单片机--利用独立按键控制LED
51单片机--利用独立按键控制LED
202 0
|
10月前
单片机控制LED数码管的显示
单片机控制LED数码管的显示
214 0
|
12月前
单片机开关控制LED的点亮及闪烁
单片机开关控制LED的点亮及闪烁
242 0
|
12月前
单片机——按钮控制LED的不同效果电亮
单片机——按钮控制LED的不同效果电亮
140 0
STM32学习笔记(2) 使用外部中断控制按键
NVIC_IRQChannel ​​​​:对于RCT6来说,它的中断源如上图所示,在stm32f103.h中已经配置好寄存器,直接调用即可,下图中,RCT6主要用的是STM32F103X_HD的中断源
157 0

热门文章

最新文章