键盘C语言程序文档格式.docx

上传人:b****6 文档编号:17524125 上传时间:2022-12-07 格式:DOCX 页数:10 大小:19.53KB
下载 相关 举报
键盘C语言程序文档格式.docx_第1页
第1页 / 共10页
键盘C语言程序文档格式.docx_第2页
第2页 / 共10页
键盘C语言程序文档格式.docx_第3页
第3页 / 共10页
键盘C语言程序文档格式.docx_第4页
第4页 / 共10页
键盘C语言程序文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

键盘C语言程序文档格式.docx

《键盘C语言程序文档格式.docx》由会员分享,可在线阅读,更多相关《键盘C语言程序文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

键盘C语言程序文档格式.docx

// 

PieCtrlRegs.PIEACK.all=0xFFFF;

//PIEACK_GROUP1;

PieCtrlRegs.PIEACK.bit.ACK7=1;

EDIS;

EINT;

//EnableGlobalinterruptINTM

ERTM;

//EnableGlobalrealtimeinterruptDBGM

for(;

;

{

asm("

nop"

//Resetthewatchdogcounter

KickDog();

}

}

keyboard.h"

KeyboardObj:

:

KeyboardObj(void)

Init();

voidKeyboardObj:

Init(void)

for(inti=0;

i<

sizeof(PressCount);

i++)

PressCount[i]=0;

Count=0;

Exec(void)

typedefvoid(KeyboardObj:

*FunctionPtr)(void);

//函数指针

staticconstFunctionPtrKeyboardCommandTab[3][KeyboardNumbers]=

&

Key01,

Key02,

Key03,

Key04,

Key05,

Key06,

Key07,

Key08

},//放键表

Key11,

Key12,

Key13,

Key14,

Key15,

Key16,

Key17,

Key18

},//短压表

Key21,

Key22,

Key23,

Key24,

Key25,

Key26,

Key27,

Key28

}//长压表

};

unsignedcharKeyCount;

Count%=KeyboardNumbers;

KeyCount=PressCount[Count];

//取压键次数

if(Scan()==Count+1)//有键压下

KeyCount++;

//压键计数 

if(KeyCount>

=KeyboardPushTimes)

if(KeyCount==KeyboardPushTimes)//短压键

System.BeepOn();

(:

Keyboard.*KeyboardCommandTab[1][Count])();

if(KeyCount==KeyboardLongPushTimes)//长压键

Keyboard.*KeyboardCommandTab[2][Count])();

KeyCount=KeyboardPushTimes;

else//无键压下

0)//以前有键压下

KeyboardPushTimes) 

else

KeyCount--;

//放键计数

if(KeyCount==0)//键释放

System.BeepOff();

Keyboard.*KeyboardCommandTab[0][Count])();

KeyCount=0;

PressCount[Count]=KeyCount;

Count++;

unsignedcharKeyboardObj:

Scan(void)

volatileunsignedcharKeyVal=0;

KeyVal=LedKeyRegs;

switch(Count)

case0:

if(!

(KeyVal&

ConstKEY1))

KeyVal=Count+1;

break;

case1:

ConstKEY2))

case2:

ConstKEY3))

case3:

ConstKEY4))

case4:

ConstKEY5))

case5:

ConstKEY6))

case6:

ConstKEY7))

case7:

ConstKEY8))

returnKeyVal;

//KEY1放键事件处理

Key01(void)

KEY1键释放事件"

//KEY2放键事件处理

Key02(void)

KEY2键释放事件"

//KEY3放键事件处理

Key03(void)

KEY3键释放事件"

//KEY4放键事件处理

Key04(void)

KEY4键释放事件"

//KEY5放键事件处理

Key05(void)

KEY5键释放事件"

//KEY6放键事件处理

Key06(void)

KEY6键释放事件"

//KEY7放键事件处理

Key07(void)

KEY7键释放事件"

//KEY8放键事件处理

Key08(void)

KEY8键释放事件"

//KEY1压键事件处理

Key11(void)

//特别注意菜农的组合键用法,可以看出"

零耗时键盘"

的非典之处

if(PressCount[7]>

=KeyboardPushTimes)//KEY8已先压下

Key8_Key1();

//执行KEY8_KEY1组合键事件

KEY1键单击事件"

//KEY2压键事件处理

Key12(void)

KEY2键单击事件"

//KEY3压键事件处理

Key13(void)

KEY3键单击事件"

//KEY4压键事件处理

Key14(void)

KEY4键单击事件"

//KEY5压键事件处理

Key15(void)

KEY5键单击事件"

//KEY6压键事件处理

Key16(void)

KEY6键单击事件"

//KEY7压键事件处理

Key17(void)

KEY7键单击事件"

//KEY8压键事件处理

Key18(void)

if(PressCount[0]>

=KeyboardPushTimes)//KEY1已先压下

Key1_Key8();

//执行KEY1_KEY8组合键事件

KEY8键单击事件"

//KEY1长压键事件处理

Key21(void)

KEY1键长压事件"

//KEY2长压键事件处理

Key22(void)

KEY2键长压事件"

//KEY3长压键事件处理

Key23(void)

KEY3键长压事件"

//KEY4长压键事件处理

Key24(void)

KEY4键长压事件"

//KEY5长压键事件处理

Key25(void)

KEY5键长压事件"

//KEY6长压键事件处理

Key26(void)

KEY6键长压事件"

//KEY7长压键事件处理

Key27(void)

KEY7键长压事件"

//KEY8长压键事件处理

Key28(void)

KEY8键长压事件"

//KEY1-KEY8组合键事件处理

Key1_Key8(void)

KEY1KEY8键事件"

//KEY8-KEY1组合键事件处理

Key8_Key1(void)

KEY8KEY1键事件"

类别:

Dsp|

|添加到搜藏|分享到i贴吧|浏览(247)|评论 

(0)

上一篇:

DSP281x_Adc.h修改以便访问 

下一篇:

DSP2812串口波特率正确和良好的...

最近读者:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1