導航:首頁 > 操作系統 > 單片機計數器

單片機計數器

發布時間:2022-02-14 19:59:18

單片機定時器/計數器主要有什麼作用

作用:可以計時,計數,可以產生時間中斷,是系統中比較實用的工具。

大部分單片機提供2~3個定時/計數器,少數提供1個或4個定時器。有些定時/計數器還具有輸入捕獲、輸出比較和PWM(脈沖寬度調制)功能,如AVR單片機。

有的單片機還有專門的PCA(可編程計數器陣列)模塊和CCP(輸入捕獲輸出比較PWM)模塊,如PIC和Philips的部分中高檔單片機。利用這些模塊不僅可以簡化軟體設計,而且能減少佔用CPU的資源。現在不少單片機還提供了看門狗定時器(WDT),當單片機「死機」後可以自動復位。

定時/計數器

定時/計數器T0和T1分別是由兩個8位的專用寄存器組成,即定時/計數器T0由TH0和TL0組成,T1由TH1和TL1組成。此外,其內部還有2個8位的特殊功能寄存器TMOD和TCON,TMOD負責控制和確定T0和T1的功能和工作模式,TCON用來控制T0和T1啟動或停止計數,同時包含定時/計數器的狀態。

以上內容參考:網路-定時器中斷

Ⅱ 單片機計數器

你選擇的是自動重裝計數器的吧,將計數初值X高八位裝進THi 低八位裝進TLi後運行單片機計數器,單片機計數器計數溢出後就會把這個X高八位裝進THi 低八位裝進TLi後就重新計數。

Ⅲ 單片機的計數器,每計數一次是多少時間

定時器/計數器本質上都是計數器,只不過數的東西不一樣.
定時器/計數器做為定時器來用的時候,是數的單片機時鍾的脈沖個數,也就是說,單片機的時鍾做為定時器/計數器的時鍾源,因為單片機的時鍾一般比較固定,因此,我們就知道一個脈沖佔多長時間,因為根據脈沖的個數,就能推算出時間,就能做定時器用.
比如:12MHz的傳統51單片機,一個脈沖周期是1us,如果定時器數了10個脈沖周期就中斷了,說明10us時間到了.

而作為計數器的時候,數的是來自引腳上的脈沖,也就是說,是引腳上的脈沖做為定時器/計數器的時鍾源,如果這個脈沖是規律的,周期是固定的,那麼,也可以實現定時,比如,如果引腳的脈沖是10KHz的,那麼,一個脈沖周期是100us,如果定時器/計數器數了10個脈沖周期就中斷,說明1ms時間到了.

但是,如果引腳上的脈沖頻率不固定,時高時低,那麼,就沒辦法根據脈沖個數算出時間來,此時,就只是單純的計數功能.

總而言之,定時器/計數器本質都是對脈沖計數,只是作為定時器,數的是內部的脈沖,做為計數器,數的是外部的脈沖,如果脈沖固定,外部脈沖也可以用來定時.贊同0|評論

Ⅳ 單片機的計數器是干什麼的

以51單片機16位定時計數器1(T1 )來講,
通俗解釋:
計數是T1是一個能盛65536(十六位時)滴水的水盆,在水龍頭下水一滴滴地滴入盆中。如果盆是空的那水在滴完65536滴水時盆子的水就滿了再滴一滴的時候就溢出了。這時就會產生中斷。
如果盆裡面已經裝入65500滴水(即初裝值),那麼只需要36滴水後就溢出了。
每一個水滴即一個脈沖。(高低電平變換一次)

定時時水滴的速度即機器周期,等於12個振盪周期(晶振的振盪頻率除以12),直接影響到溢出的時間。

Ⅳ 51單片機的計數器怎麼用

首先將定時器設置為計數器模式。
其次,將外部脈沖接入到相應定時器的輸入端。
這樣就可以使用計數器了。

Ⅵ 單片機計數器問題

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

在TMOD里設置MOV TMOD,#06H;T0工作在方式2,計數模式
給問T0放初值。比如說MOV TH0,#00H
MOV TL0,#00H
SETB TR0;啟動定時器0
這個時候T0從0開始進行加一計數。。。因為我設置的是方式2.所以計數到256的時答候溢出 。所以在方式2的基礎上你的計數最大不能超過256.。如果你想要記更大的數。那直接用方式1就行。。好好查查書吧。版。
如果你想顯示你的脈沖個數。。直接找個權寄存器比如說A
然後把TH0裡面的值取出來就OK拉。。。
比如 MOV A,TH0;

Ⅶ 51單片機計數器編程

利用紅外對管作感應器的話,只要將單片機設置為計數模式就行,然後紅外接收管接到單片機的P3^4或者P3^5口,這是51系列單片機計數功能口,然後設置好TMOD寄存器和TCON寄存器選擇工作方式和觸發方式即可,計數變數定義為全局變數,然後傳遞給顯示函數。 如有不懂的地方隨時回復我。 希望我的回答能幫助到你。

Ⅷ 51單片機的計數器怎麼用

給你一個時鍾的源程序吧 是完全使用計數器來實現的:
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit up_m=P3^0; //秒按鍵設置
sbit up_f=P3^1; //分按鍵設置
sbit up_s=P3^2; //時按鍵設置
uchar const smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar i,j,k;
void delay(uint cnt)
{
while(--cnt);

}
void delayms(uint a)
{
uchar i;
while(--a)
{
for(i=0;i<125;i++);
}
}
void init()
{
TMOD=0X01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
ET0=1;
EA=1;
TR0=1;
}
void keyboard()
{
P3=0xff;
if(up_m==0)
delayms(40);
if(up_m==0)
{
i++;
if(i>=60)
{
i=0;
}
delayms(40);
}
if(up_f==0)
delayms(40);
if(up_f==0)
{
j++;
if(j>=60)
{
j=0;
}
delayms(40);
}
if(up_s==0)
delayms(40);
if(up_s==0)
{
k++;
if(k==23)
{
k=0;
}
delayms(40);
}
}
void init_smg()
{
P2=2;
P0=0x40;
delay(5);
P2=5;
P0=0x40;
delay(5);
}
main()
{
i=0;
init();
while(1)
{ init_smg();
P2=2;
P0=0x40;
P2=5;
P0=0x40;
P0=0x00;
keyboard();
P2=7;
P0=smg[i%10];
delay(3);
P0=0X00;
P2=6;
P0=smg[i/10];
delay(3);
P0=0x00;

P2=4;
P0=smg[j%10];
delay(3);
P0=0X00;
P2=3;
P0=smg[j/10];
delay(3);
P0=0x00;

P2=1;
P0=smg[k%10];
delay(3);
P0=0X00;
P2=0;
P0=smg[k/10];
delay(3);
P0=0x00;
}
}
void time () interrupt 1
{
unsigned char a;
a++;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
if(a==20)
{
a=0;
i++; //秒控制
if(i==60)
{
i=0;
j++;//分控制
}
if(j==60)
{
j=0;
k++;//時控制
if(k>23)
k=0;
}
}
}

這是我初學是自己寫的時鍾 你調點看看就知道了 但是建議你去找本單片機的書看看會好多的,裡面的那些標志位你才知道是代表什麼

Ⅸ 51單片機計數器怎麼用

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中斷,轉而去執行中斷處理程序。所以說,定時器/計數器是單片機中效率高而工作靈活的部件。

Ⅹ 單片機計數器是怎麼計數的

有定時器和計數器模式的區別,所謂定時器,就是對機器內部頻率計數,可以做時鍾,如果為計數器模式,就是對P3.4,P3.5所接受到得脈沖計數,可以設置低電平或者下降沿觸發……

閱讀全文

與單片機計數器相關的資料

熱點內容
OBV能量潮幅圖指標源碼 瀏覽:911
編程15個好習慣 瀏覽:674
電腦u盤文件夾顯示屏幕保護程序 瀏覽:797
我的世界伺服器版本怎麼下載 瀏覽:600
c代碼加密工具 瀏覽:355
使用泛型演算法的錯誤 瀏覽:737
單片機焊接要焊接多少個引腳 瀏覽:669
android圖片瀏覽器代碼 瀏覽:705
中國電信智慧維app如何使用 瀏覽:701
列印文件夾內文件如何統一設置 瀏覽:553
單片機連接8個按鍵 瀏覽:656
阿里雲伺服器網頁怎麼找到 瀏覽:958
數控車床如何進行自動編程 瀏覽:11
app網課視頻怎麼拷貝到電腦上 瀏覽:710
安卓國服光遇小王子季節什麼時候結束 瀏覽:537
恢復的音樂在哪個文件夾 瀏覽:595
qq傳輸文件夾壓縮包 瀏覽:911
sha1加密演算法java 瀏覽:233
單片機ds1302程序 瀏覽:738
杜比壓縮開還是關怎樣判斷 瀏覽:366