极限编程!2条语句实现电容触摸按键驱动,可长期稳定工作

2020-01-18 18:46发布

本帖最后由 abc0010 于 2014-1-9 21:18 编辑

极限编程!2条语句实现电容触摸按键驱动,可以长期稳定工作,不需要消抖延迟,不需要中断处理

之前买模块的时候获得一份编程资料,因为项目忙没看过。。。

直接上代码:

if (key1 != key1_flg)        //键1驱动程序, 每按一次只进入一次
{
        key1_flg = key1;
        KeyProc(1);        //这里是按返回值处理,不属于驱动程序
}


有视频:
http://v.youku.com/v_show/id_XNjU5NDgwMzAw.html

有资料:
电容触摸IC-xaj2013-实用框架.rar (836 Bytes, 下载次数: 94) 2014-1-9 16:07 上传 点击文件名下载附件
C语言编程资料


C语言方面我是个菜鸟,不过我发现,资料 电容触摸IC-xaj2013-实用框架.c 上的GetKey()函数不论放在主程序的什么地方,程序都可以正常工作,不知道对不对。欢迎大家指正。


这是原作者的文档:
/*****************************************************
注意,本程序只是一个框架。不能直接编译。使用者需要一定
的编程基础,然后加进自己的具体功能才能实现相应的功能。

从本框架上可以看出,wxaj2013用于键盘,不需要作消抖延迟
也不需要中断处理。同时又确保按键无重复、无效等操作。让
单片机发挥更大的效率。
*****************************************************/

#include <stdio.h>
#include <reg52.h>

void systeminit(void);
void getkey(void);
void keyproc(char keyreturnval);
void funtion1(void);
void funtion2(void);
....
void otherjob(void);

void main()
{
        systeminit();

        while(1)
        {
                getkey();
                funtion1();
                funtion2();
                ......
                otherjob();
        }
}

//wxaj2013按键处理程序,只需要定义相应的引脚即可
//===============================================
void getkey()
{
        if(key1 != key1_flag)        //只有标志和引脚状态不同时才进入
        {
                key1_flag = key1;        //更新标志, 和引脚同步, 防止多次进入
                KeyProc(1);        //按键处理
        }

        if(key2 != key2_flag)
        {
                key2_flag = key2;
                KeyProc(2);
        }

        if(key3 != key3_flag)
        {
                key3_flag = key3;
                KeyProc(3);
        }

        if(key4 != key4_flag)
        {
                key4_flag = key4;
                KeyProc(4);
        }
}


//按键处理程序, 根据自己的需求补充完整即可
//=========================================
void KeyProc(char keyReturnVal)
{
        switch(keyReturnVal)
        {
                case 1: ... break;
                case 2: ... break;
                ...
                default: break;
        }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
46条回答
abc0010
1楼-- · 2020-01-21 09:01
lindabell 发表于 2014-1-9 21:16
IC都给你做好了工作了,当然用的程序少了
LZ标题党

不是这样的,事实上我们见到的很多键盘不论是PS2接口的,或者USB接口的,或者1进1出的点动键盘,触摸的也好不触摸的也罢,都很少用这样的写法。哪个不是长篇大论的驱动?也许我们看到别人这样写时,第一反应是这是假的,第二反应是这个我之前也这样用过,没什么大不了的。。。。。我的本意是:我看到自以为惊奇的代码然后拿出来和大家分享,代码不是我写的,我承认自己菜,自己孤陋寡闻,但是我觉得这样的写法和处理方法很棒!!!
xyz2008
2楼-- · 2020-01-21 09:09
abc0010 发表于 2014-1-10 08:46
不是这样的,事实上我们见到的很多键盘不论是PS2接口的,或者USB接口的,或者1进1出的点动键盘,触摸的也 ...

楼主,能否把你用的那个触摸芯片的手册传上来啊,还有这个芯片什么价格,灵敏度怎么样?
cmheia
3楼-- · 2020-01-21 14:02
云里雾里key1哪来的也不说
abc0010
4楼-- · 2020-01-21 17:10
 精彩回答 2  元偷偷看……
xyz2008
5楼-- · 2020-01-21 18:25
abc0010 发表于 2014-1-10 09:32
这个资料是之前拿到的,现在应该更新了

有这个芯片供应商的电话吗,或者公司的名称
richards
6楼-- · 2020-01-21 20:24
guer 发表于 2014-1-9 16:26
如果不用触摸IC,2条语句实现电容触摸,那就是神了。用触摸IC就算不上什么极限了。 ...

吓我一跳,我也以为不用触摸IC的。。。

一周热门 更多>