文件名称: 单键连发X键连发工具.rar
文件大小: 419.26 KB
下载统计: 127231
今天下载: 1
相关网站: 未设置
文件校验: CB1CACAB9ABC3CE
安全扫描: 未扫描
正在获取下载地址...
o 关于文件解压缩等常用工具,请往
o 您可以复制本页地址(http://www.vdisk.cn/down/index/5414541)给朋友分享.
o 此文件是用户自行上传管理的,与威盘网无关.如果对文件有异议,欢迎对其.
o 如果您对该用户上传的文件感兴趣,可以
o 本页采用缓存技术,最后更新时间: 10:41:26
o 推荐:& &还没有帐号? 赶紧
用户版块帖子
发个自己写的状态机按键处理,支持连发和按键组合
在线时间664小时
M币2136专家5
参考一些文章写的状态机按键处理,支持连发和按键组合的哦!本人刚学了10多天单片机,纯初学者,欢迎各位老师批评指教/***********************************************************************************函数名称:3按键状态机算法演示(STC89C52RC@11.0592MHz)功&&&&能:用状态机实现3个按键的多个状态:单键单击、单键长按(连发)、多键组合单击、组合连发&&&&&& 功能说明:3个按键分别接一个引脚, 不是矩阵按键.&&&&&&&&本例实现的效果是:3个按键分别对应一个数码管(3个按键分别取名A、B、C).&&&&&&&&单击:按下按键后,对应的显示数字会自动+1。&&&&&&&&长按:若按住不松,则会自动连发(大约1秒3个数)。&&&&&&&&组合:同时按下AB,则相当于单击C。按住AB不松,相当于长按C。(其他组合没写代码...)版权声明:全部代码原创&&&&&&&&就用WTFPL协议发布吧!大家随便拿去玩。&&&&&&&&版本历史:&&&&第一版by
参考资料:http://www.51hei.com/bbs/dpj-29115-1.html&&&&&&&&http://zhidao.baidu.com/link?url=kC2g8x7KNlyABhbKDR1vlXbMqW3NJJSFPu2qLmdhVwwI2tIp_3z7DP3upwVzyoCdgjP7_t_ECHgAOOzGMsmGdZTuthmRWcFmUW9K7zcaFBy&&&&&&&&http://www.cnblogs.com/chenxukai/archive//1793304.html************************************************************************************/#include ®52.hinclude &intrins.hdefine uchar unsigned char#define uint unsigned int/************按键引脚定义***********/#define _KEY_PAD P3&&&& //按键 端口#define _KEY_MASK 0x07&&&& //按键 掩码(按键所接的脚取1,即:)#define _KEY_A&&&&0x06&&&&//按键 A P3^0#define _KEY_B&&&& 0x05&&&&//按键 B P3^1#define _KEY_C&&&&0x03&&&&&& //按键 C P3^2#define _KEY_AB&&&& 0x04&&&& //A+B 按下#define _KEY_AC&&0x02&&&& //A+C 按下#define _KEY_BC&&0x01&&&& //B+C 按下#define _KEY_NO&&0x07&&&& //无按键按下/*************连发相关*************/#define _KEY_AUTO_CNT&&&&&&100 //按1秒以上即开始连发,10ms计数一次#define _KEY_AUTO_SPEED 60&&&&//连发速度:1秒约3个数static char KeysAutoCnt = 0; //连发计数器/************状态机模式相关***********/#define _KEY_STATE_DOWN&&&& 0&&//按键按下状态#define _KEY_STATE_HOLD&&&& 1&&//按键确认按下状态#define _KEY_STATE_UP&&&&&&&& 2&&//按键释放状态#define _KEY_STATE_AUTO&&&& 3&&//按键释放状态static volatile char KeyStatNow = _KEY_STATE_UP; //按键初始状态static volatile char KeyHoldCnt = 0;&&&&&&&&&&&&//按键计数器static volatile char KeysNow&&&& = _KEY_NO;&&&&&&&&//当前按键的键值static bit flag_Once&&&&&&&&&&&& = 0;&&&&&&&&&&&&//单击时,是否已经触发过了/************按键处理函数声明*********/uchar Keys_Read(void);&&&&&&&&//返回端口状态值(按下的按键所在位为0)void Keys_FSM(void);&&&&&&&& //状态机算法void Keys_Process(void);&&&& //根据键值调用不同的按键处理void Keys_A();//A的处理函数void Keys_A_Auto();//A的连发处理函数void Keys_B();//B的处理函数void Keys_B_Auto();//B的连发处理函数void Keys_C();//C的处理函数void Keys_C_Auto();//C的连发处理函数void Keys_AB();//AB的处理函数void Keys_AB_Auto();//AB的连发处理函数void Keys_BC();//BC的处理函数void Keys_BC_Auto();//BC的连发处理函数void Keys_AC();//AC的处理函数void Keys_AC_Auto();//AC的连发处理函数/************以下是数码管显示相关***********/#define duan P0;#define wei&&P2;sbit weiA = P2^5;sbit weiB = P2^4;sbit weiC = P2^3;static volatile char duanA = 0;static volatile char duanB = 0;static volatile char duanC = 0;uchar d[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90}; //不带小数点uchar dd[]= {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; //带小数点void T0_init();&&//定时10ms一个中断/*******************************下面开始正式程序*****************************************//********按键处理函数**********/uchar Keys_Read(void) //返回端口状态值(按下的按键所在位为0){&& &&&&uchar KeysNow = _KEY_PAD;&&&&KeysNow = KeysNow & _KEY_MASK;&&&&return KeysN&&&& }void Keys_FSM (void) //状态机算法{&&&&uchar KeysPressing = Keys_Read();&&&&if ( KeysPressing == _KEY_NO) {//没有键被按下?&&&&&&&&KeysNow = _KEY_NO;&&&&&&&&KeyHoldCnt = 0;&&&&&&&&flag_Once = 0;&&&&&&&&KeyStatNow = _KEY_STATE_UP;&&&&&&&&&&&&}&&&&//状态机&&&&//注意:每个状态都需要加上&if...KeysNow = KeysPressing...&否则组合按键会难以见效&&&&switch (KeyStatNow)&&&&{&&&&case _KEY_STATE_UP:&&&&&&&&KeyStatNow = _KEY_STATE_DOWN;&&&&&&&&&&&&case _KEY_STATE_DOWN:&&&&&&&&if ( Keys_Read() != _KEY_NO){&&&&&&&&&&&&KeysNow = KeysP&&&&&&&&&&&&KeyStatNow = _KEY_STATE_HOLD;&&&&&&&&}&&&&&&&&else{&&&&&&&&&&&&KeyStatNow = _KEY_STATE_UP;&&&&&&&&}&&&&&&&&KeyHoldCnt = 0;&&&&&&&&&&&&case _KEY_STATE_HOLD:&&&&&&&&if ( Keys_Read() != _KEY_NO){&&&&&&&&&&&&KeysNow = KeysP&&&&&&&&}&&&&&&&&else{&&&&&&&&&&&&KeyStatNow = _KEY_STATE_UP;&&&&&&&&}&&&&&&&&//如果按键保持按下,则开始计数,计到连发值为止,而后不再增加&&&&&&&&KeyHoldCnt++;&&&&&&&&if (KeyHoldCnt & _KEY_AUTO_CNT) {&&&&&&&&&&&&KeyHoldCnt = _KEY_AUTO_CNT;&&&&&&&&&&&&KeyStatNow = _KEY_STATE_AUTO;&&&&&&&&}&&&&&&&&&&&&case _KEY_STATE_AUTO:&&&&&&&&&&&&}}void Keys_Process(void) //根据键值调用不同的按键处理{&&&&&&&&if (KeyStatNow ==_KEY_STATE_HOLD){ //单键、组合处理&&&&&&&&switch (KeysNow)&&&&&&&&{&&&&&&&&case _KEY_A:&&&&&&&&&&&&Keys_A();&&&&&&&&&&&&&&&&&&&&case _KEY_B:&&&&&&&&&&&&Keys_B();&&&&&&&&&&&&&&&&&&&&case _KEY_C:&&&&&&&&&&&&Keys_C();&&&&&&&&&&&&&&&&&&&&case _KEY_AB:&&&&&&&&&&&&Keys_AB();&&&&&&&&&&&&&&&&&&&&case _KEY_BC:&&&&&&&&&&&&Keys_BC();&&&&&&&&&&&&&&&&&&&&case _KEY_AC:&&&&&&&&&&&&Keys_AC();&&&&&&&&&&&&&&&&&&&&}&&&&}&&&&else&&&&{ //下面是连发(包括组合连发)处理&&&&&&&&if (KeyStatNow ==_KEY_STATE_AUTO){&&&&&&&&&&&&P1 = KeysN&&&&//显示当前连发的按键键值(我的开发板P1上接有一排灯).这行可以删掉&&&&&&&&&&&&switch (KeysNow)&&&&&&&&&&&&{&&&&&&&&&&&&case _KEY_A:&&&&&&&&&&&&&&&&Keys_A_Auto();&&&&&&&&&&&&&&&&&&&&&&&&&&&&case _KEY_B:&&&&&&&&&&&&&&&&Keys_B_Auto();&&&&&&&&&&&&&&&&&&&&&&&&&&&&case _KEY_C:&&&&&&&&&&&&&&&&Keys_C_Auto();&&&&&&&&&&&&&&&&&&&&&&&&&&&&case _KEY_AB:&&&&&&&&&&&&&&&&Keys_AB_Auto();&&&&&&&&&&&&&&&&&&&&&&&&&&&&case _KEY_BC:&&&&&&&&&&&&&&&&Keys_BC_Auto();&&&&&&&&&&&&&&&&&&&&&&&&&&&&case _KEY_AC:&&&&&&&&&&&&&&&&Keys_AC_Auto();&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&}&&&&}}void Keys_A()//A的处理函数{&&&&if (!flag_Once){&&&&&&&&duanA++;&&&&&&&&duanA %= sizeof(dd);&&&&&&&&flag_Once = 1;&&&&&&&&&&&&}}void Keys_A_Auto()//A的连发处理函数{&&&&KeysAutoCnt++;&&&&KeysAutoCnt %= _KEY_AUTO_SPEED;&&&&if (KeysAutoCnt == 0){&&&&&&&&duanA++;&&&&&&&&duanA %= sizeof(dd);&&&&}}void Keys_B()//B的处理函数{&&&&if (!flag_Once){&&&&&&&&duanB++;&&&&&&&&duanB %= sizeof(dd);&&&&&&&&flag_Once = 1;&&&&&&&&&&&&}}void Keys_B_Auto()//B的连发处理函数{&&&&KeysAutoCnt++;&&&&KeysAutoCnt %= _KEY_AUTO_SPEED;&&&&if (KeysAutoCnt == 0){&&&&&&&&duanB++;&&&&&&&&duanB %= sizeof(dd);&&&&}}void Keys_C()//C的处理函数{&&&&if (!flag_Once){&&&&&&&&duanC++;&&&&&&&&duanC %= sizeof(dd);&&&&&&&&flag_Once = 1;&&&&&&&&&&&&}}void Keys_C_Auto()//C的连发处理函数{&&&&KeysAutoCnt++;&&&&KeysAutoCnt %= _KEY_AUTO_SPEED;&&&&if (KeysAutoCnt == 0){&&&&&&&&duanC++;&&&&&&&&duanC %= sizeof(dd);&&&&}}void Keys_AB()//AB的处理函数{&&&&Keys_C();}void Keys_AB_Auto()//AB的连发处理函数{&&&&Keys_C_Auto();}void Keys_BC()//BC的处理函数{&&&&//不想写了...}void Keys_BC_Auto()//BC的连发处理函数{&&&&//不想写了...}void Keys_AC()//AC的处理函数{&&&&//不想写了...}void Keys_AC_Auto()//AC的连发处理函数{&&&&//不想写了...}////////////按键处理函数结束//////////////////////主程序开始char weiNow = 0;void LED_Display(){&&&&P2 = 0xFF;&&&&switch (weiNow){&&&&case 0:&&&&&&&&duanA %= sizeof(dd);&&&&&&&&P0 = dd[duanA];&&&&&&&&weiA = 0;&&&&&&&&&&&&case 1:&&&&&&&&duanB %= sizeof(dd);&&&&&&&&P0 = dd[duanB];&&&&&&&&weiB = 0;&&&&&&&&&&&&case 2:&&&&&&&&duanC %= sizeof(dd);&&&&&&&&P0 = dd[duanC];&&&&&&&&weiC = 0;&&&&&&&&&&&&}&&&&weiNow++;&&&&weiNow %= 3;}void main(){&&&&T0_init();&&&&while (1)&&&&{&&&&&&&&if (KeyStatNow == _KEY_STATE_UP){&&&&&&&&&&&&PCON = 0x01; //进入空闲模式,省电^-^&&&&&&&&&&&&_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();&&&&&&&&&&&&_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();&&&&&&&&&&&&_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();&&&&&&&&}&&&&&&&&else{&&&&&&&&&&&&_nop_();&&&&&&&&}&&&&}}void T0_init()&&//定时10ms一个中断{&&&&TMOD=0X01;&&&&TH0=()/256;&&&&TL0=()%256;&&&&EA=1;&&&&ET0=1;&&&&TR0=1;}void T0_OnTimer() interrupt 1{&&&&TMOD=0X01;&&&&TH0=()/256;&&&&TL0=()%256;&&&&Keys_FSM();&&&&Keys_Process(); //注意:这句只能写在这里,不能写在main里,否则数字跳动过快&&&&LED_Display();}
有坛友在问原理,其实很简单:1、在定时器中断的时候读取目前的按键状态,一共4个状态依次变化:[size=5]#define _KEY_STATE_DOWN&&&& 0&&//按键按下状态[/size][size=5]#define _KEY_STATE_HOLD&&&& 1&&//按键确认按下状态[/size][size=5]#define _KEY_STATE_UP&&&&&&&& 2&&//按键释放状态[/size][size=5]#define _KEY_STATE_AUTO&&&& 3&&//按键释放状态[/size]任何一个状态如果进入不到下一个状态(比如按键松开了),如果要返回,是直接返回到_KEY_STATE_UP以上是Keys_FSM函数的功能。2、在中断处理函数可以看到还有一个Keys_Process函数,它的功能是根据目前的_KEY_STATE执行相应的动作,比如单击、连发等等。就是这么简单,2个函数就搞定了。至于按键组合,那就更简单了,直接读取P3(按键端口)的数值,按下的按键对应的位为0,有多少个0就是按下了多少个按键。LED_Display函数是纯粹为了演示显示数字的函数而已,并非状态机算法必须的部分。[ 此帖被asklaibao在 23:35重新编辑 ]
UID:1298847
在线时间1999小时
M币1349专家25
这个需要用行动来支持
UID:841882
在线时间971小时
M币1951专家2
代码有点长,能否简单说一下过程的原理
UID:1890851
在线时间4972小时
M币30957专家0
原創內容謝謝分享
UID:868177
在线时间100小时
M币460专家0
楼主真吊,学单片机才10天就能写出这么长的单片机程序,还是状态机的单片机程序
UID:882300
在线时间9347小时
M币213290专家400
没看明白,请楼主慢慢解释。
在线时间664小时
M币2136专家5
回 xing122005 的帖子
:代码有点长,能否简单说一下过程的原理 ( 11:32) 已经补上说明了
UID:1484533
在线时间196小时
M币18专家0
新颖的按键处理思路,不错
UID:470362
在线时间127小时
不错的思路,支持下
UID:1116109
在线时间215小时
M币399专家1
很不错,学习学习
访问内容超出本站范围,不能确定是否安全
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
您目前还是游客,请
&回复后跳转到最后一页
Code by , Time now is:08-17 10:41, Total 0.503018(s) query 12,
Gzip enabled& | | | | | |
热门搜索:
您所在的位置: >
> DNF连发工具 V1.0.47.6 绿色版
DNF连发工具 V1.0.47.6 绿色版 DNF游戏连发辅助工具
软件大小:277.3 KB
软件类型:国产软件
软件分类: /
软件语言:简体中文
软件授权:免费软件
更新时间: 19:54:32
支持系统:Vista/winXP/win7/win8
官网链接:
相关合集:
热门专题:
手机扫一扫快捷方便下载
本类应用推荐
一款非常有趣的键盘音效软件
一款非常奇妙的键盘工具
一款电竞鼠标js-x10鼠标的驱动程序
一款实用的适用于多种游戏的连发按键
一款小米旗下的游戏鼠标驱动程序
一款免费的鼠标自动点击工具
一款模拟鼠标键盘动作的软件
电脑免费版
嘉乐工作室开发的一款不错的键盘鼠标录制软件
电脑免费版
应用软件排行榜
应用其它 |
一款可以***到谷歌浏览器上使用的chrome视频广告终结者插件
桌面工具 |
一款便捷的桌面语音小工具
办公软件 |
一款可以同时替换多个EXCEL文档到相同或不同内容的办公辅助工具
日历时钟 |
笨笨Q万年历是一款很小巧的日历软件
日历时钟 |
365日历集万年历、日程管理、Google日历同步、日程分享、桌面美化等众多功能为一体
日历时钟 |
Yesss日历记事系统是一款桌面记事软件
应用其它 |
移动设备检测工具是一款可以检测U盘、TF卡资料的软件
应用其它 |
Codesoft 10是一款强大的条码打印软件
DNF连发工具是DNF游戏连发辅助工具,设置要连按的按键,按住不放即可让你PK更顺手,刷图更快,更自然
1、操作简单,使用方便,打开程序,设置按键频率,一般为20,再设置好要连按的按键,如“X”,确定即可
2、可自由控制开关,F12想关就关
3、绿色软件,无插件、无广告、无毒,可放心使用
4、永久免费使用,无需升级
DNF连发工具是你玩DNF,走上PK至尊必不可少的神器
软件基本内容
dnf连发分为单键连发和多键连发,单键连发有:x连发,h键连发。多键连发有:mk连发,set ahk连发,百宝箱连发x。dnf单键连发使用起来比较简单,只需要根据自己的习惯设置攻击键和连发时间间隔就可以了。
1,dnf连发x单键&
最早的连发工具是x键连发,由dnf200年公测后开发的辅助工具,多少玩家喜爱的东东,当然我也是dnf爱好者,从dnf内侧玩到现在,基本上市面上开发的dnf连发工具都使用过,还是觉得老版的dnf连发x单键连发好用。
2,mk键dnf连发&
还记得老版的mk连发的玩家有木有?也就是x键连发,是老版的dnf连发x单键演变过来的升级版,更加的稳定,游戏版本不断更新,但是仍然好用,苦苦寻找无毒的mk连发的玩家有福了。
3,set ahk连发
ahk连发是由编程高手离不开电脑制作的任意键连发,是带绿色h标志的连发工具,可以生成单键连发,也可以生成多键连发,该作者也是一位dnf爱好者,自己开发连发工具分享给大家一起使用,虽然该作者由于家庭原因已经停止了set ahk连发程序的开发和更新,但是这样的技术性人才和他的分享精神我们都应该支持他,顶起。
4,百宝箱dnf多键连发
dnf多键连发故名思议就是让你在游戏中按住多个键实现连续快速按这个键的效果。
百宝箱dnf多键连发7.0版本新增鼠标连点,优化连发模式,让玩家玩游戏更轻松[1];该版本经过处理不影响打字,所以打字是不会连发的,只有刷图和PK才会连发。自动喊话功能中,重复喊话支持后台,循环喊话只能前台喊 ;
1、dnf连发只有在副本和pk场使用才有效果,在城镇或者聊天工具窗口起不到任何的作用,玩家在游戏刷图和pk的时候开启连发这个软件,按住自己在键盘上面设置的连发键字母,等于不停的快速敲击键盘的XXXXXXXX。
2、玩家在做任何键和数值的修改,每次都要记得按一下保存按钮,否则设置无效。
3、某些技能有冷却时(cd)的当然不能连发。
4、vista和windows7也能使用连发,这个在这篇文章中有详细的介绍。
5、很多玩家在打开dnf连发工具的时候,电脑一直提示工具要升级,这个是由于您的电脑系统时间与当前的时间不对应造成的,请玩家检查下您电脑屏幕右下角显示的时间是不是当前时间,不会的话请玩家修改。
下载:2770491
下载:188251
下载:109370
下载:87845
下载:63038
下载:31563
,软件?软件下载后?飞翔小编十二分诚意等待着您的投诉与建议
APK文件怎么打开,下载APK文件如何***到手机?推荐使用
软件无法下载
下载后无法使用
与描述不一致
手机招聘软件排
类似内涵段子的
2018最新***神
答题赚钱APP大全
类似恋与制作人
为您推荐:招聘求职专题合集智联招聘专题合集招才猫直聘安卓版是一款由58同城推出的商用招人应用软件。帮助商家快速招到需要的人才,可以同时和30个求职者在线沟通,方便快捷,效率高。感...
你可能还喜欢
52z飞翔网小编在这里整理带来了【迅雷vip账号共享合集】,提供最新迅雷vip账号共享、迅雷vip账号共享永久免费下载地址。这里的软件包含迅雷VIP帐号近百个,并且每周添加5个新帐号,供你永久免费使用!
52z飞翔网小编在这为大家整理带来了【夜中色影院APP合集】,提供夜中色影院、夜中色影院播放器下载、夜中色影院手机版、夜中色影院福利版等等。在这里大家可一键搜索观看喜爱的任何影视剧,想看什么看什么,方便实用,是大家的追剧看片利器。
52z飞翔网小编在这为大家整理带来了【全民影院APP合集】,提供全民影院官网、全民影院在线观看、全民影院app下载、全民影院手机版。这是拥有众多资源聚合搜索的播放器软件!观看高清视频。一切以服务为宗旨,支持高清无码播放,每日更新,用户可以在线轻松追剧,享受观影乐趣。
52z飞翔网小编整理带来了【夏目的美丽日记·游戏合集】,提供夏目的美丽日记下载地址、夏目的美丽日记破解版、夏目的美丽日记修改器、夏目的美丽日记助手等等。年度暖心恋爱换装手游《夏目的美丽日记》暖心来袭!独创恋爱约会模式,甜蜜上演暖男养成记;温馨互动,唤醒您的青涩纯真回忆。
52z飞翔网小编在这为大家整理带来的是【快瞄影院APP合集】,提供快瞄影院官网、快瞄影院在线观看、快瞄影院手机版、快瞄影院电脑版等等。这里日韩欧美影视资源,在线播放,每天更新,并且还支持对全球影视资源的在线搜索及在线播放哦!
52z飞翔网小编在这为到来的七夕节整理了【七夕表情包合集】,提供金馆长/蘑菇头/熊本熊/抖音七夕表情包、七夕表情包动态图片合集。七夕情人节到来,一年一度的表白和虐狗大会就要开张了,现在已经进入了预热阶段,该准备就准备一下吧。
52z飞翔网小编整理带来了【御剑传说外传·游戏合集】,提供御剑传说外传手游下载、御剑传说外传手游官网、御剑传说外传手游安卓版/苹果版。剑传说外传是一款画面唯美的仙侠角色扮演类,梦幻的场景,独特的仙侠玩法、众多不同丰富设计,热血激情的帮派会战,激情不断的争霸,让你享受全新的仙侠乐趣!
52z飞翔网小编整理带来了【半岛铁盒直播APP合集】,提供半岛铁盒直播app、半岛铁盒直播盒子、半岛铁盒直播破解版、半岛铁盒直播下载网址。这里包含数十各平台的美女主播,海量的精彩节目免费观看。你可以无需注册账号密码,就可以轻松进入房间。感兴趣的小伙伴快来下载吧!
52z飞翔网小编为大家整理带来了【猪蜜蜜APP合集】,提供猪蜜蜜视频、猪蜜蜜官网、猪蜜蜜在线观看、猪蜜蜜app、猪蜜蜜影院大全。这是一款手机必备的掌上视频在线观看播放软件。包括海量的电视剧电影,网剧综艺,动漫音乐,体育新闻以及海内外各种类型的影视资源;而且画质高清,播放流畅,无广告推送!
进入手机版