導航:首頁 > 操作系統 > 51單片機定時方式

51單片機定時方式

發布時間:2022-08-08 11:37:24

1. 51單片機定時計數器四種工作方式哪種可以實現計數初值的自動載入

51單片機定時計數器四種工作方式中,方式2可以實現計數初值的自動載入。

解釋分析:

16位的計數器只用了8位來計數,用TLx來進行計數,而THx用於保存初值,當TLx計滿時則溢出,該方式的溢出狀態一方面使TF變化,另一方面使TH的值再次置入TL,正所謂自動重置定時/計數器

自動裝載初值,無需程序運行賦值,此方式更精確。

此時MAX值為28=256,設計數值為100。

初值為156=10011100B(0x9C)。

TH0=TL0=0x9C。

定時/計數器有如下一些用途:

(1)產生所需頻率的脈沖,如產生頻率1000,占空比1:1的脈沖波。

(2)在累加計數中的應用,計數器可在一段時間內記錄信號A經整形後的脈沖個數。

(3)在頻率測量中的應用,通過測量脈沖寬度或在一定時間內測量脈沖的個數,從而推算出脈沖的頻率。

(4)定時/計數器在計時中的應用,定時/計數器可對時鍾信號,如秒信號進行計數,也可用來倒計時,秒錶計,時間循環等。

2. 51系列單片機的定時器和計數器有哪幾種工作方式

  1. 定時器0有四種工作方式:方式0:13位定時 /計數器模式方式1:16位定時 /計數器模式方式2:8位可重裝載定時 /計數器模式方式3:兩個單獨8位定時 /計數器模式定時器1隻有三種方式,同上面三種

  2. 標准8051單片機內部有2個定時器/計數器 分別是T0和T1。每個定時器有4種工作方式,方式0:13位定時計數方式,最大計數值為2^13=8192,定時8192個機器周期。1:16位定時 /計數器模式方式2:8位可重裝載定時 /計數器模式方式3:兩個單獨8位定時 /計數器模式定時器1隻有三種方式,同上面三種。

  3. 要講定時離不開中斷,兩者結合使用的。定時計數器主要用到TMOD工作模式寄存器,TCON定時器的控制寄存器,EA中斷允許控制寄存器,IP中斷優先順序寄存器 定時器控制寄存器TCON (88H)TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

3. 51單片機定時寄存器定時也不到一秒鍾,如果想定時1分鍾該如何定時,

51單片機定時工作在方式1,是16位計數方式,如果晶振頻率是12M,機器周期
是1us,那麼最大的定時時間也只有65.536ms,要直接定時1秒是不可能的。但是,可以定時50ms,採用中斷方式,每50ms定時到,要中斷一次的,在中斷程序就對中斷計數,中斷20次的時間就是50msX20=1000ms=1秒。有了1秒計時,那1分鍾就容易了,對1秒再計數啊,60秒就是1分啦。可能你沒有寫過時鍾程序吧,電子鍾程序就是這種方法,再計60分為1小時,24小時為一日,依此,可以計年月日呢。這有什麼難的。關鍵是對中斷計數,就可以解決長時間定時了。

4. 51單片機的定時器是怎麼設置的

單片機定時器的設置步驟為:
1、設置定時器的工作模式,共4種工作方式,兩種模式(計數器/定時器)。比如:
MOV TMOD,#01;設置定時器0位定時器模式,工作方式1
2、根據定時時間賦初值。比如定時10毫秒,那麼如果12M晶振的話是10000個機器周期。定時器是溢出申請中斷,所以用溢出值減去定時周期為初值。
MOV TH0,#HIGH(65536-10000)
MOV TL0,#LOW(65536-10000)
3、開啟中斷、定時器。
SETB ET0
SETB EA
SETB TR0

5. 51-單片機定時器的工作方式

方式0: 13位定時計數方式,最大計數值為2^13=8192,定時8192個機器周期;
.
方式1: 16位定時計數方式,最大計數值為2^16=65536,定時65536個機器周期;
.
方式2: 8位自動重裝計數方式,最大計數值為2^8=256,定時256個機器周期;
.
方式3: 特殊工作方式。將定時器0分成兩個彼此獨立8位計數器。

6. 51單片機定時器T1有哪3種工作模式

51單片機定時器T1有3種工作模式:方式0,方式1,方式2。

當INT0引腳為高電平時且TR0置位,TR0=1;啟動定時器T0;當INT1引腳為高電平時且TR1置位,TR1=1;啟動定時器T1。MCS-51的定時器T0有4種工作方式:方式0,方式1,方式2,方式3。MCS-51的定時器T1有3種工作方式:方式0,方式1,方式2。

