色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

單片機(jī)定時(shí)/計(jì)數(shù)器的工作方式

CHANBAEK ? 來(lái)源:電子開(kāi)發(fā)之家 ? 作者: 小樹(shù) ? 2023-10-31 15:48 ? 次閱讀

1硬件連接

定時(shí)器是單片機(jī)內(nèi)部的特殊功能模塊。

控制系統(tǒng)中,常常要求有一些實(shí)時(shí)時(shí)鐘以實(shí)現(xiàn)定時(shí)或者延時(shí)控制,如定時(shí)中斷、定時(shí)檢測(cè)、定時(shí)掃描等等,也往往要求有計(jì)數(shù)器,對(duì)外部事件進(jìn)行計(jì)數(shù)。

要實(shí)現(xiàn)定時(shí)或者延時(shí)功能,一般有三種方法:軟件定時(shí),不可編程硬件定時(shí),可編程硬件定時(shí)。

軟件定時(shí)——讓軟件循環(huán)執(zhí)行一段程序,程序本身并無(wú)執(zhí)行目的,而是通過(guò)執(zhí)行程序延時(shí)固定的時(shí)間,也就是以前的程序中經(jīng)常使用的延時(shí)程序。這種方法降低了cpu的利用率。

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

可編程定時(shí)器——這種定時(shí)器的定時(shí)值可以通過(guò)軟件確定和修改,使用靈活便捷。

本節(jié)所講的定時(shí)器為第三種,可編程定時(shí)器,51單片機(jī)中T0/T1為2個(gè)相同的16位定時(shí)/計(jì)數(shù)器。

定時(shí)/計(jì)數(shù)器的結(jié)構(gòu):

圖片
圖 1 定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)

TCON控制寄存器:

圖片

TCON用于控制外部中斷和定時(shí)/計(jì)數(shù)器啟動(dòng)和中斷,低4位用于控制外部中斷,高4位用于控制定時(shí)/計(jì)數(shù)器T0和T1。

TCON.0~TCON.3(IT0、IE0、IT1、IE1)均為外部中斷相關(guān)位,詳見(jiàn)外部中斷。

TR0(TCON.4):定時(shí)/計(jì)數(shù)器T0運(yùn)行控制位。TR0=1時(shí),T0開(kāi)始工作;TR0=0時(shí),T0停止工作。TR0由軟件置1或清0。所以,用軟件可控制定時(shí)/計(jì)數(shù)器的啟動(dòng)與停止。

TF0(TCON.5):定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位。TF0=1時(shí),申請(qǐng)進(jìn)去定時(shí)器中斷。T0計(jì)數(shù)溢出時(shí)由硬件自動(dòng)置TF0為1。CPU響應(yīng)中斷后TF0由硬件自動(dòng)清0。T0工作時(shí),CPU可隨時(shí)查詢(xún)TF0的狀態(tài)。所以,TF0可用作查詢(xún)測(cè)試的標(biāo)志。TF0也可以用軟件置1或清0,同硬件置1或清0的效果一樣。

TR1(TCON.6):定時(shí)/計(jì)數(shù)器T1運(yùn)行控制位,其功能與TR0類(lèi)同。

TF1(TCON.7):定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志位,其功能與TF0類(lèi)同。

TMOD模式控制寄存器:

圖片

圖 3 TMOD模式控制寄存器格式

TMOD用于設(shè)置定時(shí)/計(jì)數(shù)器的工作方式,低四位用于T0,高四位用于T1

GATE: 門(mén)控位。GATE=0時(shí),只要用軟件使TCON中的TR0或TR1為1,就可以啟動(dòng)

定時(shí)/計(jì)數(shù)器工作;GATA=1時(shí),要用軟件使TR0或TR1為1,同時(shí)外部中斷引腳或也為高電平時(shí),才能啟動(dòng)定時(shí)/計(jì)數(shù)器工作。即此時(shí)定時(shí)器的啟動(dòng)多了一條件。

image.png

M1M0:工作方式設(shè)置位。定時(shí)/計(jì)數(shù)器有四種工作方式,由M1M0進(jìn)行設(shè)置。

圖片
表1 定時(shí)/計(jì)數(shù)器工作方式表

2定時(shí)/計(jì)數(shù)器的工作方式

一、方式0

方式0為13位計(jì)數(shù),由TL0的低5位(高3位未用)和TH0的8位組成。TL0的低5位溢出時(shí)向TH0進(jìn)位,TH0溢出時(shí),置位TCON中的TF0標(biāo)志,向CPU發(fā)出中斷請(qǐng)求。

圖片
圖 4 方式0工作原理

計(jì)數(shù)初值計(jì)算初值的公式為:image.png

二、方式1

方式1的計(jì)數(shù)位數(shù)是16位,由TL0作為低8位、TH0作為高8位,組成了16位加1計(jì)數(shù)器。

圖片
圖 5 方式1工作原理圖

計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為:image.png

三、方式2

方式2為自動(dòng)重裝初值的8位計(jì)數(shù)方式。當(dāng)TL0裝滿(mǎn)溢出時(shí),系統(tǒng)自動(dòng)將TH0中的數(shù)值裝給TL0,TLO重新開(kāi)始計(jì)數(shù)。

圖片
圖 6 方式2工作原理圖

計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為:image.png

四、方式3

方式3只適用于定時(shí)/計(jì)數(shù)器T0,定時(shí)器T1處于方式3時(shí)相當(dāng)于TR1=0,停止計(jì)數(shù)。工作方式3將T0拆分成為兩個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器TL0和TH0,兩個(gè)計(jì)數(shù)器獨(dú)立工作。

圖片
圖 7 方式3工作原理圖

計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為:image.png

3定時(shí)器0

#include< reg52.h > //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義
sbit LED=P1^2;    //定義LED端口

/*------------------------------------------------
                    定時(shí)器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
 TMOD |= 0x01;	  //使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響		     
 TH0=0x00;	      //給定初值,這里使用定時(shí)器最大值從0開(kāi)始計(jì)數(shù)一直到65535溢出
 TL0=0x00;
 EA=1;            //總中斷打開(kāi)
 ET0=1;           //定時(shí)器中斷打開(kāi)
 TR0=1;           //定時(shí)器開(kāi)關(guān)打開(kāi)
}
/*------------------------------------------------
                    主程序
------------------------------------------------*/
main()
{
 Init_Timer0();
 while(1);
}

/*------------------------------------------------
                 定時(shí)器中斷子程序
------------------------------------------------*/
void Timer0_isr(void) interrupt 1 using 1
{
 TH0=0x00;		  //重新賦值
 TL0=0x00;

 LED=~LED;        //指示燈反相,可以看到閃爍

}

定時(shí)器0的程序代碼

定時(shí)/計(jì)數(shù)器0 使用16位定時(shí)模式,計(jì)數(shù)初值為0,計(jì)數(shù)到65536 溢出,中斷程序中LED取反,LED 以65536*2個(gè)時(shí)鐘周期為周期閃爍。

計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為:image.png

4定時(shí)器1

#include< reg52.h > //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義
sbit LED=P1^3;    //定義LED端口

/*------------------------------------------------
                    定時(shí)器初始化子程序
------------------------------------------------*/
void Init_Timer1(void)
{
 TMOD |= 0x10;	  //使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響
 TH1=0x00;	      //給定初值,這里使用定時(shí)器最大值從0開(kāi)始計(jì)數(shù)一直到65535溢出
 TL1=0x00;
 EA=1;            //總中斷打開(kāi)
 ET1=1;           //定時(shí)器中斷打開(kāi)
 TR1=1;           //定時(shí)器開(kāi)關(guān)打開(kāi)
}
/*------------------------------------------------
                    主程序
------------------------------------------------*/
main()
{
 Init_Timer1();
 while(1);
}
/*------------------------------------------------
                 定時(shí)器中斷子程序
------------------------------------------------*/
void Timer1_isr(void) interrupt 3 using 1
{
 TH1=0x00;		 //重新賦值
 TL1=0x00;

 LED=~LED;       //LED閃爍

}

定時(shí)1的程序代碼

5 產(chǎn)生1ms方波

#include< reg52.h > //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義
sbit OUT=P1^2;    //定義OUT輸出端口

