微控制器計數器問題,有關微控制器計數器的問題

時間 2022-03-10 21:10:05

1樓:做而論道

採用中斷,多工查詢,好好協調,不至於有59ms的。

--------------------

請問怎麼讀定時器0的數值?

使用傳送指令即可。

但是,如果定時器0處於「計數中」,數值的準確讀取,就比較困難。

2樓:

外部計數最好用計數中斷來做,要不很容易會漏掉脈衝的

3樓:匿名使用者

你用中斷就好了

還有就是,如果你用的18b20測溫的話,你就不能一直測了,過段時間採集一次吧

4樓:匿名使用者

你把脈衝輸入接到p3.4(或者p3.5)上吧,然後把定時器0(或者定時器1)改成計數模式,最多能計數65536個脈衝,不知道能不能滿足你的要求,如果不能滿足,那就中斷之後記下中斷次數,定時器清0重新計數,最後65536乘上中斷次數就行了

定時器/計數器計數的時候不會佔用cpu的時間,所以只要不溢位中斷不會增加程式的執行時間,而且計數也準確啊

還有啊,看下你的ad是不是也可以接成中斷的方式

5樓:匿名使用者

我是新手,是來看回答的!!

微控制器計數器問題?

6樓:3c數碼科技人員

計數器和定時器的工作原理都是加一。。

如果你想要用計數器的話。在tmod裡設百置一下就行了。

如果你想顯示下降度沿的次數。你可以讀計數器裡面的值。。。

在tmod裡設定mov tmod,#06h;t0工作在方式2,計數模式

給問t0放初值。比如說mov th0,#00hmov tl0,#00h

setb tr0;啟動定時器0

這個時候t0從0開始進行加一計數。。。因為我設定的是方式2.所以計數到256的時答候溢位 。

所以在方式2的基礎上你的計數最大不能超過256.。如果你想要記更大的數。那直接用方式1就行。。

好好查查書吧。版。

如果你想顯示你的脈衝個數。。直接找個權暫存器比如說a然後把th0裡面的值取出來就ok拉。。。

比如 mov a,th0;

有關微控制器計數器的問題

7樓:匿名使用者

計數器和定時器的工作原理都是加一。。如果你想要用計數器的話。在tmod裡設定一下就行了。如果你想顯示下降沿的次數。你可以讀計數器裡面的值。。。

8樓:匿名使用者

一般來說計數功能用外部中斷做,你是想做頻率計嗎。用兩個變數,一個在外部中斷函式中自加,一個在計時器中斷中把那個自加的數值取出儲存並把自加的變數清零,這樣就計算出了計時器設定時間內的脈衝數了。可以把儲存後的那個數通過數碼管顯示出來。

有關微控制器計數器的問題

9樓:匿名使用者

當有一個下降沿時計數器加一,到加到65535時就溢位了,溢位了才會有中斷,如果你想就讓它計一個數就中斷,那你提前就把暫存器設定成65534啊,這樣計一個數加1就變成65535了,再計就溢位就有中斷了,明白了嗎。你想顯示脈衝個數啊,如果你非要用計數的話可以查詢一下當前暫存器的值啊,不過這種方法不科學的,當你脈衝太快就記不出來了

10樓:匿名使用者

計數器和定時器的工作原理都是加一。。

如果你想要用計數器的話。在tmod裡設定一下就行了。

如果你想顯示下降沿的次數。你可以讀計數器裡面的值。。。

在tmod裡設定mov tmod,#06h;t0工作在方式2,計數模式

給t0放初值。比如說mov th0,#00hmov tl0,#00h

setb tr0;啟動定時器0

這個時候t0從0開始進行加一計數。。。因為我設定的是方式2.所以計數到256的時候溢位 。

所以在方式2的基礎上你的計數最大不能超過256.。如果你想要記更大的數。那直接用方式1就行。。

好好查查書吧。。

如果你想顯示你的脈衝個數。。直接找個暫存器比如說a然後把th0裡面的值取出來就ok拉。。。

比如 mov a,th0;

11樓:匿名使用者

那當有下降沿輸入時,計數器會中斷嗎? 計數器是加一,不一定中斷

微控制器計數器問題

12樓:

你是在中斷後取的吧?那時th0,tlo不都已經溢位清零了嗎。你可以這樣設計程式:

把th0,tlo設定成計一次外部脈衝就中斷一次,然後設一個變數初值為零,每中斷一次這個變數就在中斷程式中加一,最後讀取這個變數的值就知道外部脈衝的個數啦~~~試試看吧,你也可以通過外部中斷這樣實現,就不用設定th0,tlo了啊~~~~~~~加油啊!!!

13樓:匿名使用者

先對t0進行設定

tmod=0x05;(方式1,最大計數值65536)ie=0x82;(開中斷)

tr0=1;(啟動計數器)

計數結束讀th0和tlo就ok了,外部脈衝頻率要小於振盪脈衝頻率的1/24.

14樓:匿名使用者

是不是你的初始化**不對啊?貼出來看看。

m我也行滴

微控制器定時計數器中斷問題

15樓:匿名使用者

計時器肯定計時不了2分鐘,可讓其100ms中斷一次,變數a加1主程式判斷a是否等於或大於1200 即得到2分鐘 0.5s也一樣void init()//初始化設定

中斷程式

void timer1()interrupt 3//注意:定時器1的中斷序號為3

16樓:做而論道

設定定時器,開中斷...

51微控制器計數器怎麼用,51微控制器計數器怎麼用

51微控制器是基礎入門的一個微控制器,還是應用最廣泛的。51微控制器的定時 計數器的概念 微控制器中,脈衝計數與時間之間的關係十分密切,每輸入一個脈衝,計數器的值就會自動累加1,只要相鄰兩個計數脈衝之間的時間間隔相等,則計數值就代表了時間的流逝,因此,微控制器中的定時器和計數器其實是同一個物理的電子...

微控制器的程式計數器PC的構成,微控制器中的程式計數器PC用來做什麼

他就是一個單元,只是這個單元裝的是地址而已。給你舉個通俗的例子,假設你是一個網咖唯一的網管,任務是負責網咖600號電腦的檢查。你上班開始,就從1號電腦檢查,有問題維修,沒問題就檢查2號,接著是3號。檢查第8號機的時候,8號機主告訴你說 19號機有問題,這個時候,你離開8號機之後,不是去9號,而去19...

微控制器的定時器計數器以查詢方式工作

都用定時器中斷,然後定時時間20us。p1.0口每經過5箇中斷進行翻轉,p1.1經過6個。這樣能滿足嗎?微控制器的定時器 計數器 以查詢方式工作,在p1.0口線上產生週期為200 s的連續方波,以中斷方式工作,在p1.1口線上產生週期為240 s的連續方波,假設晶振頻率為 12mhz,用組合語言程式...