?? key.h
字號:
//函數說明
//--------------------------------
unsigned char get_key(void);
//--------------------------------
#include "delay.h"
unsigned char key_read(void)
{
unsigned char i;
/*獲取列地址*/
DDRB=0xf0; //高4位輸出,低4位輸入
PORTB=0x0f;//高4位輸出0,低4位帶上拉輸入
delay_nms(1);
i=PINB&0x0f;
/*獲取行地址*/
DDRB=0x0f;//高4位輸入,低4位輸出
PORTB=0xf0;//低4位輸出0,高4位帶上拉輸入
delay_nms(1);
i|=PINB&0xf0;
switch(i)
{
case 0xff:return 0x00;
case 0xee:return '/';
case 0xde:return '=';
case 0xbe:return '0';
case 0x7e:return 'R';
case 0xed:return '*';
case 0xdd:return '9';
case 0xbd:return '8';
case 0x7d:return '7';
case 0xeb:return '-';
case 0xdb:return '6';
case 0xbb:return '5';
case 0x7b:return '4';
case 0xe7:return '+';
case 0xd7:return '3';
case 0xb7:return '2';
case 0x77:return '1';
default:return 0x00;
}
}
unsigned char get_key(void)
{unsigned char i;
static unsigned char j;//按鍵記錄
i = key_read();
if (i == 0x00)//無有效按鍵按下
{
j = 0x00;//清除按鍵記錄
return 0x00;//程序退出
}
if (j == 0x00) //為新按鍵
{j = i;//保存本次采樣結果
delay_nms(10);//去按鍵顫抖
i = key_read();
if(i == j) {return i;}
}
return 0x00;
/*上面的寫法按下按鍵只有一個返回值,下面的做法雖然容易理解但是按下按鍵后可能
會返回多個返回值,故一般采用上面的寫法。
unsigned char i;
unsigned char j;//按鍵記錄
i=key_read();
if(i==0x00) //無有效按鍵按下
return(0x00);
else //有鍵按下
{
j=i; //保存結果
delay_nms(10); //去抖動
i=key_read();
if(i==j)
return(i);
}
return 0x00;*/
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -