當(dāng)前位置:首頁 > 電源 > 電源
[導(dǎo)讀]#define ubyte unsigned char #define uint unsigned int #define ulong unsigned long ubyte kbCode; // 按鍵編碼紀(jì)錄 ubyte kbStatus; // 鍵盤當(dāng)前狀態(tài),可以理

#define ubyte unsigned char
#define uint unsigned int
#define ulong unsigned long

ubyte kbCode; // 按鍵編碼紀(jì)錄
ubyte kbStatus; // 鍵盤當(dāng)前狀態(tài),可以理解為菜單層次

// 按鍵的四種不同工作狀態(tài)對應(yīng)的函數(shù)指針對照表,每三字節(jié)對應(yīng)一個按鍵
// 每一項(xiàng)包含三個字節(jié),分別代表按鍵碼,鍵盤狀態(tài),對應(yīng)處理程序編號
// 本表對應(yīng)于日常操作,不是修改狀態(tài)
ubyte code TAB0[46]={
0x11,0x00,0x01, // 按鍵’1’ func1
0x12,0x00,0x01, // 按鍵’2’ func1
0x14,0x00,0x01, // 按鍵’3’ func1
0x1a,0x00,0x01, // 按鍵’4’ func1
0x2a,0x00,0x01, // 按鍵’5’ func1
0x4a,0x00,0x01, // 按鍵’6’ func1
0x01,0x00,0x01, // 按鍵’7’ func1
0x02,0x00,0x01, // 按鍵’8’ func1
0x04,0x00,0x01, // 按鍵’9’ func1
0x10,0x00,0x01, // 按鍵’0’ func1
0x20,0x00,0x01, // 按鍵’.’ func1
0x08,0x00,0x02, // 按鍵’Clear’ func2
0x18,0x00,0x03, // 按鍵’U/D’ func3
0x8a,0x01,0x04, // 按鍵’shift’ func4
0x40,0x02,0x05, // 按鍵’last’ func5
0x00}; // 本表結(jié)束標(biāo)志

ubyte code TAB1[40]={
0x12,0x03,0x06, // 按鍵’2’ func6
0x14,0x03,0x07, // 按鍵’3’ func7
0x2a,0x03,0x08, // 按鍵’5’ func8
0x4a,0x03,0x09, // 按鍵’6’ func9
0x01,0x03,0x12, // 按鍵’7’ func18
0x8a,0x03,0x14, // 按鍵’shift’ func20
0x11,0x01,0x0a, // 按鍵’1’ func10
0x1a,0x01,0x0b, // 按鍵’4’ func11
0x04,0x01,0x0c, // 按鍵’9’ func12
0x10,0x01,0x0d, // 按鍵’0’ func13
0x80,0x01,0x0e, // 按鍵’Enter’ func14
0x08,0x00,0x02, // 按鍵’Clear’ func2
0x20,0x03,0x13, // 按鍵’.’ func19
0x00}; // 本表結(jié)束標(biāo)志

ubyte code TAB2[7]={
0x40,0x02,0x0f, // 按鍵’last’ func15
0x08,0x00,0x02, // 按鍵’Clear’ func2
0x00}; // 本表結(jié)束標(biāo)志

ubyte code TAB3[40]={
0x11,0x03,0x10, // 按鍵’1’ func16
0x12,0x03,0x10, // 按鍵’2’ func16
0x14,0x03,0x10, // 按鍵’3’ func16
0x1a,0x03,0x10, // 按鍵’4’ func16
0x2a,0x03,0x10, // 按鍵’5’ func16
0x4a,0x03,0x10, // 按鍵’6’ func16
0x01,0x03,0x10, // 按鍵’7’ func16
0x02,0x03,0x10, // 按鍵’8’ func16
0x04,0x03,0x10, // 按鍵’9’ func16
0x10,0x03,0x10, // 按鍵’0’ func16
0x20,0x03,0x10, // 按鍵’.’ func16
0x08,0x00,0x02, // 按鍵’clear’ func2
0x80,0x01,0x11, // 按鍵’Enter’ func17
0x00}; // 本表結(jié)束標(biāo)志

ubyte code *TAB[4]={TAB0,TAB1,TAB2,TAB3}; // 總指針表

// 指針函數(shù)列表
code void(code *KeyProcTab[])()={
NoKey, /*0# (00H)#*/
func1, /*1# (01H)#*/
func2, /*2# (02H)#*/
func3, /*3# (03H)#*/
func4, /*4# (04H)#*/
func5, /*5# (05H)#*/
func6, /*6# (06H)#*/
func7, /*7# (07H)#*/
func8, /*8# (08H)#*/
func9, /*9# (09H)#*/
func10, /*10# (0AH)#*/
func11, /*11# (0BH)#*/
func12, /*12# (0CH)#*/
func13, /*13# (0DH)#*/
func14, /*14# (0EH)#*/
func15, /*15# (0FH)#*/
func16, /*16# (10H)#*/
func17, /*17# (11H)#*/
func18, /*18# (12H)#*/
func19, /*19# (13H)#*/
func20 /*20# (14H)#*/
};

void NoKey()
{
return;
}

void func0()
{
;
}
void func1()
{
;
}
....................
void func20()
{
;
}


//////////////////////////////////////////////////////////////////////
// 鍵盤監(jiān)控,根據(jù)當(dāng)前狀態(tài)特征指向不同的指針表,并調(diào)用相應(yīng)的函數(shù) //
//////////////////////////////////////////////////////////////////////
void mon(ubyte key)
{
ubyte code *data pTab;
kbCode=key;
pTab=*(TAB+kbStatus); // 根據(jù)當(dāng)前狀態(tài)特征指向分指針表
while(*pTab != key && *pTab != 0) // 按照按鍵代碼查表
{
pTab += 3; // 查表
}
if(*pTab!=0){
pTab++;
kbStatus=*pTab; // 取狀態(tài)特征字節(jié)
pTab++; // 指向執(zhí)行函數(shù)
(*KeyProcTab[*pTab])(); // 指針函數(shù)調(diào)用
}
}

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