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

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

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

3天內不再提示

使用定時器和數碼管實現簡易秒計時器

CHANBAEK ? 來源: Zi Jin Code ? 作者: 錕醬不是醬 ? 2023-11-02 10:50 ? 次閱讀

從今天開始,我們利用上前幾天學習的定時器數碼管,一起設計一個簡單的秒計時器

項目工作流程:單片機開機機器自動啟動計時器,計時器從0開始計時,每一秒加一,直到9999后自動復位成0000。

這個項目中我們使用到數碼管和單片機C51的Timer0,定時器每次定時5ms,每次滿5ms的時候輸出一次一位的顯示,同時數碼管位控為一一位,移到最后一位數碼管就自動回到第一位,累計計滿200次5ms(也就是1秒以后),計時器+1,直到9999

我們用一個數組存下寄存器的數值,這個數組是Time[4],其中Time[0]對應個位,Time[1]對應十位,Time[2]對應百位,Time[3]對應千位

計算出初始值為60928,換算

TH0 = 0xEE;
TL0 = 0x00;

整個項目的電路圖:

圖片

這里不得不提醒一下,我們之前設計的電路圖中,左邊的數碼管是第一位

圖片

//從左往右數:最左邊第一位數碼管,接下來是二,三,四


sbit Smg_1 = P2^0;//第一位數碼管接在P2.0
sbit Smg_2 = P2^1;//第一位數碼管接在P2.1
sbit Smg_3 = P2^2;//第一位數碼管接在P2.2
sbit Smg_4 = P2^3;//第一位數碼管接在P2.3


//整個數碼管取模
unsigned char code Smgbit[] = {0xFE,0XFD,0xFB,0xF7};

現在,為了讓數碼管配合我們存放時間的變量Time[],所以我們換了一下數碼管的位,現在是左邊第一位是第一位

圖片

不過這個大家不用記住,我們的工程用到的時候要我會跟大家說的,所以本工程中的數碼管的位控

//從左往右數:最左邊第一位數碼管,接下來是二,三,四


sbit Smg_1 = P2^3;//第一位數碼管接在P2.0
sbit Smg_2 = P2^2;//第一位數碼管接在P2.1
sbit Smg_3 = P2^1;//第一位數碼管接在P2.2
sbit Smg_4 = P2^0;//第一位數碼管接在P2.3


//整個數碼管取模
unsigned char code Smgbit[] = {0xF7,0xFB,0XFD,0xFE};

程序大概流程(畫的有點丑,見諒):

圖片

程序框圖:

圖片

代碼:

//這個代碼展示的是一個0~9999秒的計時器
#include< reg52.h >


unsigned char Time[4] = {0,0,0,0};//我們的計時器時間的變量
//這四個TIME元素分別代表千位(TIME(3))百位(TIME(2))十位(TIME(1))個位(TIME(0))
//----------------------------------------------------------------


//----------------------------------------------------------------


unsigned char code Smg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//數碼管取模


unsigned char code Smgbit[] = {0xF7,0xFB,0XFD,0xFE};
//數碼管位控
//操作的時候直接用P2 = Smgbit[0~3]對應1~4位數碼管


unsigned char SmgSelect = 0;//數碼管選位
//這里不得不特別說明
//SmgSelect不僅僅是控制我們的數碼管位控,還控制著數碼管顯示時對描述位置的選位操作


//Smgbit  0  1  2  3
//數碼管  1  2  3  4 位
//秒數   個 十  百 千


//----------------------------------------------------------------


unsigned char TimerCount = 0;//這個變量記錄定時器定時溢出次數
//(定時器一次定時5ms)
//----------------------------------------------------------------




  unsigned char a = 0;
