0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機按鍵檢測電路原理詳解

CHANBAEK ? 來源:科創(chuàng)追夢者 ? 作者:謝士金 ? 2023-11-02 15:28 ? 次閱讀

在本次課程中,我將向大家介紹單片機的輸入口的使用。

在這里,我以最簡單的檢測一個按鍵是否被按下為例來向大家介紹。

一、STC15W408AS按鍵檢測電路

下面是本例中按鍵檢測的電路原理圖,K1是一個按鍵,它接在單片機的P3.3口上,R2是一個與按鍵連接的上拉電阻。

圖片

二、按鍵檢測原理

在本例中,按鍵與單片機的第14腳(P3.3引腳)相連。當按鍵沒有按下時,P3.3的電平是高電平;當按鍵被按下時,按鍵將P3.3與地短接,此時P3.3的電平為低電平。

從分析可知,根據(jù)P3.3電平的變化狀態(tài),我們可以知道按鍵是否被按下。因此,我們只要檢測P3.3電平的狀態(tài),就可以判斷出按鍵的狀態(tài)。

三、STC15W408AS輸入模式配置方法

為了讓單片機能檢測按鍵,我們必須將單片機的P3.3口設(shè)置為輸入口,也就信號是從單片機外輸入到單片機內(nèi)。因此,必須將單片機的IO口模式設(shè)置為輸入模式。

如果要將STC15W408AS的引腳配置成輸入模式,只需修改PxM0和PxM1兩個寄存器的值。下面是STC15的STC15W408AS引腳的配置說明:

圖片

四、按鍵檢測有關(guān)代碼

下面是本例中,按鍵檢測相關(guān)的代碼:

#define Pin_KEY P33

#define Pin_KEY_M1 P3M1

#define Pin_KEY_M0 P3M0

#define Pin_KEY_BIT BIT3

#define GetKey_High() Pin_KEY==1

void PinKEY_DirIn(void)

{

    Pin_KEY_M1 &=~Pin_KEY_BIT;

    Pin_KEY_M0 &=~Pin_KEY_BIT;

}

五、本例中按鍵檢測指示

為了顯示按鍵的是否被按下,我們用上節(jié)課程中介紹的單片機點LED的亮滅狀態(tài)來表示按鍵的狀態(tài)。當按鍵沒被按下時,LED不亮;當按鍵被按下時,LED燈點亮。

請看下面代碼:

PinKEY_DirIn();   //將按鍵所在的口設(shè)置為輸入模式

while(TRUE)

{

  if(GetKey_High())  //如果檢測到按鍵口是高電平

  {

    PinLed_High(); //則將LED所在口置高,LED不亮。

  }else{

    PinLed_Low(); //否則,將LED所在口置低,LED點亮

  }  

}

六、按鍵檢測完整源程序

#define BIT0 0x01

#define BIT1 0x02

#define BIT2 0x04

#define BIT3 0x08

#define BIT4 0x10

#define BIT5 0x20

#define BIT6 0x40

#define BIT7 0x80

#define TRUE 1

#define FALSE 0

#define BEEP_ON    1

#define BEEP_OFF    0

#define Pin_LED P32

#define Pin_LED_M1 P3M1

#define Pin_LED_M0 P3M0

#define Pin_LED_BIT BIT2

#define PinLed_High() Pin_LED=1

#define PinLed_Low() Pin_LED=0

#define Pin_KEY P33

#define Pin_KEY_M1 P3M1

#define Pin_KEY_M0 P3M0

#define Pin_KEY_BIT BIT3

#define GetKey_High() Pin_KEY==1

void PinKEY_DirIn(void);

void PinLED_DirOut(void);

void main(void)

{

  PinLED_DirOut();

  PinKEY_DirIn();

  PinLed_Low();



  while(TRUE)

  {

    if(GetKey_High())

    {

       PinLed_High();

    }else{

       PinLed_Low();

    }

   }

}

void PinKEY_DirIn(void)

{

    Pin_KEY_M1 &=~Pin_KEY_BIT;

    Pin_KEY_M0 &=~Pin_KEY_BIT; 

}

void PinLED_DirOut(void)

{

    Pin_LED_M1 &=~Pin_LED_BIT;

    Pin_LED_M0 |=Pin_LED_BIT;  

}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6050

    文章

    44702

    瀏覽量

    641299
  • 上拉電阻
    +關(guān)注

    關(guān)注

    5

    文章

    363

    瀏覽量

    30829
  • 電路原理圖
    +關(guān)注

    關(guān)注

    40

    文章

    348

    瀏覽量

    38580
  • 按鍵檢測
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    4871
  • STC15W408AS
    +關(guān)注

    關(guān)注

    10

    文章

    27

    瀏覽量

    10348
