//按键扫描驱动程序unsigned char key,key_h,kpush;unsigned int key_l;//按键连接到p1.0、p1.1、p1.2void int_t0(void) interrupt 1 { unsigned char dd,i; TL0=TL0+30;TH0=0xfb; //800 /* 按键判别 */ if ((P1&0x7)==0x7) { if ((key_l>30)&&(key_l<800)&&(key_h>30)) { //释放按键,如果之前按键时间少于1秒,读入键值 key=kpush; }// if ((++key_h)>200) key_h=200; key_l=0; if (key>=0x80) key=0; //如果之前的按键为长按1秒,清除键值 } else { kpush=P1&0x7; key_l++; if ((key_l>800)&&(key_h>30)) { //如果按键超过1秒,键值加0x80标志长按键 key=kpush|0x80; key_h=0; key_l=0; } }}void main(void) { TMOD=0x1;TR0=1;ET0=1;EA=1; while (1) { while (!key) {} switch (key) { case 1:break; case 2:break; } }}
导读:目前正在解读《扫描按键驱动C源码例子》的相关信息,《扫描按键驱动C源码例子》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《扫描按键驱动C源码例子》的详细说明。
简介:在这里提供给大家一个关于扫描按键驱动C源码例子。
提醒:《扫描按键驱动C源码例子》最后刷新时间 2024-03-14 01:02:34,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《扫描按键驱动C源码例子》该内容的真实性请自行鉴别。