(6)51單片機定時方式擴展閱讀:

由於定時器/計數器的功能是由軟體編程確定的,所以一般在使用定時/計數器前都要對其進行初始化,使其按設定的功能工作。初始化的步驟一般如下:

1、確定工作方式(即對TMOD賦值);

2、預置定時或計數的初值(可直接將初值寫入TH0、TL0或TH1、TL1);

3、根據需要開放定時器/計數器的中斷(直接對IE位賦值);

4、啟動定時器/計數器(若已規定用軟體啟動,則可把TR0或TR1置「1」;若已規定由外中斷引腳電平啟動,則需給外引腳加啟動電平。當實現了啟動要求後,定時器即按規定的工作方式和初值開始計數或定時)。

7. 51單片機怎麼實現定時一分鍾

51單片機 的時鍾一般是12MHz,採用16位定時器,最大計數次數為65535,那麼就是65535us=65ms, 那就可以設置寄存器初始使每50ms產生一次中斷.20次即為一秒
50 ms =50000 us.
THX = (65535-50000) /256;
TLX = (65535-50000) %256;
X為定時號 0.1

8. 51單片機定時功能如何實現

#include"reg51.h"
#define
uchar
unsigned
char
#define
uint
unsigned
int
/**************初始化程序****************/
void
initiation()
{
TMOD=0x11;
//設定計數方式等
TH0=-10000/256;
TL0=-10000%256;
//10MS定時初值(T0計時用)
TH1=-25000/256;
TL1=-25000%256;
//25MS定時初值(T1計時用)
ET0=1;
ET1=1;
TR0=1;
TR1=1;
EA=1;
}
/****************定時器0中斷服務程序*****/
void
init_timer0(void)
interrupt
1
{
TH0=-10000/256;
TL0=-10000%256;
//10MS定時初值(T0計時用)
//下面寫用戶程序
}
/****************定時器1中斷服務程序*****/
void
init_timer1(void)
interrupt
3
{
TH1=-25000/256;
TL1=-25000%256;
//50MS定時初值(T1計時用)
//下面寫用戶程序
}
/****************主程序******************/
main()
{
initiation();
while(1)
{
;
}
}

9. 51單片機的四種工作方式

1 工作方式0
定時器/計數器T0工作在方式0時,16位計數器只用了13位,即TH0的高8位和TL0的低5位,組成一個13位定時器/計數器。

1)、工作在定時方式
2)、工作在計數方式
2 工作方式1
定時器T0工作方式1與工作方式0類同,差別在於其中的計數器的位數。工作方式0以13位計數器參與計數,工作方式1則以16位計數器參與計數。

1)、工作在定時方式
2)、工作在計數方式
工作方式1是16位計數器。這是工作方式1與工作方式0在計數方式時唯一差別。
3 工作方式2
定時器T0在工作方式2時,16位的計數器分成了兩個獨立的8位計數器TH0和TL0。

1)、工作在定時方式
2)、工作在計數方式
工作方式2與工作方式0、方式1的差別,在於工作方式2是一個8位的計數器。
4 工作方式3
工作方式3僅對定時器T0有效。當定時器T0工作在方式3時,將16位的計數器分為兩個獨立的8位計數器TH0和TL0。

當定時器T0工作在方式3時,定時器T1隻能工作在方式0~2,並且工作在不需要中斷的場合。

10. 怎樣使用51單片機的定時器

51單片機定時器的使用

51單片機定時器/計時器的使用
步驟:
1、 打開中斷允許位:
對IE寄存器進行控制,IE寄存器各位的信息如下圖所示:
EA: 為0時關所有中斷;為1時開所有中斷
ET2:為0時關T2中斷;為1時開T2中斷,只有8032、8052、8752才有此中斷 ES: 為0時關串口中斷;為1時開串口中斷 ET1:為0時關T1中斷;為1時開T1中斷 EX1:為0時關1時開 ET0:為0時關T0中斷;為1時開T0中斷 EX0:為0時關1時開
2、 選擇定時器/計時器的工作方式:
定時器TMOD格式

CPU在每個機器周期內對T0/T1檢測一次,但只有在前一次檢測為

1和後一次檢測為0時才會使計數器加1。因此,計數器不是由外部時鍾負邊沿觸發,而是在兩次檢測到負跳變存在時才進行計數的。由於兩次檢測需要24個時鍾脈沖,故T0/T1線上輸入的0或1的持續時間不能少於一個機器周期。通常,T0或T1輸入線上的計數脈沖頻率總小於100kHz。
方式0:定時器/計時器按13位加1計數,這13位由TH中的高8位和TL中的低5位組成,其中TL中的高3位棄之不用(與MCS-48兼容)。

13位計數器按加1計數器計數,計滿為0時能自動向CPU發出溢出中斷請求,但要它再次計數,CPU必須在其中斷服務程序中為它重裝初值。
方式1:16位加1計數器,由TH和TL組成,在方式1的工作情況和方式0的相同,只是計數器值是方式0的8倍。

1
1/3
方式2:計數器被拆成一個8位寄存器TH和一個8位計數器TL,CPU對它們初始化時必須送相同的定時初值。當計數器啟動後,TL按8位加1計數,當它計滿回零時,一方面向CPU發送溢出中斷請求,另一方面從TH中重新獲得初值並啟動計數。

方式3:T0和T1工作方式不同,TH0和TL0按兩個獨立的8位計數器工作,T1隻能按不需要中斷的方式2工作。 在方式3下的TH0和TL0是有區別的:TL0可以設定為定時器/計時器或計數器模式工作,仍由TR0控制,並採用TF0作為溢出中斷標志;TH0隻能按定時器/計時器模式工作,它借用TR1和TF1來控制並存放溢出中斷標志。因此,T1就沒有控制位可以用了,故TL1在計滿回零時不會產生溢出中斷請求的。 顯然,T0和T1設定為方式3實際上就相當於設定了3個8位計數器同時工作,其中TH0和TL0為兩個由軟體重裝的8位計數器,TH1和TL1為自動重裝的8位計數器,但無溢出中斷請求產生。由於TL1工作於無中斷請求狀態,故用它來作為串口可變波特

3、 為計數器賦值
計數器初值計算
TC=M−C
TC:計數器初值,M:計數器模值(2k),C:把計數器計滿的計數值 定時器初值計算
T=(M−TC)T計數


TC=M−T/𝑇計數
M:模值,T計數:單片機時鍾周期TCLK(ΦCLK的倒數)的12倍;TC為定時器的定時初值,T為欲定時的時間。
TC=M−T×𝛷𝐶𝐿𝐾/12
M:模值,ΦCLK:單片機時鍾周期ΦCLK;TC為定時器的定時初值,T為欲定時的時間。 例如:單片機主脈沖頻率ΦCLK為12MHz,最大定時時間為: 方式0時 TMAX = 213×1us = 8.192ms 方式1時 TMAX = 216×1us = 65.536ms 方式2和方式3 TMAX = 28×1us = 0.256ms
4TR0:為0時,停T0計數;為1時,啟T0計數

2
2/3

TF0:為0時,無T0中斷(硬體復位);為1時,有T0溢出中斷 TR1:為0時,停T1計數;為1時,啟T1計數 TF1:為0時,無T1中斷(硬體復位);為1時,有T1溢出中斷 IE1:為0時,硬體復位;為1時 IT1:為0時,INT1電平觸發(軟體復位);為1時,INT1負邊沿觸發 IE0:為0時,硬體復位;為1時 IT0:為0時,INT0電平觸發(軟體復位);INT0負邊沿觸發
5

在C51的C語言中使用interrupt x來指定中斷入口地址,x為中斷號,例T0中斷: void Time0_Int() interrupt 1 //定時器T0的中斷入口程序

閱讀全文

與51單片機定時方式相關的資料

熱點內容
如何編譯原理課程教材 瀏覽:724
單片機控制顯示器 瀏覽:776
頂好花app下載怎麼找不到 瀏覽:989
手機命令大全 瀏覽:808
怎麼下郵政銀行app 瀏覽:250
不背單詞app單詞怎麼學習 瀏覽:481
程序員日常操作搞笑 瀏覽:382
android檢查是否安裝 瀏覽:375
蘋果手機編輯pdf文件 瀏覽:460
android系統名字 瀏覽:971
安卓手機如何進去有求必應屋 瀏覽:434
指數除法運演算法則底數不同 瀏覽:896
90壓縮干糧09壓縮干糧 瀏覽:516
android線程池框架 瀏覽:481
手機自帶解壓能解壓哪些文件 瀏覽:804
linux安裝hba驅動 瀏覽:119
java構造函數new 瀏覽:668
怎麼查家裡電器耗電量app 瀏覽:506
原神一直顯示重新連接伺服器怎麼辦 瀏覽:826
一般用途軸流式壓縮機 瀏覽:926