80C52、AT89C52的定時/計數(shù)器2
80C52、AT89C52、80C51FA/FB等單片機增加了一個16位定時/計數(shù)器T2,可用于定時或外部事件計數(shù)。它有三種工作方式:16位自動重裝初值的定時/計數(shù)器、捕捉事件、串行口波特率發(fā)生器。與T2有關(guān)的外部引腳是:P1。0-外部計數(shù)脈沖輸入端T2,P1。1-外部控制端T2EX。
8052、AT89C52、80C51FA/FB等單片機增加了一個16位定時/計數(shù)器T2,可用于定時或外部事件計數(shù)。它有三種工作方式:16位自動重裝初值的定時/計數(shù)器、捕捉事件、串行口波特率發(fā)生器。與T2有關(guān)的外部引腳是:P1。0-外部計數(shù)脈沖輸入端T2,P1。1-外部控制端T2EX。
1、 T2的特殊功能寄存器
1) 控制寄存器T2CON(C8H)
位:TF2 EXF2 RCLK TCLK EXEN2 TR2 C//T2 CP//RL2
TF2:T2溢出中斷標(biāo)志,在捕捉方式和自動重裝初值方式中計數(shù)溢出時置1,對應(yīng)中斷入口002BH,但中斷響應(yīng)后,必須由軟件清0。在串行口波特率發(fā)生器方式中TF2不會置1。
EXF2:T2外部中斷標(biāo)志。當(dāng)EXEN2=1(T2外部中斷允許)時,引腳T2EX(P1。1)的負跳變使EXF2=1,CPU響應(yīng)中斷,入口地址002BH;EXF2也必須由軟件清0。
EXEN2:T2外部中斷允許標(biāo)志。使EXEN2=1,當(dāng)T2工作在捕捉方式時,引腳T2EX上出現(xiàn)的負跳變使EXF2=1,申請中斷,同時TH2、TL2的當(dāng)前值自動送入RCAP2H、RCAP2L寄存器;如果T2工作在重載初值方式,那么T2EX的負跳變將RCAP2H和RCAP2L的內(nèi)容自動裝入TH2、TL2,同時EXF2=1,申請中斷。EXEN2=0時,T2EX引腳上的變化對T2工作無影響。
RCLK、TCLK:選擇串行口波特率發(fā)生器方式。RCLK=1和TCLK=1時,T2的溢出率是串行口發(fā)送和接收的時鐘;當(dāng)只有RCLK=1時,T2只是串口的接收時鐘;只有 TCLK=1時,T2只是串口的發(fā)送時鐘。此時忽略CP//RL2位。
CP//RL2:自動重裝方式和捕捉方式選擇(此時RCLK和TCLK應(yīng)為0)。為0-自動重裝方式,為1-捕捉方式。
2) TH2、TL2、RCAP2H、RCAP2L。
2、T2的工作方式
1) 初值自動重裝入方式
寄存器TH2、TL2是16位加1的計數(shù)器,RCAP2H、RCAP2L是存放初值的寄存器。
此方式中,CP//RL2=0,打開了RCAP2H、RCAP2L 通向TH2、TL2的三態(tài)門,而關(guān)閉反方向的門。
當(dāng)C//T2=0,TR2=1時,T2以定時器方式工作,12/fosc為計數(shù)最小單元。16位定時精度要比T0、T1高。
當(dāng)C//T2=1,TR2=1時,T2以計數(shù)器方式工作,引腳P1。0上輸入的脈沖為計數(shù)信號(負跳變)。
當(dāng)T2計數(shù)溢出時,使TF2=1,同時把RCAP2H、RCAP2L的內(nèi)容自動裝入TH2、TL2并開始重新計數(shù)。
在此方式中,若置EXEN2=1時,除上述功能外,引腳P1。1上的負跳變將RCAP2H、RCAP2L的內(nèi)容自動裝入TH2、TL2使之提前開始重新計數(shù),同時置EXF2=1,申請中斷。
2) 捕捉方式
此方式中,CP//RL2=0,關(guān)閉了RCAP2H、RCAP2L 通向TH2、TL2的三態(tài)門,而打開反方向的門。因此不管是工作在定時器還是計數(shù)器方式,當(dāng)T2溢出時,僅使EXF2=1,但計數(shù)初值不會自動重裝,而須用軟件裝入。此方式的主要用途是,當(dāng)EXEN2=1時,引腳T2EX(P1。1)上的電平負跳變會將TH2、TL2的當(dāng)前數(shù)值鎖存到RCAP2H、RCAP2L,并置EXF2=1,申請中斷。這是‘捕捉方式’的含義,它可用于測試外部事件的發(fā)生時間。
在RCLK或TCLK為1時,T2就成為波特率發(fā)生器。它可以對內(nèi)部或外部時鐘脈沖計數(shù)(由C//T2決定)。
寄存器TH2、TL2是16位加1的計數(shù)器,RCAP2H、RCAP2L是存放初值的寄存器。
當(dāng)C//T2=0時,T2是對頻率為fosc/2的時鐘脈沖計數(shù),而不是fosc/12。計數(shù)溢出時,RCAP2H、RCAP2L的內(nèi)容自動裝入TH2、TL2并開始重新計數(shù),但不會使EXF2=1,即不會產(chǎn)生中斷。它的溢出脈沖經(jīng)16分頻成為串行口的發(fā)送或接收脈沖(由RCLK、TCLK決定)。
既然此方式不會引起中斷,而且當(dāng)EXEN2=1時,T2EX(P1。1)引腳上的負跳變對T2工作無任何影響,但又能使EXF2=1,申請中斷。因此,T2EX可作為一個外部中斷源使用。
在此方式工作進程中,CPU不要對TH2、TL2、RCAP2H、RCAP2L進行寫的操作,否則使波特率不穩(wěn)定。