?? key.c
字號:
////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////4*4鍵盤程序//////////////////////////////////////////////
#include <delay.h>
#include "key.h"
/******************************按鍵定義**************************************/
//////////////////////////////////////////////////////////////////////////////
#define KEY_READ_DELAY_US 20
/////////////////////////////////////////////////////////////////////////////////////////////////
/********鍵盤掃描函數 讀取當前鍵盤的狀態 有按鍵按下返回相應按鍵值 無按鍵按下返回"0x00"**********/
unsigned char key_read(void)
{ unsigned char add;
unsigned char row_add; //行地址
unsigned char col_add; //列地址
//KEYPADDec = 0x00;
//獲取列地址
PORTA&=0X0f; //PC高位輸出低電平
DDRA|=0xF0;
PORTA|=0X0F; //PB0--PB3起用上拉電阻
DDRA&=0xf0; //PB0--PB3為輸入
delay_us(KEY_READ_DELAY_US);
//delay_ms(10); //延時10ms,否則可能因為低電平時間太短,出現單片機無法識別按鍵!重要!
col_add =~((PINA&0X0f)|0xf0);
//獲取行地址
PORTA&=0Xf0; //PB低四位輸出低電平
DDRA|=0x0F;
PORTA|=0XF0;
DDRA&=0x0f;
delay_us(KEY_READ_DELAY_US);
//delay_ms(10);
row_add=~((PINA&0Xf0)|0x0f);
add=row_add+col_add;
return add;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -