日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

51單片機(jī)定時/計數(shù)器詳解(工作原理及模式、應(yīng)用)

h1654155282.3538 ? 來源:網(wǎng)絡(luò)整理 ? 2018-04-26 14:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

51單片機(jī)是基礎(chǔ)入門的一個單片機(jī),還是應(yīng)用最廣泛的一種。本文主要介紹51單片機(jī)定時/計數(shù)器,首先介紹了51單片機(jī)定時/計數(shù)器的工作原理,其次介紹了51單片機(jī)定時/計數(shù)器的工作模式,最后闡述了51單片機(jī)定時/計數(shù)器的應(yīng)用,具體的跟隨小編一起來了解一下吧。

51單片機(jī)的定時/計數(shù)器的概念

單片機(jī)中,脈沖計數(shù)與時間之間的關(guān)系十分密切,每輸入一個脈沖,計數(shù)器的值就會自動累加1,只要相鄰兩個計數(shù)脈沖之間的時間間隔相等,則計數(shù)值就代表了時間的流逝,因此,單片機(jī)中的定時器和計數(shù)器其實是同一個物理的電子元件,只不過計數(shù)器記錄的是單片機(jī)外部發(fā)生的事情(接受的是外部脈沖),而定時器則是由單片機(jī)自身提供的一個非常穩(wěn)定的計數(shù)器,這個穩(wěn)定的計數(shù)器就是單片機(jī)上連接的晶振部件;MCS-51單片機(jī)的晶振經(jīng)過12分頻之后提供給單片機(jī)穩(wěn)定脈沖;晶振的頻率是非常準(zhǔn)確的,所以單片機(jī)的計數(shù)脈沖之間的時間間隔也是非常準(zhǔn)確的。

51單片機(jī)的定時/計數(shù)器的工作原理

加1計數(shù)器輸入的計數(shù)脈沖有兩個來源,一個是由系統(tǒng)的時鐘振蕩器輸出脈沖經(jīng)12分頻后送來;一個是T0或T1引腳輸入的外部脈沖源。

作為定時器使用時,定時器計數(shù)8051單片機(jī)片內(nèi)振蕩器輸出經(jīng)過12分頻后的脈沖個數(shù),即:每個機(jī)器周期使定時器T0/T1的寄存器值自動累加1,直到溢出,溢出后繼續(xù)從0開始循環(huán)計數(shù);所以,定時器的分辨率是時鐘振蕩頻率的1/12;

作為計數(shù)器使用時,通過引腳T0(P3.4)或T1(P3.5)對外部脈沖信號進(jìn)行計數(shù),當(dāng)輸入的外部脈沖信號發(fā)生從1到0的負(fù)跳變時,計數(shù)器的值就自動加1由于檢測一個從1到0的下降沿需要2個機(jī)器周期,因此要求被采樣的電平至少要維持一個機(jī)器周期。當(dāng)晶振頻率為12MHz時,最高計數(shù)頻率不超過1/2MHz,即計數(shù)脈沖的周期要大于2微秒。;計數(shù)器的最高頻率一般是時鐘振蕩頻率的1/24;

由此可知,不論是定時器還是計數(shù)器工作方式,定時器T0和T1均不占用CPU的時間,除非定時器/計數(shù)器T0和T1溢出,才可能引起CPU中斷,轉(zhuǎn)而去執(zhí)行中斷處理程序。所以說,定時器/計數(shù)器是單片機(jī)中效率高而工作靈活的部件。

51單片機(jī)定時器工作原理圖:

51單片機(jī)定時/計數(shù)器詳解(工作原理及模式、應(yīng)用)

由上圖可見與定時器相關(guān)的寄存器主要有下面這幾個:TMOD、 TCON、 TL0、TH0、TL1、TH1。下面介紹一下這幾個寄存器

16位加法計數(shù)器:

51單片機(jī)定時/計數(shù)器詳解(工作原理及模式、應(yīng)用)

是定時計數(shù)器的核心,其中 TL0、TH0、是定時計數(shù)器0的底八位和高八位;TL1、TH1是定時計數(shù)器1的底八位和高八位;并且高八位和底八位可單獨(dú)使用。16位加法計數(shù)器主要是在設(shè)置定時計數(shù)器的初值時候使用

TMOD定時器工作模式及方式寄存器

51單片機(jī)定時/計數(shù)器詳解(工作原理及模式、應(yīng)用)

