国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 單片機(jī)學(xué)習(xí) > 單片機(jī)教程 > 51型號(hào)單片機(jī)定時(shí)器及其應(yīng)用

51型號(hào)單片機(jī)定時(shí)器及其應(yīng)用 時(shí)間:2018-07-18      來(lái)源:未知

先看原理:89c51單片機(jī)內(nèi)部有兩個(gè)16位的定時(shí)/計(jì)數(shù)器,即定時(shí)器T0和定時(shí)器T1,單片機(jī)的定時(shí)功能其實(shí)就是通過(guò)計(jì)數(shù)來(lái)實(shí)現(xiàn)的,當(dāng)單片機(jī)每一個(gè)機(jī)器周期產(chǎn)生一個(gè)脈沖時(shí),計(jì)數(shù)器就加一。

舉例說(shuō)明:一個(gè)16位的定時(shí)器,它所能計(jì)數(shù)的范圍是0~65535,如果單片機(jī)采用的是12M的晶振,那么定時(shí)器單次最長(zhǎng)的時(shí)間為65535*((1/12)*12),因?yàn)橐粋(gè)一個(gè)機(jī)器周期等于12個(gè)振蕩周期,那么定時(shí)器加一所用的時(shí)間是1/12M*12是1us,也就是一個(gè)12MHz晶振的51單片機(jī)單次最長(zhǎng)時(shí)間約為65ms.

定時(shí)器如何控制

89c51的定時(shí)器由兩個(gè)寄存器控制,分別是工作模式寄存器TMOD和控制寄存器TCON

工作模式寄存器TMOD是用于控制定時(shí)器0/1的工作模式,通過(guò)對(duì)TMOD進(jìn)行賦值,則可以改變定時(shí)器的工作模式

具體各位的定義如下,看圖

當(dāng)我們使用定時(shí)器功能時(shí),就只用設(shè)置D0、D1、D4、D5的的值就可以了,其余位置0即可

我們?cè)谑褂枚〞r(shí)器時(shí)基本使用的是模式1和模式2,模式0與模式3基本不用,我就不進(jìn)行描述了。

模式1

當(dāng)TMOD的D5位置0,D4位置1時(shí),即為定時(shí)器T1的模式一,該模式對(duì)應(yīng)的是一個(gè)16位的定時(shí)器,寄存器TH1和TL1即為T(mén)1初值的高8位和低8位,定時(shí)時(shí)間為:(65536-T1的初值)*振蕩周期*12

模式二

當(dāng)TMOD的D5位置1,D4位置0時(shí),即為定時(shí)器T1的模式二,該模式對(duì)應(yīng)的是一個(gè)可以自動(dòng)裝載的8位定時(shí)器,當(dāng)定時(shí)器計(jì)數(shù)滿了(計(jì)數(shù)溢出時(shí)),會(huì)自動(dòng)把TH1中的內(nèi)容重新裝載到TL1中,那么模式二計(jì)數(shù)的最長(zhǎng)時(shí)間即為(257-T1的初值)*振蕩周期*12

定時(shí)器的控制寄存器TCON

TCON的各位定義如下,看圖

TF1:T1的溢出標(biāo)志位,當(dāng)T1溢出時(shí),由硬件自動(dòng)使TF1位置1,并向CPU申請(qǐng)中斷。當(dāng)CPU響應(yīng)中斷進(jìn)入中斷服務(wù)子程序后,TF1又被硬件自動(dòng)清0,也可以用軟件清0.

TF0:T0溢出標(biāo)志位。其功能和操作情況同TF1

TR1:T1的運(yùn)行控制位,當(dāng)該位置1時(shí),即啟動(dòng)定時(shí)器1當(dāng)該位置0時(shí),即關(guān)閉

TR0:T0的運(yùn)行控制位,其功能及操作情況同TR1。

接下來(lái)我將用定時(shí)器來(lái)結(jié)合數(shù)碼管制作一個(gè)0-9計(jì)時(shí)器

代碼我給貼出來(lái),供大家參考:
 

# include <reg52.h>  //引用了51單片機(jī)的官方庫(kù)文件 
void T0INI() ;
unsigned int temp = 0,i = 0;    //中間變量
unsigned char leddata[]={ 
 
                0xC0,  //"0"
                0xF9,  //"1"
                0xA4,  //"2"
                0xB0,  //"3"
                0x99,  //"4"
                0x92,  //"5"
                0x82,  //"6"
                0xF8,  //"7"
                0x80,  //"8"
                0x90,  //"9"
                0x88,  //"A"
                0x83,  //"B"
                0xC6,  //"C"
                0xA1,  //"D"
                0x86,  //"E"
                0x8E,  //"F"
                0x89,  //"H"
                0xC7,  //"L"
                0xC8,  //"n"
                0xC1,  //"u"
                0x8C,  //"P"
                0xA3,  //"o"
                0xBF,  //"-"
                0xFF,  //熄滅
                0xFF  //自定義
 
                         };

void main()
{
       T0INI();
        while(1)
        {
            P2 = 0x0e;   //位選段P20置0
            P0 = leddata[i];         
            if(TF0 == 1)
                    {
                            TH0 = 0X3c;
                            TL0 = 0xb0;            //12Mhz定時(shí)50ms
                            temp++;
                    }
            
                if(temp == 20)
                         i++;
                    if(i == 10)
                         i = 0;           
        }
}  

void T0INI()    //定時(shí)器T0初始化
{
    EA = 1;                    //cpu開(kāi)總中斷        
    TCON = 0x10;        //打開(kāi)定時(shí)器T0
    TMOD = 0x01;        //設(shè)置T0為工作模式1,16位定時(shí)計(jì)數(shù)器
    TH0 = 0X3c;
    TL0 = 0xb0;            //12Mhz定時(shí)50ms
}

上一篇:51單片機(jī)學(xué)習(xí)筆記:矩陣鍵盤(pán)

下一篇:干貨:A7139射頻模塊wor配置解析

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見(jiàn)科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5,京公海網(wǎng)安備11010802025203號(hào)

回到頂部