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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

數碼管的靜態、動態顯示原理及編程方法(1)

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

掃碼添加小助手

加入工程師交流群

“掌握數碼管的靜態、動態顯示原理及編程方法。--不是綜合案例”

實現數碼管的靜態及動態顯示:

效果1(靜態顯示):6位數碼管循環顯示數字0~F;

效果2(動態態顯示):6位數碼管同時顯示數字1~6;

效果3(按鍵檢測):用中斷或查詢方式進行按鍵檢測,實現數碼管顯示值的加減,最大值為65535;

01電路圖

我們的電路圖如下:

圖片

02效果

代碼如下:

/************
時間:2023/04/26
作者:顧
效果1(靜態顯示):6位數碼管循環顯示數字0~F;
**************/
#include < reg51.h >


//*****聲明函數和變量、引腳的定義
#define u8  unsigned char
#define u16 unsigned int



u8 Table_cc[]={
            0x3f,0x06,0x5b,0x4f,
            0x66,0x6d,0x7d,0x07,
            0x7f,0x6f,0x77,0x7c,
            0x39,0x5e,0x79,0x71
};


/*****延時函數********************
時間:2023年4月26日
功能:延時110*10 = 1100μs = 1.1ms
**********************************/
void Delay(u16 k){
  u16 i,j;
  for(i=0;i< k;i++)
    for(j=0;j< 1100;j++);
}




/*****顯示函數****************
時間:2023年4月26日
功能:
      數碼管顯示函數
********************************/
void Display(u16 n){
  //顯示秒個位
  P1 = 0XC0;   //1100 0000
  P2 = Table_cc[n];
  Delay(100);  
}




/*****主函數****************
時間:2023年4月26日
********************************/
void main(){
  u8 i;
  while(1){
    for(i=0;i< 16;i++)
    {
      Display(i);
    }
  }
}

03效果2

代碼如下:

方法一

/************
時間:2023/04/26
作者:顧
效果2(動態態顯示):6位數碼管同時顯示數字1~6;(30分)
**************/
#include < reg51.h >


//*****聲明函數和變量、引腳的定義
#define u8  unsigned char
#define u16 unsigned int

u8 t[6]= {17,17,17,17,17,17};


u8 Table_cc[]={
            0x3f,0x06,0x5b,0x4f,
            0x66,0x6d,0x7d,0x07,
            0x7f,0x6f,0x77,0x7c,
            0x39,0x5e,0x79,0x71,
            0x00
};


/*****延時函數********************
時間:2023年4月26日
功能:延時110*10 = 1100μs = 1.1ms
**********************************/
void Delay(u16 k){
  u16 i,j;
  for(i=0;i< k;i++)
    for(j=0;j< 110;j++);
}




/*****顯示函數****************
時間:2023年4月26日
功能:
      數碼管顯示函數
********************************/
void Display(u8 h,u8 m,u8 s){

  P1 = 0Xff;
  P2 = Table_cc[s%10];
  P1 = 0Xdf;       // 1101 1111
  Delay(10);  



  P1 = 0Xff;
  P2 = Table_cc[s/10];
  P1 = 0Xef;       // 1110 1111
  Delay(10);  



  P1 = 0Xff;
  P2 = Table_cc[m%10];
  P1 = 0Xf7;       // 1111 0111
  Delay(10); 



  P1 = 0Xff;
  P2 = Table_cc[m/10];
  P1 = 0Xfb;       // 1111 1011
  Delay(10);




  P1 = 0Xff;
  P2 = Table_cc[h%10];
  P1 = 0Xfd;       // 1111 1101
  Delay(10);   



  P1 = 0Xff;
  P2 = Table_cc[h/10];
  P1 = 0Xfe;       // 1111 1110
  Delay(10);
}




/*****主函數****************
時間:2023年4月26日
********************************/
void main(){


  while(1){
      Display(12,34,56);
  }
}

方法二:

/************
時間:2023/04/26
作者:顧
效果2(動態態顯示):6位數碼管同時顯示數字1~6;(30分)
**************/
#include < reg51.h >


//*****聲明函數和變量、引腳的定義
#define u8  unsigned char
#define u16 unsigned int
#define u32 unsigned long


u8 t[6]= {0,0,0,0,0,0};
u32 num = 123456;


u8 Table_cc[]={
            0x3f,0x06,0x5b,0x4f,
            0x66,0x6d,0x7d,0x07,
            0x7f,0x6f,0x77,0x7c,
            0x39,0x5e,0x79,0x71,
};


/*****延時函數********************
時間:2023年4月26日
功能:延時110*10 = 1100μs = 1.1ms
**********************************/
void Delay(u16 k){
  u16 i,j;
  for(i=0;i< k;i++)
    for(j=0;j< 110;j++);
}




/*****顯示函數****************
時間:2023年4月26日
功能:
      數碼管顯示函數
********************************/
void Display(u32 n){

  t[0] = n/100000;
  t[1] = n%100000/10000;
  t[2] = n%10000/1000;
  t[3] = n%1000/100;
  t[4] = n%100/10;
  t[5] = n%10;

  P1 = 0Xff;
  P2 = Table_cc[t[0]];
  P1 = 0Xfe;       // 1111 1110
  Delay(10);

  P1 = 0Xff;
  P2 = Table_cc[t[1]];
  P1 = 0Xfd;       // 1111 1101
  Delay(10);  

  P1 = 0Xff;
  P2 = Table_cc[t[2]];
  P1 = 0Xfb;       // 1111 1011
  Delay(10);

  P1 = 0Xff;
  P2 = Table_cc[t[3]];
  P1 = 0Xf7;       // 1111 0111
  Delay(10); 

  P1 = 0Xff;
  P2 = Table_cc[t[4]];
  P1 = 0Xef;       // 1110 1111
  Delay(10);  

  P1 = 0Xff;
  P2 = Table_cc[t[5]];
  P1 = 0Xdf;       // 1101 1111
  Delay(10);  


}




/*****主函數****************
時間:2023年4月26日
********************************/
void main(){


  while(1){
      Display(num);
  }
}

04效果3

/************
時間:2023/04/26
作者:顧
效果2(動態態顯示):6位數碼管同時顯示數字1~6;(30分)
**************/


#include < reg51.h >


//*****聲明函數和變量、引腳的定義
#define u8  unsigned char
#define u16 unsigned int

#define Key1Press 1
#define Key2Press 2

sbit ADD = P3^0;
sbit SUB = P3^1;


bit sec;  //秒標志
bit key_mark=0; //鍵標志


u8 cnt,state;
u8 t[6]= {0,0,0,0,0,0};
u16 num=65534;


u8 Table_cc[]={
            0x3f,0x06,0x5b,0x4f,
            0x66,0x6d,0x7d,0x07,
            0x7f,0x6f,0x77,0x7c,
            0x39,0x5e,0x79,0x71
};


/*****延時函數********************
時間:2023年4月26日
功能:延時110*10 = 1100μs = 1.1ms
**********************************/
void Delay(u16 k){
  u16 i,j;
  for(i=0;i< k;i++)
    for(j=0;j< 110;j++);
}




/*****按鍵函數****************
時間:2023年4月26日
功能:
    Key1Press 1 SET 設置鍵 ********
    Key2Press 2 ADD 數字加 ********
    Key3Press 3 SUB 數字減 ********
********************************/
void Key(u8 K)
{  
  static u8  KeyPress;
  KeyPress = K;
  if(KeyPress == 1 )
  {
     num = num+10;
     if(num > 65535)
        num=0;                   
   }
   else if(KeyPress == 2)
   {
      if(num  == 0)
          num=65535;
         //num--;
         num = num-10;
     }
}
/*****按鍵掃描函數****************
時間:2023年4月26日
功能:函數返回鍵值
【判斷按鍵是否按下,如果按下
則key_mark置1,說明按鍵已經按下】 
********************************/
u8 Key_read(){
  if(!ADD)
  {
    Delay(10);
    if(!ADD && key_mark == 0 )
    {
      key_mark = 1;
      return Key1Press;
    }
  }
  else if(!SUB)
  {
    Delay(10);
    if(!SUB && key_mark == 0 )
    {
      key_mark = 1;
      return Key2Press;
    }
  }
   else if(ADD && SUB )
     {
         key_mark = 0;
     }
    return 0;
}


/*****定時器函數****************
時間:2023年4月26日
功能:實現1s定時
********************************/
void InitT0(){
  TMOD = 0x01;
  IE = 0x82;
  TH0 = -50000 > > 8;
  TL0 = -50000;
  TR0 = 1;

}


