在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

一個按鍵控制多個LED燈

CHANBAEK ? 來源:頭條號電子秘探 ? 作者:頭條號電子秘探 ? 2023-03-24 15:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

通過四個基礎練習學習按鍵開關

1.第一個按鍵:按下一次,LED1亮,再次按下LED1滅

2.第二個按鍵:按下一次,LED1亮,按下第二次LED2亮..... 按下第四次LED4亮,按下第五次,LED1亮,依次往復。

3.第三個按鍵:按下所有LED滅

4.第四個按鍵:按下所有LED都亮了

四個基礎練習的效果動圖

按鍵抖動的原因和危害,軟件消抖

按鍵開關通常為機械式開關,因為機械觸點有彈性。 在閉合和斷開的瞬間都會伴隨彈性抖動。 抖動時間: 一般為5ms~10ms

按鍵的抖動對于人類來說是感覺不到的,但對單片機來說,是一個很“漫長”的過程,因為單片機處理的速度在“微秒”級,而按鍵抖動的時間至少在“毫秒”級

軟件消抖的方法是不斷檢測按鍵值,直到按鍵值穩定。

實現方法:假設未按鍵時輸入為1,按鍵后輸入為0,抖動時不確定。 可以做以下檢測:檢測到按鍵輸入為0之后,延時5ms~10ms,再次檢測,如果按鍵還為0,那么就認為有按鍵輸入。 延時的5ms~10ms恰好避開了抖動期。