GATE :定時操作開關(guān)控制位,當(dāng)GATE=1時,INT0或INT1引腳為高電平,同時TCON中的TR0或TR1控制位為1時,計時/計數(shù)器0或1才開始工作。若GATE=0,則只要將TR0或TR1控制位設(shè)為1,計時/計數(shù)器0或1就開始工作。

C/T :定時器或計數(shù)器功能的選擇位。C/T=1為計數(shù)器,通過外部引腳T0或T1輸入計數(shù)脈沖。C/T=0時為定時器,由內(nèi)部系統(tǒng)時鐘提供計時工作脈沖。

M1 M0:T0、T1工作模式選擇位

51單片機(jī)定時/計數(shù)器詳解(工作原理及模式、應(yīng)用)

TCON定時器控制寄存器

51單片機(jī)定時/計數(shù)器詳解(工作原理及模式、應(yīng)用)

TF1:定時器T1溢出標(biāo)志,可由程序查詢和清零,TF1也是中斷請求源,當(dāng)CPU響應(yīng)T1中斷時由硬件清零。

TF0:定時器T0溢出標(biāo)志,可由程序查詢和清零,TF0也是中斷請求源,當(dāng)CPU響應(yīng)T0中斷時由硬件清零。

TR1:T1充許計數(shù)控制位,為1時充許T1計數(shù)(定時)。

TR0:T0充許計數(shù)控制位,為1時充許T0計數(shù)(定時)。

IE1:外部中斷1請示源(INT1,P3.3)標(biāo)志。IE1=1,外部中斷1正在向CPU請求中斷,當(dāng)CPU響應(yīng)該中斷時由硬件清“0”。

IT1:外部中斷源1觸發(fā)方式控制位。此位為1設(shè)置為底電平觸發(fā),為0設(shè)置為下降沿觸發(fā)。

IE0:外部中斷0請示源(INT0,P3.2)標(biāo)志。IE0=1,外部中斷1正在向CPU請求中斷,當(dāng)CPU響應(yīng)該中斷時由硬件清“0”。

IT0:外部中斷源0觸發(fā)方式控制位。此位為1設(shè)置為底電平觸發(fā),為0設(shè)置為下降沿觸發(fā)。

51單片機(jī)定時器4種工作模式

工作模式0:

由TL0的低5位和TH0的全部8位共同構(gòu)成一個13位的定時器/計數(shù)器,定時器/計數(shù)器啟動后,定時或計數(shù)脈沖個數(shù)加到TL0上,從預(yù)先設(shè)置的初值(時間常數(shù))開始累加,不斷遞增1,當(dāng) TL0計滿后,向TH0進(jìn)位,直到13位寄存器計滿溢出,TH0溢出時,置位TCON中的TF0標(biāo)志,向CPU發(fā)出中斷請求。并且定時器/計數(shù)器硬件會自動地把13位的寄存器值清0,如果需要進(jìn)一步定時/計數(shù),需要使用相關(guān)指令重置時間常數(shù),并把定時器/計數(shù)器的中斷標(biāo)記TF0置0。

工作模式1:最常用的定時器工作模式

模式1與模式0幾乎完全相同,唯一的區(qū)別就是,模式1中的寄存器TH0和TL0共同構(gòu)成的是一個16位定時器/計數(shù)器來參與操作,因此比模式0中的定時/計數(shù)范圍更大

51單片機(jī)定時/計數(shù)器詳解(工作原理及模式、應(yīng)用)

工作模式2: 工作方式2特別適合于用作較精確的脈沖信號發(fā)生器。

這種模式又稱為自動再裝入預(yù)置數(shù)模式。有時候,我們的定時/計數(shù)操作是需要多次重復(fù)定時/計數(shù)的,如果溢出時不做任何處理,那么,在第二輪定時/計數(shù)時就是從0開始定時/計數(shù)了,而這并不是我們想要的。所以,要保證每次溢出之后,再重新開始定時/計數(shù)的操作是我們想要的,那就要把預(yù)置數(shù)(時間常數(shù))重新裝入某個地方,而重新裝入預(yù)置數(shù)的操作是硬件設(shè)備自動完成的,不需要人工干預(yù),所以這種工作模式就叫自動再裝入預(yù)置數(shù)方式。在工作模式2中,把自動重裝入的預(yù)置數(shù)存放在定時器/計數(shù)器的寄存器的高8位中,也就是存放在TH0中,而只留下TL0參與定時/計數(shù)操作。

