打印

一个C语言写的键盘扫描小程序

[复制链接]
楼主: xiangrui21
手机看帖
扫描二维码
随时随地手机跟帖
41
wsjhy1| | 2010-2-5 23:42 | 只看该作者 回帖奖励 |倒序浏览
可以用中断去做

使用特权

评论回复
42
xfgood3872| | 2010-4-7 13:57 | 只看该作者
看看

使用特权

评论回复
43
zjw5000| | 2010-4-7 17:23 | 只看该作者
记号.

使用特权

评论回复
44
DM_man| | 2010-4-7 20:57 | 只看该作者
很好

使用特权

评论回复
45
nighn| | 2010-4-8 12:02 | 只看该作者
顶起!感谢版主。

使用特权

评论回复
46
qq8682| | 2010-4-20 20:48 | 只看该作者
12楼大虾写的很好,但我有个问题,这个程序无法识别常闭按键和点按键混合使用的地方啊!怎么改可以呢???

使用特权

评论回复
47
麻辣鸭脖子| | 2010-4-20 22:10 | 只看该作者
哇!看了点评收获多多

使用特权

评论回复
48
nyf1972| | 2010-4-21 21:26 | 只看该作者
if(key1)
       {
        if(CntKey1++==cKeyFilterValue)
             {
             Key1Flag=1;
             }
            else
            if(CntKey1>cKeyFilterValue)
                 {
                 CntKey1=cKeyFilterValue+1;
                 }
       }
       else
       {
       CntKey1=0;
       }

使用特权

评论回复
49
zhjx0403| | 2010-4-22 22:10 | 只看该作者
:)

使用特权

评论回复
50
xfgood3872| | 2010-4-23 12:52 | 只看该作者
7# 红金龙吸味
就是

使用特权

评论回复
51
liuyushuiyao| | 2010-4-23 12:57 | 只看该作者
找凳子中 这个帖子要看一天

使用特权

评论回复
52
luyuan0628| | 2010-4-23 21:23 | 只看该作者
作为初学者我看到过一个很简单的键盘扫描程序如下:(4乘4)
uchar Keyscan(void)
{
uchar i,j, temp, Buffer[4]= {0xef, 0xdf, 0xbf, 0x7f};
for(j=0; j<4; j++)
{
P1= Buffer[j];
delay(5);
temp= 0x01;
for(i=0; i<4; i++)
{
if(!(P1& temp))
{
return (i+j*4);
temp <<= 1;
}
}
}

使用特权

评论回复
53
Martin221| | 2010-4-24 09:44 | 只看该作者
学以致用,顶,支持!cool。

使用特权

评论回复
54
dulianling| | 2010-4-24 12:38 | 只看该作者
动态扫描就行啊 记录状态 可以翻一下我早期的一篇帖子
原野之狼 发表于 2010-1-7 22:08

OK,方法有很多都能实现相同的功能,采用定时动态扫描、记录状态、多次比较。程序好些、易懂,抗干扰也好。

使用特权

评论回复
55
电子空对穴| | 2010-4-24 18:56 | 只看该作者
我做程序,用轻触按键,就不消抖,也没见出什么问题

使用特权

评论回复
56
rokwlo| | 2011-9-10 16:57 | 只看该作者
我一直不明白这一段为什么加了temp=P3就能跳出循环,加了temp=P3,temp不是依然不等于0xf0吗?那不是依然在循环内无法跳出来吗?
while(temp!=0xf0)
   {
    temp=P3;
    switch(temp)
    {
     case 0xee:num=1;
      break;
     case 0xde:num=2;
      break;
     case 0xbe:num=3;
      break;
     case 0x7e:num=4;
      break;
     case 0xed:num=5;
      break;
     case 0xdd:num=6;
      break;
     case 0xbd:num=7;
      break;
     case 0x7d:num=8;
      break;
     case 0xeb:num=9;
      break;
     case 0xdb:num=10;
      break;
     case 0xbb:num=11;
      break;
     case 0x7b:num=12;
      break;
     case 0xe7:num=13;
      break;
     case 0xd7:num=14;
      break;
     case 0xb7:num=15;
      break;
     case 0x77:num=16;
      break;
    }

使用特权

评论回复
57
bpzm1987| | 2011-9-13 23:15 | 只看该作者
向各位师傅们学习!

使用特权

评论回复
58
dandan5241| | 2011-10-29 18:45 | 只看该作者
C语言实现按键扫描

使用特权

评论回复
59
darbdyp| | 2011-10-29 21:20 | 只看该作者
第一次发帖,留个脚印,顺便学习.

使用特权

评论回复
60
chenshu8686| | 2011-10-29 23:03 | 只看该作者
学习啦

使用特权

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

本版积分规则