标题:
Key.h头文件下载-AVR系列单片机的4*4小键盘驱动头文件
[打印本页]
作者:
daming
时间:
2014-12-30 12:51
标题:
Key.h头文件下载-AVR系列单片机的4*4小键盘驱动头文件
在代码下方点复制代码,然后另存到电脑磁盘即可下载.
/*****************************************************************************
单 位:广西民族大学物理与电子工程学院07物本班
文件名称:Key.h
文件标识:_KEY_H_
摘 要:AVR系列单片机的4*4小键盘驱动头文件
当前版本:V1.0
作 者: 【白 羽】
完成日期:2010年5月1日
*****************************************************************************/
#ifndef _KEY_H_
#define _KEY_H_
#include <BaiYuAvrKu\DataType.h>
#include <BaiYuAvrKu\PORT.H>
/*****************************************************************************
编绎控制:以下条件编绎语句保证只有在IO端口正确配置的情况下,才引用并编绎本文件
*****************************************************************************/
#if !defined(KEY_PORT)&&!defined(KEY_LINE)&&!defined(KEY_ROW)
#define KEY_LINE P(PORTB,L)
#define KEY_ROW P(PORTB,H)
#elif defined(KEY_PORT)&&!defined(KEY_LINE)&&!defined(KEY_ROW)
#define KEY_LINE P(KEY_PORT,L)
#define KEY_ROW P(KEY_PORT,H)
#elif defined(KEY_LINE)&&defined(KEY_ROW)&&!defined(KEY_PORT)
#else
#error 您没有正确设置key.h与AVR单片机的连接
#endif
/*****************************************************************************
常用控制命令
*****************************************************************************/
#define KeyInit() do{OUTS(KEY_LINE);OUTS(KEY_ROW);}while(0) //键盘初始化
UINT8 GetKey(void); //读取按键值
/*****************************************************************************
获取按键值
这种方法稍复杂,但抗干扰能力很强
*****************************************************************************/
UINT8 GetKey(void)
{
UINT8 i;
UINT8 temp;
UINT8 key=16;
SETS(KEY_ROW);
CLRS(KEY_ROW);
temp = (PBITS(KEY_LINE)==L) ? READS(KEY_LINE) : READS(KEY_LINE)>>4;
SETS(KEY_LINE);
CLRS(KEY_LINE);
temp |= (PBITS(KEY_ROW)==H) ? READS(KEY_ROW) : READS(KEY_ROW)<<4;
for(i = 0; i < 8; temp >>= 1, i++)
{
if((temp & BIT(0)) && (i < 4)) key = i << 2;
else if((temp & BIT(0)) && (i < 8)) key|=i-4;
}
return key;
}
#endif
复制代码
作者:
zp17777
时间:
2019-3-2 22:12
谢谢分享
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1