這個工作模式常用于波特率發(fā)生器(串口通訊),T1工作在串口模式2;用于這種方式時,定時器就是為了提供一個時間基準(zhǔn);計數(shù)溢出之后,不需要做太多的事情,只做一件事就可以,就是重新裝入預(yù)置數(shù),再開始重新計數(shù),而且中間不需要任何延時。

51單片機(jī)定時/計數(shù)器詳解(工作原理及模式、應(yīng)用)

工作模式3:

方式3只適用于定時/計數(shù)器T0,定時器T1處于方式3時相當(dāng)于TR1=0,停止計數(shù)由于定時器/計數(shù)器T1沒有工作模式3,如果把定時器/計數(shù)器T0設(shè)置為工作模式3,那么TL0和TH0將被分割成兩個相互獨(dú)立的8位定時器/計數(shù)器。

51單片機(jī)定時/計數(shù)器詳解(工作原理及模式、應(yīng)用)

51單片機(jī)的定時/計數(shù)器的應(yīng)用

在protues下搭建仿真環(huán)境:

51單片機(jī)定時/計數(shù)器詳解(工作原理及模式、應(yīng)用)

在這里介紹一下定時器初值的設(shè)定:

工作方式0:13位定時器/計數(shù)器工作模式,最多可計數(shù)2的13次方次,即:8192次

工作方式1:16位定時器/計數(shù)器工作模式,最多可計數(shù)2的16次方次,即:65536次

工作方式2:8位定時器/計數(shù)器工作模式,最多可計數(shù)2的8次方次,即:256次,

工作方式3:8位定時器/計數(shù)器工作模式,最多可計數(shù)2的8次方次,即:256次

以12M晶振為例:每秒鐘可以執(zhí)行1000000次機(jī)器周期個機(jī)器周期。而定時器每次溢出 最多65536 個機(jī)器周期。

那么對12MHz的晶振來講

1個機(jī)器周期 1us ( 12/fosc = 1us)

方式0 13位定時器最大時間間隔 = 2^13 = 8.192ms

方式1 16位定時器最大時間間隔 = 2^16 = 65.536ms

方式2 8位定時器最大時間間隔 = 2^8 = 0.256ms =256 us

方式3 8位定時器最大時間間隔 = 2^8 = 0.256ms =256 us

以上是對定時器定時的最大時間間隔做一個說明,下面具體說明怎么計算初值(小于最大時間間隔)假如定時10ms那么的定時器初值計算如下:

-當(dāng)使用12M晶振,12MHz除12為1MHz,也就是說一秒=1000000次機(jī)器周期。10ms=10000次 機(jī)器周期。

預(yù)置數(shù)的計算公式:預(yù)置數(shù)=最大值-需要計數(shù)的次數(shù);(65536-10000)

再將預(yù)置數(shù)裝入16位定時計數(shù)器,如下:

TH0=(65536-10000)/256

TL0=(65536-10000)%256

-當(dāng)使用11.0592M晶振,11.0592MHz除12為921600Hz,就是一秒921600次機(jī)器周期,10ms=9216次機(jī)器周期。

預(yù)置數(shù)的計算公式:預(yù)置數(shù)=最大值-需要計數(shù)的次數(shù);(65536-9216)

再將預(yù)置數(shù)裝入16位定時計數(shù)器,如下:

TH0=(65536-9216)/256

TL0=(65536-9216)%256

介紹完初值的確定,下面介紹定時器最常見的兩種用法

定時:定時計數(shù)器作為定時器使用,配置步驟如下:

1.模式設(shè)置,配置TMOD寄存器

2.定時器初值設(shè)置 假設(shè)10ms中斷

3.開定時器中斷

4.開總中斷

5.打開定時器

通過以上5步就打開了一個定時器,定時器沒10毫秒發(fā)起一次中斷,即沒10毫秒進(jìn)入一次中斷服務(wù)程序

示例程序如下:

#include《reg51.h》

sbit led=P1^0;

unsigned int flag;

void main()

{

TMOD=0x01;//1.模式設(shè)置,00000001,采用的是定時器0,工作與式1(M1=0,M0=1)。

TH0=(65536-10000)/256; //2.定時器設(shè)置,每隔10毫秒發(fā)起一次中斷。

TL0=(65536-10000)%256;

ET0=1; //3.開定時器0中斷

EA = 1; //4.開總中斷

TR0=1; //5.打開定時器

while(1)

{

if(flag==100)

{

led=~led;

flag=0;

}

}

}

