• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

定时器中断检测按键

蓝蓝的天 2018-02-07 浏览量:907

我想写一段定时器检测按键的程序老是写不好。

哪位大神给我一个测试好的定时器检测按键的程序?谢谢!

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这个是我以前写的一个中断检测按键程序,望采纳
    void Key_Test() interrupt 1
    {
        static unsigned char cnt;
        TH0=0xb8;
        TL0=0x00;
    
        cnt++;
        if(KeyS2==0)
        {
            if(cnt>=10)
            {
                cnt=0;
                if(KeyS2==0)
                {
                    flag=1;
                }
            }
        }
        if(KeyS3==0)
        {
            if(cnt>=10)
            {
                cnt=0;
                if(KeyS3==0)
                {
                    flag=2;
                }
            }
        }
        if(KeyS4==0)
        {
            if(cnt>=10)
            {
                cnt=0;
                if(KeyS4==0)
                {
                    flag=3;
                }
            }
        }
        if(KeyS5==0)
        {
            if(cnt>=10)
            {
                cnt=0;
                if(KeyS5==0)
                {
                    flag=4;
                }
            }
        }
    
    }
    • 发布于 2018-02-07
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了 :资料未说明具体长度 回复

其他答案 数量:3
电子老工程师 回复了  :没有规格书,这个是官网资料https://www.knipex.com/products/cutting-pliers/knipex-x-cut-compact-diagonal-cutters-high-lever-transmission/knipex-x-cutcompact-diagonal-cuttershigh-lever-transmission/7302160 回复

  • 在中断中创建一个定时器延时,在延时函数中去检测按键状态,如果按键被按下,可以理解为从中断触发到延时完成这段时间都是按键按下状态,也就是符合案件延时消抖条件,可以当做是一次正常的按键按下操作。
    • 发布于2018-02-07
    • 举报
    • 评论 1
    • 0
    • 0
蓝蓝的天 回复了 micro虾米 :谢谢! 回复

  • 定时器检测按键的方式是定时器中断,不过51是有外部中断引脚的,用外部中断效果更好。

    • 发布于2018-02-27
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :贴片 回复

相关问题

问题达人换一批

定时器中断检测按键