<dl id="b4zrn"><label id="b4zrn"></label></dl><thead id="b4zrn"></thead>

    <blockquote id="b4zrn"></blockquote>

      <strike id="b4zrn"></strike>
        1. <div id="b4zrn"><label id="b4zrn"></label></div>
          您好,歡迎訪問上海意泓電子科技有限責(zé)任公司網(wǎng)站!
          4新聞資訊
          您的位置: 首頁 ->  新聞資訊 -> 單片機

          ?51單片機 (3)定時器和計數(shù)器

          文章出處:單片機 責(zé)任編輯:上海意泓電子科技有限責(zé)任公司 發(fā)表時間:
          2018
          05-19

          注:定時器與計數(shù)器原理與使用方法相似、此處計數(shù)器知識為基礎(chǔ)普及、后面詳講

          2個定時器(寄存器)、定時器0、定時器1、(計數(shù)器0、計數(shù)器1)

          TMOD:定時器/計數(shù)器模式控制寄存器 詳見百度百科TMOD

          • 每經(jīng)過一個機器周期、寄存器+1

          • TF:定時器溢出標志。溢出時自動置1。中斷時硬件清零否則必須軟件清零。

          • TR:定時器運行控制位。置1開始計時、清零停止計時。

          • C/T:該位為0時用作計時器、該位為1時用作計數(shù)器。

          溢出時時間-開始計時時間=預(yù)設(shè)定時時間


          一個機器周期共有12個振蕩脈沖周期


          若設(shè)定時為0.02s,則:

          12*(65535-X)/11059200=0.02s  

          定時器作“加1”次數(shù):X=47104=0xB800次  時間為0.02s

          使用定時器的方法

          1、設(shè)置特殊功能寄存器TMOD,使之工作在需求的狀態(tài)。
          2、設(shè)置計數(shù)寄存器的初值,精確設(shè)定好定時時間。
          3、設(shè)置特殊功能寄存器TCON,通過打開TR來讓定時器進行工作。

          4、判斷寄存器TCON的FT0位、檢測定時器溢出情況。


          假設(shè)我們使用定時器0、定時為0.02s,兩個寄存器計時

          TMOD=0x01;   TMOD=0x01,指的是采用T0方式,將M1置0,M0置1,是方式一的定時器

          高八位寄存器TH0=0xB8、低八位寄存器TL0=0x00


          C程序?qū)崿F(xiàn)1s鐘定時

          1. #include   

          2. typedef unsigned char uint8;  

          3. typedef unsigned int uint16;  

          4. sbit led=P1^0;  

          5. uint8 counter;  

          6.   

          7. void main(){  

          8.    TMOD=0x01;  

          9.    TH0=0xb8;  

          10.    TL0=0x00;  

          11.    TR0=1;   

          12.    led=1;  

          13.    counter=0;  

          14.    while(1){  

          15.       if(TF0==1){   //如果達到溢出 0.02s后溢出  

          16.          TF0=0;  //軟件清零  

          17.          TH0=0xB8;   //重置計數(shù)基數(shù)  

          18.              TL0=0x00;  

          19.          counter++;  //溢出一次計次數(shù)  

          20.       }  

          21.       if(counter==50){   //0.02s*50=1s  

          22.         counter=0;    //清零  

          23.         led=~led; //取反使P1^0亮滅  

          24.       }  

          25.    }  

          26. }  


          上海意泓電子科技有限責(zé)任公司 版權(quán)所有 未經(jīng)授權(quán)禁止復(fù)制或鏡像

          CopyRight 2020-2025 m.frontgate.com.cn All rights reserved   滬ICP備2021005866號

          久艹视频在线观看这里只有精品,国语自产拍在线视频普通话94,久久婷婷综合缴情亚洲狠狠,亚洲不卡永远在线精品无码
          <dl id="b4zrn"><label id="b4zrn"></label></dl><thead id="b4zrn"></thead>

            <blockquote id="b4zrn"></blockquote>

              <strike id="b4zrn"></strike>
                1. <div id="b4zrn"><label id="b4zrn"></label></div>