单片机时钟程序(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];
}
}
}
#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];
}
}
}
相关文章推荐
- 单片机时钟程序(7)key.h
- 单片机时钟程序(7)key.h
- 单片机时钟程序(6)key.c
- 小小的单片机时钟程序
- 单片机实验代码——多功能时钟程序
- 单片机时钟程序(9)lcd1602.h
- 单片机时钟程序(8)lcd1602.c
- 单片机时钟程序
- 单片机时钟程序(8)lcd1602.c
- 单片机时钟程序(3)control.h
- 单片机时钟程序(10)timing.c
- 今天完成的一个用单片机制作的时钟程序,刚学单片机,望高手指到代码的不足之处
- 单片机时钟程序(4)ds1302.c
- 单片机时钟程序(3)control.h
- 单片机时钟程序(4)ds1302.c
- 凌阳61单片机使用7段数码管显示数字时钟的程序
- 单片机实验代码——可调时间的时钟程序
- 单片机时钟程序(1)main.c
- 单片机时钟程序(5)ds1302.h
- 单片机时钟程序(10)timing.c