找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2650|回复: 7
打印 上一主题 下一主题
收起左侧

STC89C52单片机四个按键定时器消抖 求思路

[复制链接]
跳转到指定楼层
楼主
ID:693676 发表于 2020-4-26 19:41 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问四个按键定时器消抖如何实现,功能大概就是KEY1选择设置,KEY2增加,KEY3减少,KEY4运行。查了资料都是单个按键消抖,请各位大神指导
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:693676 发表于 2020-4-26 21:05 来自手机 | 只看该作者
void t0() interrupt 1 //1ms 用于按键去抖动。 { TH0=(65536-1000)/256; TL0=(65536-1000)%256; ms++; if(key==0)key_num++; if(ms==15) //15秒刷新一次 { if(key_num>10) //15秒钟如果低电平持续时间大于10秒就认为按键按下,而不是抖动 key_statue=1; //按键标识位置1 ms=0; key_num=0; } }
回复

使用道具 举报

板凳
ID:693676 发表于 2020-4-26 21:06 来自手机 | 只看该作者
一个按键原理懂,但是四个按键如何处理啊,初学者,请指导
回复

使用道具 举报

地板
ID:47286 发表于 2020-4-26 22:28 | 只看该作者
简单的办法就是和1个按键一样 都单独防抖 一般防抖的时间也就15~30ms 不会影响其它按键
回复

使用道具 举报

5#
ID:693676 发表于 2020-4-26 22:47 来自手机 | 只看该作者
dzbj 发表于 2020-4-26 22:28
简单的办法就是和1个按键一样 都单独防抖 一般防抖的时间也就15~30ms 不会影响其它按键

就是不想把程序搞得太长复杂,想问问有没有简洁一点的写法
回复

使用道具 举报

6#
ID:738911 发表于 2020-4-26 22:54 | 只看该作者
可以为定时中断设置一个按键识别码,在某一个键按下后,先设置该键的识别码,之后启动定时器,待定时时间到产生中断后,可以根据不同的按键识别码转向不同的按键处理程序。
回复

使用道具 举报

7#
ID:548551 发表于 2020-4-27 00:30 来自手机 | 只看该作者
兄弟  你想一个子程序把所有的按键都带进去哦?
回复

使用道具 举报

8#
ID:213173 发表于 2020-4-27 07:07 | 只看该作者
按键任务在主函数中处理
void t0() interrupt 1 //1ms 用于按键去抖动。
{
        static unsigned char count=0;        //计数变量                       
        static bit key_sign=0;                        //按键自锁标志
        unsigned char temp;                                //临时变量

        TH0=(65536-1000)/256;
        TL0=(65536-1000)%256;

        temp=P1&0x0f;//P1.0~P1.3四个按键
        if(temp!=0x0f)
        {
                if(++count>=15 && key_sign==0) //15毫秒刷新一次
                {
                        key_sign=1;//按键自锁,防止重复响应
                        switch(temp)
                        {
                                case 0x0e: key_statue=1; break;//输出键值
                                case 0x0d: key_statue=2; break;
                                case 0x0b: key_statue=3; break;
                                case 0x07: key_statue=4; break;
                        }
                }
        }
        else
        {
                key_sign=0;
                count=0;
        }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表