标题:
一个单片机按键扫描函数分享
[打印本页]
作者:
天涯教练
时间:
2017-10-30 21:07
标题:
一个单片机按键扫描函数分享
单片机源程序如下:
#include "reg51.h" //头文件
#define u8 unsigned char //宏定义
#define u16 unsiged int
u8 key_data=0; //定义全局标量
/*
按键扫描函数:
输入:
输出:按键值
*/
void key_san(void)
{
static bit key_bit = 0; //按键标志
static u8 key_num = 0; //时间标志
static u8 key_temp;
if((P2 != 0xFF) && (!key_bit)){ //判断按键是否按下?
key_num +=1; //时间累加(每次自动累加1ms)
if(key_num == 10){ //当累加到10ms
key_temp = P2; //读取当前独立按键接口的值
key_bit =1; //将标志位置1
}
}
if((P2 == 0xFF) && (key_bit)){ //判断按键是否放开?
key_num -= 1; //时间累加(每次自动减1ms)
if(key_num == 0){ //当累减到0ms
key_data = key_temp; //将值甩到全局标量
key_bit = 0; //将标志位复位0
}
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1