/*------------------------------------------------
                    定時(shí)器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
 TMOD |= 0x01;	              //使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響		     
 TH0=(65536-500)/256;	      //給定初值,這里使用定時(shí)器最大值從500開(kāi)始計(jì)數(shù)一直到65535溢出
 TL0=(65536-500)%256;		  //12M晶振計(jì)算指令周期1us,1ms方波半個(gè)周期500us,即定時(shí)500次
 EA=1;                        //總中斷打開(kāi)
 ET0=1;                       //定時(shí)器中斷打開(kāi)
 TR0=1;                       //定時(shí)器開(kāi)關(guān)打開(kāi)
}
/*------------------------------------------------
                    主程序
------------------------------------------------*/
main()
{
 Init_Timer0();
 while(1);
}
/*------------------------------------------------
                 定時(shí)器中斷子程序
------------------------------------------------*/
void Timer0_isr(void) interrupt 1 using 1
{
 TH0=(65536-500)/256;		  //重新賦值
 TL0=(65536-500)*256;        
                             							 
 OUT=~OUT;         			  //溢出然后輸出端取反
                              //用示波器可看到方波輸出
}

圖 10 1ms方波的程序代碼

示波器顯示周期為1ms的方波信號(hào)

6 產(chǎn)生多路不同頻率的方波

#include< reg52.h > //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義
/*------------------------------------------------
                    定時(shí)器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
 TMOD |= 0x01;	              //使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響		     
 TH0=(65536-500)/256;	      //給定初值,這里使用定時(shí)器最大值從500開(kāi)始計(jì)數(shù)一直到65535溢出
 TL0=(65536-500)%256;		  //12M晶振計(jì)算指令周期1us,1ms方波半個(gè)周期500us,即定時(shí)500次
 EA=1;                        //總中斷打開(kāi)
 ET0=1;                       //定時(shí)器中斷打開(kāi)
 TR0=1;                       //定時(shí)器開(kāi)關(guān)打開(kāi)
}
/*------------------------------------------------
                    主程序
------------------------------------------------*/
main()
{
 Init_Timer0();
 while(1);
}

/*------------------------------------------------
                 定時(shí)器中斷子程序
------------------------------------------------*/
void Timer0_isr(void) interrupt 1 using 1
{
 static unsigned char i;

 TH0=(65536-500)/256;		  	 //重新賦值
 TL0=(65536-500)*256;        

 i++;
 P1=i; //P1口8路輸出不同頻率,相當(dāng)于一個(gè)分頻器,高頻用示波
       //器測(cè)量,低頻可以直接用led觀測(cè)
       //P1.0輸出1ms方波,P1.1輸出2ms,p1.2輸出4ms,以此類(lèi)推

}

圖 11 多路不同頻率方波的程序代碼

中斷部分,相當(dāng)于一個(gè)分頻器,在P1 口可以測(cè)量出8 路不同頻率的方波。