void T0ser() interrupt 1{
  TH0 = -50000 >> 8;
  TL0 = -50000 ;
  if(++cnt == 20)
  {
     sec = 1;
     cnt = 0;
  }  
}


/*****走時函數****************
時間:2023年4月26日
功能:
      時間正常走時
********************************/
u16 TimeGo(){
    if(sec)
    {
        sec = 0;
        if(++num > 65535)
      {
          num = 0;
        }
      }
    return num;
}


/*****顯示函數****************
時間:2023年4月26日
功能:
      數碼管顯示函數
********************************/
void Display(u16 n){

  t[0] = n/100000;
  t[1] = n%100000/10000 ;
  t[2] = n%10000/1000;
  t[3] = n%1000/100;
  t[4] = n%100/10;
  t[5] = n%10;

  P1 = 0Xff;
  P2 = Table_cc[t[0]];
  P1 = 0Xfe;       // 1111 1110
  Delay(10);

  P1 = 0Xff;
  P2 = Table_cc[t[1]];
  P1 = 0Xfd;       // 1111 1101
  Delay(10);  

  P1 = 0Xff;
  P2 = Table_cc[t[2]];
  P1 = 0Xfb;       // 1111 1011
  Delay(10);

  P1 = 0Xff;
  P2 = Table_cc[t[3]];
  P1 = 0Xf7;       // 1111 0111
  Delay(10); 

  P1 = 0Xff;
  P2 = Table_cc[t[4]];
  P1 = 0Xef;       // 1110 1111
  Delay(10);  

  P1 = 0Xff;
  P2 = Table_cc[t[5]];
  P1 = 0Xdf;       // 1101 1111
  Delay(10);  


}






