資料介紹
// 簡單描述 : 本文件是行列掃描法實(shí)現(xiàn)矩陣按鍵掃描程序
/* ***************************************************** */
#include 《reg52.h》
/* ***************************************************** */
// 宏定義
/* ***************************************************** */
#define uInt16 unsigned int
#define uChar8 unsigned char
#define DATA P0 //數(shù)據(jù)口
#define KEYPORT P3 //鍵盤接入端口
/* ***************************************************** */
// 位定義
/* ***************************************************** */
sbit SEG_SELECT = P1^7; //段選控制端
sbit BIT_SELECT = P1^6; //位選控制端
/* ***************************************************** */
// 數(shù)組定義
/* ***************************************************** */
uChar8 code SEG_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//段選顯示表格
/* ***************************************************** */
// 全局變量定義
/* ***************************************************** */
uChar8 g_ucKeyNum = 16; //鍵值
/* ***************************************************** */
// 函數(shù)名稱:MelayMS()
// 函數(shù)功能:毫秒延時(shí)
// 入口參數(shù):延時(shí)毫秒數(shù)(ValMS)
// 出口參數(shù):無
/* ***************************************************** */
void DelayMS(uInt16 ValMS)
{
uInt16 uiVal,ujVal;
for(uiVal = 0; uiVal 《 ValMS; uiVal++)
for(ujVal = 0; ujVal 《 121; ujVal++);
}
/* ***************************************************** */
// 函數(shù)名稱:ScanKey()
// 函數(shù)功能:矩陣按鍵掃描
// 入口參數(shù):無
// 出口參數(shù):無
/* ***************************************************** */
void ScanKey(void)
{
uChar8 ucTemp;
KEYPORT = 0xfe; //檢測第一行
ucTemp = KEYPORT; //讀取鍵盤端口數(shù)值
if(ucTemp != 0xfe) //若是不等于0xF0表示有按鍵按下
{
DelayMS(5); //去抖
ucTemp = KEYPORT; //讀端口值
if(ucTemp != 0xfe) //再次判斷
{
ucTemp = KEYPORT; //取鍵值
switch(ucTemp) //判斷鍵值對應(yīng)鍵碼
{
case 0xee:g_ucKeyNum = 0;break;
case 0xde:g_ucKeyNum = 1;break;
case 0xbe:g_ucKeyNum = 2;break;
case 0x7e:g_ucKeyNum = 3;break;
}
while(KEYPORT != 0xfe); //按鍵釋放檢測
}
}
KEYPORT = 0xfd;
ucTemp = KEYPORT;
if(ucTemp != 0xfd)
{
DelayMS(5);
ucTemp = KEYPORT;
if(ucTemp != 0xfd)
{
ucTemp = KEYPORT;
switch(ucTemp)
{
case 0xed:g_ucKeyNum = 4;break;
case 0xdd:g_ucKeyNum = 5;break;
case 0xbd:g_ucKeyNum = 6;break;
case 0x7d:g_ucKeyNum = 7;break;
}
while(KEYPORT != 0xfd);
}
}
KEYPORT = 0xfb;
ucTemp = KEYPORT;
if(ucTemp != 0xfb)
{
DelayMS(5);
ucTemp = KEYPORT;
if(ucTemp != 0xfb)
{
ucTemp = KEYPORT;
switch(ucTemp)
{
case 0xeb:g_ucKeyNum = 8;break;
case 0xdb:g_ucKeyNum = 9;break;
case 0xbb:g_ucKeyNum = 10;break;
case 0x7b:g_ucKeyNum = 11;break;
}
while(KEYPORT != 0xfb);
}
}
KEYPORT = 0xf7;
ucTemp = KEYPORT;
if(ucTemp != 0xf7)
{
DelayMS(5);
ucTemp = KEYPORT;
if(ucTemp != 0xf7)
{
ucTemp = KEYPORT;
switch(ucTemp)
{
case 0xe7:g_ucKeyNum = 12;break;
case 0xd7:g_ucKeyNum = 13;break;
case 0xb7:g_ucKeyNum = 14;break;
case 0x77:g_ucKeyNum = 15;break;
}
while(KEYPORT != 0xf7);
?
- 《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-verilo 11次下載
- 《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-ps2ver 8次下載
- 《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-myosct 5次下載
- 《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-uartve 6次下載
- 《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-UFTtes 4次下載
- 《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-johnso 8次下載
- 《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-clkdiv 4次下載
- 《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-models 4次下載
- 《深入淺出玩轉(zhuǎn)FPGA》基于EPM240的入門實(shí)驗(yàn)-mux16 6次下載
- 深入淺出AVR單片機(jī)_精要 16次下載
- STM32深入淺出之新手篇 128次下載
- 深入淺出AVR單片機(jī)(珍藏版) 0次下載
- 深入淺出AVR單片機(jī)(珍藏版) 0次下載
- 深入淺出AVR單片機(jī)學(xué)習(xí)教材
- 深入淺出AVR單片機(jī)--從ATMega48/88/168開始
- 兩個(gè)單片機(jī)之間串口通信的例程 8088次閱讀
- 什么是51單片機(jī)最小系統(tǒng) 2802次閱讀
- #深入淺出學(xué)習(xí)eTs#(九)變紅碼?專屬二維碼生成 1493次閱讀
- 深入淺出編譯優(yōu)化選項(xiàng)(下) 1341次閱讀
- 單片機(jī)里的程序是如何運(yùn)行? 4546次閱讀
- 詳解STM32單片機(jī)和51單片機(jī)的區(qū)別 3.8w次閱讀
- 51單片機(jī)的最小系統(tǒng)應(yīng)用說明 8207次閱讀
- 51單片機(jī)引腳簡介 5.4w次閱讀
- 如何學(xué)習(xí)51單片機(jī) 5082次閱讀
- 如何對51單片機(jī)進(jìn)行外部擴(kuò)展 1.5w次閱讀
- 51單片機(jī)和AVR單片機(jī)有什么區(qū)別 1.3w次閱讀
- 新手學(xué)習(xí)單片機(jī)的首選:51單片機(jī) 8836次閱讀
- 如何深入學(xué)習(xí)單片機(jī)? 3890次閱讀
- 學(xué)習(xí)51單片機(jī)晶振這21問題搞懂了學(xué)單片機(jī)就簡單了 1.2w次閱讀
- 51單片機(jī)學(xué)習(xí)感悟與51單片機(jī)上拉電阻心得 4295次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開關(guān)電源基礎(chǔ)知識
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 651單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)大棚環(huán)境控制器仿真程序
- 1.10 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論