一、定時(shí)器 / 計(jì)數(shù)器簡(jiǎn)介
設(shè)置等待時(shí)間,到達(dá)等待時(shí)間之后執(zhí)行指定的硬件操作。
定時(shí)器最基本的功能就是定時(shí),比如說定時(shí)發(fā)送串口數(shù)據(jù),定時(shí)采集 AD 數(shù)據(jù),如果將定時(shí)器和 IO 結(jié)合起來就可以實(shí)現(xiàn)非常豐富的功能,可以測(cè)量輸入信號(hào)的脈沖寬度,可以產(chǎn)生 PWM 方波,定時(shí)器產(chǎn)生 PWM 控制電機(jī)狀態(tài)是工業(yè)控制的普通。
二、定時(shí)器 / 計(jì)數(shù)器相關(guān)寄存器介紹
1、計(jì)數(shù)寄存器 TH 和 HL
T/C 是 16 位的,計(jì)數(shù)寄存器由 TH 高 8 位和 TL 低 8 位構(gòu)成。
對(duì)應(yīng) T/C0 為 TH0 和 TL0, 對(duì)應(yīng) T/C1 為 TH1 和 TL1,定時(shí)器 / 計(jì)數(shù)器的初始值通過 TH0/TL0 和 TH1/TL1 設(shè)置。
2、定時(shí)器 / 計(jì)數(shù)器控制寄存器 TCON
3、T/C 的方式控制寄存器 TMOD
三、定時(shí)器的計(jì)數(shù)初始值計(jì)算
四、中斷源及中斷信號(hào)
五、參考代碼
/******************************************************
功能描述:LED 會(huì)循環(huán)點(diǎn)亮 1 秒,熄滅 1 秒。
使用單片機(jī)內(nèi)部定時(shí)器可實(shí)現(xiàn)準(zhǔn)確延時(shí)
******************************************************/
#include "reg52.h"
// 此文件中定義了單片機(jī)的一些特殊功能寄存器
typedef unsigned int u16; // 對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;
sbit led=P2^0; // 定義 P20 口是 led
void Timer0Init()
{
TMOD|=0X01; // 選擇為定時(shí)器 0 模式,工作方式 1(16 位),僅用 TR0 打開啟動(dòng)
TH0=0XFC; // 給定時(shí)器賦初值,定時(shí) 1ms 高 8 位
TL0=0X18; // 低 8 位(可用軟件計(jì)算,公司參考上面)
ET0=1; // 允許定時(shí)器 0 中斷
EA=1; // 打開總中斷
TR0=1; // 打開定時(shí)器 0,啟動(dòng) T/C0 運(yùn)行
}
void main()
{
Timer0Init();
while(1);
}
void Timer0() interrupt 1 //1 是中斷號(hào)
{
static u16 i;
TH0=0XFC; // 計(jì)數(shù)器寄存高 8 位重新載入
TL0=0X18; // 計(jì)數(shù)器寄存低 8 位重新載入
i++;
if(i==1000)
{
i=0;
led=~led;
}
}
審核編輯 黃昊宇
-
寄存器
+關(guān)注
關(guān)注
31文章
5343瀏覽量
120448
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論