<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機常用功能模塊的使用 Part4. 定時(shí)器

單片機常用功能模塊的使用 Part4. 定時(shí)器

作者: 時(shí)間:2016-11-17 來(lái)源:網(wǎng)絡(luò ) 收藏
51 單片機編程經(jīng)常要求對時(shí)間進(jìn)行某種操作,比如數碼管的動(dòng)態(tài)掃描顯示、延時(shí)等等……對于定時(shí)或延時(shí),一般有三種方法實(shí)現:

①、軟件定時(shí):如常用的延時(shí)程序 Delay(),在定時(shí)過(guò)程中,CPU 循環(huán)測試延時(shí)變量是否滿(mǎn)足條件,此時(shí) CPU 利用率低下;

本文引用地址:http://dyxdggzs.com/article/201611/315368.htm

②、硬件定時(shí):如外部芯片555 時(shí)基電路,通過(guò)外部阻容,達到一定的延時(shí)功能,改變阻容大小可以改變延時(shí)長(cháng)度,這種定時(shí)器取決于硬件,設定好以后不能通過(guò)軟件更改;

③、定時(shí)器:利用單片機內部定時(shí)器,實(shí)現對時(shí)間的操作。

1、定時(shí)器功能:

(1)、定時(shí):產(chǎn)生一個(gè)標準的時(shí)間間隔:如 20 ms,100 ms 等,單片機使用這種方式可以產(chǎn)生一個(gè)符合某一要求的脈沖方波;

(2)、計數:對外部的事件(脈沖)進(jìn)行統計,很明顯外部事件的發(fā)生是隨機的,單片機不可能預知外部事件何時(shí)發(fā)生,但可以進(jìn)行統計,當達到所要求的數值時(shí),單片機進(jìn)行相應的操作。

2、四種工作模式:

模式 0:13 位計數器模式

在某一個(gè)初值的基礎上加 1 計數,當計數器計滿(mǎn)為全“1”,再來(lái)一個(gè)計數脈沖時(shí),就產(chǎn)生一個(gè)“溢出中斷信號”TF1=1。
注:由于低 8 位計數器中的高三位沒(méi)有參與工作,故填裝初值時(shí)應“避開(kāi)”此三位。

模式 1:16 位定時(shí)/計數模

類(lèi)同于模式 0,由于兩個(gè)計數器為完整的 8 位,故將計算好的 16 位初值可直接填裝到 TH、TL 中。

模式 2:8 位自動(dòng)重裝初值模式

TL 做計數器,TH 做初值寄存器,工作前 TL1,TH1 分別預置相同的初值,TL1 計數時(shí),產(chǎn)生溢出的同時(shí),將 TH1 中的初值自動(dòng)重裝 TL1,TL1 繼續計數。

模式 3:組合擴展模式(僅適用于 T0)

將 T0 和 T1 重新進(jìn)行“拆分、組合”,將 T0 變?yōu)橛?TH0,TL0 組成的兩個(gè)獨立的 8 位定時(shí)/計數器。

補充:四種模式比較:

3、定時(shí)器參數:

(1)、定時(shí)器的個(gè)數:網(wǎng)上見(jiàn)到的 51 單片機教程都說(shuō)定時(shí)器有 2 個(gè):定時(shí)器 0 和定時(shí)器 1,實(shí)際上有的單片機有 3 個(gè)定時(shí)器,如博主買(mǎi)的開(kāi)發(fā)板上的單片機:STC89C54RD+,因此,編程時(shí)注意看好有幾個(gè)定時(shí)器……

(2)、TL,TH:初值寄存器,分別是低 8 位,高 8 位,后邊加上一個(gè)數字 0 或 1,代表定時(shí)器 0 或定時(shí)器 1

(3)、TMOD:模式控制寄存器,屬于 SFR 特殊功能寄存器,地址:89H,決定定時(shí)/計數器的四種工作模式,8 位

GATE 選通門(mén):GATE=0 時(shí),只要 TR=1,計數器就開(kāi)始工作

       GATE=1 時(shí),只有 INT=TR=1 時(shí),計數器工作(用來(lái)測量 INT 腳高電平脈沖的寬度)

C/T:計數器輸入脈沖選擇開(kāi)關(guān),決定著(zhù)計數器的“定時(shí)”或“計數”的兩種工作方式

   C/T=0:定時(shí)方式:計數器接收內部時(shí)鐘信號 fosc

   C/T=1:計數方式:計數器接收引腳上的外部信號

M1、M0 模式選擇:確定 4 種工作模式

(4)、TCON:控制寄存器,屬于 SFR 特殊功能寄存器,地址:88H,8 位

TF:定時(shí)器溢出標志,計數器溢出時(shí)硬件自動(dòng)置位,即 TF=1,進(jìn)入中斷后再由硬件自動(dòng)清除(TF=0)

TR:計數器的控制位

   TR=1:計數器開(kāi)始工作

   TR=0:計數器停止計數

IE:外部中斷 INT 的請求標志

  當單片機檢測到 INT 引腳上有下降沿時(shí),IE=1 申請中斷,進(jìn)入中斷服務(wù)程序時(shí),硬件自動(dòng)清除 IE 標志

IT:外中斷觸發(fā)類(lèi)型控制

  IT=1 時(shí),外中斷信號的下降沿觸發(fā) IE 標志

  IT=0 時(shí),外中斷信號的低電平觸發(fā) IE 標志

(5)、作為“定時(shí)器”使用時(shí),“定時(shí)”與“初值”的關(guān)系如下:

   T = ( M - TC ) ×t

其中:T:定時(shí)時(shí)間

   M:計數器的模

   TC:計數初值

   t:計數器計數脈沖的周期(t = fosc / 12)

注:具體計算實(shí)例,參見(jiàn)前面“四種模式比較”中的第二張圖……



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>