女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

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

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

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

汽車電子技術(shù) ? 來源:嵌入式悅翔園 ? 作者:JamesBin ? 2023-02-17 14:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

8051單片機(jī)內(nèi)部有兩個定時/計數(shù)器T0及T1,具有定時和計數(shù)兩種功能。T0及T1在計數(shù)過程中不需要CPU參與,也不影響CPU的其他工作。當(dāng)計數(shù)溢出后,定時/計數(shù)器給出中斷信號,申請CPU停止當(dāng)前的工作,去處理預(yù)先設(shè)定的中斷事件。

一、T1內(nèi)部結(jié)構(gòu)

圖片

定時器工作模式:對內(nèi)部時鐘信號計數(shù)。由于時鐘頻率是定值,所以可根據(jù)計數(shù)值計算出定時時間。

計數(shù)器工作模式:是對加在T1(P3.5)引腳上的外部脈沖進(jìn)行計數(shù)。

二、計數(shù)功能

計數(shù)器用于統(tǒng)計從TO(P3.4)和Tl(P3.5)兩個引腳輸入脈沖的負(fù)跳變數(shù)量。負(fù)跳變是指前一個機(jī)器周期采樣為高電平,后一個機(jī)器周期為低電平。每輸入一個脈沖負(fù)跳變,計數(shù)器加1。

輸入脈沖的高電平與低電平至少應(yīng)保持一個機(jī)器周期時間,以確保正確采樣,因此輸入脈沖的頻率最高為單片機(jī)內(nèi)部脈沖頻率的一半。如果內(nèi)部脈沖頻率為1 MHZ,則最高計數(shù)頻率為0.5 MHz。

三、定時功能

定時功能是單片機(jī)通過對內(nèi)部機(jī)器脈沖信號計數(shù)實現(xiàn)的,計數(shù)值乘以機(jī)器周期就是相應(yīng)的時間。例如,如果單片機(jī)采用12 MHz的晶振,則機(jī)器內(nèi)部脈沖頻率為1 MHz,則機(jī)器周期為1us,若共計數(shù)1000,則用時為1ms時間。

圖片

圖片

四、工作方式

工作方式寄存器TMOD

工作方式寄存器TMOD用于控制定時/計數(shù)器的工作方式和工作模式,長度為一個字節(jié),只能按字節(jié)整體賦值。

圖片

(1)Ml和M0用于設(shè)置TO(T1)的工作方式。

圖片

圖片

(2)C/T用于設(shè)置TRO(TR1)是工作于計數(shù)器或定時器模式。

C/T—計數(shù)器模式和定時器模式選擇位

0:定時器工作模式,對單片機(jī)的晶體振蕩器12分頻后的脈沖進(jìn)行計數(shù)。

1:計數(shù)器工作模式,計數(shù)器對外部輸入引腳T0(P3.4)或T1(P3.5)的外部脈沖(負(fù)跳變)計數(shù)。

圖片

(3)GATE(門控制位)用于設(shè)置TO(T1)的啟動方式。

GATE—門控位。

0:僅由運行控制位TRx(x =0,1)來控制定時器/計數(shù)器運行。

1:用外中斷引腳INT0(或INT1 )上的電平與運行控制位TRx共同來控制定時器/計數(shù)器運行。

圖片

例:設(shè)定時器1為定時工作方式,按方式2工作,定時器0為計數(shù)方式,按方式1工作,均由程序單獨控制啟動和停止,請給出TMOD控制字。

解:

定時器1做定時器使用則D6=0;按方式2工作則D5=1,D4=0;
由程序單獨控制啟停則D7=0 。
定時器0做計數(shù)器使用則D2=1;按方式1工作則D0=0,D1=1;
由程序單獨控制啟停則D3=0。
因此命令字TMOD的值應(yīng)為00100101B,即25H

圖片

定時器控制寄存器TCON (Timer controller)

