日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]/* Module :Kbdmenu.cDate:------Usage:P10~P12 use to DownKey,UpKey,CRKey*/#i nclude#i nclude#define SIZE_OF_KEYBD_MENU 20 //菜單長度uchar KeyFuncIndex=0;//uchar KeyFuncIndexNew=0;void (*KeyFuncPtr)()

/* Module :Kbdmenu.c
Date:------
Usage:P10~P12 use to DownKey,UpKey,CRKey
*/

#i nclude
#i nclude

#define SIZE_OF_KEYBD_MENU 20 //菜單長度


uchar KeyFuncIndex=0;
//uchar KeyFuncIndexNew=0;

void (*KeyFuncPtr)(); //按鍵功能指針

typedef struct
{
uchar KeyStateIndex; //當前狀態(tài)索引號
uchar KeyDnState; //按下"向下"鍵時轉(zhuǎn)向的狀態(tài)索引號
uchar KeyUpState; //按下"向上"鍵時轉(zhuǎn)向的狀態(tài)索引號
uchar KeyCrState; //按下"回車"鍵時轉(zhuǎn)向的狀態(tài)索引號
void (*CurrentOperate)(); //當前狀態(tài)應該執(zhí)行的功能操作
} KbdTabStruct;

KbdTabStruct code KeyTab[SIZE_OF_KEYBD_MENU]=
{
{ 0, 0, 0, 1,(*DummyJob)},//頂層

{ 1, 2, 0, 3,(*DspUserInfo)},//第二層
{ 2, 1, 1, 9,(*DspServiceInfo)}, //第二層

{ 3, 0, 0, 1,(*DspVoltInfo)},//第三層>>DspUserInfo的展開
{ 4, 0, 0, 1,(*DspCurrInfo)},//第三層>>DspUserInfo的展開
{ 5, 0, 0, 1,(*DspFreqInfo)},//第三層>>DspUserInfo的展開
{ 6, 0, 0, 1,(*DspCableInfo)},//第三層>>DspUserInfo的展開
...........
{ 9, 0, 0, 1,(*DspSetVoltLevel)}//第三層>>DspServiceInfo的展

..........
};

void GetKeyInput(void)
{
uchar KeyValue;
KeyValue=P1&0x07; //去掉高5bit
delay(50000);
switch(KeyValue)
{
case 1: //回車鍵,找出新的菜單狀態(tài)編號
{
KeyFuncIndex=KeyTab[KeyFuncIndex].KeyCrState;
break;
}
case 2: //向上鍵,找出新的菜單狀態(tài)編號
{
KeyFuncIndex=KeyTab[KeyFuncIndex].KeyUpState;
break;
}
case 4: //向下鍵,找出新的菜單狀態(tài)編號
{
KeyFuncIndex=KeyTab[KeyFuncIndex].KeyDnState;
break;
}
default: //按鍵錯誤的處理
......
break;
}
KeyFuncPtr=KeyTab[KeyFuncIndex].CurrentOperate;
(*KeyFuncPtr)();//執(zhí)行當前按鍵的操作
}
//其中KeyTab的設計頗費盡心機


本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

單片機內(nèi)部有很多的特殊功能寄存器,每個寄存器在單片機內(nèi)部都分配有唯一的地址,一般我們會根據(jù)寄存器功能的不同給寄存器賦予各自的名稱,當我們需要在程序中操作這些特殊功能寄存器時,必須要在程序的最前面將這些名稱加以聲明,聲明的...

關鍵字: C51 數(shù)據(jù)類型 擴充定義

數(shù)據(jù)元(Data Element),也稱為數(shù)據(jù)元素,是用一組屬性描述其定義、標識、表示和允許值的數(shù)據(jù)單元,在一定語境下,通常用于構(gòu)建一個語義正確、獨立且無歧義的特定概念語義的信息單元。數(shù)據(jù)元可以理解為數(shù)據(jù)的基本單元,將若...

關鍵字: C51 數(shù)據(jù)類型

▼點擊下方名片,關注公眾號▼歡迎關注【玩轉(zhuǎn)單片機與嵌入式】公眾號,回復關鍵字獲取更多免費資料?;貜汀炯尤骸?,限時免費進入知識共享群;回復【3D封裝庫】,常用元器件的3D封裝庫;回復【電容】,獲取電容、元器件選型相關的內(nèi)容...

關鍵字: C51 MDK RealView

在Keil C51軟件中51單片機的中斷服務和外設驅(qū)動程序的開發(fā)

關鍵字: keil5 編譯 C51

Intel公司1980年推出了MCS-51系列單片機:集成 8位CPU、4K字節(jié)ROM、128字節(jié)RAM、4個8位并口、1個全雙工串行口、2個16位定時/計數(shù)器。尋址范圍64K,并有控制功能較強的布爾處理器。 80C5...

關鍵字: C51 KEIL 編程

c上標3下標5怎么算用計算機,c上標3下標5怎么算

關鍵字: C51 KEIL

▼點擊下方名片,關注公眾號▼大家好,很高興和各位一起分享我的第16篇原創(chuàng)文章,喜歡和支持我的工程師,一定記得給我點贊、收藏、分享。加微信[xyzn3333]與作者溝通交流,免費獲取更多單片機與嵌入式的海量電子資料。很多初...

關鍵字: 51單片機 C51

常看見初學者要求使用_at_,這是一種謬誤,把C當作ASM看待了。在C中變量的定位是編譯器的事情,初學者只要定義變量和變量的作 用域,編譯器就把一個固定地址給這個變量。

關鍵字: C51 單片機 誤區(qū) 注意事項

簡介:編程首要是要考慮程序的可行性,然后是可讀性、可移植性、健壯性以及可測試性。這是總則。但是很多人忽略了可讀性、可移植性和健壯性(可調(diào)試的方法可能歌不相同),這是不對的。

關鍵字: C51 編程規(guī)范 文件配置

如果你用 Keil C51 進行編譯,記住一點:它不區(qū)分大小寫!!!臥槽,今天編程序那個調(diào)錯啊,就因為一個數(shù)組名和一個變量名完全一樣,只是大小寫不一樣罷了,標準 C 我怎么記得這樣可以啊……上網(wǎng)一查,臥槽,Keil C5...

關鍵字: C51 單片機 編程要點
關閉