Ⅰ 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變數來輔助提升定時器位數。