📄 key.h
字号:
/************************************************************
功能:通用矩阵扫描式键盘
设计:cht
设计时间:2007/11/22
MCU: MEGA16
修改时间:2007/11/22
说明:
*************************************************************/
#ifndef KEY_H
#define KEY_H
#include <avr/io.h>
#include "avr_m16.h"
/*----------------------------------------
通用函数
------------------------------------------*/
uint8_t key_scan(void); //键盘扫描
/*----------------------------------------
uint8_t key_scan(void)
说明:键盘扫描
PA7,PA6 为输入(行)
PA5,PA4 为输出(列)
1 2
3 4
------------------------------------------*/
uint8_t key_scan(void)
{
uint8_t key_code;
PORTA=0B11110000;
DDRA=0B00110000;
key_code=5;
//第一列
PORTA&=~_BV(PA4);
PORTA|=_BV(PA5);
if ((PINA&0B01000000)==0)
{
_delay_ms(10);
if ((PINA&0B01000000)==0)
key_code=1;
}
if ((PINA&0B10000000)==0)
{
_delay_ms(10);
if ((PINA&0B10000000)==0)
key_code=3;
}
//第二列
PORTA&=~_BV(PA5);
PORTA|=_BV(PA4);
if ((PINA&0B01000000)==0)
{
_delay_ms(10);
if ((PINA&0B01000000)==0)
key_code=2;
}
if ((PINA&0B10000000)==0)
{
_delay_ms(10);
if ((PINA&0B10000000)==0)
key_code=4;
}
return key_code;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -