<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機系列連載6—定時器初始化補充

          51單片機系列連載6—定時器初始化補充

          作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
          在上一節(jié)中提到定時器很重要,而對于定時器來說,就是簡單的一個初始化,只要把這個弄明白了,后面的編程操作也就水到渠成了,今天再簡單地對定時器初始化做個補充。

          本文引用地址:http://www.ex-cimer.com/article/201611/322438.htm

          首先,再說一下T/C(定時器/計數(shù)器)的基本結(jié)構(gòu),它們基本部件是2個8位的計數(shù)器,其中TH1和TL1是T1的計數(shù)器,TH0和TL0是T0的計數(shù)器,記住這兩個計數(shù)器,后面的操作都是圍繞這兩個展開的,要有這種意識。

          在作為定時器使用時,是對單片機內(nèi)部機器周期的計數(shù),因其內(nèi)部頻率為晶振頻率的1/12,如果晶振頻率為12MHz,則定時器每接受一個輸入脈沖的時間為1us,后面很多定時都用到這個基本常識。

          當(dāng)它用作對外部事件計數(shù)時,接相應(yīng)的外部引腳T0(P3.4)或T1(P3.5)。在這種情況下,當(dāng)檢測到輸入引腳上的電平由高跳變到低時,計數(shù)器就加1。

          再強化一下初始化的步驟:

          在使用T/C前,要對它進行初始化編程,主要是對TCON和TMOD編程,還需要計算很裝載T/C的計數(shù)初值。包括以下幾點:

          1、確定T/C的工作方式——編程TMOD寄存器;

          2、計算T/C的計數(shù)初值,并裝載到TH和TL;

          3、T/C在中斷方式工作時,需要cpu中斷和源中斷——編程IE寄存器;

          4、啟動T/C——編程TCON中的TR1或TR0位。

          接下來,重點講一下計數(shù)初值的計算。

          首先,計數(shù)器初值的計算。一般方式一與方式二是最常見的,在方式1中,16位計數(shù)器的最大計數(shù)值為216=65536,計數(shù)初值在寄存器中為TH=X/256,TL=X%6;在方式二中,8位計數(shù)器的最大計數(shù)值為28=256,計數(shù)初值在寄存器中為TH=TL=X。

          其次,定時器初值的計算。這時,T/C是對機器周期脈沖計數(shù)的,前面提到,若晶振頻率為12MHz,則機器周期是1us,后面的與計數(shù)器的一樣,只是這里的最大計數(shù)值是最大定時間隔。

          t=(2n-X)*T,其中,t為定時時間,X為計數(shù)初值,T為機器周期。

          看一個實例,單片機外接晶振頻率為12MHz,T/C0工作于定時方式,且允許中斷,定時時間為20ms,令其工作在方式1.用C語言進行初始化編程。

          T/C0工作于定時方式,從而C/T=0,GATE=0.定時器0工作于方式1,,所以M1M0=01.定時器1不用,TMOD=00000001=01H.計數(shù)寄存器初值分別為:TH0=(65536-20000)/256,TL0=(65536-20000)%6,因此初始化程序如下:

          TMOD=0X01;//設(shè)置定時器工作方式

          TH0=(65536-20000)/256;//加1計數(shù)器高8位TH0賦初值

          TL0=(65536-20000)%6;//加1計數(shù)器低8位TL0賦初值

          TR0=1;//啟動計數(shù)器

          ET0=1;//開計數(shù)器中斷

          EA=1;



          關(guān)鍵詞: 51單片機定時器初始

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();