18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

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

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

C51單片機獨立按鍵的使用

CHANBAEK ? 來源:Zi Jin Code ? 作者:錕醬不是醬 ? 2023-11-01 11:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前面我們簡單的學(xué)習(xí)了C51的IO結(jié)構(gòu),現(xiàn)在我們來看看,準(zhǔn)雙向IO口如何使用按鍵輸入

圖片

這是準(zhǔn)雙向IO的基本結(jié)構(gòu),單片機就靠內(nèi)部輸入線來讀取IO的電平狀態(tài)。

我們以這個電路分析準(zhǔn)雙向IO上的按鍵使用

圖片

在準(zhǔn)雙向口中,我們需要先給IO寫高電平才能去讀取IO的電平變化(高->低)

在寫高電平的情況下……

三極管截止

圖片

沒有按下按鍵,電流由正極經(jīng)過上拉電阻流到內(nèi)部輸入線路,這時候內(nèi)部讀出高電平

圖片

這時候按下按鍵,按下按鍵,電流由VCC流經(jīng)上拉電阻再流經(jīng)按鍵最后流向GND。由于電流由正極流向負極。內(nèi)部輸入線路線路的電流流向負極,這時候讀出的數(shù)值就是低電平的

如果我們寫IO是低電平的話,三極管始終導(dǎo)通,內(nèi)部輸入的電流經(jīng)過三極管接到負極,這時候無論有沒有按下按鍵,都只能讀出低電平

圖片

圖片

按鍵的電路

圖片

我們使用的開發(fā)板有四個獨立按鍵,這四個獨立按鍵接在P3.2 - P3.4

我們使用單片機準(zhǔn)雙向IO提供的IO內(nèi)部的上拉電阻,所以不需要外部上拉電阻

首先,需要使用sbit定義我們的按鍵所連接的IO

sbit KEY = P3^4;

接下來,給這個按鍵所屬的IO寫高電平

KEY = 1;

讀取按鍵按下的代碼

if(KEY == 0)
{
  unsigned char a = 550;
  while(a--);//延遲消抖
  if(KEY == 0)
    {
    while(!KEY);//檢測按鍵是否松開,防止連按
    
    //這里是你的要放下按鍵按下后執(zhí)行的代碼

    }
}

這里需要說明一下

if(KEY == 0)用于讀取按鍵是否按下按鍵,讀取方式直接用KEY == 0,KEY == 1直接讀取這一位IO寄存器值。

當(dāng)我們第一次讀取之后,還需要延遲一會再次讀取按鍵,我們把這個過程稱為延遲消抖

這是因為我們使用的按鍵是物理按鍵,內(nèi)部的簡化結(jié)構(gòu)如圖

圖片

按鍵上面有一個彈片,按下按鍵彈片后觸點接觸,按鍵導(dǎo)通,松開按鍵,彈片回彈,按鍵斷開,電壓的變化總是高電平》低電平》高電平

上面描述的是理想狀態(tài),但是實際上,物理按鍵并不像我們想象如此理想,當(dāng)我們按下按鍵的時候,按鍵的彈片會發(fā)生震動,導(dǎo)致電壓會有一定的抖動幅度

圖片

這些幅度的抖動會影響單片機對按鍵的讀取和識別

我們可以用硬件電路消抖,下面展示一個簡單的硬件消抖電路

圖片

在這個電路里面,一顆0.1u的電容用于消除抖動,電容充放電實現(xiàn)消抖的效果

那么為什么不使用上面的電路實現(xiàn)消抖呢??

答案很簡單——成本高嘛

所以我們使用軟件消抖

if(KEY == 0)
{
  unsigned char a = 550;
  while(a--);//延遲消抖
  if(KEY == 0)
    {
    while(!KEY);//檢測按鍵是否松開,防止連按

    //這里是你的要放下按鍵按下后執(zhí)行的代碼

    }
}

單片機先讀取按鍵引腳的電平,軟件延遲后再次讀取后再次讀取按鍵的電平,如果還是按下的狀態(tài),那么就開始等待按鍵松開,等待按鍵松開是必要的,如果不等待按鍵松開,可能我們按下按鍵久一點按鍵就變成多次連按了

那么下面就是一個簡單的項目,按鍵開關(guān)LED

/*
按鍵學(xué)習(xí)
按鍵按下,LED實現(xiàn)開關(guān)


青青子衿工作室
Zi Jin Code
*/
#include < reg52.h >


sbit LED = P1^0;
sbit KEY = P3^3;


void main()
{
  KEY = 1;//使用按鍵之前,對應(yīng)的引腳寫高電平
  LED = 1;
  while(1)
  {
    if(KEY == 0)
    {
      unsigned int a = 550;
      while(a--);//延遲消抖
      if(KEY == 0)//再次檢測...
      {
        while(!KEY){}//檢測按鍵是否松開
        LED = !LED;//LED狀態(tài)取反
      }
    }
  }
}