收藏 人收藏

    評論

    相關(guān)推薦

    單片機按鍵設(shè)計的方法,這幾個方案不錯

    單片機按鍵設(shè)計的四個方案詳解單片機系統(tǒng)里,按鍵是常見的輸入設(shè)備,在本文江介紹幾種按鍵硬件、軟件
    的頭像 發(fā)表于 01-06 07:05 ?1w次閱讀
    <b class='flag-5'>單片機</b><b class='flag-5'>按鍵</b>設(shè)計的方法,這幾個方案不錯

    如何實現(xiàn)基于單片機的鍵盤檢測

    鍵盤是單片機與用戶交互設(shè)備之一,用戶通過鍵盤輸入數(shù)據(jù)或命令到單片機。最簡單的鍵盤僅有一個按鍵,復雜一些的鍵盤有多個按鍵。在單片機的外圍
    的頭像 發(fā)表于 10-31 14:39 ?2131次閱讀
    如何實現(xiàn)基于<b class='flag-5'>單片機</b>的鍵盤<b class='flag-5'>檢測</b>

    單片機按鍵檢測

    Atmega16單片機按鍵電路如下,按鍵另一端一般都是直接接地的,這個比較另類。嘗試了不少方法還是沒寫出檢測
    發(fā)表于 05-25 01:31

    單片機按鍵詳解

    單片機按鍵詳解
    發(fā)表于 07-28 14:51

    單片機按鍵處理總結(jié)——含程序詳解

    講述幾種常用的按鍵的應用及程序處理方法,幫助大家掌握單片機處理按鍵的方法。
    發(fā)表于 11-10 10:55 ?11次下載

    簡談單片機檢測按鍵原理和中斷按鍵檢測的辦法

    首先說一下獨立鍵盤檢測,在單片機外圍電路中 ,通常用到的按鍵都是機械彈性開關(guān),當開關(guān)閉合時,線路導通,開關(guān)斷開時,線路斷開。單片機
    發(fā)表于 06-27 10:44 ?2w次閱讀
    簡談<b class='flag-5'>單片機</b><b class='flag-5'>檢測</b><b class='flag-5'>按鍵</b>原理和中斷<b class='flag-5'>按鍵</b><b class='flag-5'>檢測</b>的辦法

    51單片機按鍵檢測和信號函數(shù)仿真的詳細資料說明

    本文檔的主要內(nèi)容詳細介紹的是51單片機按鍵檢測和信號函數(shù)仿真的詳細資料說明,在單片機中會遇到識別按鍵的問題,常用的獨立
    發(fā)表于 04-11 18:22 ?4次下載
    51<b class='flag-5'>單片機</b><b class='flag-5'>按鍵</b><b class='flag-5'>檢測</b>和信號函數(shù)仿真的詳細資料說明

    51單片機的獨立按鍵按鍵消抖及矩陣按鍵電路與程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是51單片機的獨立按鍵按鍵消抖及矩陣按鍵電路與程序免費下載。
    發(fā)表于 07-26 17:36 ?28次下載
    51<b class='flag-5'>單片機</b>的獨立<b class='flag-5'>按鍵</b>和<b class='flag-5'>按鍵</b>消抖及矩陣<b class='flag-5'>按鍵</b>的<b class='flag-5'>電路</b>與程序免費下載

    單片機實現(xiàn)按鍵電路和程序設(shè)計資料說明

    單片機應用系統(tǒng)中,按鍵主要有兩種形式:1、直接按鍵; 2、矩陣編碼鍵盤。直接按鍵的每個按鍵都單獨接到
    的頭像 發(fā)表于 10-06 18:14 ?9919次閱讀

    單片機按鍵使用程序 (51單片機

    單片機獨立按鍵使用程序 (51單片機)獨立按鍵單片機中很重要的一個器件,在這篇文章里,通過這個用獨立
    發(fā)表于 11-11 18:36 ?108次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>按鍵</b>使用程序 (51<b class='flag-5'>單片機</b>)

    51單片機按鍵檢測--獨立按鍵與矩陣鍵盤

    按鍵,每個按鍵對應一個IO口,通過循環(huán)或者中斷去檢測,這種方法常用于按鍵個數(shù)較少得時候。如果按鍵的個數(shù)較多,每個
    發(fā)表于 11-12 11:06 ?15次下載
    51<b class='flag-5'>單片機</b><b class='flag-5'>按鍵</b><b class='flag-5'>檢測</b>--獨立<b class='flag-5'>按鍵</b>與矩陣鍵盤

    PIC單片機 按鍵檢測識別

    目錄按鍵和PIC單片機一、按鍵二、按鍵的物理連接與檢測三、PIC16F18854單片機
    發(fā)表于 11-16 12:36 ?12次下載
    PIC<b class='flag-5'>單片機</b> <b class='flag-5'>按鍵</b><b class='flag-5'>檢測</b>識別

    單片機按鍵檢測

    獨立按鍵電路:獨立按鍵編程:一個獨立按鍵單片機的一個I/O口連接,當按鍵按下時,對應I/O口由
    發(fā)表于 11-17 09:21 ?3次下載
    <b class='flag-5'>單片機</b>之<b class='flag-5'>按鍵</b><b class='flag-5'>檢測</b>

    單片機學習-矩陣按鍵

    目錄矩陣按鍵介紹檢測方法C51例程歡迎加QQ及郵件交流矩陣按鍵介紹 獨立鍵盤與單片機連接時,每一個按鍵都需要
    發(fā)表于 12-31 19:37 ?15次下載
    <b class='flag-5'>單片機</b>學習-矩陣<b class='flag-5'>按鍵</b>

    單片機按鍵切換模式怎么設(shè)置

    單片機:選擇一款合適的單片機型號,例如常見的8051、STM32等。 按鍵模塊:用于實現(xiàn)按鍵輸入,通常由一個或多個按鍵組成。
    的頭像 發(fā)表于 12-13 11:07 ?4721次閱讀