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

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

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

3天內不再提示

多個按鍵控制數碼管顯示數字

CHANBAEK ? 來源:狂錘硬件 ? 作者:顧 ? 2023-06-28 11:31 ? 次閱讀

寫代碼思路

按照之前的文章關于數碼管說到的線與,在此之上我們將一個按鍵拓展為多個按鍵,對數碼管進行控制,就需要按鍵掃描函數,數碼管顯示函數,再加上個主函數和延遲函數就可以搞定。

01.原理圖

圖片

元器件為:7SEG-MPX6-CC、80C51、BUTTON

將原理圖畫好后,根據元件的連接和元件特性去寫代碼。

02.按鍵掃描函數

當我們按鍵按下時,需要判斷按鍵是否按下,如果按下了,我們需要給一個鍵標志,判斷它已經按下了。

按鍵掃描使用的方法為反轉法,除此方法外,還有掃描法。

或者你也可以先固定列,再判斷行是否按下,一行行去判斷,如果不在此列,則繼續下一列,同樣判斷每一行去確定按鍵是哪一個被按下了。【這個方法有空我會嘗試寫出來】

//********按鍵掃描函數
void Key_scan(){
  if(P1!=0xf0)
  {  
    Delay(10); //延遲10ms
    if(P1!=0xf0)
    {
        key_value = P1;
        P1 = 0x0f;
        key_value += P1;
        key_flag = 1;
        Display();  //數碼管顯示函數
        P1 = 0xf0;
    }
  }
  else 
  {
    key_flag = 0;
  }
 }

03.數碼管顯示函數

因為key_value是一個全局變量,所以并不需要傳參給Display函數,直接拿去判斷就可以了。

//********數碼管顯示函數
void  Display(){
  if(key_value==key_pad[0])
    P2 = Table_cc[0];
  else   if(key_value==key_pad[1])
    P2 = Table_cc[1];
  else   if(key_value==key_pad[2])
    P2 = Table_cc[2];  
  else   if(key_value==key_pad[3])
    P2 = Table_cc[3];
  else   if(key_value==key_pad[4])
    P2 = Table_cc[4];
  else   if(key_value==key_pad[5])
    P2 = Table_cc[5];
  else   if(key_value==key_pad[6])
    P2 = Table_cc[6];
  else   if(key_value==key_pad[7])
    P2 = Table_cc[7];
  else   if(key_value==key_pad[8])
    P2 = Table_cc[8];
  else   if(key_value==key_pad[9])
    P2 = Table_cc[9];
  else   if(key_value==key_pad[10])
    P2 = Table_cc[10];
  else   if(key_value==key_pad[11])
    P2 = Table_cc[11];
  else   if(key_value==key_pad[12])
    P2 = Table_cc[12];
  else   if(key_value==key_pad[13])
    P2 = Table_cc[13];
  else   if(key_value==key_pad[14])
    P2 = Table_cc[14];
  else   if(key_value==key_pad[15])
    P2 = Table_cc[15];
}

04.延遲函數

假設運行一行代碼,是10us

那么循環100次就是1ms。

在延遲函數中,我加入了一個參數,為了就是能得到任何我想要延遲的時間。

例如:當k被賦為1時,我們for循環總共循環了100次,延時時間time = 100 * 10 =1000us = 1ms。

PS:如果需要實際的執行時間,還需要去debug一下,去算出一行代碼執行時間是多少。

//********延遲函數             
void Delay(u16 k){
  u16 i,j;
  for(i = 0; i < k ; i++)
    for(j = 0; j< 100  ;j++);
}

05.主函數

因為我們將實現的功能分成了各個函數去寫,所以我們的主函數很簡單,初始化加上我們需要調用的函數,就可以實現我們想要的功能了。

void main(){
  //初始化引腳
  P1 = 0xf0;
  P2 = 0x00;
  P3 = 0x00;
  Key_scan();
}

06.結果展示

未上電時

圖片

按下第一個鍵

圖片

按下第六個鍵

圖片

按下最后一個鍵

圖片

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

    關注

    1299

    文章

    6350

    瀏覽量

    234658
  • 數碼管
    +關注

    關注

    32

    文章

    1883

    瀏覽量

    91282
  • 函數
    +關注

    關注

    3

    文章

    4343

    瀏覽量

    62806
  • 按鍵
    +關注

    關注

    4

    文章

    223

    瀏覽量

    57624