P1 口測(cè)量不同頻率方波,周期依次增大一倍。

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

    關(guān)注

    6050

    文章

    44687

    瀏覽量

    641186
  • 控制系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    6696

    瀏覽量

    111187
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2278

    瀏覽量

    95422
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3259

    瀏覽量

    115892
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    單片機(jī)定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)與工作方式詳解

    定時(shí)器/計(jì)數(shù)器的實(shí)質(zhì)是加1計(jì)數(shù)器(16位),由高8位和低8位兩個(gè)寄存組成。TMOD是定時(shí)器/計(jì)數(shù)器
    的頭像 發(fā)表于 12-29 06:50 ?1.2w次閱讀
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>定時(shí)器</b>/<b class='flag-5'>計(jì)數(shù)器</b>結(jié)構(gòu)與<b class='flag-5'>工作方式</b>詳解

    單片機(jī)中的定時(shí)計(jì)數(shù)器的四種工作方式詳解

    單片機(jī)中的定時(shí)/計(jì)數(shù)器都能有多種用途,要通過(guò)定時(shí)/計(jì)數(shù)器方式控制字來(lái)設(shè)置,需要的用途。在
    發(fā)表于 04-30 06:30

    51單片機(jī)什么時(shí)候處于定時(shí)器\計(jì)數(shù)器工作方式

    51單片機(jī)定時(shí)器\計(jì)數(shù)器工作原理定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu):何時(shí)處于計(jì)數(shù)器
    發(fā)表于 11-18 06:41

    單片機(jī)定時(shí)器/計(jì)數(shù)器有哪幾種工作方式

    內(nèi)部,即每個(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)器加1。若采用12M晶振,則計(jì)數(shù)頻率為1MHz,即每過(guò)1μs,計(jì)數(shù)器加1。單片機(jī)
    發(fā)表于 11-23 06:26

    51單片機(jī)中的定時(shí)器/計(jì)數(shù)器有哪幾種工作方式

    51單片機(jī)中的定時(shí)器/計(jì)數(shù)器有何作用?51單片機(jī)中的定時(shí)器/計(jì)數(shù)器有哪幾種
    發(fā)表于 01-21 06:18

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

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

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

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

    51單片機(jī)定時(shí)器計(jì)數(shù)器工作方式詳細(xì)說(shuō)明

    定時(shí)/計(jì)數(shù)器單片機(jī)系統(tǒng)一個(gè)重要的部件,其工作方式靈活、編程簡(jiǎn)單、使用方便,可用來(lái)實(shí)現(xiàn)定時(shí)控制、延時(shí)、頻率測(cè)量、脈寬測(cè)量、信號(hào)發(fā)生、信號(hào)檢測(cè)
    發(fā)表于 08-29 17:03 ?2次下載
    51<b class='flag-5'>單片機(jī)</b><b class='flag-5'>定時(shí)器</b>和<b class='flag-5'>計(jì)數(shù)器</b>的<b class='flag-5'>工作方式</b>詳細(xì)說(shuō)明

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

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

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

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

    單片機(jī)基礎(chǔ)(五):定時(shí)/計(jì)數(shù)器工作原理及工作方式

    定時(shí)器計(jì)數(shù)器)??單片機(jī)中的模塊,可通過(guò)編程實(shí)現(xiàn)對(duì)系統(tǒng)時(shí)鐘計(jì)數(shù)定時(shí)器),也可以對(duì)外部信號(hào)計(jì)數(shù)
    發(fā)表于 11-11 09:51 ?10次下載
    <b class='flag-5'>單片機(jī)</b>基礎(chǔ)(五):<b class='flag-5'>定時(shí)</b>/<b class='flag-5'>計(jì)數(shù)器</b>的<b class='flag-5'>工作</b>原理及<b class='flag-5'>工作方式</b>

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

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

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

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

    單片機(jī)定時(shí)器/計(jì)數(shù)器結(jié)構(gòu)與工作方式詳解

    定時(shí)器/計(jì)數(shù)器的實(shí)質(zhì)是加1計(jì)數(shù)器(16位),由高8位和低8位兩個(gè)寄存組成。TMOD是定時(shí)器/計(jì)數(shù)器
    發(fā)表于 02-09 11:52 ?4次下載
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>定時(shí)器</b>/<b class='flag-5'>計(jì)數(shù)器</b>結(jié)構(gòu)與<b class='flag-5'>工作方式</b>詳解

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

    單片機(jī)定時(shí)/計(jì)數(shù)器工作定時(shí)計(jì)數(shù)方式時(shí)有何異同點(diǎn)?
    的頭像 發(fā)表于 10-25 11:50 ?4716次閱讀
    主站蜘蛛池模板: 韩国电影久久 | 吃奶摸下的激烈免费视频 | 亚洲欧洲无码AV在线观看你懂的 | 秋霞电影在线观看午夜伦 | 岳打开双腿开始配合日韩视频 | 国产精品99re6热在线播放 | 日韩在线 无码 精品 | 在线观看国产精美视频 | 国产精品高清m3u8在线播放 | 三级网址在线观看 | HEYZO无码中文字幕人妻 | 草民电影网午夜伦理电影网 | 一个人免费视频在线观看高清版 | 姉调无修版ova国语版 | 美娇妻的性奴史1一4 | 国产成人精品系列在线观看 | 亚洲成a人不卡在线观看 | 色 花 堂 永久 网站 | 九九热久久只有精品2 | 免费韩伦影院在线观看 | 久久99国产精品一区二区 | 97草碰在线视频免费 | 日日摸夜夜添夜夜爽出水 | 我半夜摸妺妺的奶C了她软件 | 国产亚洲综合视频 | 国产揄拍国产精品 | 在线播放日韩欧美亚洲日本 | 免费看 a一级毛片 免费久久狼人香蕉网 | 亚洲欧美一区二区三区九九九 | 亚洲精品午夜aaa级久久久久 | 老阿姨儿子一二三区 | 91伊人久久大香线蕉 | 99精品国产AV一区二区麻豆 | 国产精品嫩草影院在线观看免费 | 亚洲视频免费在线观看 | 妈妈的朋友5在线观看免费完整版中文 | 亚洲AV永久无码精品澳门 | 国产永久免费高清在线观看 | 学生小泬无遮挡女HD | 99国产精品久久久久久久日本竹 | 久久超碰色中文字幕 |