您的位置:首页 > 其它

单片机时钟程序(6)key.c

2017-07-01 22:27 225 查看
#include "key.h"

#include "delay.h"

#include "timing.h"

u8 key_sta[8]={1,1,1,1,1,1,1,1};

void key_scan(void)

{

    u8 i;

    static u8 key_buf[8]={1,1,1,1,1,1,1,1};

    if(timing_info.flag_1ms)

    {

        timing_info.flag_1ms=0;

        key_buf[0]=(key_buf[0]<<1)|KEY1;

        key_buf[1]=(key_buf[1]<<1)|KEY2;

        key_buf[2]=(key_buf[2]<<1)|KEY3;

        key_buf[3]=(key_buf[3]<<1)|KEY4;

        key_buf[4]=(key_buf[4]<<1)|KEY5;

        key_buf[5]=(key_buf[5]<<1)|KEY6;

        key_buf[6]=(key_buf[6]<<1)|KEY7;

        key_buf[7]=(key_buf[7]<<1)|KEY8;  

        for(i=0;i<8;i++)

        {

            if(key_buf[i]==0x00)

                key_sta[i]=0;

            else if(key_buf[i]==0xff)

                key_sta[i]=1;

        }

    }

}

void key_action(void)

{

    u8 i;

    static u8 backup[8]={1,1,1,1,1,1,1,1};

    for(i=0;i<8;i++)

    {

        if(key_sta[i]!=backup[i])

        {

            if(backup[i])

            {

                key_specific_action(i);

            }

            backup[i]=key_sta[i];

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: