找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
楼主
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 单片机教程网

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