色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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.結果展示

未上電時

圖片

按下第一個鍵

圖片

按下第六個鍵

圖片

按下最后一個鍵

圖片

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

    關注

    1298

    文章

    6344

    瀏覽量

    234162
  • 數碼管
    +關注

    關注

    32

    文章

    1882

    瀏覽量

    91146
  • 函數
    +關注

    關注

    3

    文章

    4332

    瀏覽量

    62653
  • 按鍵
    +關注

    關注

    4

    文章

    223

    瀏覽量

    57606
收藏 人收藏

    評論

    相關推薦

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

    用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 ?4235次閱讀

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

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

    FPGA DIY 按鍵控制數碼管顯示

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

    使用單片機實現單只按鍵控制單只數碼管滾動顯示的程序和電路圖

    本文檔的主要內容詳細介紹的是使用單片機實現單只按鍵控制單只數碼管滾動顯示的程序和電路圖。
    發表于 06-02 17:28 ?3次下載
    使用單片機實現單只<b class='flag-5'>按鍵控制</b>單只<b class='flag-5'>數碼管</b>滾動<b class='flag-5'>顯示</b>的程序和電路圖

    通過按鍵控制數碼管顯示當前數控增益的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語言程序免費下載。
    發表于 03-16 14:39 ?66次下載

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

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

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

    基于89C51單片機的按鍵控制單個數碼管顯示
    發表于 05-12 16:53 ?3次下載
    主站蜘蛛池模板: 法国剧丝袜情版h级在线电影| 无码人妻丰满熟妇区五十路久久| 国产精品久久久久久久久爆乳| 啊灬啊灬啊灬快高潮视频| xxx成熟xxx| 国产精品伦理一二三区伦理 | 男女久久久国产一区二区三区| 欧美黑人经典片免费观看| 色欲AV蜜臀AV在线观看麻豆| 亚洲成人免费观看| 2021国产精品久久久久精品免费网| caoporen超碰在线视频| 果冻传媒2021精品影视| 美女激清床上戏大全| 呻吟翘臀后进爆白浆| 中文字幕视频免费在线观看| www精品一区二区三区四区| 女人精69xxxxx舒心| 邪恶肉肉全彩色无遮盖| 99精品视频在线观看re| 国产精品路线1路线2路线| 午夜噜噜噜私人影院在线播放| 2019伊人查蕉在线观看| 国产精品高清视频在线| 我要色导航| 国产一区精选播放022| 青柠在线观看免费高清电视剧荣耀 | 轻轻cao| 国产精品大全国产精品| 欧美日韩亚洲综合2019| 成人免费公开视频| 欧美另类极品videosbest| yellow视频免费观看| 手机在线国产视频| 好想被狂躁A片免费久99| 少妇厨房愉情理9伦片视频| 国产美女视频一区二区二三区| 色久久久综合88一本道| adc年龄确认大驾光临入口| 九九热只有精品| 午夜福利理论片高清在线|