volatile unsigned char trg;
volatile unsigned char cont;
volatile unsigned char release;
volatile unsigned char key_flag = 0;
/********************************************************************
函数功能:按键扫描
函数名称:key_read
注意事项:trg, release, cont是全局变量
提示说明:PIND ^ 0x1F 1为有效状态
直接在中断中调用函数
输 入:无
返 回:无
********************************************************************/
void read_key( void )
{
unsigned char read_data = PIND^0x1F; // 1 读键值
trg = read_data & (read_data ^ cont); // 2 得到按下触发值
release= (read_data ^ trg ^ cont); // 3 得到释放触发值
cont = read_data; // 4 得到所有未释放的键值
if (trg != 0)
{
key_flag = 1;
}
if (key_flag == 1)
{
switch (trg) //短按触发
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载