//----------這個是一個臨時變量
void main()
{//注意設置定時器初始值要在main函數里面設置

  TMOD = 0x01;

  /*設置定時器模式寄存器TMOD為 0000 0001
  GATE = 0
  C/T = 0
  M1 =0
  M0 = 1
  標準16位定時器
  */

  //先設置定時器初始值,我們一次延遲5ms,計算得初始值為60928
  TL0 = 0x00;//設置定時器初始值低位
  TH0 = 0xEE;//設置定時器初始值高位

  TR0 = 1;//記得一定要設置定時器開啟
  while(1)
  {
    if (TF0 == 1)
      { 
        P2 =  0xFF;//注意每次寫數碼管之前都要把所有的數碼管關閉


        a = Time[SmgSelect];
        P0 = Smg[a];
        //這個過程先從Time[]里面取出位數的數值
        //再把這個數值送到Smgbit里面選擇出這位數對應的數碼管取模
        //最后把這個取模的數據送給P0 IO組,顯示
        P2 = Smgbit[SmgSelect];
        //選擇數碼管位置

        SmgSelect++;

        if (SmgSelect >3){SmgSelect = 0;}//如果選位變量超過3,歸零

        TimerCount++;

        if(TimerCount > 200)
        {
          Time[0]++;
          TimerCount = 0;
          //檢測第一位有沒有滿
          if(Time[0] >9)
          {
            Time[0] = 0;
            Time[1]++;
          }
          //檢測第二位有沒有滿
          if(Time[1] >9)
          {
            Time[1] = 0;
            Time[2]++;
          }
          //檢測第三位有沒有滿
          if(Time[2] >9)
          {
            Time[2] = 0;
            Time[3]++;
          }
          //檢測第三位有沒有滿
          if(Time[3] >9)
          {
            Time[3] = 0;
          }    
        }
        TL0 = 0x00;//設置定時器初始值低位
        TH0 = 0xEE;//設置定時器初始值高位
        TF0 = 0;//設置好初始值后再復位定時器
      }
  }
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6037

    文章

    44569

    瀏覽量

    636195
  • 寄存器
    +關注

    關注

    31

    文章

    5357

    瀏覽量

    120587
  • 數碼管
    +關注

    關注

    32

    文章

    1882

    瀏覽量

    91208
  • 定時器
    +關注

    關注

    23

    文章

    3251

    瀏覽量

    114959
收藏 人收藏

    評論

    相關推薦

    4位數碼管計時器

    4位數碼管計時器
    發表于 04-12 00:33

    定時器問題

    我用兩個定時器到數計時,通過數碼管來顯示,第一個計時器正常計時,可是第二個60
    發表于 11-06 16:20

    通過定時器來控制跑時間間隔,數碼管的動態顯示能實現

    大大……通過定時器來控制跑的時間間隔,然后用其中兩個數碼管來顯示!這個用數碼管的動態顯示能實現嗎?請各位大大們教教小弟……如圖
    發表于 05-12 23:40

    數碼管10計時程序

    數碼管10計時程序,C51單片機之數碼管實現99計時
    發表于 07-14 07:50

    51單片機如何實現數碼管99計時

    51單片機99計時C語言源程序51單片機實現數碼管99計時,其實很簡單,就是使用
    發表于 07-15 06:25

    基于單片機的時鐘計時器系統設計與制作 精選資料分享

    基于單片機的時鐘計時器系統設計與制作[摘要]這次課程設計以STC89C51單片機為核心,輔以必要的電路,設計了一個簡易的電子時鐘,它由5V直流電源供電,通過數碼管能夠準確顯示時間,調整時間,從而到達
    發表于 07-21 07:47

    請問51單片機定時器數碼管如何實現9999到0的倒計時C語言?

    請問51單片機定時器數碼管如何實現9999到0的倒計時C語言?
    發表于 10-14 06:02

    基于單片機的綜合應用程序數碼管【C語言】定時器控制數碼管

    基于單片機的綜合應用程序數碼管【C語言】定時器控制數碼管
    發表于 01-06 13:44 ?27次下載

    基于8051的Proteus仿真-定時器控制數碼管顯示

    基于8051的Proteus仿真-定時器控制數碼管顯示
    發表于 09-01 23:33 ?19次下載

    定時器1計數,數碼管顯示0-999程序代碼【下載】

    定時器1計數,數碼管顯示0-999
    發表于 12-20 14:23 ?18次下載

    51單片機+4位數碼管計時器按鍵可調節

    51單片機+4位數碼管計時器按鍵可調節4位數碼管計時,采用定時器proteus仿真源代碼#in
    發表于 11-20 10:36 ?29次下載
    51單片機+4位<b class='flag-5'>數碼管</b><b class='flag-5'>計時器</b>按鍵可調節

    51單片機數碼管顯示60計時(C語言)

    51單片機數碼管顯示60計時基于普中51單片機開發板,運用定時器/計數0和1,實現60
    發表于 11-21 17:21 ?71次下載
    51單片機<b class='flag-5'>數碼管</b>顯示60<b class='flag-5'>秒</b>倒<b class='flag-5'>計時</b>(C語言)

    STM32+Proteus仿真實現滴答定時器計時和數碼管實時顯示功能

    STM32+Proteus仿真實現滴答定時器計時和數碼管實時顯示功能
    發表于 11-24 21:06 ?73次下載
    STM32+Proteus仿真<b class='flag-5'>實現</b>滴答<b class='flag-5'>定時器</b><b class='flag-5'>計時</b><b class='flag-5'>和數碼管</b>實時顯示功能

    EDA程序設計之計時器設計

    計時器的設計1. 設計任務 設計并制作一臺計時器。2. 設計要求① 用EDA實訓儀的I/O設備和PLD芯片實現計時器的設計。② 計時器能夠顯
    發表于 08-22 10:16 ?2次下載

    用555定時器怎樣實現15計時電路?

    用555定時器怎樣實現15計時電路 555定時器是一種常用的集成電路,它可以將電路中的電壓信號轉換為周期性的脈沖信號或方波信號,是數字電路
    的頭像 發表于 09-02 16:20 ?4593次閱讀
    主站蜘蛛池模板: 男女XX00上下抽搐动态图| 久草视频在线观看免费4| 午夜国产理论| 伊人精品视频直播| 国产精品97久久久久久AV色戒 | 久久热这里只有 精品| 色欲人妻AAAAAAA无码| 99re这里只有精品国产| 久爱精品亚洲电影午夜| 亚洲电影二区| 成人综合在线观看| 欧美AAAAAA级午夜福利视频| 亚洲中文字幕手机版| xxxx69美国| 菠萝蜜国际一区麻豆| 国产亚洲精品a在线观看app| 麻豆官网入口| 亚洲欧美日韩高清中文在线| 超熟女专门志| 欧美性xxxxxx爱| 俄罗斯另类Z0Z0ZOZO| 日韩精品一区二区亚洲AV观看| 亚洲精品久久久久无码AV片软件| 91桃色污无限免费看| 久久免费黄色| 在线涩涩免费观看国产精品| 国产欧美一区二区三区视频| 天天看高清影视在线18| 嘟嘟嘟WWW在线观看视频高清| 内射一区二区精品视频在线观看| 亚洲中文久久精品AV无码| 久久91精品国产91久| 夜月视频直播免费观看| 九九热在线视频精品店| 猪蜜蜜网站在线观看电视剧| 恋夜直播午夜秀场最新| 56prom在线精品国产| 男人国产AV天堂WWW麻豆| AV精品爆乳纯肉H漫网站| 人妻熟女斩五十路0930| 国产成人v视频在线观看|