TCON也是8位寄存器,與TMOD不同的是它可按位單獨賦值,其各位的意義見下表。

圖片

1、TF1、TF0—計數(shù)溢出標(biāo)志位。

當(dāng)計數(shù)器計數(shù)溢出時,該位置“1”。

使用中斷方式時,此位作為中斷請求標(biāo)志位,標(biāo)志位由硬件自動清“0”。使用查詢方式時,應(yīng)注意查詢有效后使用軟件及時將該位清“0”。

2、TR1、TR0—計數(shù)運行控制位。

TR1位(或TR0位)=1,啟動定時器/計數(shù)器工作的必要條件。

TR1位(或TR0位)=0,停止定時器/計數(shù)器工作。

4.1、工作方式0

方式0是13位的定時/計數(shù)器,它由TL的低5位和TH的8位構(gòu)成。

圖片

4.2、工作方式1

方式1是16位的定時/計數(shù)器,由TH的8位和TL的8位構(gòu)成。方式0和方式1的工作原理基本相同。

圖片

方式0和方式1的特點:

T1啟動后,在TL1和TH1中存儲的計數(shù)初值基礎(chǔ)上進(jìn)行加“1”計數(shù),直至溢出。溢出時T1寄存器被清零,TF1被置位,并申請中斷。此后,若T1重新啟動,則從零重新開始計數(shù)。若希望T1從某一數(shù)值開始計數(shù),則應(yīng)給計數(shù)器賦初值。

若所需計數(shù)長度為N,則計數(shù)初值X=2M-N(1≤N≤2M),其中當(dāng)工作于方式0時,M=13,當(dāng)工作于方式1時,M=16。在為計數(shù)器賦初值時,應(yīng)將初值拆成高低兩部分字節(jié),分別送入TL1和TH1。

實例:欲采用8051單片機(jī)控制8個LED同時以1s為周期閃爍,設(shè)計電路原理圖并編寫程序。

圖片

設(shè)置定時/計數(shù)器的過程:

1)先初始化工作方式寄存器TMOD

2)為定時/計數(shù)器賦初值

3)通過控制寄存器TCON中的TRO或TRl實現(xiàn)啟動或停止。

#include                  //  將8051單片機(jī)頭文件包含到文件中
main(void )
{
    unsigned char counter;   //設(shè)置無符號字符型變量,存儲定時器中斷次數(shù)。
     TMOD=0x01; //設(shè)T0為定時模式,由TR0控制啟動和停止,且工作于方式1
  TH0=(65536-46083)/256;         //初始化T0的高8位
  TL0=(65536-46083)%256;        //初始化T0的低8位
  TF0=0;                       //初始化定時器溢出標(biāo)志
  P0=0xff;                      //關(guān)閉LED
    counter=0;                    //從0開始計數(shù)  
    TR0=1;                       //啟動定時器0
   while(1)
    {
     while(TF0==1)              //如果定時器溢出
    {
          counter++;              //計時次數(shù)加1
          if(counter==20)          //計時時間達(dá)到1s
           {
             P0=~P0;                // P0所有位取反,使LED閃爍              
             counter=0;              //重新從0開始計數(shù)
           }
            TH0=(65536-46083)/256;  //重新初始化T0的高8位
            TL0=(65536-46083)%256; //重新初始化T0的低8位
            TF0=0;                 //重新初始化定時器溢出標(biāo)志
       }
    }
}

方式0和方式1的特點:

T1啟動后,在TL1和TH1中存儲的計數(shù)初值基礎(chǔ)上進(jìn)行加“1”計數(shù),直至溢出。溢出時T1寄存器被清零,TF1被置位,并申請中斷。此后,若T1重新啟動,則從零重新開始計數(shù)。若希望T1從某一數(shù)值開始計數(shù),則應(yīng)給計數(shù)器賦初值。

若所需計數(shù)長度為N,則計數(shù)初值X=2M-N(1≤N≤2M),其中當(dāng)工作于方式0時,M=13,當(dāng)工作于方式1時,M=16。在為計數(shù)器賦初值時,應(yīng)將初值拆成高低兩部分字節(jié),分別送入TL1和TH1。

實例:欲采用8051單片機(jī)控制8個LED同時以1s為周期閃爍,設(shè)計電路原理圖并編寫程序。

圖片

設(shè)置定時/計數(shù)器的過程:

1)先初始化工作方式寄存器TMOD

2)為定時/計數(shù)器賦初值

3)通過控制寄存器TCON中的TRO或TRl實現(xiàn)啟動或停止。

#include                  //  將8051單片機(jī)頭文件包含到文件中
main(void )
{
    unsigned char counter;   //設(shè)置無符號字符型變量,存儲定時器中斷次數(shù)。
     TMOD=0x01; //設(shè)T0為定時模式,由TR0控制啟動和停止,且工作于方式1
  TH0=(65536-46083)/256;         //初始化T0的高8位
  TL0=(65536-46083)%256;        //初始化T0的低8位
  TF0=0;                       //初始化定時器溢出標(biāo)志
  P0=0xff;                      //關(guān)閉LED
    counter=0;                    //從0開始計數(shù)  
    TR0=1;                       //啟動定時器0
   while(1)
    {
     while(TF0==1)              //如果定時器溢出
    {
          counter++;              //計時次數(shù)加1
          if(counter==20)          //計時時間達(dá)到1s
           {
             P0=~P0;                // P0所有位取反,使LED閃爍              
             counter=0;              //重新從0開始計數(shù)
           }
            TH0=(65536-46083)/256;  //重新初始化T0的高8位
            TL0=(65536-46083)%256; //重新初始化T0的低8位
            TF0=0;                 //重新初始化定時器溢出標(biāo)志
       }
    }

4.3、工作方式2

方式2的特點是能自動加載計數(shù)初值。16位計數(shù)器被分為兩部分,以TL0作為計數(shù)器,以TH0作為存儲器。初始化時把計數(shù)初值分別加載至TL0和TH0中,當(dāng)計數(shù)溢出時,由存儲器TH0自動給計數(shù)器TL0加載計數(shù)初值。若所需計數(shù)長度為N,則計數(shù)初值X=28-N(1≤N≤256)。

圖片

實例:下圖是產(chǎn)品包裝生產(chǎn)線的計數(shù)系統(tǒng),每個產(chǎn)品經(jīng)過計數(shù)裝置時由機(jī)械桿碰合按鍵S1一次。當(dāng)?shù)谝淮斡嫕M一包(5個)則D1亮,計滿第二包則D2亮…,計滿第八包則D1~D8全亮,八包包裝成一箱,此后重復(fù)以上過程。編寫程序?qū)崿F(xiàn)此功能。

圖片

#include            //  包含51單片機(jī)寄存器定義的頭文件
unsigned char counter;      //計數(shù)初值
main(void )
{     
   TMOD=0x60;                //使用T1的工作方式2
  TH1=256-5;              // T1的高8位賦初值
  TL1=256-5;              // T1的低8位賦初值  
  counter=0;  
  TR1=1;                    //啟動T1
  while(1)               
    {
     while(TF1==1)           //如果計滿
        {
            TF1=0;             //計數(shù)器溢出后,將TF1清0
            counter++;         //計數(shù)加1
    switch (counter)  //檢查中斷計數(shù)值
      {
                case 1: P0=0xfe; break;  //則第1個燈亮
                case 2: P0=0xfd; break;  //第2個燈亮
                case 3: P0=0xfb; break;  //第3個燈亮
                case 4: P0=0xf7; break;  //第4個燈亮
                case 5: P0=0xef; break; //第5個燈亮
                case 6: P0=0xdf; break; //第6個燈亮
                case 7: P0=0xbf; break; //第7個燈亮
                case 8: P0=0x00; counter=0; break; //8個燈全亮
             }                             
          }          
   }
 }

4.4、工作模式3

TO被拆成兩個獨立的8位計數(shù)器TLO和THO,TL0獨占T0的各控制位、引腳和中斷源,既可以用作定時器也可作計數(shù)器。TH0只能作為定時器使用,且需要占用T1的控制位TR1和TF1實現(xiàn)啟停和中斷。

圖片

兩個定時/計數(shù)器的使用方法與方式0或1相似。工作方式3只適用于T0,不適用于T1。若將T1強行設(shè)置為模式3,將使T1立即停止計時或計數(shù),相當(dāng)于使TR1=0。

當(dāng)T0作方式3時,T1仍可以設(shè)置為除工作方式3外的其它工作方式,但由于它的TR1和TF1已被T0占用,因此無法按正常計時/計數(shù)器工作,常用于串行通信時的波特率發(fā)生器,以控制傳輸數(shù)據(jù)的速度。

單片機(jī)的P0口接了8個發(fā)光二極管,要求使用定時器T0中斷實現(xiàn)流水燈操作,流水頻率為每0.5秒鐘更替一次(假設(shè)單片機(jī)外接11.0592MHz的晶振)。

圖片

#include
unsigned char cnt=0;    //用于中斷次數(shù)計數(shù)
unsigned char led =0xfe;  //初始化流水燈
int main(void)
{
  TMOD=0x01;       //16位定時方式
  TH0=(65536-46083)/256;   //初始化T0的高8位
  TL0=(65536-46083)%256;   //初始化T0的低8位
  EA=1;
  ET0=1;      //開中斷
  TR0=1;      //啟動T0工作
   while(1);
}
void T0_int(void)  interrupt 1   
{
  cnt++;
  if( cnt==10 )    //0.5秒鐘的時間到了
  {
    cnt=0;      //清除次數(shù)統(tǒng)計
    led =(led <<1)|1;    //更新流水燈數(shù)據(jù)
    if(led ==0xff)
    {
      led =0xfe;
    }
    P0=led;      //顯示流水燈
  }
   TH0=(65536-46083)/256;       //初始化T0的高8位
  TL0=(65536-46083)%256;       //初始化T0的低8位
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 計數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2290

    瀏覽量

    96193
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3297

    瀏覽量

    117510
  • 8051單片機(jī)
    +關(guān)注

    關(guān)注

    5

    文章

    153

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    80C51單片機(jī)定時器/計數(shù)器詳解(含工作方式)

    80C51單片機(jī)要實現(xiàn)定時功能,比較方便的辦法是利用單片機(jī)內(nèi)部的定時/計數(shù)器。下面我們將對80C
    發(fā)表于 11-09 20:10 ?6w次閱讀
    80C<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>定時器</b>/<b class='flag-5'>計數(shù)器</b>詳解(含工作方式)

    51單片機(jī)定時器計數(shù)器的原理及應(yīng)用實例詳細(xì)資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是51單片機(jī)定時器計數(shù)器的原理及應(yīng)用實例詳細(xì)資料說明。
    發(fā)表于 08-13 17:32 ?1次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>定時器</b>和<b class='flag-5'>計數(shù)器</b>的原理及應(yīng)用實例詳細(xì)資料說明

    51單片機(jī)定時器計數(shù)器詳細(xì)資料介紹和應(yīng)用程序免費下載

    51單片機(jī)定時器/計數(shù)器有2個分別是T1和T0,52系列的單片機(jī)有3個定時器/
    發(fā)表于 07-16 17:39 ?4次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>定時器</b>和<b class='flag-5'>計數(shù)器</b>詳細(xì)資料介紹和應(yīng)用程序免費下載

    使用51單片機(jī)定時器計數(shù)器實現(xiàn)定時的實例說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)定時器計數(shù)器實現(xiàn)定時的實例說明。
    發(fā)表于 07-12 17:39 ?7次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>定時器</b>和<b class='flag-5'>計數(shù)器</b>實現(xiàn)<b class='flag-5'>定時</b>的實例說明

    51單片機(jī)定時器計數(shù)器的使用資料詳細(xì)說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是51單片機(jī)定時器計數(shù)器的使用資料詳細(xì)說明。
    發(fā)表于 07-09 17:40 ?1次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>定時器</b>和<b class='flag-5'>計數(shù)器</b>的使用資料詳細(xì)說明

    51單片機(jī)定時器計數(shù)器的功能實現(xiàn)資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是51單片機(jī)定時器計數(shù)器的功能實現(xiàn)資料說明。
    發(fā)表于 06-19 17:44 ?0次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>定時器</b>和<b class='flag-5'>計數(shù)器</b>的功能實現(xiàn)資料說明

    51單片機(jī)定時器計數(shù)器詳細(xì)資料說明

    定時器/計數(shù)器定時器的作用最為突出。一般來說涉及到定時器,都可以算作定時器算法。簡單的如秒表等。復(fù)雜的如果系統(tǒng)內(nèi)核的
    發(fā)表于 06-18 17:44 ?0次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>定時器</b>和<b class='flag-5'>計數(shù)器</b>詳細(xì)資料說明

    基于51單片機(jī)定時器計數(shù)器硬件設(shè)計

    基于51單片機(jī)定時器計數(shù)器硬件設(shè)計
    發(fā)表于 09-06 15:05 ?4次下載

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

    51單片機(jī)定時器/計數(shù)器的工作原理和結(jié)構(gòu)回看下單片機(jī)中斷系統(tǒng)內(nèi)部結(jié)構(gòu):分析內(nèi)部中斷觸發(fā):先看圖TCON:和外部中斷相比少了IT位設(shè)置觸發(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>的工作原理和結(jié)構(gòu)(一)

    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>配置

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

    難的東西學(xué)不會是因為簡單的知識沒學(xué)好基礎(chǔ)不牢,地動山搖1.01.0.1定時器(1)51單片機(jī)定時器是一個內(nèi)部外設(shè)。(2)定時器相當(dāng)于CPU
    發(fā)表于 11-11 20:06 ?11次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>定時器</b>與<b class='flag-5'>計數(shù)器</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>

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

    本文主要對定時功能、計數(shù)功能、定時器/計時結(jié)構(gòu)和定時器/計數(shù)器的四種工作方式進(jìn)行介紹
    發(fā)表于 11-22 15:06 ?12次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>——<b class='flag-5'>定時器</b>/<b class='flag-5'>計數(shù)器</b>

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

    51單片機(jī)定時器/計數(shù)器接口定時器/計數(shù)器0和1T0由特殊功能寄存
    發(fā)表于 11-22 15:51 ?0次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>定時器</b>/<b class='flag-5'>計數(shù)器</b>接口

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

    一 TMOD寄存定時/計數(shù)器的工作方式寄存)1.GATE(門控位):GATE=0——定時器受外部信號源影響GATE=1——用軟件使TR
    發(fā)表于 11-22 16:36 ?8次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b>——<b class='flag-5'>定時器</b>和<b class='flag-5'>計數(shù)器</b>
    主站蜘蛛池模板: 建昌县| 兴化市| 临汾市| 黔江区| 宜昌市| 广东省| 察雅县| 朝阳市| 长泰县| 达尔| 望城县| 西和县| 板桥市| 正镶白旗| 枝江市| 商丘市| 泽库县| 邢台市| 衡东县| 乐都县| 五家渠市| 内丘县| 米脂县| 金昌市| 西吉县| 尼勒克县| 东城区| 沧源| 喜德县| 长宁县| 察雅县| 崇义县| 新民市| 时尚| 仁布县| 武隆县| 邓州市| 日照市| 霞浦县| 平遥县| 清涧县|