在單片機(jī)編程時(shí),tmod寄存器是一個(gè)非常重要的寄存器。正確設(shè)置tmod寄存器可以影響定時(shí)器的計(jì)數(shù)方式、計(jì)數(shù)范圍以及觸發(fā)方式等,因此對(duì)于學(xué)習(xí)嵌入式系統(tǒng)編程的人來(lái)說(shuō)必須掌握如何設(shè)置tmod寄存器。
1.tmod寄存器初始化怎么設(shè)置
在單片機(jī)初始化時(shí)需要設(shè)置tmod寄存器,通常在PCON(電源控制寄存器)中將SMOD位=0,即可使波特率加倍失效,便于直接使用P3.0和P3.1做為普通的IO口使用,而不用作串口(TXD和RXD)功能;再根據(jù)實(shí)際需要配置tmod寄存器。例如,要將計(jì)數(shù)器1設(shè)為16位自動(dòng)重裝模式并使用系統(tǒng)時(shí)鐘輸入,則應(yīng)當(dāng)將計(jì)數(shù)器1使用方式設(shè)置為001b(M1 = 0,M0 = 0),同時(shí)選擇定時(shí)器1時(shí)鐘源為外部時(shí)鐘源(T1X12 = 0)。
2.tmod的值怎么確定
tmod的值由兩個(gè)位分別控制Timer 0和 Timer 1的工作模式,因此需要根據(jù)實(shí)際需要設(shè)置tmod的值。在tmod寄存器中,M1/M0和GATE/T0X都是標(biāo)志位,用于表示Timer的工作模式、計(jì)數(shù)方式以及觸發(fā)源等信息。其中,M1/M0用于設(shè)定計(jì)數(shù)器時(shí)鐘源和計(jì)數(shù)方式,共有四種工作模式:00為13位TIMER0或者8位TIMER1計(jì)數(shù)模式;01為16位TIMER1計(jì)數(shù)模式;10為8位自動(dòng)重裝載TIMER0或者TIMER1計(jì)數(shù)模式;11為兩個(gè)8位計(jì)數(shù)器分別使用,TIMER0由T0引導(dǎo),TIMER1由TR1引導(dǎo)的計(jì)時(shí)器/計(jì)數(shù)器。而GATE/T0X則用于選擇外部輸入信號(hào)作為計(jì)數(shù)脈沖還是內(nèi)部時(shí)鐘作為計(jì)數(shù)脈沖。
3.總結(jié)
正確設(shè)置tmod寄存器十分重要,可保證單片機(jī)的正常運(yùn)行。在進(jìn)行單片機(jī)編程時(shí)應(yīng)認(rèn)真研究數(shù)據(jù)手冊(cè)中tmod寄存器相關(guān)設(shè)置說(shuō)明,并理解各標(biāo)志位的含義與用途。只有充分理解tmod寄存器的功能,才能夠在實(shí)際應(yīng)用中取得更好的效果。