void TIM0() interrupt 1 //中斷服務(wù)程序

{

TH0=(65536-10000)/256; //進(jìn)入中斷要重新設(shè)置定時器處置,要注意。

TL0=(65536-10000)%256;

flag++;

}1234567891011121314151617181920212223242526272829

計數(shù):定時計數(shù)器作為計數(shù)器使用,配置步驟如下:

1.模式設(shè)置,配置TMOD寄存器。

2.開計數(shù)器中斷

3.開總中斷

4.打開計數(shù)器

通過這簡單的四步,我們就打開了一個計數(shù)器,可以對P3.4或者P3.5進(jìn)行下降沿的脈沖計數(shù),這里有一點(diǎn)要注意就是計數(shù)器可以不開中斷,這樣溢出時只是不會進(jìn)去中斷服務(wù)程序。

示例程序如下:

#include《reg51.h》

sbit led=P1^0;

sbit s=P3^4;

unsigned int count;

void main()

{

TMOD=0x05; //1.模式設(shè)置,00000101,采用的是計數(shù)器0,工作模式1(M1=0,M0=1)。

TH0=0; //計數(shù)器清零

TL0=0;

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

EA=1; //3.開總中斷

TR0=1; //4.打開計數(shù)器

led=1;

while(1)

{

count=(TH0《《8)|TL0;

if((count*10000)==50000)//按5下按鍵led狀態(tài)取反

{

led=0;

TH0=0XFF;

TL0=0XFF; //人為的讓計數(shù)器進(jìn)入中斷

}

}

}

void TIM0() interrupt 1 //中斷服務(wù)程序

