chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

多個按鍵控制數(shù)碼管顯示數(shù)字

CHANBAEK ? 來源:狂錘硬件 ? 作者:顧 ? 2023-06-28 11:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

寫代碼思路

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

01.原理圖

圖片

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

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

02.按鍵掃描函數(shù)

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

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

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

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

03.數(shù)碼管顯示函數(shù)

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

//********數(shù)碼管顯示函數(shù)
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.延遲函數(shù)

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

那么循環(huán)100次就是1ms。

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

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

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

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

05.主函數(shù)

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

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

06.結果展示

未上電時

圖片

按下第一個鍵

圖片

按下第六個鍵

圖片

按下最后一個鍵

圖片

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

    關注

    1335

    文章

    6418

    瀏覽量

    243337
  • 數(shù)碼管
    +關注

    關注

    32

    文章

    1889

    瀏覽量

    93394
  • 函數(shù)
    +關注

    關注

    3

    文章

    4400

    瀏覽量

    66365
  • 按鍵
    +關注

    關注

    4

    文章

    228

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    按鍵控制各位數(shù)碼管顯示不同數(shù)字

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

    按鍵控制數(shù)碼管顯示

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

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

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

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

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

    按鍵控制單個數(shù)碼管顯示

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

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

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

    fpga按鍵控制數(shù)碼管顯示

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

    由FPGA DIY開發(fā)板實現(xiàn)消抖按鍵控制數(shù)碼管顯示0—9

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

    利用FPGA_DIY開發(fā)板實現(xiàn)按鍵控制數(shù)碼管

    十八筆畫的 FPGA_DIY 按鍵控制數(shù)碼管
    的頭像 發(fā)表于 06-20 02:30 ?6622次閱讀
    利用FPGA_DIY開發(fā)板實現(xiàn)<b class='flag-5'>按鍵控制</b><b class='flag-5'>數(shù)碼管</b>

    FPGA DIY 按鍵控制數(shù)碼管顯示

    asean的 FPGA DIY 按鍵控制數(shù)碼管顯示的視頻
    的頭像 發(fā)表于 06-20 00:37 ?8327次閱讀

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

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

    使用單片機實現(xiàn)按鍵控制單個數(shù)碼管顯示的C語言實例免費下載

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

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

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

    STM32F103的按鍵控制數(shù)碼管加減仿真

    STM32F103的按鍵控制數(shù)碼管加減仿真
    發(fā)表于 06-21 09:12 ?102次下載

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

    基于89C51單片機的按鍵控制單個數(shù)碼管顯示
    發(fā)表于 05-12 16:53 ?3次下載