久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 10736|回復(fù): 26
打印 上一主題 下一主題
收起左側(cè)

如何讓單片機(jī)按鍵檢測(cè)更靈敏?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
在做單片機(jī)按鍵程序的時(shí)候,靈敏度和效率難以取舍,各位大俠們,有沒(méi)有更好的方法呢?

#include <REGX51.H>
#include <intrins.h>

//獨(dú)立鍵盤.無(wú)按鍵動(dòng)作時(shí)其返回值num_key=0,否則返回按鍵號(hào)num_key
extern unsigned char keyboard_self()
{
        unsigned char num_key=0;//按鍵號(hào)
        unsigned char temp=0;//用于讀取P2線上按鍵值
        static unsigned char temp_code=0;//保存按鍵值
        static unsigned char num_check=0;//低電平有效次數(shù)
        static unsigned char key_flag=0;//按鍵有效標(biāo)識(shí)

        temp=P2&0xF0;//讀取P2線數(shù)據(jù)

        if(temp!=0xF0)//低電平判斷
        {
                num_check++;
                if(num_check==10)//連續(xù)10次(10ms)低電平有效,則認(rèn)為按鍵有效
                {
                        key_flag=1;//使能按鍵有效標(biāo)識(shí)
                        temp_code=temp;//保存按鍵值
                }
        }
        else//松手時(shí)判斷
        {
                num_check=0;

                if(key_flag==1)//按鍵有效
                {
                        key_flag=0;

                        switch(temp_code)//讀取按鍵號(hào)
                        {
                                case 0xE0: num_key=1;  P1=0xf0;
                                           break;
                                case 0xD0: num_key=2;  P1=0x0f;
                                           break;
                                case 0xB0: num_key=3;  P1=0xaa;
                                           break;
                                case 0x70: num_key=4;  P1=0xff;
                                           break;
                        }
                }
        }

        return(num_key);
}

void main()
{
        while(1)
        {
                keyboard_self();
        }
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

來(lái)自 2#
ID:283954 發(fā)表于 2022-4-2 16:58 | 只看該作者
看了很多抗抖動(dòng)的討論,想說(shuō)幾句,這些抗抖動(dòng)的例子都只是停留在原理的解說(shuō),在實(shí)際應(yīng)用時(shí)就是另一回事,必須看應(yīng)用時(shí)按鈕的實(shí)際用途。

一個(gè)按鈕被按下,單片機(jī)一定能被檢測(cè)到,如果需要在其他程序被用來(lái)處理事件,就SETB一個(gè)位做識(shí)別,然后離開(kāi),根本無(wú)需抗抖動(dòng),因?yàn)榇蠖鄶?shù)程序完成事件處理后回來(lái),早就過(guò)了抖動(dòng)期。如果處理事件的程序事件太短,可以用這個(gè)SETB的位跳過(guò)按鈕檢測(cè)程序,等事件處理程序完成處理事件,把被SETB的位CLR掉,自然就會(huì)運(yùn)行按鈕檢測(cè)程序,這樣就不會(huì)發(fā)生按一次鈕而多次觸發(fā)的問(wèn)題。如果希望按下鈕后確保按鈕必須放開(kāi),則在檢測(cè)到按下后,進(jìn)入檢測(cè)放開(kāi)的程序,不斷循環(huán),直到按鈕被放開(kāi),但這就浪費(fèi)單片機(jī)的時(shí)間了。

這說(shuō)明在真實(shí)應(yīng)用的中,抗抖動(dòng)程序是很少用到的,教材只是教你原理。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:191022 發(fā)表于 2017-4-25 09:45 | 只看該作者
請(qǐng)各位大俠們多多指點(diǎn)
回復(fù)

使用道具 舉報(bào)

地板
ID:130231 發(fā)表于 2017-4-25 13:27 | 只看該作者
要有消抖函數(shù)
回復(fù)

使用道具 舉報(bào)

5#
ID:138155 發(fā)表于 2017-4-25 15:33 | 只看該作者
太靈敏容易誤動(dòng)作 一般加消抖程序
回復(fù)

使用道具 舉報(bào)

6#
ID:114924 發(fā)表于 2017-4-25 15:48 | 只看該作者
如果你C寫(xiě)的不好,可以增加一個(gè)RC電路一顆4.7K電阻一顆104電容即可
回復(fù)

使用道具 舉報(bào)

7#
ID:193502 發(fā)表于 2017-4-25 17:34 | 只看該作者
用消抖或者中斷吧
回復(fù)

使用道具 舉報(bào)

8#
ID:187614 發(fā)表于 2017-4-25 18:32 | 只看該作者
鍵盤操作在ms級(jí),靈敏度根據(jù)自己設(shè)計(jì)需要吧,也可以增加硬件設(shè)計(jì);效率高就需要中斷方式。
回復(fù)

使用道具 舉報(bào)

9#
ID:7485 發(fā)表于 2017-4-25 18:39 | 只看該作者
按鍵消抖只是毫秒級(jí)的,不至于影響什么效率吧?如果不加消抖或消抖時(shí)間短,容易產(chǎn)生誤動(dòng)作。
即便是使用中斷,也要防止誤動(dòng)作。
只要鍵沒(méi)問(wèn)題,也不存在靈敏度的問(wèn)題。
回復(fù)

使用道具 舉報(bào)

10#
ID:111634 發(fā)表于 2017-4-25 21:12 | 只看該作者
本帖最后由 zl2168 于 2017-4-25 21:19 編輯

