新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機學習之5-獨立按鍵和矩陣鍵盤

        51單片機學習之5-獨立按鍵和矩陣鍵盤

        作者: 時間:2016-11-30 來源:網絡 收藏
        第14集

        本文引用地址:http://www.104case.com/article/201611/323867.htm

        鍵盤的原理

        鍵盤分編碼鍵盤(例如電腦鍵盤)和非編碼鍵盤(自己用程序去識別)。

        非編碼鍵盤分:獨立式非編碼鍵盤(獨立按鍵)、行列式非編碼鍵盤(4*4陣列鍵盤)

        獨立鍵盤的電路圖。

        因為51單片機的IO口不是雙向口而是準雙向口,要讓IO口具備輸入功能,必須將IO口置1,置1之后當按鍵按下時IO口的電平會被拉低,即被置0。當檢測到IO口為0時即可判斷該按鍵已經按下。按鍵按下時會有一個抖動的過程(彈片會抖動),由于單片機檢測IO口速度非常快,超過彈片抖動的頻率,所以當單片機檢測到IO口為0時需延時一小段時間再檢測IO是否為0,如果仍為0就確認該按鈕被按下。因為IO口里面有上拉電阻,所以當松開按鈕時,IO口又被拉高。

        例程:

        #include

        #defineuintunsignedint

        #defineucharunsignedchar

        sbitKey=P3^4;//按鍵

        sbitLed=P1^0;//Led燈

        voiddelay(uintz);

        /********主函數********/

        voidmain()

        {

        while(1)

        {

        if(!Key)

        {

        delay(10);//消抖操作

        if(!Key)

        Led=0;//按下時Led亮

        else

        Led=1;

        }

        }

        }

        voiddelay(uintz)

        {

        uintx,y;

        for(x=z;x>0;x--)

        for(y=110;y>0;y--);

        }

        第15集

        4*4矩陣鍵盤

        上圖中,1個按鍵占用一個IO口,如果有16個按鍵就占用了16個IO口。為了減少IO口的使用,就需要用矩陣的方式連線。如下圖


        矩陣掃描原理

        從圖可以看出P30、P31、P32、P33為行(低四位),P34、P35、P36、P37為列(高四位)。

        假設我們按下的是S6按鈕。


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 潍坊市| 台中市| 双流县| 兴和县| 疏附县| 墨竹工卡县| 吉首市| 冕宁县| 忻州市| 武平县| 永川市| 五大连池市| 许昌市| 西林县| 蓝田县| 马山县| 大英县| 仁布县| 嘉鱼县| 高唐县| 乌拉特后旗| 靖宇县| 宁蒗| 清涧县| 石渠县| 宁安市| 彝良县| 宁都县| 南投县| 兖州市| 房产| 屏山县| 江城| 南汇区| 大余县| 北海市| 绵阳市| 马关县| 壤塘县| 汝城县| 安陆市|