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