收藏 人收藏

    評論

    相關推薦

    按鍵控制各位數碼管顯示不同數字

    用4*4矩陣鍵盤掃描是否有按鍵按下,當有按鍵按下第一位數碼管顯示按下的那個數字,接著再按下按鍵
    發表于 07-19 10:24

    按鍵控制數碼管顯示

    按鍵s4接在P3.3口,按鍵按下,數碼管顯示數字30。求助
    發表于 06-25 00:47

    請問CH579如何配置一個按鍵,使用按鍵控制數碼管顯示數字加減?

    請問CH579如何配置一個按鍵,使用按鍵控制數碼管顯示數字加減。。。
    發表于 08-11 07:02

    單片機c語言按鍵控制LED以及數碼管

    單片機 c語言 按鍵控制LED 以及數碼管 熟練 掌握 按鍵 應用原理 以及消斗
    發表于 02-16 17:57 ?24次下載

    按鍵控制單個數碼管顯示

    19-按鍵控制單個數碼管顯示----------51單片機源程序 用keil直接打開
    發表于 06-16 15:36 ?34次下載

    獨立按鍵控制數碼管的加減資料下載

    電子發燒友網站提供《獨立按鍵控制數碼管的加減資料下載.rar》資料免費下載
    發表于 05-26 08:00 ?22次下載

    fpga按鍵控制數碼管顯示

    本文主要介紹了fpga按鍵控制數碼管顯示程序設計。數碼管是由多個發光二極封裝在一起組成“8”字
    發表于 01-16 16:19 ?1.7w次閱讀
    fpga<b class='flag-5'>按鍵控制</b><b class='flag-5'>數碼管</b><b class='flag-5'>顯示</b>

    由FPGA DIY開發板實現消抖按鍵控制數碼管顯示0—9

    wang1113 的消抖按鍵控制數碼管顯示0—9視頻。
    的頭像 發表于 06-22 09:57 ?4265次閱讀

    利用FPGA_DIY開發板實現按鍵控制數碼管

    十八筆畫的 FPGA_DIY 按鍵控制數碼管
    的頭像 發表于 06-20 02:30 ?6092次閱讀
    利用FPGA_DIY開發板實現<b class='flag-5'>按鍵控制</b><b class='flag-5'>數碼管</b>

    FPGA DIY 按鍵控制數碼管顯示

    asean的 FPGA DIY 按鍵控制數碼管顯示的視頻
    的頭像 發表于 06-20 00:37 ?7851次閱讀

    通過按鍵控制數碼管顯示當前數控增益的PCB源文件免費下載

    本文檔的主要內容詳細介紹的是通過按鍵控制數碼管顯示當前數控增益的PCB源文件免費下載。
    發表于 09-07 08:00 ?1次下載
    通過<b class='flag-5'>按鍵控制</b><b class='flag-5'>數碼管</b><b class='flag-5'>顯示</b>當前數控增益的PCB源文件免費下載

    使用單片機實現按鍵控制單個數碼管顯示的C語言實例免費下載

    本文檔的主要內容詳細介紹的是使用單片機實現按鍵控制單個數碼管顯示的C語言實例免費下載。
    發表于 11-12 17:33 ?31次下載
    使用單片機實現<b class='flag-5'>按鍵控制單個數碼管</b><b class='flag-5'>顯示</b>的C語言實例免費下載

    使用單片機實現按鍵控制數碼管閃爍增減顯示的C語言程序免費下載

    本文檔的主要內容詳細介紹的是使用單片機實現按鍵控制數碼管閃爍增減顯示的C語言程序免費下載。
    發表于 03-16 14:39 ?66次下載

    STM32F103的按鍵控制數碼管加減仿真

    STM32F103的按鍵控制數碼管加減仿真
    發表于 06-21 09:12 ?101次下載

    基于89C51單片機的按鍵控制單個數碼管顯示

    基于89C51單片機的按鍵控制單個數碼管顯示
    發表于 05-12 16:53 ?3次下載
    主站蜘蛛池模板: 日本一级高清不卡视频在线| 黄色污网站在线观看| 狠狠干夜夜操| 377p亚洲欧洲日本大胆色噜噜| 欧美一欧美一区二三区性| 青楼社区51在线视频视频| 噜噜影院无毒不卡| 色噜噜噜| 伊人婷婷色香五月综合缴激情| 网站国产| 亚洲欧美视频在线播放| 欧美午夜剧场| 中文成人在线| 黑色丝袜在丝袜福利国产| 亚洲欧美在线一区二区| 欧美一卡2卡三卡四卡五卡 | 久久这里只有精品免费视频| 日韩三级毛片| 五月激情综合婷婷| 日韩三级免费| 国产一区二区在线不卡| 夜夜操夜夜爱| 萝控喷水视频| 曰本aaaaa毛片午夜网站| 7086bt伙计 福利一区| 欧美不卡一区| 五月婷婷之婷婷| 无遮挡一级毛片| 日本黄色大片在线观看| 国产综合色精品一区二区三区| 夜夜视频| 亚洲综合校园春色| 亚洲444444在线观看| 美女写真mm爽爽爽| 男男gay污小黄文| 四虎4hu| 日韩一级欧美一级| 国产亚洲人成a在线v网站| 国久久| 欧美特黄一免在线观看| abc119影院成人免费看|