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