CC2530按键控制跑马灯的运行与暂停

发布者:Delightful789最新更新时间:2022-10-13 来源: csdn关键字:CC2530  按键控制  跑马灯 手机看文章 扫描二维码
随时随地手机看文章

实验要求

代码实现

#include "ioCC2530.h"

 

#define D3 P1_0

#define D4 P1_1

#define D5 P1_3

#define D6 P1_4

//按键

#define SW1 P1_2

 

//统计数量

unsigned int count = 0;

//标志位

unsigned char F_LED = 0;

 

//延迟函数

void Delay(unsigned int t)

{

  while(t--);

}

 

//端口初始化函数

void Init_Prot()

{

//配置4个LED灯的引擎

  //选择端口的功能

  P1SEL &=~0x1B;//设置通用io端口

  //配置端口的方向

  P1DIR |=0x1B;

  

//配置SW1按键引脚

  P1SEL &=~0x04;

  P1DIR &=0x04;//输入模式 清零

    //将输入模式设置为上拉模式

    P1INP &=~0x04;

    P2INP &=~0x40;//第6位清零

}

 

//灯光检测函数

void LED_Check()

{

    D3=1;

  //P1 |= 0x1B;

  Delay(60000);

  Delay(60000);

 

  //D3=0;

  P1 &=~0x1B;

  Delay(60000);

  Delay(60000);

}

 

//跑马灯函数

void LED_Running()

{

  Delay(60);

  if(F_LED == 1)

  {

    count++;

  } 

  

  if(count<1000)

  {

    D4 =1;

    D3 =0;

    D6 =0;

    D5 =0;

  }

  else if(count<2000)

  {

    D4 =0;

    D3 =1;

    D6 =0;

    D5 =0;

  }

  else if(count<3000)

  {

    D4 =0;

    D3 =0;

    D6 =1;

    D5 =0;

  }

  else if(count<4000)

  {

    D4 =0;

    D3 =0;

    D6 =0;

    D5 =1;

  }

  else if(count<5000)

  {

    count = 0;

  }

}

 

 

//按键扫描函数

void Scan_Keys()

{

  //按键

  if(SW1 == 0)//可能有按键按下,那么进行去抖动操作

  {

    Delay(200);

     if(SW1 == 0)//那么就是按键触发的信号

     {

      //按键处理程序

       while(SW1 == 0)//低电平、按下状态

       {

        LED_Running();//等待的过程中任然执行

       }

       

       //暂停就启动、启动就暂停

       if(F_LED == 0)

       {

        F_LED = 1;

       }else if(F_LED == 1)

       {

        F_LED = 0;

       }

     }

  }

}

 

void main(void)

{

  //端口初始化

  Init_Prot();

  LED_Check();

  F_LED = 1;

  while(1)

  {

    LED_Running();

    Scan_Keys();

  }

}


关键字:CC2530  按键控制  跑马灯 引用地址:CC2530按键控制跑马灯的运行与暂停

上一篇:CC2530外部中断控制LED灯开关
下一篇:CC2530按键控制LED灯开关

推荐阅读最新更新时间:2024-11-12 16:45

