两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

1.工作模式2的使用

這里我們順便講解一下定時(shí)器0的工作模式2,也就是使用“小試管”的方式,TMOD的初始化就為“TMOD=0x02;”。

我們知道工作模式2的最長(zhǎng)溢出時(shí)間僅為256*(12/11059200)=0.000277秒=277微秒。

我們想實(shí)現(xiàn)間隔51ms的流水燈實(shí)驗(yàn)該怎么做,首先我們定義一個(gè)變量cnt用來(lái)記錄每次的溢出次數(shù),然后我們的定時(shí)時(shí)間為51微秒(因?yàn)樽畲蠖〞r(shí)只有278微秒),cnt記錄的值等于1000的時(shí)候,證明時(shí)間已經(jīng)過(guò)去了51ms,于是再去執(zhí)行流水燈的任務(wù)。

我們已經(jīng)知道工作模式2是不需要在溢出之后再填充初始值的,比如我們定時(shí)的時(shí)間為51微秒,那么計(jì)算出“距離溢出的刻度”就為47(實(shí)際計(jì)算出的是47.0016,所以定時(shí)為51微秒誤差就不大)。

所以給TL0賦初值為256-47=209=0xD1。那么TH0也是給初值為0xD1,這是保證每次TL0溢出之后新的初始值是等于TH0的值的,所以定時(shí)器工作模式2又叫做8位自動(dòng)重裝載模式。相關(guān)概念還需讀者再去另外學(xué)習(xí)這些理論知識(shí)。

 

2.工作模式2的代碼

#include <reg52.h> 
#include <function.h>//詳見(jiàn)第六章第8講

void main()
{
    u8 i;
    u16 cnt;
    LED_Init();   //初始化LED硬件模塊 
    TMOD = 0x02;  //設(shè)置定時(shí)器0為工作模式2
    TH0  = 0xD1;  
    TL0  = 0xD1;  //定時(shí)51us
    TR0  = 1;     //啟動(dòng)定時(shí)器0
    
    while(1)
    {
        if (TF0 == 1)    //每隔51us就可以進(jìn)入一次這個(gè)if語(yǔ)句
        {
            TF0 = 0;     //定時(shí)器0溢出后,清零中斷標(biāo)志
            cnt++;       //記錄溢出次數(shù)
        }   
        if(cnt>=1000)    //時(shí)間過(guò)去了51ms
        {
            cnt=0;   
            P0=~(0x01<<i);
            i++;
        }      
        if(i>=8)i=0;
    }
}

大家對(duì)照上一講的工作模式1的代碼會(huì)發(fā)現(xiàn),工作模式2在while循環(huán)中不再出現(xiàn)TH0和TL0的身影,TL0每次溢出之后,初值又變?yōu)門H0初始時(shí)候的值了,所以定時(shí)時(shí)間在while循環(huán)之前就已經(jīng)決定好了。

大家可以嘗試著把“if(cnt>1000)”里的1000改為10000就是間隔510ms的流水燈了。

往后我們做的題目定時(shí)時(shí)間一般最少都是要定時(shí)1毫秒以上,所以用工作模式1的機(jī)會(huì)會(huì)很多,而工作模式2在我們前期教程里會(huì)很少運(yùn)用,等學(xué)到串口通信相關(guān)知識(shí)時(shí)我們?cè)僦厥斑@個(gè)知識(shí)點(diǎn)。

點(diǎn)贊(0)

C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語(yǔ)言學(xué)練課程

解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程

從零到寫出一個(gè)爬蟲的Python編程課程

只會(huì)語(yǔ)法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時(shí)間)