編譯并且上傳程序,測試

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

    關(guān)注

    145

    文章

    3674

    瀏覽量

    126262
  • 單片機
    +關(guān)注

    關(guān)注

    6071

    文章

    45265

    瀏覽量

    660749
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1602

    瀏覽量

    110774
  • C51單片機
    +關(guān)注

    關(guān)注

    12

    文章

    164

    瀏覽量

    35951
  • 獨立按鍵
    +關(guān)注

    關(guān)注

    1

    文章

    45

    瀏覽量

    11968
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    學(xué)習(xí)C51單片機按鍵移位

    今天開始學(xué)習(xí)C51單片機按鍵移位實驗實驗所用的是LED和獨立按鍵首先講光盤給的案例代碼給出
    發(fā)表于 12-01 06:19

    C51單片機實現(xiàn)獨立按鍵點亮LED燈

    :stc-isp-15xx-v6.85H.exe驅(qū)動:ch341ser(適用于win10操作系統(tǒng))實驗部分1、C51單片機實現(xiàn)流水燈實驗2、美化你的流水燈(自加)3、C51單片機實現(xiàn)蜂
    發(fā)表于 12-13 06:37

    如何利用C51單片機去實現(xiàn)一種獨立按鍵點亮LED燈的設(shè)計呢

    如何利用C51單片機去實現(xiàn)一種獨立按鍵點亮LED燈的設(shè)計呢?其程序代碼該怎樣去實現(xiàn)呢?
    發(fā)表于 01-24 07:42

    單片機C51編程規(guī)范

    單片機C51編程規(guī)范 1單片機C51編程規(guī)范- 前言   為了提高源程序的質(zhì)量和可維護性,從而最終提高軟件產(chǎn)品生產(chǎn)力,特編寫此規(guī)范。
    發(fā)表于 01-14 21:03 ?2775次閱讀

    單片機基礎(chǔ)知識C51

    單片機基礎(chǔ)知識C51版,學(xué)習(xí)單片機的基礎(chǔ)知識。包括單片機的簡介,單片機的程序如何寫,單片機的應(yīng)用
    發(fā)表于 11-18 16:48 ?0次下載

    獨立按鍵依次輸入數(shù)據(jù)

    獨立按鍵依次輸入數(shù)據(jù) C51單片機源碼,KEIL源文件,C語言編寫
    發(fā)表于 06-20 16:36 ?17次下載

    c51單片機溫測

    電子發(fā)燒友網(wǎng)站提供《c51單片機溫測.docx》資料免費下載
    發(fā)表于 05-26 08:00 ?21次下載

    51單片機獨立按鍵程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是51單片機獨立按鍵程序免費下載。
    發(fā)表于 06-20 17:43 ?7次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>獨立</b><b class='flag-5'>按鍵</b>程序免費下載

    C51單片機流水燈C代碼

    C51單片機流水燈C代碼
    發(fā)表于 11-05 15:20 ?34次下載
    <b class='flag-5'>C51</b><b class='flag-5'>單片機</b>流水燈<b class='flag-5'>C</b>代碼

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

    單片機獨立按鍵使用程序 (51單片機獨立按鍵
    發(fā)表于 11-11 18:36 ?108次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>按鍵</b>使用程序 (<b class='flag-5'>51</b><b class='flag-5'>單片機</b>)

    C51單片機學(xué)習(xí)筆記(三)——按鍵對燈、蜂鳴器等器件的控制

    C51單片機學(xué)習(xí)筆記(三)——按鍵對燈、蜂鳴器等器件的控制文章目錄C51單片機學(xué)習(xí)筆記(三)——按鍵
    發(fā)表于 11-14 13:21 ?25次下載
    <b class='flag-5'>C51</b><b class='flag-5'>單片機</b>學(xué)習(xí)筆記(三)——<b class='flag-5'>按鍵</b>對燈、蜂鳴器等器件的控制

    51單片機(V51)———獨立按鍵、4x4矩陣按鍵

    51單片機(V51)———獨立按鍵、4x4矩陣按鍵
    發(fā)表于 11-16 17:36 ?26次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>(V<b class='flag-5'>51</b>)———<b class='flag-5'>獨立</b><b class='flag-5'>按鍵</b>、4x4矩陣<b class='flag-5'>按鍵</b>

    C51單片機C52單片機內(nèi)部的資源區(qū)別

    C52單片機可以理解為是C51單片機的增強版? 兩個方面有差異,存儲空間和定時器計數(shù)器方面有區(qū)別 ○ C52
    發(fā)表于 11-19 10:36 ?20次下載
    <b class='flag-5'>C51</b><b class='flag-5'>單片機</b>與<b class='flag-5'>C</b>52<b class='flag-5'>單片機</b>內(nèi)部的資源區(qū)別

    基于89C51單片機的8位端口檢測8獨立按鍵源程序

    基于89C51單片機的8位端口檢測8獨立按鍵源程序
    發(fā)表于 05-16 10:49 ?2次下載

    基于89C51單片機獨立按鍵依次輸入數(shù)據(jù)源程序

    基于89C51單片機獨立按鍵依次輸入數(shù)據(jù)源程序
    發(fā)表于 05-16 09:12 ?3次下載