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

時間 2021-09-06 17:09:56

1樓:匿名使用者

51微控制器是基礎入門的一個微控制器,還是應用最廣泛的。

51微控制器的定時/計數器的概念

微控制器中,脈衝計數與時間之間的關係十分密切,每輸入一個脈衝,計數器的值就會自動累加1,只要相鄰兩個計數脈衝之間的時間間隔相等,則計數值就代表了時間的流逝,因此,微控制器中的定時器和計數器其實是同一個物理的電子元件,只不過計數器記錄的是微控制器外部發生的事情(接受的是外部脈衝),而定時器則是由微控制器自身提供的一個非常穩定的計數器,這個穩定的計數器就是微控制器上連線的晶振部件;mcs-51微控制器的晶振經過12分頻之後提供給微控制器穩定脈衝;晶振的頻率是非常準確的,所以微控制器的計數脈衝之間的時間間隔也是非常準確的。

51微控制器的定時/計數器的工作原理

加1計數器輸入的計數脈衝有兩個**,一個是由系統的時鐘振盪器輸出脈衝經12分頻後送來;一個是t0或t1引腳輸入的外部脈衝源。

作為定時器使用時,定時器計數8051微控制器片內振盪器輸出經過12分頻後的脈衝個數,即:每個機器週期使定時器t0/t1的暫存器值自動累加1,直到溢位,溢位後繼續從0開始迴圈計數;所以,定時器的解析度是時鐘振盪頻率的1/12;

作為計數器使用時,通過引腳t0(p3.4)或t1(p3.5)對外部脈衝訊號進行計數,當輸入的外部脈衝訊號發生從1到0的負跳變時,計數器的值就自動加1由於檢測一個從1到0的下降沿需要2個機器週期,因此要求被取樣的電平至少要維持一個機器週期。

當晶振頻率為12mhz時,最高計數頻率不超過1/2mhz,即計數脈衝的週期要大於2微秒。;計數器的最高頻率一般是時鐘振盪頻率的1/24;

由此可知,不論是定時器還是計數器工作方式,定時器t0和t1均不佔用cpu的時間,除非定時器/計數器t0和t1溢位,才可能引起cpu中斷,轉而去執行中斷處理程式。所以說,定時器/計數器是微控制器中效率高而工作靈活的部件。

2樓:平淡是真

可以利用51微控制器的計數器t0、t1,例如用計數器0的外部計數脈衝輸入端t0計數,當計滿100個脈衝數量後,觸發中斷。進入計數服務中斷程式。

51微控制器,計數器和定時器具體這麼用?計數器記的是誰的脈衝數?

3樓:水依若雨

定時器和計數器雖然有定時和技術兩種工作模式,但其本質都是使用加法計數器對脈衝進行計數。定時器/計數器每接受一個計數脈衝,加法計數器的值就加1;計滿時則發生溢位,計數器又從0開始計數並置溢位標誌位(tf0=1或tf1=1)。

1)定時模式

在此模式下,計數器的輸入脈衝是由晶振12分頻獲得的。例如,晶振頻率為12mhz的值加1.這樣就可以根據計數值計算定時時間,也可以根據定時時間計算計數器的初值。

2)計數模式

在此模式下,計數器的輸入脈衝是由外部引腳(t0或t1)輸入的。外部引腳出現下降沿時,對應計數器的值加1.如果設定計數器的初值,那麼讀取當時計數器就可以計算脈衝個數。

完全手打,請採納

51微控制器計數器如何使用,我想要一個簡單一點的程式

4樓:匿名使用者

將定時器0或者1設定為計數器模式就可以了。舉例如下:

org 0000h

ljmp main

org 000bh

ljmp t0isr

org 0030h

main:

mov tmod,#06h

mov th1,#0ffh

mov tl1,#0ffh

setb tr1

setb et1

setb ea

sjmp $

t0isr:

inc a

mov p1,a

retiend

5樓:匿名使用者

我可以的,明天告訴你,想用什麼顯示?

51微控制器如何用計數器檢測脈衝訊號(高低電平),程式怎麼做!沒有思路!

6樓:之何勿思

可以利用51微控制器的計數器t0、t1,例如用計數器0的外部計數脈衝輸入端t0計數,當計滿100個脈衝數量後,觸發中斷。進入計數服務中斷程式。

如果有脈衝訊號,經過電容微分後,在下降沿會產生一個向下的尖端脈衝,電阻r2是作為一個偏置,當有向下的尖端脈衝來後,反相端的電壓會低於同向端的電壓。

從而比較器輸出高電平,這個電路圖要注意的兩個引數是,1,比較器的選擇,你可以選lm339,要加上拉電阻。

7樓:匿名使用者

你是要記頻率嗎,用t1和t0分別做定時和計數,定時一秒鐘,就可以了讀t0的數值了

8樓:

不知道你檢測來做什麼用處

一般用t0埠作檢測 如果要測頻率,可以再用一個定時器定時讀取計數值

51微控制器計數器怎麼使用 ?

9樓:melody丶丨

設定t0模式 為計數模式就行了 就是tmod的c/t位置1;

脈衝從t0輸入 t0就計數了

你讀取th0和tl0就曉得脈衝個數了

有了這個脈衝個數 輸出到數碼管即ok

10樓:小周愛嘮叨

main()

}void timer0() interrupt 1

51微控制器如何同時使用定時器和計數器採集資料?

11樓:匿名使用者

這是我根據頻率計程式修的

//用定時計數器1作為脈衝計數器(p3.5引腳正是輸入功能),定時器0作為定時器用,定時50ms產生中斷

//中斷4次後(即0.2s)讀計數器1的資料

#include

#define uint unsigned int

#define uchar unsigned char

//定義以i/o口的功能

sbit rs=p1^3;//液晶屏寫選擇,0命令 1資料

sbit rw=p1^4;//液晶屏讀寫選擇

sbit lcden=p1^5;//液晶屏使能

#define db p2 //定義p2為資料輸出口,寫資料時用db代替p2,增加液晶屏程式的通用性

//更改硬體接線時,只更改此處,而不必去更改液晶屏讀寫子程式

uchar aa;//計中斷次數

uint bb,cc,dd;//儲存計數器的值

void delay1ms(unsigned int i) //1ms延時程式}}

void init()//初始化設定

void write_com(uchar com)//向液晶屏寫命令

void write_date(uchar date)//向液晶屏寫資料

void init2()//液晶屏初始化

void display4(unsigned int number) //單行多位顯示程式

void main()//主程式很簡單

}void timer0()interrupt 1//注意:定時器0的中斷序號為1}

12樓:

timer1作計數器,timer0作定時器。不能只用一個同時做兩件事的。

13樓:微享樂

開兩個中斷,一個定時,一個計數

14樓:duhv指溫

系統和硬體都具有升級的空間,但主要還是看你對電腦的用途和要求!這個配置,玩一般電腦遊戲,辦公等等都不會有問題!沒有升級 的必要!

當然,對電子產品有狂熱追求的那就可以選擇升級!顯示卡,記憶體,硬碟都有升級空間!

51微控制器計數器怎麼使用 **求助大神啊

15樓:melody丶丨

設定t0模式 為計數模式就行了 就是tmod的c/t位置1;

脈衝從t0輸入 t0就計數了

你讀取th0和tl0就曉得脈衝個數了

有了這個脈衝個數 輸出到數碼管即ok

16樓:落葉追秋風不動

網上有微控制器的教程,很多的,裡面說的很詳細的。

51微控制器pc程式計數器,51微控制器計數器怎麼使用 ?

從51微控制器 ram 資料儲存器分布圖可知,從80h ffh位址單元 也是128個位元組 為特殊暫存器 sfr 單元,位址從00h 7fh單元 共128個位元組 為使用者資料ram,使用者資料單元,只指使用者在程式設計時可以定義的暫存器,一般用於計算 暫存或轉換作用,如沒有這些單元,那基本上微控制...

51微控制器的定時器和計數器分別定時和計數的週期是多長時間,這個脈衝週期有規定嗎

應該每個定時器都是有timrh和timrl,最大計數時間就是timrh timrl 匯流排頻率 時鐘分頻後的頻率 徐志尚 與晶振 工作方式 初值有關 51微控制器,計數器和定時器具體這麼用?計數器記的是誰的脈衝數? 水依若雨 定時器和計數器雖然有定時和技術兩種工作模式,但其本質都是使用加法計數器對脈...

以51微控制器為基體,設計59計數器要程序

include define uint unsigned int define uchar unsigned charuchar j uchar a,b uchar a1 uchar code sz uchar code wx void qf 區分個十百千位 a1 1 a 10 a1 2 a 10 ...