<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機實例 >> 正文

      51單片機數碼管顯示程序, 共陰數碼管顯示程序 數碼管原理(顯示)及編碼(段碼)

      作者:佚名    文章來源:本站原創    點擊數:    更新時間:2023/5/18
      #include <reg51.h>
      sbit dula=P2^6;
      sbit wela=P2^7;
      sbit P34=P3^4;
        char Tab [10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};   //共陰極數碼管0到f的短編碼
      unsigned char Dat[4]={0xf7,0xfb,0xfd,0xfe};
          unsigned char Second=0;
      unsigned long i,c=0;
      void main()
      {        
              char t;
          char b[2];
      TMOD=0x01;        
          TR0=1;            
          TH0=(65536-46080)/256;
          TL0=(65536-46080)%256;
          ET0=1;                            //允許T0中斷
          EA=1;                       //允許所有中斷
         while(1)
          {
          b[3]=c/1000;     //千
        b[2]=c/100%10;    //百
       b[1]=c/10%10;     //十
        b[0]=c%10;       //個
      for(t=0;t<2;t++){ //t是多少個數碼管顯示
              P0=Tab[b[t]];
      dula=1;dula=0;
          P0=Dat[t];
          wela=1;wela=0;
      for(i=0;i<2;i++);
          P0=0xFF;    
      }}}
      /*定時器0中斷服務子程序*/
      void time0() interrupt 1
      {
          TH0= (65536-46080)/256;
          TL0= (65536-46080)%256;
              i++;
          if(i==1){
              i=0;
          c++;
          if(c>=20) c=0;        //計數到20秒自動回0
          }
      }

       

      數碼管原理(顯示)及編碼(段碼)

      常用的7段數碼管由發光二極管(組合)構成,如下圖:


      不帶小數點的共陰數碼管驅動 

      分為:共陽極和共陰極(如上圖)

      如果顯示“0”,共陽極為:abcdefg dp ,dp為對應最高位,a為對應最低位,編碼:11000000 ,16進制0xC0,共陰極正好相反:00111111,16進制0x3f。

      以此類推。

      共陽極數碼管的0 到f的段編碼:
      0xc0,0xf9,0xa4,0xb0,//0~3
      0x99,0x92,0x82,0xf8,//4~7
      0x80,0x90,0x88,0x83,//8~b
      0xc6,0xa1,0x86,0x8e //c~f

      共陰極數碼管0到f的短編碼:
      0x3f,0x06,0x5b,0x4f,    //0~3
      0x66,0x6d,0x7d,0x07,    //4~7
      0x7f,0x6f,0x77,0x7c,    //8~b
      0x39,0x5e,0x79,0x71    //c~f

      這段代碼是一個基于單片機的數字時鐘,具體實現了以下功能:

      1. 通過四個共陰數碼管顯示當前時刻,每秒更新一次;
      2. 使用定時器0作為計時器,每隔50ms產生一次中斷,從而實現秒表計時功能;
      3. 將計時結果(單位為秒)以“xx.xx”形式顯示在第一個數碼管上,最多可以計時20秒。

      下面是對這段代碼的詳細分析:

      首先,在 main 函數中,定義了一些變量,包括:

      • Tab:數字 0~9 在數碼管上的顯示碼表;
      • Dat:數碼管控制位模式表;
      • Second:用于存儲當前時間的秒數,初始值為 0;
      • i:用于計時的計數器,初始值為 0;
      • c:用于秒表計時的計數器,初始值為 0。

      接著,在 main 函數中,初始化定時器0,并開啟 T0 中斷和全局中斷使能。

      隨后進入主循環,其中先通過將計數值 c 格式化為四個數字,存儲在數組 b 中。循環遍歷數組 b,依次將每個數字通過選擇相應的碼表值和數碼管控制位模式,發送給數碼管進行顯示。

      在 T0 中斷服務子程序 time0 中,首先重新加載定時器初值,然后每隔一定周期執行一次計時操作:將計數值 i 加 1,如果 i 達到指定閾值(50ms),則將當前秒表計數值 c 加 1,并判斷是否超過20秒,如果超過則將其清零。

      需要注意的是,此代碼僅僅是一個簡單的實現,還存在一些問題。例如,由于使用了延時函數,這會影響程序的實時性。而且,由于只在主循環中更新時鐘顯示,如果程序在處理其他任務時比較繁忙,則可能導致時鐘顯示出現明顯的卡頓或錯誤。因此,在實際應用中需要對代碼進行進一步的優化和改進。

      Tags:七段數碼管,51單片機  
      責任編輯:admin
    4. 上一篇文章:
    5. 下一篇文章: 沒有了
    6. 相關文章列表
      三菱PLC和數碼管鏈接和控制程序(初學者珍藏)plc控制數碼管顯示
      七段數碼管顯示原理研究_數碼管顯示0~9對應的段碼
      西門子PLC控制數碼管顯示,停車場PLC程序實例!七段編碼指令SEG,
      51單片機學習筆記直流電機驅動(PWM)C語言程序
      MCU-51單片機直流電機驅動(PWM)51單片機驅動直流電機
      先學51還是先學STM32?STM32和51單片機的區別
      51單片機和STM32單片機的結構有什么不同
      51單片機、AVR單片機和PIC單片機的IO口操作
      LED數碼管的檢測,LED七段數碼管檢測
      關于51單片機IO引腳的驅動能力與上拉電阻
      51單片機“呼吸燈”程序
      51單片機入門之靜態數碼管電路設計
      單片機數碼管顯示原理
      AT89C51,51單片機1602液晶顯示時鐘程序
      4位單片機數字鐘 電子鐘制作
      51單片機4位數碼管電子鐘源程序
      AT89C2051電腦機箱風扇智能溫控儀,AT89C2051 Temperature contro
      51單片機溫控風扇(含程序+原理圖+仿真+PCB)
      51單片機蜂鳴器播放音樂代碼
      利用單片機AT89S51與ADC0809設計數字電壓表,Voltmeter
      單片機制作的純正弦波逆變器,12V Pure Sine Wave Inverter
      51單片機00-59秒計時器 0-59s Timer
      51單片機按鍵程序中 while(!key)的作用
      51系列單片機尋址方式
      認識單片機引腳【詳解】
      用51單片機設計的無線防盜報警器技術
      51單片機匯編模擬串口通信程序
      51單片機雙極型PWM 的軟件實現
      用51單片機制作的廚房定時器
      51單片機的液晶顯示溫度計程序
      請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 狠狠色伊人久久精品综合网| 青青草原综合久久大伊人精品| 亚洲国产综合精品中文第一| 小说区 图片区色 综合区| 区二区三区激情综合| 中文字幕亚洲综合精品一区| 国产色丁香久久综合| 国产在线一区二区综合免费视频| 色欲香天天天综合网站| 狠狠色婷婷丁香综合久久韩国| 狼狼综合久久久久综合网| 色综合天天综合婷婷伊人| 69国产成人综合久久精品91| 久久久久噜噜噜亚洲熟女综合 | 久久综合久久美利坚合众国| 国产精品综合视频| 久久婷婷午色综合夜啪| 久久综合亚洲色HEZYO社区| 久久婷婷五月综合尤物色国产| 一本色道久久综合网| 激情综合丝袜美女一区二区| 国产综合久久久久鬼色| 成人伊人亚洲人综合网站222| 色欲色香天天天综合网WWW| 一本色道久久综合| 久久婷婷成人综合色综合| 久久五月天综合网| 中文字幕亚洲综合久久| 狠狠色狠狠色综合系列| 成人伊人青草久久综合网破解版| 婷婷亚洲综合一区二区| 午夜激情影院综合| 国产亚洲综合色就色| 伊人久久亚洲综合影院首页| 天天综合色天天桴色| 韩国亚洲伊人久久综合影院| 亚洲第一页综合图片自拍| 丁香五月亚洲综合深深爱| 五月天激情综合网| 国产综合成人亚洲区| 色综合色综合色综合色欲|