0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于cc2530按键中断控制流水灯的实验方案

454398 来源:博客园 作者:笼包叔叔 2020-10-18 10:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

cc2530的第三次实验:按键中断控制流水灯

效果为按一次按键,流水灯亮一次

实验相关电路图:

实验相关寄存器

初始化函数

//初始化LED灯
    //设置P1SEL,通用为0,外设为1 11111100
    P1SEL &=~0x03;

    //设置P0SEL,    11101111
    P0SEL &= ~0x10;

    //设置P1DIR,输出为1,输入为0  00000011
    P1DIR |= 0x03;

    //设置P0DIR     00010000
    P0DIR |= 0x10;     


//初始化按钮和中断
//初始化按钮
    //初始化P0SEL,通用为0     11111101
    P0SEL&=~0x02;
    //初始化P0DIR,输入为0     11111101
    P0DIR&=~0x02;

//初始化中断
    //设置引脚中断 1为中断使能 00000010
    P0IEN |= 0x02;
    //设置端口中断
    IEN1=1;
    //设置端口中断触发方式 1为中断使能
    IEN1|=0x20;
    //设置总中断
    EA=1;
    //清空标志位
    P0IFG=0;

中断服务函数

//中断服务函数
#pragma vector = P0INT_VECTOR        //这一行的P0INT_VECTOR是中断源的名称吗?
__interrupt void P0ISR(void)
{
  //清除端口中断标志位
  P0IFG=0;
  
  //LED灯流水亮一遍
  BLink();

  //清除端口中断标志位
  P0IF=0;


}

上面的代码一定要注意P0IFG一定要在P0IF之前清除,话说P0IF与P0IFG到底是干啥用的?他们之间什么关系,端口的标志寄存器?(记得查一下)
P0IFG是端口0中断状态标志,P0IF是cpu内中断标志寄存器,什么鬼,没弄明白啊,问一下老师吧!

全部代码

#include 

typedef unsigned int uint;
typedef unsigned char uchar;
#define LED1 P1_0
#define LED2 P1_1 
#define LED3 P0_4
#define BUTTON1 P0_1 

uint time=300;

//延迟函数
void Delay(uint time)
{
  for(uint i=0;i

这个实验的难点以及重点主要是在初始化中断这个过程,
初始化引脚的寄存器P0IEN|=0x02;
设置端口中断的寄存器IEN1|=0x20;
设置端口中断触发方式PICTL|=0x01;
设置总中断EA=1
清空标志位:P0IFG=0;
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 流水灯
    +关注

    关注

    21

    文章

    435

    浏览量

    61269
  • CC2530
    +关注

    关注

    19

    文章

    221

    浏览量

    59814
  • 中断控制
    +关注

    关注

    0

    文章

    26

    浏览量

    9067
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电压放大器在电池超声导波扫描实验系统中的应用

    实验名称: 电池超声导波扫描实验系统搭建与实验方案 研究方向: 锂离子电池超声导波扫描实验系统搭建、电池超声导波面扫描实验方案设计与验证、电
    的头像 发表于 12-02 11:16 61次阅读
    电压放大器在电池超声导波扫描<b class='flag-5'>实验</b>系统中的应用

    蜂鸟E203在黑金XC7A200T型FPGA上点亮LED并实现流水灯

    。) 程序始终处于流水灯状态,当按下触发中断按键后,所有LED都熄灭,松开按键每个LED又恢复到中断前的亮灭状态。
    发表于 10-31 09:04

    【沁恒CH585开发板免费试用体验】GPIO 流水灯

    开发环境: IDE:MounRiver Studio MCU:CH585 1 GPIO工作原理 熟悉单片机的朋友都知道,学习的第一个例程就是流水灯,要想实现流水灯,首先必须了解GPIO的工作原理
    发表于 07-04 22:55

    【RA-Eco-RA4M2开发板评测】点灯实现6种LED花式流水灯操作

    很高兴收到瑞萨电子提供的RA4M2开发板,这次帖子就专门用来说说专业点灯操作,实现各种花式的流水灯,可以十分方便地控制LED的各种状态,甚至多个LED组合控制,如跑马灯等。 打开原理图,可以看到3个
    发表于 04-28 21:28

    【RA-Eco-RA4M2开发板评测】2 初识GPIO流水灯

    电平,再加上延时,从而实现流水灯的效果。 4 实验现象 将编译好的程序下载到板子中,可以看到三个LED灯依次闪烁。
    发表于 04-25 23:06

    【瑞萨RA2L1入门学习】+LED流水灯实验

    基于 Arm® Cortex®-M23 核心(现今 Arm® Cortex-M 系列中功耗最低的 CPU)。 这款产品采用优化的制程和瑞萨电子的低功耗工艺技术,是业界一流水平的超低功耗微控制器。 RA2L1
    发表于 03-07 15:27

    CC2530连接ADS7822,经示波器检测,CLK无输出波形是怎么回事?

    CC2530连接ADS7822,UBART1作为SPI模式,P1.4——CS,P1.5——CLK,P1.7——Dout【CC2530——ADS7822】.硬件查询方式。 因为ADS7822没有
    发表于 02-10 08:22

    CC2530驱动ADS1255,可以正确的读到寄存器的值,就是得到AD装换的值不正确,为什么?

    最近用CC2530驱动ADS1255,现在可以正确的读到寄存器的值,就是得到AD装换的值不正确,有没有一个驱动ADS1255的示范程序了?
    发表于 02-10 07:47

    #中国香河英茂科工#STC32G12K128#屠龙刀三.2 流水灯例程

    流水灯
    丙丁先生
    发布于 :2025年01月19日 14:19:35

    如何使ADS1247功耗降低?

    请问如何使ADS1247功耗降低,我用CC2530控制1247,现在整体功耗在休眠时候是5V0.45mA,但是1247说明上有一句说是:在睡眠模式下功耗只有0.1-0.5uA,我已经把CC2530
    发表于 01-10 07:58

    【正点原子STM32H7R3开发套件试用体验】流水灯

    【正点原子STM32H7R3开发套件试用体验】流水灯 本文介绍了使用 STM32CubeMX 辅助配置 GPIO 及晶振参数,实现流水灯的方法。 工程创建 1.打开 STM32CubeMX 软件
    发表于 12-28 18:51

    低成本单片机方案——触摸流水灯开关控制

    方案触摸流水灯控制方案Thedevelopmentofascheme随着物联网技术的不断发展和智能家居的普及,触摸流水灯
    的头像 发表于 12-26 16:37 1188次阅读
    低成本单片机<b class='flag-5'>方案</b>——触摸<b class='flag-5'>流水灯</b>开关<b class='flag-5'>控制</b>

    使用cc2530控制的ads1299,读取转换数据的时候输出是c0 00 00 80 00 00 80 00 00 7f ff ff这样,为什么?

    我在用ADS1299做脑电采集,现在使用cc2530控制的ads1299,目前读写寄存器和发送命令都正确,但是读取转换数据的时候输出是c0 00 00 80 00 00 80 00 00 7f
    发表于 12-25 06:26

    【RA-Eco-RA4E2-64PIN-V1.0开发板试用】MDK+点灯+流水灯

    ” 文件,在 hal_entry 函数里面编写我们的代码。 直接运行,灯会常亮 流水灯实验,延迟200ms
    发表于 12-15 15:59

    cc2530驱动ADS8862采集数据,ADS8862老是驱动不成功,为什么?

    cc2530驱动ADS8862采集数据,2530SPI主模式配置完毕,ADS8862老是驱动不成功,请问有没有相关例程呢?望大佬提供下,谢谢!
    发表于 12-10 07:04