單片機(jī)定時(shí)器實(shí)用方法總結(jié)
第一部分:51系列定時(shí)器
定時(shí)/計(jì)數(shù)器 0 和定時(shí)/計(jì)數(shù)器1都有4種定時(shí)模式。
16位定時(shí)器對內(nèi)部機(jī)器周期進(jìn)行技術(shù),機(jī)器周期加1,定時(shí)器值加1,1MHZ模式下,一個(gè)機(jī)器周期為1us 。
定時(shí)器工作模式寄存器TMOD,不可位尋址,需整體賦值,高4位用于定時(shí)器1,第四位用于定時(shí)器0。
C/T:為定時(shí)器功能選擇位,C/T=0對機(jī)器周期計(jì)數(shù),C/T=1,對外部脈沖計(jì)數(shù)。
GATE:門控位,GATE=0,軟件置位TRn即可啟動(dòng)計(jì)時(shí)器,GATE=1需外部中斷引腳為高電平時(shí)才能軟件置位TRn啟動(dòng)計(jì)時(shí)器,一般取GATE=0。
定時(shí)器控制寄存器TCON:
TFn:Tn溢出標(biāo)志位,當(dāng)定時(shí)器溢出時(shí),硬件置位TFn,中斷使能的情況下,申請中斷,CPU響應(yīng)中斷后,硬件自動(dòng)清除TFn。中斷屏蔽時(shí),該位一般作為軟件查詢標(biāo)志,由于不進(jìn)入中斷程序,硬件不會(huì)自動(dòng)清除標(biāo)志位,可軟件清除。
TRn:計(jì)時(shí)器啟動(dòng)控制位,軟件置位TRn即可啟動(dòng)定時(shí)器,軟件清除TRn關(guān)閉標(biāo)志位。
IEn:外部中斷請求標(biāo)志位。
ITn:外部中斷出發(fā)模式控制位,ITn=0為低電平觸發(fā),ITn=1為下降沿觸發(fā)。
中斷允許控制寄存器IE
EA(IE.7):全局中斷控制位。EA=1開全局中斷,EA=0關(guān)閉全局中斷。
IE.6無意義。
ETn:定時(shí)器中斷使能控制位。置位允許中斷,清除禁止中斷。
ES:串行接收/發(fā)送中斷控制位,置位允許中斷。
EXn:外部中斷使能控制位。置1允許,清0禁止。
中斷優(yōu)先級(jí)控制寄存器IP,復(fù)位后為00H
IP.6,IP.7保留,無意義。
PT2:定時(shí)器2中斷優(yōu)先級(jí)控制,置1設(shè)為高優(yōu)先級(jí),清0置位低優(yōu)先級(jí)。
PS:串行中斷優(yōu)先級(jí)控制位。
PT1/0:定時(shí)器1/0優(yōu)先級(jí)控制位,置1高,清0低。
PXn:外部中斷優(yōu)先級(jí)控制位。
當(dāng)有同級(jí)中斷同時(shí)響應(yīng),按IE0->TF0->IE1->TF1-IE0->RI+TI->TF2順序依次響應(yīng)。
定時(shí)器模式0的使用 TMOD=0xf0/TMOD=0x0f
TL0高3位不用,低5位溢出時(shí),直接向TH0進(jìn)位。
通過設(shè)置TH0和TL0初值(0~8191),使計(jì)數(shù)器從初值開始加1,溢出后申請中斷,溢出后需重新設(shè)置初值,否則將從0開始加1計(jì)數(shù)。