精品精品国产自在久久-人妻少妇精品久久中文字幕-精品人妻一区二区三区久久免费-人妻一区二区视频在线观看

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> 技術(shù)中心 >> 單片機入門 >> 單片機定時器/計數(shù)器工作方式

單片機定時器/計數(shù)器工作方式

作者:admin 來源:不詳 發(fā)布時間:2018-05-08  瀏覽:18
。1)工作方式0

  C/T -定時 / 計數(shù)功能選擇位。
  C/T =“0” ,對片內(nèi)機器周期進行計數(shù),作定時器用;
  C/T =““1” ,對片外從 T0 ( P3.4 )、 T1 ( P3.5 )引腳輸入 的外部脈沖信號進行計數(shù) , 作計數(shù)器用。
  GATE -門控位。
  GATE=0 ,允許軟件控制位 TR0 或 TR1 啟動定時器;
  GATE=1 ,允許外中斷引腳 INT0( 或 INT1) 為高電電平,且由軟件使 TR0( 或 TR1) 置 1 時,才能啟動定時器工作。
  當(dāng) GATE=0 時,封鎖或門輸出恒為 1 ,使外部中斷輸入引腳 INT0 信號失效,同時又打開與門,由 TR0 控制定時器 T0 的開啟和關(guān)斷。若 TR0=1 ,接通控制開關(guān),啟動定時器 T0 工作,計數(shù)器被控制為允許計數(shù)。若 TR0=0 ,則斷開控制開關(guān),停止計數(shù)。
  當(dāng) GATE=1 時,與門的輸出由 INT0 的輸入電平和 TR0 位的狀態(tài)來確定。若 TR0=1 ,則打開與門,外部信號電平通過 INT0 引腳直接開啟或關(guān)斷定時器 T0 。 當(dāng) INT0 為高電平時,允許計數(shù),否則停止計數(shù)。這種工作方式可用來測量外部信號的脈沖寬度等。
  當(dāng) C/T=0 時, 控制開關(guān)接通振蕩器 12 分頻輸出端, T0 對機器周期計數(shù)。 即定時器工作方式。
  當(dāng) C/T=1 控制開關(guān)與引腳 T0 ( P3.4 )接通,計數(shù)器 T0 對來自外部引腳 T0 的輸入脈沖計數(shù),當(dāng)外部信號電平發(fā)生由 1 到 0 跳變時,計數(shù)器加 1 ,這時, T0 成為外部事件計數(shù)器。
  注意:定時計數(shù)器的計數(shù)范圍與初值 X 的計算
 、 定時器的計數(shù)規(guī)律:
  T0 從某初值 X ,對脈沖計數(shù)到 1111111111111B(2 13 D=8192D) 溢出
  計數(shù)個數(shù): 2 13 - X
 、 最大計數(shù)范圍: 從初值 X = 0D ,計數(shù)到 1111111111111B(2 13 D)
 、 定時時間:
  定時值 = 計數(shù)個數(shù)×機器周期
     。剑 2 13 - X )×機器周期
     。 ( 2 13 - X )×晶振周期× 12
  最大定時值 =( 2 13 - 0 ) ×機器周期
  例 1 如要求計數(shù)值為 1000 ,試計算定時計數(shù)器 T0 的初值
  分析:由 213 - X = 1000
  得 X = 213 - 1000 = 8192 - 1000
   。 1C18H = 0001 1100 0001 1000B
   故 TH0 = 1 1100 000 = 0E0H
  TL0 = 1 1000B = 000 1 1000B = 18H 。
  例 2 利用 T0 方式 0 在 P1.0 引腳上輸出周期 500us 的方波。設(shè)單片機 晶振頻率 6MHz 。
  分析: 要在 P1.0 輸出周期為 500us 的方波,只要 P1.0 每隔 250us 取反一次即可,即定時時間為 250us :
 、 TMOD 寄存器初始化:
  TMOD.1 TMOD.0 M1M0=00 , T0 為方式 0 ;
  TMOD.2 C/T=0 T0 為定時狀態(tài);
  TMOD.3 GATE=0 表示計數(shù)不受 INT0 控制;
  TMOD.4 TMOD.7 因 T1 不用,可取任意值,這里取為 0 。
  故 TMOD=00H
  ② 計算 250us 定時 T0 的初值: 設(shè) T0 的計數(shù)初值為 X ,則
  X=8067D=1F83H=0001 1111 1000 0011B
  故 TH0= 1 1111 100 高 8 位 =FCH
  TL0=0000 0011B 低 5 位 =03H
 、 編寫程序。采用查詢 TF0 的狀態(tài)來控制 P1.0 輸出
  MOV TMOD , #00H ;置 T0 為方式 0
  MOV TH0 , #0FCH ;送計數(shù)初值
  MOV TL0 , #03H
  SETB TR0 ;啟動 T0
  LOOP : JBC TF0 , NEXT ;查詢定時時間到否 ?
  SJMP LOOP
  NEXT : CLR TF0 ; 對溢出標(biāo)志位清 0
  MOV TH0 , #0FCH ;重賦計數(shù)初值
  MOV TL0 , #03H
  CPL P1.0 ;輸出取反
  SJMP LOOP ; 重復(fù)循環(huán)
  采用查詢方式的程序很簡單,但在定時器整個計數(shù)過程中, CPU 要不斷查詢溢出時標(biāo)志 TF0 的狀態(tài) , 這就占用了 CPU 工作時間 , 以致 CPU 的效率不高。采用定時溢出中斷方式,可以提高 CPU 的效率。

  (2)工作方式1

   M1 M0=01 TH0 高 8 位和 TL0 低 8 位組成一個 16 位定時器 / 計數(shù)器
  定時器工作于方式1下,其結(jié)構(gòu)與操作幾乎與方式 0 完全相同,差別僅在于計數(shù)器的位數(shù)不同。
  注意:定時計數(shù)器的計數(shù)范圍與初值 X 的計算
 、 定時器的計數(shù)規(guī)律
  T0 從初值 X ,一直對脈沖計數(shù)到 1111111111111B(216D) 溢出
  計數(shù)個數(shù): 216 - X = 65536 - X
 、 最大計數(shù)范圍 :從初值 X = 0D ,計數(shù)到 1111111111111111B(216D)
  計數(shù)個數(shù)為 216 - 0 = 65536D
 、 定時時間: 定時值 =( 216 - X ) ×機器周期
           。剑 216 - X ) ×晶振周期× 12
  最大定時定時值 =( 216 - 0 ) ×機器周期
  例如 . 若單片機晶振為 6MHZ ,則 1 個機器周期為 2us
  最大定時定時值 =( 216 - 0 ) ×機器周期
        。 65536 × 2us = 131ms

編輯:admin  最后修改時間:2018-05-08

聯(lián)系方式

0755-82591179

郵箱:ivy@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A09

Copyright © 2014-2025 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4