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内中断标志寄存器,什么鬼,没弄明白啊,问一下老师吧!
全部代码
#includetypedef 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
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
流水灯
+关注
关注
21文章
435浏览量
61269 -
CC2530
+关注
关注
19文章
221浏览量
59814 -
中断控制
+关注
关注
0文章
26浏览量
9067
发布评论请先 登录
相关推荐
热点推荐
蜂鸟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
如何使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
使用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

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