{

led=1;

TH0=0;

TL0=0;

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 51單片機(jī)
    +關(guān)注

    關(guān)注

    278

    文章

    5716

    瀏覽量

    135182
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    單片機(jī)計數(shù)器_定時器工作原理_

    單片機(jī)計數(shù)器_定時器工作原理,定時器、計數(shù)器寄存,
    發(fā)表于 05-06 14:12 ?1次下載

    51單片機(jī)的中斷系統(tǒng)和定時計數(shù)器的結(jié)構(gòu)和工作原理及應(yīng)用設(shè)計資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是51單片機(jī)的中斷系統(tǒng)和定時計數(shù)器的結(jié)構(gòu)和工作原理及應(yīng)用設(shè)計資料概述。
    發(fā)表于 10-24 16:22 ?5次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的中斷系統(tǒng)和<b class='flag-5'>定時計數(shù)器</b>的結(jié)構(gòu)和<b class='flag-5'>工作原理</b>及應(yīng)用設(shè)計資料概述

    51單片機(jī)定時計數(shù)器的結(jié)構(gòu)和工作原理詳細(xì)說明

    定時/計數(shù)器的實質(zhì)是加1計數(shù)器(16位),由高8位和低8位兩個寄存組成。80C51單片機(jī)
    發(fā)表于 08-21 17:31 ?1次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>定時計數(shù)器</b>的結(jié)構(gòu)和<b class='flag-5'>工作原理</b>詳細(xì)說明

    51單片機(jī)定時計數(shù)器的應(yīng)用實驗資料說明

    熟悉keil仿真軟件、protues仿真軟件的使用和單片機(jī)定時程序的編寫。了解51單片機(jī)定時、計數(shù)
    發(fā)表于 09-06 17:03 ?22次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>定時計數(shù)器</b>的應(yīng)用實驗資料說明

    MCS-51單片機(jī)定時器計數(shù)器的4種工作方式解析

    MCS-51單片機(jī)含有2個定時器/計數(shù)器,具有4種工作方式。具有兩種工作
    發(fā)表于 10-22 16:24 ?3.5w次閱讀
    MCS-<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>定時器</b>和<b class='flag-5'>計數(shù)器</b>的4種<b class='flag-5'>工作</b>方式解析

    51單片機(jī)定時/計數(shù)器工作原理

    定時/計數(shù)器的最基本工作原理是進(jìn)行計數(shù)。對內(nèi)部時鐘脈沖進(jìn)行計數(shù)時,作為定時器;對外部脈沖信號
    發(fā)表于 11-10 20:36 ?14次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>定時</b>/<b class='flag-5'>計數(shù)器</b>的<b class='flag-5'>工作原理</b>

    51單片機(jī)定時器/計數(shù)器工作原理和結(jié)構(gòu)(一)

    51單片機(jī)定時器/計數(shù)器工作原理和結(jié)構(gòu)回看下單片機(jī)中斷系統(tǒng)內(nèi)部結(jié)構(gòu):分析內(nèi)部中斷觸發(fā):先看
    發(fā)表于 11-11 09:21 ?11次下載
    【<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>】<b class='flag-5'>定時器</b>/<b class='flag-5'>計數(shù)器</b>的<b class='flag-5'>工作原理</b>和結(jié)構(gòu)(一)

    51單片機(jī)定時器\計數(shù)器工作原理

    51單片機(jī)定時器\計數(shù)器工作原理定時器/計數(shù)器的結(jié)構(gòu):何時處于
    發(fā)表于 11-11 11:36 ?10次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>之<b class='flag-5'>定時器</b>\<b class='flag-5'>計數(shù)器</b>的<b class='flag-5'>工作原理</b>

    51單片機(jī)定時器、計數(shù)器配置

    一、51單片機(jī)定時/計數(shù)器工作原理在了解了單片機(jī)的時鐘頻率、時鐘周期、機(jī)器周期之后,顯然我們
    發(fā)表于 11-11 13:51 ?17次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>定時器</b>、<b class='flag-5'>計數(shù)器</b>配置

    單片機(jī)(AT89C51定時/計數(shù)器實驗案例

    繼上篇的《單片機(jī)(AT89C51定時/計數(shù)器詳解及其實驗案例》由于各種原因里面沒有實驗案例現(xiàn)在在此補(bǔ)上。
    發(fā)表于 11-11 15:06 ?16次下載
    <b class='flag-5'>單片機(jī)</b>(AT89C<b class='flag-5'>51</b>)<b class='flag-5'>定時</b>/<b class='flag-5'>計數(shù)器</b>實驗案例

    51單片機(jī)定時/計數(shù)器

    定時計數(shù)器什么是定時/計數(shù)器以及用處51單片機(jī)有2個16位定時器/
    發(fā)表于 11-12 14:51 ?13次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>定時</b>/<b class='flag-5'>計數(shù)器</b>

    單片機(jī)(AT89C51定時/計數(shù)器詳解及其實驗案例

    單片機(jī)(AT89C51定時/計數(shù)器及其實驗案例目錄:定時/計數(shù)器應(yīng)用范圍
    發(fā)表于 11-17 10:06 ?114次下載
    <b class='flag-5'>單片機(jī)</b>(AT89C<b class='flag-5'>51</b>)<b class='flag-5'>定時</b>/<b class='flag-5'>計數(shù)器</b><b class='flag-5'>詳解</b>及其實驗案例

    51單片機(jī)定時器/計數(shù)器

    一、課前須知:1、51單片機(jī)有兩組定時器/計數(shù)器,因為既可以定時,也可以計數(shù),所以稱之為
    發(fā)表于 11-20 20:06 ?47次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>定時器</b>/<b class='flag-5'>計數(shù)器</b>

    【Practical】51單片機(jī)定時/計數(shù)器

    51單片機(jī)定時/計數(shù)器程序查詢方式與中斷方式
    發(fā)表于 11-22 17:36 ?16次下載
    【Practical】<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>定時</b>/<b class='flag-5'>計數(shù)器</b>

    單片機(jī)定時/計數(shù)器工作定時計數(shù)方式時有何異同點(diǎn)?

    單片機(jī)定時/計數(shù)器工作定時計數(shù)方式時有何異同點(diǎn)? 單片機(jī)
    的頭像 發(fā)表于 10-25 11:50 ?6803次閱讀
    娱乐| 松原市| 鄂温| 武安市| 门头沟区| 衡山县| 博爱县| 石屏县| 池州市| 庆元县| 衡阳市| 瓦房店市| 怀安县| 万盛区| 蛟河市| 云浮市| 三江| 东平县| 沐川县| 旺苍县| 同德县| 方城县| 新泰市| 绥芬河市| 普安县| 沙洋县| 沁阳市| 临清市| 沁源县| 宁陵县| 通道| 桃园县| 株洲市| 阳西县| 洛宁县| 东辽县| 绥阳县| 舒城县| 兰溪市| 南雄市| 建瓯市|