为区分出0.5秒和2秒的键值返回 总是分不出时间的长短 不知道有那出现问题, 各位高手请教 或给个参考程序也可以. 小弟初学PIC C语言程序, 谢谢大家能来帮我入门..... 感激
UCHAR Key_Scan() { UCHAR i=0; UCHAR aKey_Data=0 , aKey_Data1=0; UCHAR aTime_Cnt;
Delay(40); // 50msec Delay aKey_Data = (PORTC & 0x0F);
for(i=0; i<220; i++) { aTime_Cnt++; Delay(3);// 5msec if((PORTC&0x0F)) aKey_Data1 = (PORTC&0x0F); if((aKey_Data1 != 0x01)&&(aKey_Data1 != 0x02)&&(aKey_Data1 != 0x04)&&(aKey_Data1 != 0x08)) { aKey_Data = aKey_Data1; } if((PORTC&0x0F)==0x00) break; }
if(aTime_Cnt < 5){ return(0); }else if( (aTime_Cnt>5)&&(aTime_Cnt < 160)){ gKey_Data = aKey_Data; return(1); }else if( aTime_Cnt > 190){ gKey_Data = (aKey_Data|0x10); return(1); }else return(0);
} |