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

1.捕獲高電平時(shí)間

我們利用定時(shí)器0的計(jì)數(shù)功能實(shí)現(xiàn)捕獲外部引腳的高電平時(shí)間。定時(shí)器在不同用法里有不同稱呼,比如我們這次是想得知某段過(guò)程持續(xù)了多長(zhǎng)時(shí)間,用定時(shí)器的計(jì)數(shù)方式的話就叫做計(jì)數(shù)器。

我們這次選用的外部引腳還是P1.6,初始時(shí)先讓該引腳輸出低電平。

我們之前沒(méi)有說(shuō)過(guò)當(dāng)TMOD低四位里的第三位GATE為1時(shí)是什么作用,這里說(shuō)明一下,當(dāng)這個(gè)位被置1的話,如果此時(shí)有“TR0=1;”,且P3.2必須為高電平的時(shí)候,才會(huì)觸發(fā)定時(shí)器0的計(jì)數(shù)(P3.2為低電平時(shí)不會(huì)觸發(fā)),也就是TL0每隔(12/11059200)秒就會(huì)加1,加到256變?yōu)?之后TH0就加1。一直加到65535就會(huì)有“TL0=255;”和“TH0=255;”,再加1就會(huì)全部變?yōu)?,這里復(fù)習(xí)以前講過(guò)的知識(shí)。

所以我們把P1.6和P3.2連接起來(lái),在 TR0置1時(shí),只要P1.6輸出高電平就會(huì)開啟計(jì)數(shù)功能,P1.6輸出低電平時(shí)就會(huì)停止計(jì)數(shù)功能。我們?cè)儆米筮吶齻€(gè)數(shù)碼管顯示TH0的數(shù),右邊三個(gè)顯示TL0的數(shù)。

所以我們打算這樣做

P1.6=0;

TR0=1;

P1.6=1;            //開始計(jì)數(shù)

delay_ms(30);  //延時(shí)一段時(shí)間

P1.6=0;            //停止計(jì)數(shù)

代碼先用軟件測(cè)試一下“delay_ms(30);”到底真正花費(fèi)多少時(shí)間。

定時(shí)器14

所以P1.6保持了41.784ms的高電平時(shí)間。

用杜邦線把P1.6和P3.2連接起來(lái)之后,注意我們的延時(shí)時(shí)間不要超過(guò)71ms,也就是高電平持續(xù)的時(shí)間不能超過(guò)71ms,這跟定時(shí)時(shí)間一次定不了71ms一樣。因?yàn)橛?jì)數(shù)最高只能到65535。


2.代碼

把代碼下載進(jìn)去,觀察數(shù)碼管顯示的數(shù)值。

#include <reg52.h> 
#include <function.h> //詳見第六章第8講
 
//請(qǐng)用杜邦線把P1.6和P3.2連接起來(lái)
void main()
{     
    LED_Init(); //初始化LED硬件模塊
    TMOD=0x09;  //低四位 1001 
  
    BEEP=0;     //先讓P1.6輸出低電平
    TR0=1;
    BEEP=1;     //開始計(jì)數(shù)  
    delay_ms(30);
    BEEP=0;     //停止計(jì)數(shù)  
  
    LedBuff[0]=LedChar[TL0%10];
    LedBuff[1]=LedChar[(TL0/10)%10];
    LedBuff[2]=LedChar[(TL0/100)%10]; 
  
    LedBuff[3]=0x7F&LedChar[TH0%10];//加上小數(shù)點(diǎn)好區(qū)分
    LedBuff[4]=LedChar[(TH0/10)%10];
    LedBuff[5]=LedChar[(TH0/100)%10];

    while(1)
    {     
        SEG_Scan();//讀取TH0和TL0的值  
    }   
}

數(shù)碼管顯示150.109,所以

(150*256+109)*(12/11059200)= 0.0417849s

捕獲到的高電平時(shí)間為41.7849ms,可以說(shuō)精度相當(dāng)高。

這里大家忘記為什么“150*256”的話,請(qǐng)回去復(fù)習(xí)本章之前的內(nèi)容。

還有TMOD的第七位GATE的功能與第三位的GATE的功能一樣,只不過(guò)用的是定時(shí)器1來(lái)計(jì)數(shù),觸發(fā)開啟計(jì)數(shù)的引腳為P3.3而已。詳細(xì)請(qǐng)參考《手把手教你學(xué)51單片機(jī)》文檔5.2.2節(jié)

點(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í)間)