標題:
單片機定時器0中一秒的中斷程序TH0和TL0怎么算?
[打印本頁]
作者:
愛學(xué)習(xí)的小郎君
時間:
2022-10-4 22:31
標題:
單片機定時器0中一秒的中斷程序TH0和TL0怎么算?
謝謝大家
作者:
hjx5548
時間:
2022-10-5 07:41
20ms初值,中斷多少次可以了。
作者:
624353765
時間:
2022-10-5 07:48
http://www.torrancerestoration.com/bbs/dpj-223265-1.html
看這貼,可以用軟件生成
作者:
coody_sz
時間:
2022-10-5 21:37
Timer0設(shè)置一個10ms的中斷,計數(shù)到100就是1秒。
作者:
lkc8210
時間:
2022-10-6 10:33
STC例程
#include "reg51.h"
typedef unsigned char BYTE;
typedef unsigned int WORD;
//-----------------------------------------------
/* define constants */
#define FOSC 11059200L
#define T1MS (65536-FOSC/12/1000) //1ms timer calculation method in 12T mode
/* define SFR */
sbit TEST_LED = P1^0; //work LED, flash once per second
/* define variables */
WORD count; //1000 times counter
//-----------------------------------------------
/* Timer0 interrupt routine */
void tm0_isr() interrupt 1
{
TL0 = T1MS; //reload timer0 low byte
TH0 = T1MS >> 8; //reload timer0 high byte
if (count-- == 0) //1ms * 1000 -> 1s
{
count = 1000; //reset counter
TEST_LED = ! TEST_LED; //work LED flash
}
}
//-----------------------------------------------
/* main program */
void main()
{
TMOD = 0x01; //set timer0 as mode1 (16-bit)
TL0 = T1MS; //initial timer0 low byte
TH0 = T1MS >> 8; //initial timer0 high byte
TR0 = 1; //timer0 start running
ET0 = 1; //enable timer0 interrupt
EA = 1; //open global interrupt switch
count = 0; //initial counter
while (1); //loop
}
復(fù)制代碼
作者:
Hephaestus
時間:
2022-10-6 21:53
我還是更喜歡自動重裝載模式。
作者:
yzwzfyz
時間:
2022-10-8 10:08
當(dāng)時間太長時(超過65536的計數(shù)),可以自己增加一個變量,統(tǒng)計中斷次數(shù),就可以實現(xiàn)1S干活的目的了。
作者:
人人學(xué)會單片機
時間:
2022-10-9 00:01
https://pan.baidu.com/s/1HKoHDJSc9sxFTQvllo825g
提取碼:1234 解壓碼 WQX-15
這里有現(xiàn)成的代碼可以下載
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1