打印

PIC16F的按键时间判断程序

[复制链接]
2366|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lkduo|  楼主 | 2009-4-19 17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为区分出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);

}
沙发
lkduo|  楼主 | 2009-4-19 17:41 | 只看该作者

附上按键部分电路

附上按键部分电路

使用特权

评论回复
板凳
yewuyi| | 2009-4-19 17:58 | 只看该作者

这和PIC没关系。。。

这是基本的C编程能力,用谁家的MCU都一样处理。。。

使用特权

评论回复
地板
lkduo|  楼主 | 2009-4-20 12:17 | 只看该作者

问题点

能指正一下问题点吗?

谢谢!

以前是学过了C,但久了没用,能力是有点问题~~

使用特权

评论回复
5
lkduo|  楼主 | 2009-4-22 16:07 | 只看该作者

高人指点我吧...

高人指点我吧...

使用特权

评论回复
6
yewuyi| | 2009-4-22 17:18 | 只看该作者

请搜XWJ先生的旧帖,他写了一些文字讲的比较全面

俺们就没必要再写了。

使用特权

评论回复
7
lkduo|  楼主 | 2009-5-16 16:44 | 只看该作者

XWJ

XWJ

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