/*****主函數****************
時間:2023年4月25日
********************************/
void main(){
  InitT0();
  while(1){
      Key(Key_read()) ;
//      TimeGo(num);
      Display(TimeGo());
  }
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電路圖
    +關注

    關注

    10417

    文章

    10738

    瀏覽量

    543706
  • 數碼管
    +關注

    關注

    32

    文章

    1889

    瀏覽量

    92694
  • 中斷
    +關注

    關注

    5

    文章

    906

    瀏覽量

    42857
  • 動態顯示
    +關注

    關注

    0

    文章

    40

    瀏覽量

    11883
  • 靜態顯示
    +關注

    關注

    0

    文章

    19

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    #51單片機#數碼管靜態動態顯示 精選資料分享

    數碼管靜態顯示動態顯示學習數碼管靜態動態顯示
    發表于 07-14 08:13

    完成數碼管動態顯示方法

    開拓者FPGA開發板上有六個共陽極八段數碼管,本實驗將完成數碼管動態顯示數碼管動態/靜態
    發表于 01-18 10:25

    數碼管靜態顯示動態顯示的實現方法

    數碼管靜態顯示動態顯示數碼管共陽和共陰段選和位選數碼管靜態
    發表于 03-01 07:34

    分享一個基本的數碼管動態顯示案例

    1、分享一個基本的數碼管動態顯示案例數碼管動態顯示原理在開展本章實驗之前,我們需要先了解一下數碼管
    發表于 08-01 15:21

    數碼管動態顯示實驗

    數碼管動態顯示實驗一、實驗目的在實際的單片機系統中,往往需要多位顯示動態顯示是一種最常見的多位顯示方法
    發表于 03-23 10:45 ?1.1w次閱讀

    數碼管動態顯示)【C語言版】

    數碼管動態顯示)【C語言版】數碼管動態顯示)【C語言版】數碼管動態顯示)【C語言版】
    發表于 12-29 15:51 ?0次下載

    MIN數碼管動態顯示

    數碼管動態顯示,MIN數碼管動態顯示,MIN。
    發表于 05-03 10:48 ?11次下載

    數碼管靜態動態顯示和74HC138及點陣的動態顯示詳細資料說明

    本文檔的主要內容詳細介紹的是數碼管靜態動態顯示和74HC138及點陣的動態顯示詳細資料說明。
    發表于 04-12 18:27 ?5次下載
    <b class='flag-5'>數碼管</b>的<b class='flag-5'>靜態</b>與<b class='flag-5'>動態顯示</b>和74HC138及點陣的<b class='flag-5'>動態顯示</b>詳細資料說明

    使用數碼管動態顯示123456的程序免費下載

    本文檔的主要內容詳細介紹的是使用數碼管動態顯示123456的程序免費下載。解釋:數碼管動態顯示,其實就是一個快速的靜態
    發表于 08-07 17:33 ?13次下載
    使用<b class='flag-5'>數碼管</b><b class='flag-5'>動態顯示</b>123456的程序免費下載

    數碼管動態顯示的原理概述

    作用,使人的感覺好像各位數碼管同時都在顯示動態顯示的亮度比靜態顯示要差一些,所以在選擇限流電阻時應略小于
    發表于 11-04 08:00 ?0次下載

    C51單片機學習筆記(五)——數碼管靜態顯示動態顯示

    C51單片機學習筆記(五)——數碼管靜態顯示動態顯示文章目錄C51單片機學習筆記(五)——數碼管
    發表于 11-14 10:21 ?6次下載
    C51單片機學習筆記(五)——<b class='flag-5'>數碼管</b>的<b class='flag-5'>靜態</b><b class='flag-5'>顯示</b>和<b class='flag-5'>動態顯示</b>

    #51單片機#數碼管靜態動態顯示

    數碼管靜態顯示動態顯示學習數碼管靜態動態顯示
    發表于 11-14 19:51 ?20次下載
    #51單片機#<b class='flag-5'>數碼管</b><b class='flag-5'>靜態</b>與<b class='flag-5'>動態顯示</b>

    【51單片機】數碼管靜態顯示動態顯示

    【51單片機】數碼管靜態顯示動態顯示數碼管顯示原理此次以點亮共陰
    發表于 11-17 12:21 ?12次下載
    【51單片機】<b class='flag-5'>數碼管</b>的<b class='flag-5'>靜態</b><b class='flag-5'>顯示</b>和<b class='flag-5'>動態顯示</b>

    單片機AT89C51--6.數碼管顯示(含動態靜態

    單片機AT89C51--6.靜態數碼管顯示1. 數碼管顯示原理2.
    發表于 11-25 14:51 ?23次下載
    單片機AT89C51--6.<b class='flag-5'>數碼管</b><b class='flag-5'>顯示</b>(含<b class='flag-5'>動態</b>,<b class='flag-5'>靜態</b>)

    數碼管靜態動態顯示原理及編程方法(2)

    “掌握數碼管靜態動態顯示原理及編程方法。--綜合案例”
    的頭像 發表于 06-28 11:41 ?2325次閱讀
    <b class='flag-5'>數碼管</b>的<b class='flag-5'>靜態</b>、<b class='flag-5'>動態顯示</b>原理及<b class='flag-5'>編程</b><b class='flag-5'>方法</b>(2)
    主站蜘蛛池模板: 久久有码中文字幕 | 亚洲你我色 | 強姧伦久久久久久久久 | 亚洲欧美一区二区三区久久 | 在线成人精品国产区免费 | 日韩一区二区在线免费观看 | 亚洲福利天堂网福利在线观看 | 国产色婷婷亚洲99麻豆 | 日本久久中文字幕精品 | 4k岛国精品午夜高清在线观看 | 精品国产在天天线在线麻豆 | 国产精品久久久久久人妻精品蜜桃 | 肉动漫无修3D在线观看 | 一本道色播| 69夫妻交友网 | 伦理片92伦理午夜 | 2019一級特黃色毛片免費看 | 天天啪免费视频在线看 | 亚洲免费观看在线视频 | 久久99国产视频 | 亚洲高清在线天堂精品 | 日韩一卡二卡三卡四卡免费观在线 | 皮皮在线精品亚洲 | 美女激清床上戏大全 | 色橹橹欧美在线观看视频高清 | 亚洲精品动漫免费二区 | 大地影院日本韩国电影免费观看 | 祺鑫WRITEAS流出来了 | 一个人的免费高清影院 | 国产日韩亚洲专区无码 | 姑娘日本大全免费观看版中文翻译 | 综合伊人久久 | 老人FREE VIODES老少配 | 国产第一页浮力影院 | 亚州日韩精品AV片无码中文 | 亚洲免费观看 | 国精产品一区一区三区有 | 92看看福利午夜影院 | 永久免费在线视频 | 啊轻点啊再深点视频免费 | 亚洲 欧美 日本 国产 高清 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品