51单片机+74hc595芯片实现跑马灯
74HC595特点: 串进并出,移位,锁存(相当于把8位输入送到Q0-Q7,锁存前Q0-Q7为上一次的值) Q7‘为串行输出,即可以级联。 SCK(SH_CP) //串行输入时钟, 串行输入 RCK(ST_CP) //存储寄存器时钟,并行输出2、原理图如图所示 单片机源程序如下: #include reg51.h #include intrins.h typedef unsigned char uchar; typedef unsigned int uint; void delayms(uint xms); void hc595(uchar byteData); sbit SER = P3^4; //p3.4脚
[单片机]
51单片机+74hc595芯片实现<font color='red'>跑马灯</font>
MSP430中断函数篇
一、实现功能 利用中断函数实现按键控制LED,一按一灭的功能 。 二、运行内容 1、整体代码 #include MSP430.h #include IN430.h //#include MSP430f5529.h int main( void ) { WDTCTL = WDTPW + WDTHOLD; /*初始LED*/ P1DIR|=BIT0; P1OUT&=~BIT0; /*初始按键 输出*/ P1DIR&=~BIT1; /*使能上拉 */ P1REN |=BIT1; P1OUT |=BIT1; /*打开P1.0中断 */ P1IE |=BIT1; /*设定下降沿触发 */ P1IES
[单片机]
第18章 STM32F429的GPIO应用之跑马灯
18.1 初学者重要提示 学习本章节前,务必保证已经学习了第15,16和17章。 虽然是跑马灯的初级例程,但有必要掌握程序的基本设计框架,后面的例子都是建立在这个框架的基础上。 LED不是用CPU的IO直接驱动,而是由74HC574驱动的,74HC574是一个8路并口缓冲器,挂在FMC总线上,实现IO扩展。也许初学者会问为什么要做IO扩展,不是已经用了208脚的STM32F429BIT6吗?因为开发板使用了32位SDRAM和RGB888硬件接口,消耗IO巨大,所以必须得扩展了。 对于初学者来说,仅需掌握LED驱动的实现方法和对应的API调用即可,需要深入的理解IO扩展部分,会在后面的节进行详细讲解。 FMC总线扩展
[单片机]
第18章 STM32F429的GPIO应用之<font color='red'>跑马灯</font>
stm32 按键控制实验
一旦用到按键,一个关键的问题就是消抖,如果对这个问题不管的话,会引起很多难以控制的问题,最常见的就是反复进入中断导致程序飞出。 目前我手里的这款32有四个按键,上PA0是高电,左下右PE234是低电 操作步骤: 持续胡扫描key.c #include system.h #define KEY_LEFT_Pin GPIO_Pin_2 //定义K_LEFT管脚 #define KEY_DOWN_Pin GPIO_Pin_3 //定义K_DOWN管脚 #define KEY_RIGHT_PinGPIO_Pin_4 //定义K_RIGHT管脚 #define KEY_UP_Pin GPIO_Pin_0 //定义K
[单片机]
STM32按键控制流水灯 转换|加速|减慢
单片机源程序如下: #include stdio.h #include stm32f4xx.h #include led.h #include key.h int main(void) { int pwm_cmd; SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); LED_Init(); KEY_Init(); EXTI_Config(); while(1) { }
[单片机]
STM32<font color='red'>按键</font><font color='red'>控制</font>流水灯 转换|加速|减慢
STM32跑马灯配置流程
跑马灯配置流程(战舰开发板V3) LED的初始化 相应功能引脚的确定 插上一句:这里的IO引脚可以输出低电平/高电平,那就说明这个引脚采用的输出方式为“推挽输出模式”。 确保在文件中添加了相应库文件 这两个文件是STM32开发板的启动文件,可以启动你添加进其中的所有库文件。只注意就行,正点原子给你的template(库函数版本)中已经添加进入这两个文件,只会用就基本上OK了。 先建立LED硬件初始化文件并添加进项目工程中 在创建好的文件中编写初始化LED硬件的程序 Led.h文件 led.c文件 函数参实设置小技巧 第一步:返回函数定义的位置 第二步:寻找参数的定义形式 找到参数的合
[单片机]
STM32<font color='red'>跑马灯</font>配置流程
30-基于单片机的跑马灯设计
具体实现功能 具体仿真功能为: ①总的有九种流水灯点亮模式,通过模式按键进行切换; ②通过加减按键可以切换每种流水灯模式的速度。 单片机介绍 51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X51 可降至0Hz 静态逻辑
[单片机]
30-基于单片机的<font color='red'>跑马灯</font>设计
PWM --用按键控制 LED 的亮度
以前写过一篇关于 PWM 的博文,已经有一年了,链接如下: http://hi.baidu.com/do_sermon/item/ff523b0a8b9d3d173b53ee74 文中使用了示波器来显示不同占空比的波形。 其实,利用 LED 也能通过亮度来表现出 PWM 参数的变化,用实物进行测试,效果很好,但是用 PROTEUS 进行仿真试验,却只是看到闪烁的厉害,基本上看不出亮度的变化。 近来发现,加上一个大电容,就可以减弱 LED 的闪烁,亮度就能够稳定一些,这样一来,就可以用 PROTEUS 软件直接观察亮度的变化了。 电路见下图。图中的大电容(C6)的容量是 4700uF,这个是可以随便调整的,实
[单片机]
PWM --用<font color='red'>按键</font><font color='red'>控制</font> LED 的亮度
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved