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

51單片機定時

發布時間:2022-01-12 05:00:33

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

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

Ⅱ 51單片機 定時時間

65535*2=131070微秒,每個周期為2微秒*65535個周期。你算算就對了,我是記住的12M時周期為1微秒,6M就為2微秒,24M為0.5微秒

Ⅲ 51單片機T0定時器4種方式的定時時長分別是多少

模式0:8192
模式1:65536
模式2:256(自動重裝載模式,波特率發生器必須是這個模式)
模式3:256(該模式用處不大,將定時器分成兩個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)
{
;
}
}

Ⅳ c51單片機定時十分鍾怎麼做

寫個偽代碼,供參考:

延時10分鍾=延時600秒

延時600秒=延時1秒(600)

把延時1秒的程序,調用600次就是10分鍾

Ⅵ 51單片機定時怎麼寫

設置好tmod和th1
tl1
打開t1中斷,比如設置TH1和TL1使MCU50ms產生一個溢出中斷,在main里設置一個變數N,一次中斷n++,根據你所需的時間,設置n的上限,如1分鍾,n自增到20返回0

Ⅶ 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

Ⅷ 51單片機如何計算定時時間

如果只是計算定時而無需理論根據,可下載一個MCUtool.exe小工具,可很方便地得出。此工具還有其它 如延時時間計算,波特率計算,漢字編碼查詢等諸多功能 。

Ⅸ 關於51單片機長時間定時

給你舉個例子吧 80C51
已知fosc=6MHZ,下面延時子程序的延時時間大約為10ms
精確的時間為:
DELAY: MOV R6,#10 ;2us
D1: MOV R7,#250 ;20us,重復了10次,一次2us
D2: DJNZ R7,D2 ;1ms,250*2*2 us
DJNZ R6,D1 ;40us ,10*2*2us
RET ;4us
雖然一次只累計250次
但通過循環10次的250次累計,就可以達到長時間的定時
所以上面的精確時間為10ms+66us(忽略不計)
這么詳細了沒明白?
直說了吧
這程序段,你給R6:10,他就延時10ms
你給R6:20,他就延時20ms
你給R6:200,他就延時200ms
在R6=200的基礎上,在加兩句,讓200ms循環5次,就可以得到1s的延時,10次就是2s
這樣夠不夠?
那我給你解釋下上面的那段延時程序吧.
DELAY: MOV R6,#10;給R6預設10,循環10次用
D1: MOV R7,#250;給R7預設250,
D2: DJNZ R7,D2;R7減1,判斷R7是否為0,不為0,則跳轉D2(原地踏步),R7=0的話則繼續執行下一條(R7已從250減到0了)
DJNZ R6,D1;R6減1,判斷R6是否為0,不為0,跳D1,而D1又是從R7重賦250,這樣,不斷循環,直到R6=0,才循環結束
RET

Ⅹ 51單片機中斷定時

30秒這個時間比較長,不知道你的晶振選用的什麼頻率。一般來說16位方式也很難做到30秒,所以需要藉助一個全局的counter變數來輔助提升定時器位數。

閱讀全文

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

熱點內容
白盤怎麼解壓 瀏覽:472
辰語程序員學習筆記 瀏覽:47
程序員被公司勸退 瀏覽:523
java三子棋 瀏覽:690
加密空間怎麼強制進入 瀏覽:343
ug分割曲線命令 瀏覽:209
學碼思程序員 瀏覽:609
自考雲學習app為什麼登不上 瀏覽:406
domcer伺服器晝夜更替怎麼搞 瀏覽:434
plc和單片機哪個好 瀏覽:535
帝國神話組建雲伺服器 瀏覽:827
鄧散木pdf 瀏覽:199
方舟怎麼直連伺服器圖片教程 瀏覽:563
假相pdf 瀏覽:336
找對象找程序員怎麼找 瀏覽:976
怎麼投訴蘋果商店app 瀏覽:470
華為手機如何看有多少個app 瀏覽:734
btr如何管理別的伺服器 瀏覽:410
spwm軟體演算法 瀏覽:184
70多歲單身程序員 瀏覽:221