按鍵抖動(dòng)一般是5~10ms,有少數(shù)超過(guò)10ms。手指按動(dòng)按鍵最快50~100ms。因此,按鍵消抖不會(huì)影響按鍵動(dòng)作靈敏度,影響按鍵動(dòng)作靈敏度的是程序編制,程序中按鍵掃描實(shí)時(shí)性才會(huì)影響按鍵動(dòng)作靈敏度。





以上摘自張志良編著《80C51單片機(jī)實(shí)用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9, 用于學(xué)習(xí)51單片機(jī)原理,程序(雙解c和匯編)語(yǔ)句條條有注解,便于閱讀理解,便于自學(xué)。






回復(fù)

使用道具 舉報(bào)

11#
ID:112693 發(fā)表于 2017-4-27 11:53 | 只看該作者
延時(shí)去抖最簡(jiǎn)單,最好開(kāi)關(guān)并聯(lián)104電容
回復(fù)

使用道具 舉報(bào)

12#
ID:148552 發(fā)表于 2017-4-28 13:54 | 只看該作者
硬件去抖就靈敏了,軟件優(yōu)化只是輔助作用
回復(fù)

使用道具 舉報(bào)

13#
ID:190583 發(fā)表于 2017-4-28 16:47 | 只看該作者
硬件去做。軟件輔助
回復(fù)

使用道具 舉報(bào)

14#
ID:194618 發(fā)表于 2017-4-28 18:27 | 只看該作者
加個(gè)延時(shí)函數(shù)進(jìn)行消抖,一般10ms
回復(fù)

使用道具 舉報(bào)

15#
ID:108302 發(fā)表于 2017-4-28 22:15 | 只看該作者
使用中斷
回復(fù)

使用道具 舉報(bào)

16#
ID:197448 發(fā)表于 2017-5-6 19:32 | 只看該作者
我也在找這資料...
回復(fù)

使用道具 舉報(bào)

17#
ID:191929 發(fā)表于 2017-5-6 20:13 | 只看該作者
按鍵一般要消抖,延時(shí)個(gè)5~~20ms
回復(fù)

使用道具 舉報(bào)

18#
ID:43128 發(fā)表于 2017-5-7 14:23 | 只看該作者
可以加電容
回復(fù)

使用道具 舉報(bào)

19#
ID:798954 發(fā)表于 2020-8-16 11:37 | 只看該作者
我覺(jué)得中斷時(shí)最靈敏的,其次就是用一個(gè)定時(shí)器,然后每個(gè)一段時(shí)間掃描一下按鍵,32中的滴答定時(shí)器就是不錯(cuò)的選擇
回復(fù)

使用道具 舉報(bào)

20#
ID:730009 發(fā)表于 2022-3-31 21:27 | 只看該作者
可以用系統(tǒng)rtx
回復(fù)

使用道具 舉報(bào)

21#
ID:971289 發(fā)表于 2022-4-1 08:17 | 只看該作者
只追求按鍵靈敏度就用中斷,如果想提高按鍵穩(wěn)定性就用硬件去抖。
回復(fù)

使用道具 舉報(bào)

22#
ID:1014820 發(fā)表于 2022-4-1 11:14 | 只看該作者

電容怎么選擇的
回復(fù)

使用道具 舉報(bào)

23#
ID:1014855 發(fā)表于 2022-4-1 13:30 | 只看該作者
要加消抖,可以利用延時(shí)函數(shù)消除抖動(dòng)
回復(fù)

使用道具 舉報(bào)

24#
ID:264021 發(fā)表于 2022-4-1 19:14 | 只看該作者
沒(méi)有消抖程序,加個(gè)20MS的按鍵延時(shí),就搞定
回復(fù)

使用道具 舉報(bào)

25#
ID:842688 發(fā)表于 2022-4-2 01:37 | 只看該作者
寫(xiě)個(gè)奇偶校驗(yàn) 沒(méi)記錯(cuò)的話《手把手教你51單片機(jī)》這本書(shū)就有講到
回復(fù)

使用道具 舉報(bào)

26#
ID:933803 發(fā)表于 2022-4-3 16:41 | 只看該作者
使用消抖中斷方式
回復(fù)

使用道具 舉報(bào)

27#
ID:990881 發(fā)表于 2022-4-4 08:42 | 只看該作者

估一下延時(shí)時(shí)間,RC延時(shí)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 男女羞羞免费视频 | 欧美日韩久久久 | 91精品国产欧美一区二区成人 | 久久成人免费视频 | 91国内精精品久久久久久婷婷 | 精品国产一区二区三区免费 | 欧美一级片在线看 | 国内精品久久久久久久影视简单 | 日韩一区二区三区视频 | 三a毛片 | 免费在线看a | a在线观看| 欧美视频三区 | 精品国产一区二区三区av片 | 免费在线性爱视频 | 综合一区 | 天天干天天想 | 在线视频 欧美日韩 | 男女啪啪高潮无遮挡免费动态 | 欧美美女爱爱视频 | 欧美激情亚洲天堂 | 99爱在线观看 | 五月激情婷婷六月 | 国产精品一区二区久久久久 | 日韩电影a | 91国语清晰打电话对白 | 日本不卡一区 | 羞羞网站在线免费观看 | 午夜手机在线视频 | 国产欧美日韩一区二区三区在线观看 | 久久久av一区 | 欧美一二区 | 男女羞羞视频在线免费观看 | 欧美激情在线精品一区二区三区 | 日本黄色大片免费看 | av在线播放网站 | 亚洲成人第一页 | 日日综合 | 天天操天天摸天天干 | 综合中文字幕 | 亚洲社区在线 |