独立按键判断单机、长击、双击、复合击_第1页
独立按键判断单机、长击、双击、复合击_第2页
独立按键判断单机、长击、双击、复合击_第3页
独立按键判断单机、长击、双击、复合击_第4页
独立按键判断单机、长击、双击、复合击_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、自己琢磨着写了一个按键判单击、双击、长击、复合击的程序不太完善求指教#i nclude reg52.h#i nclude key.hcode uint8 Shuzhu=0x03f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;in t16 time ,nu m,flag,kiss,state,same,re peat,tabl1,tabl2;/*时函 */子文件/断码void delay()uin t16 i=10000; while(i-);/*/*主函*/void mai n()P0 =0xFF;tabl1=0;tabl2=0;/p0初始化ADD

2、R0 = 0; ADDR1 = 0; ADDR2 = 0; TM0D=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=0;P0=shuzhu0;while(1)位码/50ms中断初始化/p0断码初始化if(!Keyl n1)delay(); if(!KeyI n1) II判按键Keyln1是否按下TR0=1; while(!KeyI n1) /判按键弹起tabl1=1;rep eat=1;if(time=1)&(Keyl n2)/判长击 state+;TR0=0; time=0; same=0; num=0; re

3、p eat=0; kiss=3; flag=0;判按下次数/*/if(Keyl n2=O)delay();if(Key In 2=O)/判复合击while(!Keyl n2)tabl2=1;if(tabl1 &tabl2=1)kiss=4;/*/if( num =7) &(Keyl n2) 时间(0.51s)/1s内如果计数时间击键间隔为单击,反之为长击num=O; if(state=1) /单击判定elseTRO=O; state=O; kiss=1;/双击判定if(state=2)TRO=O;state=O;kiss=2;switch (kiss)case 1case 2case 3case 4P 0=shuzhu1;break;P 0=shuzhu2;break;P 0=shuzhu3;break; P0=shuzhu4;break;kiss=O; state=O;定时器中断函数 */*void timer。()interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256; nu m+;if(nu m=10)nu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论