【正文】
ts of the throne of CCFn and CCAPMn SFR ECCFn bit is set position, will produce the interruption.A software timer modeThrough the CCAPMn registers for a ECOM and MAT bits, can make the PCA module used for software timer (below). PCA timer values and module of the register pared to capture, when both values equal, if a CCON SFR in CCFn (in) and a ECCFn CCAPMn SFR) in all buy bits, will produce the interruption.PCA Software Timer Mode/Software Timer model/PCA parative ModePCA Software Timer Mode/Software Timer model/PCA parative ModeHighspeed output modelThis model (below), when PCA counter plan of the numerical and module capture registers matching, PCA value CEXn output will happen module of the flip. To activate the highspeed output modes of CCAPMn TOG SFR, modules, MAT and ECOM bit must buy bits.PCA High Speed, Output Mode/PCA highspeed Output ModeIn use PCA highspeed output mode special application note:If a certain PCA module working in high speed pulse output mode, want to use software output change the same group of other mon I/O port state, need to do first, whether CCAPnH judge CH is equal to abide, can freely modify, if equal, and determine CCAPnL circumstances CL is allowed to change the same group of other mon I/O port state. If use / PCA0 / PWM0 do PCA highspeed pulse output, and the program inside and with software output change when the state mouth, you need to do judgment.When one has the PCA highspeed pulse output function of I/O mouth working in high speed pulse output mode, if the software for the same group of other I/O port operation, if meet PCA parator matching, this operation can change the pulse output function with PCA highspeed mouth of the I/O.PCA PWM mode/modulation pulse width output modeSince all share only PCA timer modules, all their output frequency is same. The output of each module 390v is independent of the changes, and using EPCnL, captured CCAPnL}} {of registers concerned. When CL SFR value is less than CCAPnL}} {EPCnL, when output is low, and the value of SFR when PCA CL is equal to or greater than EPCnL, CCAPnL}} {, the output as high. When the value of the CL by FF into EPCnH, 00 overflow, CCAPnH}} {the contents of EPCnL, loaded into the CCAPnL}} {. In this way, can realize update PWM without interference. To make CCAPMn PWM mode, module can PWMn and ECOMn bits of the register to buy bits.芯片STC12C5204AD的I/O口配置STC12C5204AD系列單片機其所有I/O口均可由軟件配置成4 種工作類型4 種類型分別為:準雙向口(標準8051輸出模式)、推挽輸出、僅為輸入(高阻)或開漏輸出功能。每個口由2個控制寄存器中的相應位控制每個引腳工作類型。STC12C5204AD系列單片機上電復位后為準雙向口(標準8051輸出模式)模式:2V 以上時為高電平, 以下時為低電平。準雙向口輸出類型可用作輸出和輸入功能而不需重新配置口線輸出狀態(tài)。這是因為當口線輸出為1時驅(qū)動能力很弱,允許外部裝置將其拉低。當引腳輸出為低時,它的驅(qū)動能力很強,可吸收相當大的電流。準雙向口有3個上拉晶體管適應不同的需要。在3個上拉晶體管中,有1個上拉晶體管稱為“弱上拉”,當口線寄存器為1且引腳本身也為1時打開。此上拉提供基本驅(qū)動電流使準雙向口輸出為1。如果一個引腳輸出為1而由外部裝置下拉到低時,弱上拉關閉而“極弱上拉”維持開狀態(tài),為了把這個引腳強拉為低,外部裝置必須有足夠的灌電流能力使引腳上的電壓降到門檻電壓以下。第2個上拉晶體管,稱為“極弱上拉”,當口線鎖存為1 時打開。當引腳懸空時,這個極弱的上拉源產(chǎn)生很弱的上拉電流將引腳上拉為高電平。第3個上拉晶體管稱為“強上拉”。當口線鎖存器由0到1跳變時,這個上拉用來加快準雙向口由邏輯0到邏輯1轉(zhuǎn)換。當發(fā)生這種情況時,強上拉打開約2個機器周期以使引腳能夠迅速地上拉到高電平。準雙向口輸出如下圖所示。STC12C520系列單片機為3V器件,如果用戶在引腳加上5V電壓,將會有電流從引腳流向VDD,這樣導致額外的功率消耗。因此,建議不要在準雙向口模式中向3V 單片機引腳施加5V電壓,如使用的話,要加限流電阻,或用二極管做輸入隔離,或用三極管做輸出隔離。準雙向口帶有一個施密特觸發(fā)輸入以及一個干擾抑制電路。2 .推挽輸出配置推挽輸出配置的下拉結(jié)構(gòu)與開漏輸出以及準雙向口的下拉結(jié)構(gòu)相同,但當鎖存器為1時提供持續(xù)的強上拉。推挽模式一般用于需要更大驅(qū)動電流的情況。推挽引腳配置如下圖所示。3 .僅為輸入(高阻)配置輸入口配置如下圖所示。輸入口帶有一個施密特觸發(fā)輸入以及一個干擾抑制電路。當口線鎖存器為0時,開漏輸出關閉所有上拉晶體管。當作為一個邏輯輸出時,這種配置方式必須有外部上拉,一般通過電阻外接到V D D 。這種方式的下拉與準雙向口相同。輸出口線配置如下圖所示。開漏端口帶有一個施密特觸發(fā)輸入以及一個干擾抑制電路。一種典型三極管控制電路如果用弱上拉控制,建議加上拉電阻R1(~10K),如果不加上拉電阻R 1(~10K),建議R2的值在15K以上,或用強推挽輸出。STC12C5204AD系列單片機可編程計數(shù)器陣列(PCA)PCA含有一個特殊的16位定時器,有4個16位的捕獲/比較模塊與之相連。每個模塊可編程工作。在4 種模式下:上升/下降沿捕獲、軟件定時器、高速輸出或可調(diào)制脈沖輸出。(CEX0/PCA0/PWM0),(CEX1/PCA1/PWM1),(CEX2/PCA2/PWM2),(CEX3/PCA3/PWM3)。寄存器CH和CL的內(nèi)容是正在自由遞增計數(shù)的16位PCA 定時器的值。PCA定時器是4個模塊的公共時間基準,可通過編程工作在:1/12振蕩頻率、1/2振蕩頻率、定時器0溢出或ECI腳的輸入()。定時器的計數(shù)源由CMOD SFR 的CPS1和CPS0位來確定(見CMOD特殊功能寄存器說明)??删幊逃嫈?shù)器陣列PCA定時器/計數(shù)器CMOD SFR 還有2個位與PCA相關。它們分別是:CIDL,空閑模式下允許停止PCA;ECF,置位時,使能PCA中斷,當PCA定時器溢出將PCA計數(shù)溢出標志CF(CCON SFR)置位。CCON SFR包含PCA的運行控制位(CR)和PCA定時器標志(CF)以及各個模塊的標志(CCF3/CCF2/CCF1/CCF0)。通過軟件置位CR 位()來運行PCA。CR位被清零時PCA關閉。當PCA計數(shù)器溢出時,CF位()置位, 如果CMOD寄存器的ECF位置位, 就產(chǎn)生中斷。CF位只可通過軟件清除。CCON 寄存器的位0~3是PCA各個模塊的標志(位0對應模塊0,位1對應模塊1,位2對應模塊2,位3 對應模塊3),當發(fā)生匹配或比較時由硬件置位。這些標志也只能通過軟件清除。所有模塊共用一個中斷向量。PCA的中斷系統(tǒng)如圖所示。PCA的每個模塊都對應一個特殊功能寄存器。它們分別是:模塊0對應CCAPM0,模塊1對應CCAPM1,模塊2對應CCAPM2,模塊3對應CCAPM3。特殊功能寄存器包含了相應模塊的工作模式控制位。當模塊發(fā)生匹配或比較時,ECCFn位(,n=0,1 ,2,3 由工作的模塊決定)使能CCON SFR的CCFn標志來產(chǎn)生中斷。PWM()用來使能脈寬調(diào)制模式。當PCA計數(shù)值與模塊的捕獲/比較寄存器的值相匹配時,如果TOG位()置位,模塊的CEXn 輸出將發(fā)生翻轉(zhuǎn)。當PCA計數(shù)值與模塊的捕獲/比較寄存器的值相匹配時,如果匹配位MATn()置位,CCON 寄存器的CCFn位將被置位。CAPNn()和CAPPn()用來設置捕獲輸入的有效沿。CAPNn位使能下降沿有效,CAPPn位使能上升沿有效。如果兩位都置位,則兩種跳變沿都被使能,捕獲可在兩種跳變沿產(chǎn)生。通過置位CCAPMn寄存器的ECOMn位()來使能比較器功能。每個PCA模塊還對應另外兩個寄存器,CCAPnH和CCAPnL。當出現(xiàn)捕獲或比較時,它們用來保存16位的計數(shù)值。當PCA模塊用在PWM模式中時,它們用來控制輸出的占空比。PCA捕獲模式要使一個PCA模塊工作在捕獲模式(下圖),寄存器CCAPMn的兩位(CAPNn 和CAPPn)或其中任何一位必須置1。對模塊的外部CEXn 輸入(CEX0/,CEX1/,CEX2/,CEX3/ 口)的跳變進行采樣。當采樣到有效跳變時,PCA 硬件就將PCA計數(shù)器陣列寄存器(CH 和CL)的值裝載到模塊的捕獲寄存器中(CCAPnL 和CCAPnH)。PCA Capture Mode(PCA捕獲模式圖)如果CCON SFR的位CCFn和CCAPMn SFR的位ECCFn位被置位,將產(chǎn)生中斷。位軟件定時器模式通過置位CCAPMn寄存器的ECOM和MAT位,可使PCA模塊用作軟件定時器(下圖)。PCA定時器的值與模塊捕獲寄存器的值相比較,當兩者相等時,如果位CCFn(在CCON SFR 中)和位ECCFn 在CCAPMn SFR中)都置位,將產(chǎn)生中斷。PCA Software Timer Mode/ 軟件定時器模式/PCA 比較模式PCA Software Timer Mode/軟件定時器模式/PCA比較模式高速輸出模式該模式中(下圖),當PCA計數(shù)器的計數(shù)值與模塊捕獲寄存器的值相匹配時,PCA模塊的CEXn輸出將發(fā)生翻轉(zhuǎn)。要激活高速輸出模式,模塊CCAPMn SFR 的TOG,MAT 和ECOM 位必須都置位。PCA HighSpeed Output Mode / PCA高速輸出模式在使用PCA高速輸出模式時的特別應用注意事項:如果某一PCA模塊工作在高速脈沖輸出模式,要用軟件輸出改變同一組其它普通I/O口的狀態(tài),需先做判斷CH是否等于CCAPnH,若不等,可自由修改,若相等,再判斷CLCCAPnL情況下才允許改變同一組其它普通I/O口的狀態(tài)。,就需要做判斷。當某個具有PCA高速脈沖輸出功能的I/O口工作在高速脈沖輸出模式時,如果軟件對同一組的其它I/O口進行操作,如果遇上PCA比較器匹配時,該操作有可能會改變此具有PCA高速脈沖輸出功能的I/O口的狀態(tài),所以同一組的其它I/O口建議不要做輸出用,如果做輸出用時,要進行判斷。脈寬調(diào)節(jié)模式所有PCA模塊都可用作PWM輸出(下圖)。輸出頻率取決于PCA定時器的時鐘源。PCA PWM mode /可調(diào)制脈沖寬度輸出模式由于所有模塊共用僅有的PCA定時器,所有它們的輸出頻率相同。各個模塊的輸出占空比是獨立變化的,與使用的捕獲寄存器{EPCnL,CCAPnL}有關。當CL SFR的值小于{EPCnL,CCAPnL}時,輸出為低,當PCA CL SFR的值等于或大于{EPCnL,CCAPnL}時,輸出為高。當CL的值由FF變?yōu)?0溢出時,{EPCnH,CCAPnH}