if(0==BUTTON1)//判斷是否有按鍵按下
        {   
            delay(10); //延時一段時間(10ms)去除前沿抖動
            if(0==BUTTON1)//再次確認是否有按鍵按下
            {
                while(0==BUTTON1);//按鍵抬起繼續往下執行,沒有則繼續等待
                LED1 = ~LED1;   //按下一次,LED1亮,再次按下LED1滅 
        }

截圖20230301181746.png

一個按鍵控制多個LED燈

按下一次,LED1亮,按下第二次LED2亮..... 按下第四次LED4亮,按下第五次,LED1亮,依次往復。 利用C語言的取模運算符,1%4 = 1 , 2%4=2 , 3%4=3 , 4%4=0 , 5%4=1 , 6%4=2...

//定義全局變量count,a
if(0==BUTTON2)
        {   
            delay(10);//延遲10ms
            if(0==BUTTON2)
            {
                while(!BUTTON2);//按鍵抬起繼續往下執行,沒有則繼續等待
                count++;//每按下BUTTON2按鍵抬起時,變量count加1
               
                a = count%4;
                switch(a)
                {
                    case 1:
                    P0= 0xfe; //11111110    LED1亮
                    break;
                    case 2:
                    P0= 0xfd;//11111101    LED2亮
                    break;
                    case 3:
                    P0= 0xfb; //11111011   LED3亮
                    break;
                    case 0:
                    P0=0xf7;//11110111    LED4亮
                    break;
                    default :
                    P0=0xff;
                    break;
                }
           
            }   
        }

按下4個LED燈全熄滅

P0口為高電平時LED熄滅,低電平全亮

if(0==BUTTON3)
        {   
            delay(10);
            if(0==BUTTON3)
            {
                while(0==BUTTON3);
                P0 = 0xff;  //P0 = 0x00 全亮
            }
        }

把四個練習封裝成函數

void main()
{ 
    while(1)
    {
          task1();
          task2();
          task3();
          task4();
    } 
}

補充

#define u16 unsigned int 等效于typedef unsigned int u16;

#define u8 unsigned char 等效于typedef unsigned char u8;

為什么要這樣定義,這樣寫非常直觀,不用擔心平臺的不同可移植性好,它的字節數一看就知道,u16是16位2個字節,

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    242

    文章

    23817

    瀏覽量

    673347
  • 單片機
    +關注

    關注

    6067

    文章

    44969

    瀏覽量

    649754
  • 抖動
    +關注

    關注

    1

    文章

    69

    瀏覽量

    19137
  • 函數
    +關注

    關注

    3

    文章

    4379

    瀏覽量

    64728
  • 按鍵開關
    +關注

    關注

    2

    文章

    39

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STM32按鍵控制LED的亮滅

    使用按鍵控制LED的亮滅,按鍵按下時LED亮起,按鍵
    的頭像 發表于 12-11 14:19 ?4832次閱讀
    STM32<b class='flag-5'>按鍵控制</b><b class='flag-5'>LED</b>的亮滅

    單個按鍵控制LED亮滅

    單個按鍵控制LED亮滅PCB打樣找華強 http://www.hqpcb.com 樣板2天出貨
    發表于 07-28 16:24

    實現按鍵控制LED

    本文說明項目功能實現按鍵控制LED在兩
    發表于 08-17 09:00

    獨立按鍵按鍵控制led學習過程記錄

    藍橋杯單片機學習過程記錄(二)獨立按鍵按鍵控制led按鍵控制流水燈按鍵控制
    發表于 01-06 08:16

    Stduino Nano按鍵控制LED

    關鍵詞:stm32 小藍板 STM32F103C8T6 Stduino IDE Stduino Nano 按鍵控制LED通過Stduino IDE 開發STM32小藍板,按鍵控制板載
    發表于 01-10 07:35

    如何實現按鍵控制LED

    編程的要點是什么?如何實現按鍵控制LED
    發表于 01-26 08:04

    標記的用法,用按鍵控制1LED的亮滅,按鍵去抖

    標記的用法,用按鍵控制1LED的亮滅,按鍵
    發表于 08-09 10:39 ?2.4w次閱讀
    標記的用法,用<b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>按鍵控制</b>1<b class='flag-5'>個</b><b class='flag-5'>LED</b><b class='flag-5'>燈</b>的亮滅,<b class='flag-5'>按鍵</b>去抖

    按鍵控制花樣【匯編版】

    按鍵控制花樣【匯編版】按鍵控制花樣【匯編版】按鍵控制花樣【匯編版】
    發表于 12-29 11:04 ?0次下載

    51單片機通過按鍵控制LED閃爍

    51單片機通過按鍵控制LED閃爍
    發表于 11-11 18:36 ?122次下載
    51單片機通過<b class='flag-5'>按鍵控制</b><b class='flag-5'>LED</b><b class='flag-5'>燈</b>閃爍

    按鍵控制LED

    基于51單片機仿真實現按鍵控制LED排的亮滅,壓縮包中有程序和電路圖。
    發表于 07-04 15:25 ?3次下載

    設計分享|74LS148實現按鍵控制LED

    74LS148實現按鍵控制LED
    的頭像 發表于 01-04 09:21 ?4341次閱讀

    如何用按鍵控制不同的LED流轉模式?

    實現的任務就是用LCD做一個菜單,用按鍵控制不同的LED流轉模式。
    發表于 07-26 16:53 ?846次閱讀
    如何用<b class='flag-5'>按鍵控制</b>不同的<b class='flag-5'>LED</b>流轉模式?

    基于單片機按鍵控制多個LED

    按鍵控制8位LED
    的頭像 發表于 08-16 09:35 ?2428次閱讀

    單片機獨立按鍵控制led程序

    單片機獨立按鍵控制LED程序 單片機獨立按鍵控制LED程序是
    的頭像 發表于 09-02 17:05 ?5308次閱讀

    stm32按鍵控制led亮滅

    stm32按鍵控制led亮滅? 在嵌入式系統中,硬件按鍵常常被用作開關輸入,控制LED
    的頭像 發表于 09-02 17:05 ?1.3w次閱讀
    主站蜘蛛池模板: 免费国产成人α片 | 456主播喷水在线观看 | 在线视频影院 | 五月天丁香婷婷综合 | 精品国产麻豆免费人成网站 | 一级视频在线免费观看 | 亚洲a人片在线观看网址 | 天天干夜夜爽 | 国产20岁美女一级毛片 | 色六月丁香 | 免费看国产黄色片 | 成人国产永久福利看片 | 黄色视屏免费在线观看 | 绝色村妇的泛滥春情 | 手机在线一区二区三区 | 免费澳门一级毛片 | 天天干人人| 中文字幕不卡在线播放 | 狠狠的日视频 | 久久国模| 午夜视频黄色 | 97综合色| 女的扒开尿口让男人桶 | 国模吧一区二区三区精品视频 | 天天干夜夜爽 | 久久国产精品岛国搬运工 | 性生交大片免费一级 | 夜夜春色 | 奇米影视亚洲狠狠色777不卡 | 国产成人v爽在线免播放观看 | 欧美色图首页 | 影院成人区精品一区二区婷婷丽春院影视 | 在线免费看视频 | 国产午夜人做人视频羞羞 | 四虎新地址 | 免费免费啪视频视频观看 | 日本三级电影在线观看 | 男人的天堂色偷偷 | 亚洲一区二区三区免费观看 | h视频在线免费 | 免费看av的网址 |