首页 > 其他 > 详细

4、按键轮询实验

时间:2020-02-06 12:12:49      阅读:81      评论:0      收藏:0      [点我收藏+]

轮询方式——按键控制LED亮灭(外部信号输入读取)

  外设电路图如下,P10低电平时LED亮,按键没有按下P01为高电平,按下为低电平:

  技术分享图片

  将P01设置为通用IO:

  技术分享图片

  将P01设置为输入模式:

  技术分享图片

  打开P01上的上拉电阻:

  技术分享图片

#include <ioCC2530.h>

typedef unsigned char uchar;
typedef unsigned int  uint;

#define LED1 P1_0           // P1.0口控制LED1
#define KEY1 P0_1           // P0.1口控制S1

void DelayMS(uint msec)
{ 
    uint i,j;   
    for (i=0; i<msec; i++)
        for (j=0; j<535; j++);
}

void InitLed(void)
{
    P1DIR |= 0x01;          // P1.0定义为输出
    LED1 = 1;               // LED1灯熄灭     
}

void InitKey(void)
{
    P0SEL &= ~0x02;         //设置P0.1为普通IO口  
    P0DIR &= ~0x02;         //按键接在P0.1口上,设P0.1为输入模式 
    P0INP &= ~0x02;         //打开P0.1上拉电阻
}

uchar KeyScan(void)
{
    if (KEY1 == 0)
    {
        DelayMS(10);
        if (KEY1 == 0)
        {
            while(!KEY1);   //松手检测
            return 1;       //有按键按下
        }
    }  
    return 0;               //无按键按下
}

void main(void)
{
    InitLed();              //设置LED1相应的IO口
    InitKey();              //设置S1相应的IO口   
    while(1)    
    {
        if (KeyScan())      //按键按下则改变LED状态
            LED1 = ~LED1;       
    }
}

 

4、按键轮询实验

原文:https://www.cnblogs.com/lanzhijie/p/12267996.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!