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