实验要求
代码实现
#include "ioCC2530.h"
#define D3 P1_0
#define D4 P1_1
#define D5 P1_3
#define D6 P1_4
//两个按键
#define SW1 P1_2
#define SW0 P0_1
//延迟函数
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位清零
//配置SW2按键引脚
P0SEL &=~0x02;
P0DIR &=0x02;//输入模式 清零
//将输入模式设置为上拉模式
P0INP &=~0x02;
P2INP &=~0x20; //第5位清零
//第7位对应的是P2端口
//第6位对应的是P1端口
//第5位对应的是P0端口
}
//灯光检测函数
void LED_Check()
{
D3=1;
D4=1;
D5=1;
D6=1;
Delay(60000);
Delay(60000);
D3=0;
D4=0;
D5=0;
D6=0;
}
//按键扫描函数
void Scan_Keys()
{
//按键1
if(SW1 == 0)//可能有按键按下,那么进行去抖动操作
{
Delay(200);
if(SW1 == 0)//那么就是按键触发的信号
{
//按键处理程序
while(SW1 == 0);//低电平、按下状态
D4=~D4;
}
}
//按键2
if(SW0 == 0)//可能有按键按下,那么进行去抖动操作
{
Delay(200);
if(SW0 == 0)//那么就是按键触发的信号
{
//按键处理程序
while(SW0 == 0);//低电平、按下状态
D6=~D6;
}
}
}
void main(void)
{
//端口初始化
Init_Prot();
LED_Check();
while(1)
{
Scan_Keys();
}
}
关键字:CC2530 按键控制 LED灯开关
引用地址:
CC2530按键控制LED灯开关
推荐阅读最新更新时间:2024-11-12 11:00
51单片机按键控制数码管0~9
前面为大家介绍的点亮LED灯、数码管、按键只用到了51单片机的IO资源,我们要是仅仅用单片机点灯、操作数码管,那可真是大才小用了。这些都只是51单片机资源的冰山一角,51单片机还有好多的功能,我后面将为大家一一介绍。今天为大家介绍单片机一个重要的外设——中断。 中断 没接触过单片机的朋友听到这个词肯定很陌生,大家对打断这个词应该不陌生吧,中断字面意思可以理解为中途被打断。大家可以思考一下,什么的中途被什么给打断了呢?想明白了这个问题就说明理解中断了。下面看看百度的解释: 中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情 况的程序,处理完毕后又返回原被暂停的程序继续运行。
[单片机]
中断-按键控制LED灯
三个按键分别控制三个LED灯 完整项目请去我的资源下载页xjp的资源 初始化函数: /* * init.c: 进行一些初始化 */ #include s3c24xx.h /* * LED1,LED2,LED4对应GPF4、GPF5、GPF6 */ #define GPF4_out (1 (4*2)) //定义为01 输出 #define GPF5_out (1 (5*2)) #define GPF6_out (1 (6*2)) #define GPF4_msk (3 (4*2)) //定义为11 #define GPF5_msk (3 (5*2)) #define GPF6_msk (3 (6*2))
[单片机]
CC2530 芯片介绍
简介 CC2530 结合了领先的RF 收发器的优良性能,业界标准的增强型8051 CPU,系统内可编程闪存,8-KB RAM 和许多其它强大的功能。CC2530 有四种不同的闪存版本:CC2530F32/64/128/256,分别具有32/64/128/256KB 的闪存。CC2530 具有不同的运行模式,使得它尤其适应超低功耗要求的系统。运行模式之间的转换时间短进一步确保了低能源消耗。 CC2530F256 结合了德州仪器的业界领先的黄金单元ZigBee 协议栈(Z-Stack™),提供了一个强大和完整的ZigBee 解决方案。 CC2530F64 结合了德州仪器的黄金单元RemoTI,更好地提供了一个强大和完整的ZigBe
[单片机]
C51---按键控制LED移位
原理图 main 函数 按键key1控制LED往下一位点亮 按键key2控制LED往上一位点亮 #include REGX52.H //0 num 65535 void Delay_ms(unsigned int num) //@12.000MHz { unsigned char i, j; while(num) { i = 2; j = 239; do { while (--j); } while (--i); num--; } } unsigned char LEDNum; void main() { P2=~0x01; while(
[单片机]
【ARM】2410裸机系列-按键查询式控制led
开发环境 硬件平台:FS2410 主机:Ubuntu 12.04 LTS LED灯原理图 按键原理图 按键的接线资源 KSCAN0 - GPE11 KSCAN1 - GPG6 KSCAN2 - GPE13 KSCAN3 - GPG2 EINT0 - GPF0 EINT2 - GPF2 EINT11 - GPG3 EINT19 - GPG11 程序主要原理 这里实现对 K1,K2,K3,K4 这四个键的查询。 主要涉及到K1,K2, K3, K4这四个按键,要用查询的方式进行判断哪个键被按下去了,因此: 将EINT11, EINT19设置为输入,用于读取; 将KSCAN0,KS
[单片机]
MSP430按键控制LED闪烁频率
MCU为430F149,编译环境为IAR,主时钟使用频率的800KHz,内部DCO。LED- P2.0, KEY1- P1.0, KEY2- P1.1。亲测可用。 /********************************************** *程序描述:单片机的P1.0,P1.1连接两个独立按键,P1.0- KEY1,P1.1- kEY2,由外部中断下触发。P2.0- LED,MCLK = DCO 800KKHz * 按键1按下每秒闪一下,按键2按下闪烁频率降低一半 *作者 :Zhenhua Liu *时间 :2017.10.29 20:00 ***************************
[单片机]
zigbee学习之路(三):按键的控制
一.前言 通过前一次的实验,相信大家都已经对cc2530程序的编写有了一定的认识,这次我们来操作和实验的是cc2530上的按键模块。 二.原理分析 我们先来看一下按键的原理图: 根据原理图我们可以得出,按键不按下的时候值为0,因为接地,所以,按键要被按下的时候,BUT1和BUT2输入值为1,当检测到它们为1时,按键就为按下的状态,因为P0DIR默认的状态是输入,所以不需要配置IO寄存器,当按键按下时,改变led的状态,来验证实验。 三.程序 #define LED1 P1_0 //LED1为P1_0端口控制 #define LED2 P1_1 //LED2为P1_1端口控制 #define LED3 P1_4
[单片机]
基于CAN和WSN的煤矿语音通信系统设计
引言 煤矿安全一直是煤矿生产中的重中之重,保障井下语音通信特别是应急情况下的语音通信是保障煤矿安全生产的前提。现有的井下语音系统一般包括有线和无线两种方式。其中,有线方式主要包括调度电话和井下扩音电话系统两种;无线方式主要为井下小灵通系统(基站之间也是基于有线的)。这些传统的语音通信系统在正常情况下可以满足煤矿语音通信的需要,但如果发生紧急情况,有线连接被切断,现有的语音通信系统将面临瘫痪的可能。而新兴无线传感器系统在语音通信中又面临着功耗控制等难题。因此建立一种具有自愈性、自组织,能在紧急情况下恢复和保障井下应急语音通信的系统成为当务之急。 针对以上问题,本文结合CAN总线和无线传感器网络的优点,提出了两级网络的井下语音通信
[单片机]