中断方式控制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) 
   {
   }
}


相关文章
|
5月前
|
机器人 异构计算 SoC
实例2:树莓派GPIO控制外部LED灯闪烁
本文是一个关于使用树莓派GPIO控制外部LED灯闪烁的实验教程,介绍了树莓派的基本概念、GPIO接口的使用、RPi.GPIO库的基本操作,以及通过Python编程实现LED灯周期性闪烁的详细步骤和代码示例。
146 1
实例2:树莓派GPIO控制外部LED灯闪烁
|
5月前
|
机器人 Linux 异构计算
实例1:控制树莓派板载LED灯闪烁
本文是一个关于如何使用Python编程控制树莓派板载LED灯闪烁的实验教程,涵盖了树莓派的基本概念、LED控制文件的读写操作、Python `open()` 和 `sleep()` 函数的使用方法,以及具体的实验步骤和代码实现,目的是让读者通过实践熟悉树莓派操作和Linux文件读写。
109 1
实例1:控制树莓派板载LED灯闪烁
【51单片机】Kn独立按键控制【LED亮灭】【LED状态】【LED二进制式显示】【LED不断移位】(4)
【51单片机】Kn独立按键控制【LED亮灭】【LED状态】【LED二进制式显示】【LED不断移位】(4)
定时器+按键控制LED流水灯模式+定时器时钟——“51单片机”
定时器+按键控制LED流水灯模式+定时器时钟——“51单片机”
|
8月前
|
C语言
独立按键控制LED亮灭、独立按键控制LED状态、独立按键控制LED显示二进制、独立按键控制LED移位——“51单片机”
独立按键控制LED亮灭、独立按键控制LED状态、独立按键控制LED显示二进制、独立按键控制LED移位——“51单片机”
|
C语言
单片机控制LED灯
单片机控制LED灯
286 0
51单片机--利用独立按键控制LED
51单片机--利用独立按键控制LED
354 0
单片机开关控制LED的点亮及闪烁
单片机开关控制LED的点亮及闪烁
350 0
单片机——按钮控制LED的不同效果电亮
单片机——按钮控制LED的不同效果电亮
190 0
STM32学习笔记(2) 使用外部中断控制按键
NVIC_IRQChannel ​​​​:对于RCT6来说,它的中断源如上图所示,在stm32f103.h中已经配置好寄存器,直接调用即可,下图中,RCT6主要用的是STM32F103X_HD的中断源
258 0