中断使能主要有四个步骤:

(1)使.EA 位为 1,开中断。
(2)设置寄存器 IEN0、IEN1和IEN2中相应中断使能位为1。
(3)如果需要,则设置P0、P1、P2各引脚对应的各中断使能位为1。(4)最后在寄存器 PICTL中设置中断是上升沿还是下降沿触发。

首先对需要控制的led灯进行初始化

P0SEL&=~0x02;//对P0_1进行功能选择
P0DIR|=0x02;//配置led2输出

然后对需要按键配置的按键进行中断初始化

  EA=1;//总中断开启IEN2|=0x10;//对应引脚中断使能,P0脚用IEN1,P1脚用IEN2P1IEN|=0x02;//配置P1_1为中断PICTL|=0x02;//下降沿触发

然后完整带码如下:

#include "iocc2530.h"
void delay()
{int i,j;for(i=0;i<1000;i++){for(j=0;j<30;j++); }
}
void Init()
{P0SEL&=~0x02;P0DIR|=0x02;//配置led2输出EA=1;//总中断开启IEN2|=0x10;//对应引脚中断使能,P0脚用IEN1,P1脚用IEN2P1IEN|=0x02;//配置P1_1为中断PICTL|=0x02;//下降沿触发
}
#pragma vector=P1INT_VECTOR
__interrupt void fun(void)
{if(P1IFG&0x02){delay();if(P1_1==0){P0_1=~P0_1;}}P1IFG=0;IEN2|=0x00;
}
void main()
{Init();while(1){}}

部分原理图如下:

CC2530的中断操作----按键控制led灯亮灭相关推荐

  1. 用51单片机实现按键控制LED灯亮灭

    用51单片机实现按键控制LED灯亮灭 #include<reg51.h>//头文件 sbit LED=P2^0;//位定义LED灯 sbit k1=P3^1;//位定义按键 void de ...

  2. STM32按键控制LED灯亮灭(四)

    编程要点: 1)使能GPIO端口时钟: 2)初始化GPIO目标引脚为输入模式(浮空输入): 3)编写简单测试程序,检测按键的状态,实现按键控制LED灯: bsp_led.h文件 #ifndef T_L ...

  3. 【tiny4412】按键控制led灯亮灭

    前言:使用友善之臂tiny4412进行嵌入式学习,对于初学者而言并不是一件轻松事情,即使该平台已经存在很多年,网上也有很多分享,但由于官方文档相对还是不够全面,导致很多初学者遇到问题不知如何下手,如果 ...

  4. ZYNQ学习笔记(五)---按键控制LED灯亮灭实验

    这个实验其实很早就做了,但是由于这段时间自己一直在忙一些其他的事所以没有及时更新.今天抽出个空来更新一下.本次实验是关于按键控制LED亮灭.其中涉及到的内容有计数器.按键消抖以及一些简单的逻辑. 1. ...

  5. 按键控制led灯亮灭c语言原理,4个独立按键控制4个LED亮灭的单片机程序问题

    本帖最后由 ll13536121668 于 2017-11-2 17:32 编辑 4只独立按键控制4只LED亮和灭,按下按键,LED亮,再按下,LED灭.因为我们很多都是按完按键,松开手LED才亮. ...

  6. 中断函数实现按键控制LED灯亮灭

    #include <REGX51.H> int0()interrupt 0//中断函数 {P0=~P0;//led取反 } main() {//一共有5个中断IT0=1;EX0=1;EA= ...

  7. 按键控制led灯亮灭c语言实验报告,通过按键控制LED灯的实验

    通过查看开发板的核心电路原理图,加上查阅SUMSANG 2440的datasheed得知四个按键K1,K2,K3,K4对应GPF中的GPF1,GPF4,GPF2,GPF0.将这四个引脚配置为输入模式, ...

  8. 3.按键控制LED灯亮灭

    实验现象:本实验通过一个按键来控制一个发光二极管的亮灭.按键按一下LED点亮.再按一下LED熄灭. 理论学习: 该实验主要难点: 如何扫描按键的状态? 如何防抖动?  原理讲解: 按键检测原理:通过把 ...

  9. 五项按键控制LED灯亮灭

    实验需要:CubeMXkeil5STM32F051K8开发板 一.查看实物 1.点灯的引脚配置与文章[使用 CubeMX+Keil5+STM32F051K8 开发实现点亮一盏LED实验] (https ...

最新文章

  1. C#基础系列问题一break、continue、return、goto语句
  2. Linux思维导图之shell脚本编程基础、习题
  3. JQuery.Ajax()的data参数传递方式
  4. 安卓重构系列-01使用Kotlin开发第一个Demo
  5. php改变iframe的src,js动态改变iframe的src属性
  6. SQL必知必会-组合查询
  7. ITU-R BT.656 , 帧 , 场 === 模拟视频信号采集的处理,以及奇偶场
  8. python处理地震sac数据_自己开发的一个SEED格式地震数据转换为SAC格式数据,并完成世界时整天波形合并的Python脚本...
  9. Random随机数和for循环,实现猜数游戏和双色球
  10. {ResponseInfo:com.qiniu.http.Response@144f47b,status:401, reqId:uwcAAKdVRC2bnUoV, xlog:UP/401, xvia:
  11. supervisor 管理后台进程
  12. 使用canvas对图片进行裁切
  13. Tarena - 分组查询
  14. 算法基础(2) | 高精度、前缀和、差分
  15. android cocoscreator jsc js 间加解密(六)
  16. C语言--bool型变量问题详解
  17. 小车自动往返工作原理_自动往返小车
  18. 秒懂设计模式之工厂方法模式(Factory Method Pattern)
  19. 高数不定积分72题解答
  20. linux打开icmp端口,linux – ICMP – 目的地不可达(端口不可达)

热门文章

  1. 想转行it , 培训还是自学?
  2. String.intern()
  3. 虚拟主机选择_为何云虚拟主机我选择了,但企业还是不能更好地开展网站建设呢?...
  4. Spring boot (21)多数据源引起的循环引用和AutoConfigureAfter失效的问题
  5. mybatis Sql查询 返回对象或者list数据中包含一个对象的list集合
  6. node在linux无法连接mysql,无法连接到Node.js上的MySQL数据库
  7. docker应用篇(1):如何搭建VXXXN
  8. CentOS 基础命令 III
  9. A001-186-2629-赖海洲
  10. JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,respon 区别