單片機定時器工作模式TMOD設置
TMOD:定時器/計數(shù)器模式控制寄存器(TIMER/COUNTER MODE CONTROL REGISTER)
定時器/計數(shù)器模式控制寄存器TMOD是一個逐位定義的8位寄存器,但只能使用字節(jié)尋址,其字節(jié)地址為89H。
其格式為:
TMOD結(jié)構(gòu)圖
=================================================================================
其中低四位定義定時器/計數(shù)器T0,高四位定義定時器/計數(shù)器T1,各位的說明:
Ⅰ,GATE——門控制。
●GATE=1時,由外部中斷引腳INT0、INT1來啟動定時器T0、T1。
當INT0引腳為高電平時TR0置位,啟動定時器T0;
當INT1引腳為高電平時TR1置位,啟動定時器T1。
●GATE=0時,僅由TR0,TR1置位分別啟動定時器T0、T1。
Ⅱ,C/T——功能選擇位
C/T=0時為定時功能,C/T=1時為計數(shù)功能。
置位時選擇計數(shù)功能,清零時選擇定時功能。
Ⅲ,M0、M1——方式選擇功能
由于有2位,因此有4種工作方式
================================================================
M1M0 工作方式 計數(shù)器模式 TMOD(設置定時器模式)
0 0 方式0 13位計數(shù)器 TMOD=0x00
0 1 方式1 16位計數(shù)器 TMOD=0x01
1 0 方式2 自動重裝8位計數(shù)器 TMOD=0x02
1 1 方式3 T0分為2個8位獨立計數(shù)器,T1為無中斷重裝8位計數(shù)器 TMOD=0x03
單片機定時器0設置為工作方式1為TMOD=0x01;定時器1設置工作方式1時TMOD=0x10
沒有用到的定時器一般設置為0
================================================================
初始化定時器0
TH0=(65535-50000)/256;Tl0=(65535-50000)%256;
在51單片機中,如果你的定時器0選擇的是“方式一”,則表示定時器0的計數(shù)器從0開始加到50000,其中每加一次的時間為你的晶振頻率的倒數(shù)。如12MHz,則每加一個數(shù)的時間為 1*12/12000000 秒。你的公式中是加50000次,即 50000*1*12/12000000 = 50MS。注:數(shù)值只能從0加到65535,否則就會溢出。如果需要定時的時間長,可在定時器中斷函數(shù)中,使用全局變量計數(shù)。如使用你的公式進行定時器初始化,想要實現(xiàn)1S的定時,則等到全局變量從0加至20時,即定時器0發(fā)生20次中斷,就可以了。
擴展閱讀:單片機定時器計數(shù)器初值的計算