新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 單片機定時器/計數器的結構以及工作原理

        單片機定時器/計數器的結構以及工作原理

        作者: 時間:2018-07-27 來源:網絡 收藏

        定時器/計數器的結構

        本文引用地址:http://www.104case.com/article/201807/384291.htm

        定時器/計數器的實質是加1計數器(16位),由高8位和低8位兩個寄存器組成。TMOD是定時器/計數器的工作方式寄存器,確定工作方式和功能;TCON是寄存器,T0、T1的啟動和停止及設置溢出標志。

        計數器輸入的計數脈沖源

        系統的時鐘振蕩器輸出脈沖經12分頻后產生;

        T0或T1引腳輸入的外部脈沖源。

        計數過程

        每來一個脈沖計數器加1,當加到計數器為全1(即FFFFH)時,再輸入一個脈沖就使計數器回零,且計數器的溢出使TCON中TF0或TF1置1,向CPU發出中斷請求(定時器/計數器中斷允許時)。如果定時器/計數器工作于定時模式,則表示定時時間已到;如果工作于計數模式,則表示計數值已滿。

        定時應用

        用作定時器:此時設置為定時器模式,加1計數器是對內部機器周期計數(1個機器周期等于12個振蕩周期,即計數頻率為頻率的1/12)。計數值N乘以機器周期Tcy就是定時時間t 。

        計數運用

        用作計數器:此時設置為計數器模式,外部事件計數脈沖由T0或T1引腳輸入到計數器。每來一個外部脈沖,計數器加1。但對外部脈沖有基本要求:脈沖的高低電平持續時間都必須大于1個機器周期。

        工作方式寄存器(TMOD)

        GATE:門控位。

        GATE=0時,只要用軟件使TCON中的TR0或TR1為1,就可以啟動定時器/計數器工作;(即需要一個啟動條件)

        GATE=1時,要用軟件使TR0或TR1為1,同時外部中斷引腳也為高電平時,才能啟動定時器/計數器工作,即需要兩個啟動條件。

        C/T :定時/計數模式選擇位。

        C/T =0為定時模式; C/T =1為計數模式。

        M1M0:工作方式設置位。

        計數器工作方式選擇

        M1 M0 工 作 方 式 功 能 說 明

        0 0 方式0 13位計數器

        0 1 方式1 16位計數器

        1 0 方式2 自動重裝8位計數器

        1 1 方式3 定時器0:分成兩個8位

        定時器1:停止計數

        定時器/計數器的

        控制寄存器TCON

        TCON的低4位用于控制外部中斷,已在前面介紹。TCON的高4位用于控制定時器/計數器的啟動和中斷申請。其格式如下:

        TF1(TCON.7):T1溢出中斷請求標志位。T1計數溢出時由硬件自動置TF1為1。CPU響應中斷后TF1由硬件自動清0。TR1(TCON.6):T1起/停控制位。1:啟動 0:停止

        TF0(TCON.5):T0溢出中斷請求標志位,其功能與TF1類同。

        TR0(TCON.4):T0起/停控制位。1:啟動 0:停止

        定時器/計數器的工作方式

        方式1

        方式1為13位計數,由TL0的低5位(高3位未用)和TH0的8位組成TL0的低5位溢出時向TH0進位,TH0溢出時,置位TCON中的TF0標志,向CPU發出中斷請求。

        方式2

        方式2的計數位數是16位,由TL0(TL1)作為低8位、TH0(TH1)作為高8位,組成了16位加1計數器 。

        方式3

        方式3為自動重裝初值的8位計數方式。

        在方式3下,當計數器計滿255(FFH)溢出時,CPU自動把TH 的值裝入TL中,不需用戶干預。因此特別適合于用作較精確的脈沖信號發生器。

        方式4

        方式4只適用于定時器/計數器T0,定時器T1方式3時相當于TR1=0,停止計數。

        工作方式4將T0分成為兩個獨立的8位計數器TL0和TH0 。



        關鍵詞: 控制 單片機 晶振

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 苏尼特右旗| 吴堡县| 巢湖市| 建瓯市| 大丰市| 房山区| 罗江县| 滨海县| 莱阳市| 贡嘎县| 伊吾县| 新巴尔虎左旗| 金沙县| 县级市| 保亭| 乐东| 邻水| 察隅县| 简阳市| 桃园市| 彝良县| 中方县| 镇江市| 英超| 大足县| 章丘市| 新余市| 新闻| 阿克陶县| 五大连池市| 通化县| 荃湾区| 兴海县| 宝清县| 黄大仙区| 柳河县| 米易县| 澄城县| 特克斯县| 阿拉善左旗| 蓝山县|