第4章SOC單片機(jī)的片內(nèi)功能部件_第1頁(yè)
第4章SOC單片機(jī)的片內(nèi)功能部件_第2頁(yè)
第4章SOC單片機(jī)的片內(nèi)功能部件_第3頁(yè)
第4章SOC單片機(jī)的片內(nèi)功能部件_第4頁(yè)
第4章SOC單片機(jī)的片內(nèi)功能部件_第5頁(yè)
已閱讀5頁(yè),還剩166頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1 4.1 4.1 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器 4.3 4.3 UARTUART通信接口通信接口 4.2 4.2 可編程計(jì)數(shù)器陣列可編程計(jì)數(shù)器陣列 4.4 4.4 系統(tǒng)管理總線系統(tǒng)管理總線SMBusSMBus 4.5 4.5 串行外設(shè)接口總線串行外設(shè)接口總線SPISPI 重點(diǎn)重點(diǎn)了解了解2v定時(shí)和計(jì)數(shù)是定時(shí)和計(jì)數(shù)是測(cè)控系統(tǒng)測(cè)控系統(tǒng)中常用的功能,都是中常用的功能,都是通過(guò)計(jì)數(shù)實(shí)現(xiàn)通過(guò)計(jì)數(shù)實(shí)現(xiàn)的,的,可以由一個(gè)部件(可編程定時(shí)可以由一個(gè)部件(可編程定時(shí)/ /計(jì)數(shù)器)完成計(jì)數(shù)器)完成 若計(jì)數(shù)的事件源是若計(jì)數(shù)的事件源是周期固定周期固定的脈沖,則可以實(shí)現(xiàn)的脈沖,則可以實(shí)現(xiàn)定時(shí)功能定時(shí)功能 若計(jì)數(shù)的事

2、件源若計(jì)數(shù)的事件源周期不一定固定周期不一定固定,則只能實(shí)現(xiàn),則只能實(shí)現(xiàn)計(jì)數(shù)功能計(jì)數(shù)功能v實(shí)現(xiàn)定時(shí)和計(jì)數(shù)的一般方法實(shí)現(xiàn)定時(shí)和計(jì)數(shù)的一般方法 軟件法軟件法:只能定時(shí),且占用:只能定時(shí),且占用CPUCPU時(shí)間,降低了時(shí)間,降低了CPUCPU的使用效率的使用效率 P88P88 專用硬件電路法專用硬件電路法:可以實(shí)現(xiàn)精確的定時(shí)和計(jì)數(shù),但是參數(shù)調(diào)節(jié)不便:可以實(shí)現(xiàn)精確的定時(shí)和計(jì)數(shù),但是參數(shù)調(diào)節(jié)不便 可編程定時(shí)器計(jì)數(shù)器法可編程定時(shí)器計(jì)數(shù)器法:不占用:不占用CPUCPU時(shí)間,能與時(shí)間,能與CPUCPU并行工作,實(shí)現(xiàn)精并行工作,實(shí)現(xiàn)精確的定時(shí)和計(jì)數(shù),又可以通過(guò)編程設(shè)置其工作方式和其它參數(shù),使用方便確的定時(shí)和計(jì)數(shù),

3、又可以通過(guò)編程設(shè)置其工作方式和其它參數(shù),使用方便 3vC8051F020C8051F020內(nèi)部有內(nèi)部有T T0 0T T4 4共共5 5個(gè)個(gè)1616位的可編程定時(shí)位的可編程定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T T0 0T T2 2與與MCS-51MCS-51中的定時(shí)中的定時(shí)/ /計(jì)數(shù)器兼容計(jì)數(shù)器兼容T T3 3 和和T T4 4 為兩個(gè)自動(dòng)重裝初值的定時(shí)為兩個(gè)自動(dòng)重裝初值的定時(shí)/ /計(jì)數(shù)器,既可以作為通用計(jì)數(shù)器,既可以作為通用定定時(shí)時(shí)/計(jì)數(shù)器計(jì)數(shù)器用,也可以用于用,也可以用于ADCADC和和SMBusSMBus中中作定時(shí)器用時(shí),對(duì)作定時(shí)器用時(shí),對(duì)SYSCLKSYSCLK或其或其1212分頻分頻進(jìn)行計(jì)數(shù)(取

4、決于進(jìn)行計(jì)數(shù)(取決于CKCONCKCON),),作計(jì)數(shù)器用時(shí),對(duì)外部輸入的事件源計(jì)數(shù)(需配置交叉開(kāi)關(guān))作計(jì)數(shù)器用時(shí),對(duì)外部輸入的事件源計(jì)數(shù)(需配置交叉開(kāi)關(guān))有有多種工作方式多種工作方式,采用,采用加加1 1方式計(jì)數(shù)方式計(jì)數(shù)(有的器件是減(有的器件是減1 1計(jì)數(shù)的)計(jì)數(shù)的) 4 定時(shí)器定時(shí)器工作方式工作方式定時(shí)器定時(shí)器0和定和定時(shí)器時(shí)器1定時(shí)器定時(shí)器2定時(shí)器定時(shí)器3定時(shí)器定時(shí)器4方式方式013位定時(shí)器位定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 自動(dòng)重裝載自動(dòng)重裝載的的16位定時(shí)位定時(shí)器器/計(jì)數(shù)器計(jì)數(shù)器自動(dòng)重裝載自動(dòng)重裝載的的16位計(jì)數(shù)位計(jì)數(shù)器器/定時(shí)器定時(shí)器自動(dòng)重裝載自動(dòng)重裝載的的16位定時(shí)位定時(shí)器器/計(jì)數(shù)器計(jì)數(shù)器

5、方式方式116位定時(shí)器位定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器帶捕捉的帶捕捉的16位定時(shí)器位定時(shí)器/計(jì)計(jì)數(shù)器數(shù)器帶捕捉的帶捕捉的16位定時(shí)器位定時(shí)器/計(jì)計(jì)數(shù)器數(shù)器方式方式28位自動(dòng)重裝位自動(dòng)重裝載的定時(shí)器載的定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器UART0的波的波特率發(fā)生器特率發(fā)生器UART1的波的波特率發(fā)生器特率發(fā)生器方式方式3兩個(gè)兩個(gè)8位定時(shí)位定時(shí)器器/計(jì)數(shù)器計(jì)數(shù)器(只只限于定時(shí)器限于定時(shí)器0)5模式選擇模式選擇計(jì)數(shù)器計(jì)數(shù)器定時(shí)器定時(shí)器啟啟/ /??刂仆?刂茍?zhí)行機(jī)構(gòu)執(zhí)行機(jī)構(gòu)減減1 1計(jì)數(shù):如計(jì)數(shù):如Intel 8253Intel 8253加加1 1計(jì)數(shù):如計(jì)數(shù):如T0T0T4T4溢出標(biāo)志溢出標(biāo)志查詢查詢中斷中斷6vT TMA

6、XMAX=2=2n nT T計(jì)數(shù)計(jì)數(shù) 式中式中n n由工作方式?jīng)Q定由工作方式?jīng)Q定,T T計(jì)數(shù)計(jì)數(shù)為定時(shí)器為定時(shí)器/ /計(jì)數(shù)器的計(jì)數(shù)器的計(jì)數(shù)脈沖周計(jì)數(shù)脈沖周期時(shí)間期時(shí)間,由,由C8051FC8051F的主脈沖或主脈沖經(jīng)的主脈沖或主脈沖經(jīng)1212分頻提供,是否需要分頻提供,是否需要1212分頻取決于對(duì)時(shí)鐘控制寄存器分頻取決于對(duì)時(shí)鐘控制寄存器CKCONCKCON的設(shè)定(提供的設(shè)定(提供1212分頻選項(xiàng)是分頻選項(xiàng)是為了與標(biāo)準(zhǔn)為了與標(biāo)準(zhǔn)80518051兼容)。兼容)。 7v位位7 7:未用。讀:未用。讀=0b=0b,寫,寫= =忽略。忽略。v位位6-36-3:T4M-T0MT4M-T0M:T4T4到到T

7、0T0的時(shí)鐘選擇(不包含的時(shí)鐘選擇(不包含T3T3,T3T3的時(shí)鐘選的時(shí)鐘選擇由擇由T3T3控制寄存器控制寄存器TMR3CNTMR3CN的第的第0 0位位T3XCLKT3XCLK決定)。決定)。 0 0:定時(shí)器按系統(tǒng)時(shí)鐘的:定時(shí)器按系統(tǒng)時(shí)鐘的1212分頻計(jì)數(shù)分頻計(jì)數(shù) 1 1:定時(shí)器按系統(tǒng)時(shí)鐘頻率計(jì)數(shù):定時(shí)器按系統(tǒng)時(shí)鐘頻率計(jì)數(shù)v位位2-02-0:保留。讀:保留。讀=000b=000b,寫入值必須是,寫入值必須是000b000b。 8v定時(shí)方式:定時(shí)方式:每一個(gè)計(jì)數(shù)周期每一個(gè)計(jì)數(shù)周期(T(T計(jì)數(shù)計(jì)數(shù)) )計(jì)數(shù)器加計(jì)數(shù)器加1 1,直至,直至計(jì)滿溢出計(jì)滿溢出( (全全1 1加加1 1到全到全0)0)產(chǎn)

8、生中斷請(qǐng)求。對(duì)于產(chǎn)生中斷請(qǐng)求。對(duì)于N N位的加位的加1 1計(jì)數(shù)器,若計(jì)數(shù)器,若T T計(jì)數(shù)計(jì)數(shù)是是已知的,則從初值已知的,則從初值a a開(kāi)始至溢出所用的時(shí)間為:開(kāi)始至溢出所用的時(shí)間為:)(計(jì)數(shù)aTTN2 當(dāng)當(dāng)N=8N=8、a=0a=0時(shí),時(shí),最大定時(shí)時(shí)間最大定時(shí)時(shí)間為:為:T=256T=256T T計(jì)數(shù)計(jì)數(shù)v計(jì)數(shù)方式:計(jì)數(shù)方式:外部輸入信號(hào)的外部輸入信號(hào)的下降沿觸發(fā)計(jì)數(shù)下降沿觸發(fā)計(jì)數(shù),計(jì)數(shù)器在每個(gè)時(shí),計(jì)數(shù)器在每個(gè)時(shí)鐘周期鐘周期采樣采樣外部輸入信號(hào),若前一個(gè)周期的采樣值為外部輸入信號(hào),若前一個(gè)周期的采樣值為1 1,下一個(gè),下一個(gè)周期的采樣值為周期的采樣值為0 0,則計(jì)數(shù)器加,則計(jì)數(shù)器加1 1,故識(shí)

9、別一個(gè)從,故識(shí)別一個(gè)從1 1到到0 0的跳變需的跳變需2 2個(gè)周期,所以,對(duì)外部輸入信號(hào)最高的計(jì)數(shù)速率是時(shí)鐘頻率的個(gè)周期,所以,對(duì)外部輸入信號(hào)最高的計(jì)數(shù)速率是時(shí)鐘頻率的1 12 2。 TC=2TC=2N N-C-C9v對(duì)定時(shí)器對(duì)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器T0T0和和T1T1的訪問(wèn)和控制是通過(guò)操作的訪問(wèn)和控制是通過(guò)操作SFRSFR實(shí)現(xiàn)的。實(shí)現(xiàn)的。vT0T0和和T1T1都是都是1616位的加位的加1 1計(jì)數(shù)器計(jì)數(shù)器,訪問(wèn)時(shí)以兩個(gè)字節(jié)的,訪問(wèn)時(shí)以兩個(gè)字節(jié)的形式出現(xiàn):形式出現(xiàn):TL0+TH0TL0+TH0、TL1+TH1TL1+TH1。vTCONTCON用于允許用于允許/ /禁止禁止T0T0和和T1T1

10、并指示它們的工作狀態(tài)。并指示它們的工作狀態(tài)。vT0T0和和T1T1都可以通過(guò)都可以通過(guò)TMODTMOD中的方式選擇位中的方式選擇位M1M1、M0M0設(shè)置為設(shè)置為四種工作方式四種工作方式(方式(方式0 0 方式方式3 3)之一,)之一, T1T1設(shè)置為方設(shè)置為方式式3 3將停止計(jì)數(shù)。將停止計(jì)數(shù)。10T0M0T0M1C/T0GATE0T1M0T1M1C/ T1GATE1TMOD字節(jié)字節(jié)地址地址89H D7 D6 D5 D4 D3 D2 D1 D0控制控制T0T0控制控制T1T1方式選擇方式選擇0000:方式:方式0 00101:方式:方式1 11010:方式:方式2 21111:方式:方式3 3定

11、時(shí)定時(shí)/ /計(jì)數(shù)選擇計(jì)數(shù)選擇0 0:定時(shí)器:定時(shí)器1 1:計(jì)數(shù)器:計(jì)數(shù)器門控位門控位11IT0IE0IT1IE1TR0TF0TR1TF1TCON字節(jié)字節(jié)地址地址88H88H D7 D6 D5 D4 D3 D2 D1 D0控制外部中斷控制外部中斷控制控制T1T1、T0T0啟啟/ /??刂仆?刂艷ATE=0GATE=0時(shí)時(shí)O O:停停1 1:?jiǎn)⒁绯鰳?biāo)志溢出標(biāo)志1 1:溢出溢出0 0:不溢出不溢出P411213表表4-3 4-3 定時(shí)器定時(shí)器T0T0、T1T1的工作方式的工作方式TnM1TnM0工作方式工作方式功功 能能 說(shuō)說(shuō) 明明00013位定時(shí)器計(jì)數(shù)器位定時(shí)器計(jì)數(shù)器01116位定時(shí)器計(jì)數(shù)器位定

12、時(shí)器計(jì)數(shù)器102自動(dòng)重裝初值的自動(dòng)重裝初值的8位定時(shí)器計(jì)數(shù)位定時(shí)器計(jì)數(shù)器器113僅適用于僅適用于T0,分為兩個(gè)獨(dú)立的,分為兩個(gè)獨(dú)立的8位位計(jì)數(shù)器,計(jì)數(shù)器,T1停止計(jì)數(shù)停止計(jì)數(shù)1413位計(jì)位計(jì)數(shù)器數(shù)器啟啟/停控制停控制TR0=1TR0=1啟動(dòng)計(jì)數(shù)啟動(dòng)計(jì)數(shù)GATE0=0GATE0=0時(shí):時(shí):GATE0=1GATE0=1時(shí):時(shí): TR0=1TR0=1且且INT0=1INT0=1啟動(dòng)計(jì)數(shù)啟動(dòng)計(jì)數(shù)時(shí)基選擇時(shí)基選擇定時(shí)定時(shí)/計(jì)數(shù)模式選擇計(jì)數(shù)模式選擇15v若若T0T0工作于方式工作于方式0 0的定時(shí)器模式,計(jì)數(shù)初值為的定時(shí)器模式,計(jì)數(shù)初值為a a,則,則T0T0從初值從初值a a加加1 1計(jì)數(shù)至溢出所需的時(shí)

13、間為:計(jì)數(shù)至溢出所需的時(shí)間為: 式中式中f fOSCOSC為系統(tǒng)時(shí)鐘頻率,為系統(tǒng)時(shí)鐘頻率,T0MT0M為為T0T0的時(shí)鐘選擇位。的時(shí)鐘選擇位。v例例: :如果如果f fOSCOSC12MHz12MHz,則,則T0M=0T0M=0時(shí),時(shí),T T(2(21313a)a)s s;T0M=1T0M=1時(shí),時(shí),T T(2(21313a)/12a)/12s s。16v與方式與方式0 0的差別的差別僅僅在于計(jì)數(shù)器的位數(shù)不同,方式僅僅在于計(jì)數(shù)器的位數(shù)不同,方式1 1為為1616位位的定時(shí)器計(jì)數(shù)器。的定時(shí)器計(jì)數(shù)器。vT0T0工作于方式工作于方式1 1時(shí),由時(shí),由TH0TH0作為高作為高8 8位,位,TL0TL0

14、作為低作為低8 8位位,構(gòu)成一個(gè)構(gòu)成一個(gè)1616位計(jì)數(shù)器。位計(jì)數(shù)器。v若若T0T0工作于方式工作于方式1 1定時(shí),計(jì)數(shù)初值為定時(shí),計(jì)數(shù)初值為a a,f fOSCOSC12MHz12MHz,則則T0T0從計(jì)數(shù)初值從計(jì)數(shù)初值a a加加1 1計(jì)數(shù)到溢出的定時(shí)時(shí)間為:計(jì)數(shù)到溢出的定時(shí)時(shí)間為: T T( (2 21616a)s a)s 或或 T T( (2 21616a)/12sa)/12s。178位自動(dòng)重裝初值位自動(dòng)重裝初值18v適用于需要適用于需要重復(fù)定時(shí)或計(jì)數(shù)的場(chǎng)合重復(fù)定時(shí)或計(jì)數(shù)的場(chǎng)合。v定時(shí)精度比較高,但定時(shí)時(shí)間較短。定時(shí)精度比較高,但定時(shí)時(shí)間較短。v定時(shí)時(shí)間可用下式計(jì)算:定時(shí)時(shí)間可用下式計(jì)算:

15、 19v只適用于只適用于T0T0,若,若T1T1設(shè)置為方式設(shè)置為方式3 3,則停止計(jì)數(shù)。,則停止計(jì)數(shù)。 兩個(gè)獨(dú)立兩個(gè)獨(dú)立8位計(jì)數(shù)器位計(jì)數(shù)器借用借用T1的資源的資源TH0只只作定時(shí)作定時(shí)器用器用TL0可定可定時(shí)時(shí)/計(jì)數(shù)計(jì)數(shù)20v初始化步驟初始化步驟 初始化初始化TMOD根據(jù)需要初始化根據(jù)需要初始化CKCON裝入初值裝入初值中斷設(shè)置(中斷設(shè)置(IE、IP)啟動(dòng)定時(shí)啟動(dòng)定時(shí)/計(jì)數(shù)器(計(jì)數(shù)器(TCON)v計(jì)數(shù)器方式初值的計(jì)算計(jì)數(shù)器方式初值的計(jì)算 TC=2TC=2N NC C N N為計(jì)數(shù)器的位數(shù),與工作方式有關(guān)為計(jì)數(shù)器的位數(shù),與工作方式有關(guān) ,C為需要的計(jì)數(shù)次數(shù)為需要的計(jì)數(shù)次數(shù)v定時(shí)器方式初值的計(jì)算定

16、時(shí)器方式初值的計(jì)算T=(T=(2 2N NTC)TC)T T計(jì)數(shù)計(jì)數(shù) TC=TC=2 2N NT/TT/T計(jì)數(shù)計(jì)數(shù) (10)12=T MoscTf計(jì)數(shù)N(10)=2 -12oscT MTTCf步驟隨意步驟隨意21v最大定時(shí)時(shí)間(最大定時(shí)時(shí)間(f fOSCOSC12MHz12MHz、T0M=0T0M=0 ):):方式方式0 0:T TMAX MAX = 2= 213131 1s s = 8.192ms= 8.192ms方式方式1 1:T TMAXMAX = 2 = 216161 1s s = 65.536ms= 65.536ms方式方式2 2、3 3: T TMAXMAX = 2 = 28 81

17、 1s s = 0.256ms= 0.256ms22v例例4.14.1 若若f fOSCOSC=12MHz=12MHz,用系統(tǒng)時(shí)鐘的十二分頻作為計(jì)數(shù)源,請(qǐng),用系統(tǒng)時(shí)鐘的十二分頻作為計(jì)數(shù)源,請(qǐng)計(jì)算定時(shí)計(jì)算定時(shí)2ms2ms所需的初值,并給出初始化程序。所需的初值,并給出初始化程序。v解解(1 1)T0M=0T0M=0時(shí),時(shí), f fOSCOSC= 12MHz= 12MHz,用系統(tǒng)時(shí)鐘的十二分頻作為,用系統(tǒng)時(shí)鐘的十二分頻作為計(jì)數(shù)源時(shí),方式計(jì)數(shù)源時(shí),方式2 2、3 3的最大定時(shí)時(shí)間只有的最大定時(shí)時(shí)間只有0.256ms0.256ms,因此要想獲得,因此要想獲得2ms2ms的定時(shí)時(shí)間,的定時(shí)時(shí)間,必須用方

18、式必須用方式0 0或方式或方式1 1。v方式方式0 0TC=2TC=213132ms/1us=6192=1830H 2ms/1us=6192=1830H 即:即:TH0=0C1HTH0=0C1H;TL0=10HTL0=10H(高三位為(高三位為0 0) v方式方式1 1TC=2TC=216162ms/1us=63536=2ms/1us=63536=F830HF830H 即:即:TH0=0F8HTH0=0F8H;TL0=30HTL0=30H(2) T0M=1時(shí),只能使用方式時(shí),只能使用方式1TC=216212103=41536=A240H?23v初始化程序初始化程序 void T0_mode1_

19、2ms_init()void T0_mode1_2ms_init() CKCON CKCON &= &= 0 xf7;0 xf7;TMOD=0 x01; TMOD=0 x01; TH0=0 xf8; TH0=0 xf8; TL0=0 x30; TL0=0 x30; TCON TCON |= |= 0 x10; 0 x10; 時(shí)基與工時(shí)基與工作方式設(shè)作方式設(shè)定定裝入初裝入初始值始值啟動(dòng)啟動(dòng)T0,可用可用TR0=1代替代替?24v給定時(shí)器賦初值的語(yǔ)句給定時(shí)器賦初值的語(yǔ)句也可以采用如下方法也可以采用如下方法: TH0=(65536-2000)/256;TH0=(65536-2000)/256; TL

20、0=(65536-2000)%256; TL0=(65536-2000)%256;或或 TH0=-2000/256;TH0=-2000/256; TL0=-2000%256; TL0=-2000%256;由編譯器完由編譯器完成數(shù)據(jù)的計(jì)成數(shù)據(jù)的計(jì)算算?25vP146:11、13、14、16、17、1926v定時(shí)定時(shí)/計(jì)數(shù)器原理計(jì)數(shù)器原理框圖結(jié)構(gòu),框圖結(jié)構(gòu),4部分組成部分組成v定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0、T1TMOD、TCON的作用、格式的作用、格式工作方式工作方式方式方式0、方式、方式1、方式、方式2、方式、方式3初始化工作初始化工作TMOD、TCON、CKCON、IE、IP、初始值、初始值初值

21、計(jì)算初值計(jì)算TC=M-CTC=M-T/T計(jì)數(shù)計(jì)數(shù)(10)12=T MoscTf計(jì)數(shù)N(10)=2 -12oscT MTTCf27v例例4.24.2 若若f fOSCOSC=12MHz=12MHz,T1T1工作于方式工作于方式1 1,產(chǎn)生,產(chǎn)生50ms50ms的定時(shí)中斷,的定時(shí)中斷,TF1TF1為高級(jí)中斷源。試編寫主程序和中斷服務(wù)程序,使為高級(jí)中斷源。試編寫主程序和中斷服務(wù)程序,使P1.0P1.0產(chǎn)生產(chǎn)生周期為周期為1s1s的方波的方波。 v解:解:讓讓P1.0P1.0每每500ms500ms取反一次取反一次即可實(shí)現(xiàn)。定時(shí)器的單次定時(shí)時(shí)即可實(shí)現(xiàn)。定時(shí)器的單次定時(shí)時(shí)間不可能達(dá)到間不可能達(dá)到500m

22、s500ms,但可通過(guò),但可通過(guò)多次定時(shí)產(chǎn)生多次定時(shí)產(chǎn)生500ms500ms的定時(shí)時(shí)間,的定時(shí)時(shí)間,如讓如讓T1T1工作在方式工作在方式1 1,單次定時(shí)時(shí)間為,單次定時(shí)時(shí)間為50ms50ms,那么,那么T1T1中斷中斷1010次就次就是是500ms500ms的時(shí)間。的時(shí)間。 v(1 1)確定定時(shí)常數(shù))確定定時(shí)常數(shù)假設(shè)使用假設(shè)使用f fOSCOSC的的1212分頻作為計(jì)數(shù)源,則分頻作為計(jì)數(shù)源,則T T計(jì)數(shù)計(jì)數(shù)12/f12/fOSCOSC 12/12/(121210106 6)1s1s由公式由公式TC=MTC=MT/TT/T計(jì)數(shù)計(jì)數(shù),可知,可知TC=2TC=21616-50-5010103 315

23、536=3CB0H15536=3CB0HTH1=0 x3cTH1=0 x3c,TL0=0 xb0TL0=0 xb0。 28v(2 2)初始化程序)初始化程序 包括包括T1T1初始化和中斷系統(tǒng)初始化,主要是對(duì)初始化和中斷系統(tǒng)初始化,主要是對(duì)IPIP、IEIE、CKCONCKCON、TCONTCON、TMODTMOD的相應(yīng)位進(jìn)行正確的設(shè)置,并將時(shí)間常數(shù)送入的相應(yīng)位進(jìn)行正確的設(shè)置,并將時(shí)間常數(shù)送入T1T1。本例中將初始化操作放在主程序中完成,當(dāng)程序規(guī)模較大時(shí),本例中將初始化操作放在主程序中完成,當(dāng)程序規(guī)模較大時(shí),應(yīng)編寫單獨(dú)的初始化程序,以利于程序的模塊化設(shè)計(jì)。應(yīng)編寫單獨(dú)的初始化程序,以利于程序的模塊

24、化設(shè)計(jì)。v(3 3)中斷服務(wù)程序)中斷服務(wù)程序 中斷服務(wù)程序除了完成要求的方波產(chǎn)生這一工作之外,還中斷服務(wù)程序除了完成要求的方波產(chǎn)生這一工作之外,還要注意將時(shí)間常數(shù)重新送入要注意將時(shí)間常數(shù)重新送入T1T1中,為下一次產(chǎn)生中斷作準(zhǔn)備。中,為下一次產(chǎn)生中斷作準(zhǔn)備。29#include #include sbit P1_0 = P10;sbit P1_0 = P10;int count=10;int count=10;/全局變量全局變量void main( void )void main( void ) WDTCN=0 xDE; WDTCN=0 xDE; WDTCN=0 xAD; WDTCN=0 x

25、AD; CKCON&=0 xef; CKCON&=0 xef; TMOD=0 x10; TMOD=0 x10; XBR2=0 x40; XBR2=0 x40; P1_0=0;P1_0=0; TH1=0 x3c; TL1=0 xb0; TH1=0 x3c; TL1=0 xb0; IE|=0 x88; IE|=0 x88; IP|=0 x08; IP|=0 x08; TCON|=0 x40; TCON|=0 x40; while(1); while(1); 關(guān)看門狗時(shí)關(guān)看門狗時(shí)基和方式設(shè)基和方式設(shè)定,使能交定,使能交叉開(kāi)關(guān)叉開(kāi)關(guān)初值與中斷初值與中斷設(shè)定,啟動(dòng)設(shè)定,啟動(dòng)計(jì)數(shù)計(jì)數(shù)無(wú)限循環(huán),無(wú)限循環(huán),等

26、待計(jì)時(shí)等待計(jì)時(shí)中斷中斷30void Timer1_ISR (void) void Timer1_ISR (void) interrupt 3interrupt 3 TH1=0 x3c; TH1=0 x3c; TL1|=0 xb0;TL1|=0 xb0; count count-; ; if (count if (count=0) 0) count=10; P1_0=!P1_0; count=10; P1_0=!P1_0; 重裝初值重裝初值中斷中斷10次次產(chǎn)生一次產(chǎn)生一次方波方波問(wèn)題:?jiǎn)栴}:為什么用為什么用TL1|=0 xb0;TL1|=0 xb0;而非而非TL1=0 xb0TL1=0 xb0?

27、31v#include #include sbit P1_0= P10;sbit P1_0= P10;void main( )void main( ) int count=10;int count=10;局部變量局部變量 WDTCN=0 xDE;WDTCN=0 xDE; WDTCN=0 xAD; WDTCN=0 xAD; CKCON&=0 xef; CKCON&=0 xef; XBR2=0 x40;XBR2=0 x40; TMOD=0 x10; TMOD=0 x10; P1_0=0; P1_0=0; TR1=1; TR1=1;時(shí)基和方式時(shí)基和方式設(shè)定,使能設(shè)定,使能交叉開(kāi)關(guān)交叉開(kāi)關(guān)啟動(dòng)計(jì)啟動(dòng)計(jì)

28、數(shù)數(shù)32 for(; ;) for(; ;) TH1=-50000/256; TH1=-50000/256; TL1=-50000%256; TL1=-50000%256; Do while(!TF1); Do while(!TF1); TF1=0; count TF1=0; count-; ; If (count=0) If (count=0) count=10;P1_0=!P1_0; count=10;P1_0=!P1_0; 無(wú)限循環(huán),同無(wú)限循環(huán),同while(1)裝入裝入初值初值查詢查詢TF1產(chǎn)生產(chǎn)生波形波形33vT2T2 和和T4T4基本相同,唯一區(qū)別是基本相同,唯一區(qū)別是T2T2可作

29、可作UART0UART0波特率發(fā)生器,而波特率發(fā)生器,而T4T4可作可作UART1UART1波特率發(fā)生器波特率發(fā)生器vT2T2為為1616位位定時(shí)定時(shí)/ /計(jì)數(shù)器,由計(jì)數(shù)器,由TL2TL2(低字節(jié))和(低字節(jié))和TH2TH2(高字節(jié))組(高字節(jié))組成。成。vC/T2C/T2(T2CON.1T2CON.1)=0(=0(定時(shí)定時(shí)) )時(shí),系統(tǒng)時(shí)鐘作為定時(shí)器的輸入時(shí),系統(tǒng)時(shí)鐘作為定時(shí)器的輸入(由(由CKCONCKCON的的T2MT2M位指定不分頻或位指定不分頻或1212分頻)。分頻)。C/T2 =1C/T2 =1(計(jì)數(shù))(計(jì)數(shù))時(shí),時(shí),T2T2輸入引腳上的負(fù)跳變使計(jì)數(shù)器加輸入引腳上的負(fù)跳變使計(jì)數(shù)器加

30、“1”1”。vT2T2還可以用于啟動(dòng)還可以用于啟動(dòng)ADCADC數(shù)據(jù)轉(zhuǎn)換和觸發(fā)數(shù)據(jù)轉(zhuǎn)換和觸發(fā)DACDAC的輸出更新。的輸出更新。 v三種工作方式三種工作方式(由(由T2CONT2CON中的配置位選擇):自動(dòng)重裝初值的中的配置位選擇):自動(dòng)重裝初值的1616位定時(shí)器位定時(shí)器/ /計(jì)數(shù)器方式、帶捕捉的計(jì)數(shù)器方式、帶捕捉的1616位定時(shí)器位定時(shí)器/ /計(jì)數(shù)器方式和波計(jì)數(shù)器方式和波特率發(fā)生器方式。特率發(fā)生器方式。34v位位7 7(TF2TF2):):T2T2溢出標(biāo)志位溢出標(biāo)志位T2T2溢出時(shí)由硬件置位。允許溢出時(shí)由硬件置位。允許T2T2中斷時(shí),使中斷時(shí),使CPUCPU轉(zhuǎn)向轉(zhuǎn)向T2T2的中斷服的中斷服務(wù)程

31、序。不能由硬件自動(dòng)清務(wù)程序。不能由硬件自動(dòng)清0 0,必須用軟件清,必須用軟件清0 0。RCLK0RCLK0或或TCLK0TCLK0為為1 1時(shí)(波特率發(fā)生器方式),時(shí)(波特率發(fā)生器方式),TF2TF2不會(huì)被置不會(huì)被置1 1。v位位6 6(EXF2EXF2):):T2T2外部中斷標(biāo)志位外部中斷標(biāo)志位EXEN2EXEN2為為“1”1”時(shí),當(dāng)時(shí),當(dāng)T2EXT2EX輸入引腳發(fā)生輸入引腳發(fā)生負(fù)跳變負(fù)跳變時(shí),由硬件置時(shí),由硬件置位。允許位。允許T2T2中斷時(shí),使中斷時(shí),使CPUCPU轉(zhuǎn)向轉(zhuǎn)向T2T2的中斷服務(wù)程序。不能由硬的中斷服務(wù)程序。不能由硬件自動(dòng)清件自動(dòng)清0 0,必須用軟件清,必須用軟件清0 0。C

32、P/RL2C/T2TR2EXEN2TCLK0RCLK0EXF2TF2字節(jié)字節(jié)地址地址C8HC8H D7 D6 D5 D4 D3 D2 D1 D035v位位5 5(RCLK0RCLK0):UART0UART0接收時(shí)鐘選擇位接收時(shí)鐘選擇位0 0:T1T1溢出作為接收時(shí)鐘。溢出作為接收時(shí)鐘。1 1:T2T2溢出作為接收時(shí)鐘。溢出作為接收時(shí)鐘。v位位4 4(TCLK0TCLK0):UART0UART0發(fā)送時(shí)鐘選擇位發(fā)送時(shí)鐘選擇位0 0:T1T1溢出作為發(fā)送時(shí)鐘。溢出作為發(fā)送時(shí)鐘。1 1:T2T2溢出作為發(fā)送時(shí)鐘。溢出作為發(fā)送時(shí)鐘。v位位3 3(EXEN2EXEN2):T2T2外部中斷允許控制位外部中斷

33、允許控制位0 0:T2EXT2EX上的負(fù)跳變被忽略。上的負(fù)跳變被忽略。1 1:T2EXT2EX上的負(fù)跳變導(dǎo)致一次捕捉或重載,并置位上的負(fù)跳變導(dǎo)致一次捕捉或重載,并置位EXF2EXF2。v位位2 2(TR2TR2):T2T2啟啟/ /停控制位??刂莆? 0:停止。:停止。1 1:?jiǎn)?dòng)。:?jiǎn)?dòng)。36v位位1 1(C/T2C/T2):定時(shí)器:定時(shí)器/ /計(jì)數(shù)器功能選擇位計(jì)數(shù)器功能選擇位0 0:定時(shí)器功能,由:定時(shí)器功能,由T2M(CKCON.5)T2M(CKCON.5)定義的時(shí)鐘加定義的時(shí)鐘加“1”1”。1 1:計(jì)數(shù)器功能,由外部輸入引腳:計(jì)數(shù)器功能,由外部輸入引腳(T2)(T2)的負(fù)跳變加的負(fù)跳變

34、加“1”1”。v位位0 0(CP/RL2CP/RL2):捕捉:捕捉/ /重載選擇位重載選擇位EXEN2EXEN2必須為必須為1 1才能使才能使T2EXT2EX上的負(fù)跳變能夠被識(shí)別并觸發(fā)捕捉上的負(fù)跳變能夠被識(shí)別并觸發(fā)捕捉和重載。當(dāng)和重載。當(dāng)RCLK0RCLK0或或TCLK0TCLK0為為“1”1”時(shí),該位被忽略,時(shí),該位被忽略,T2T2將工作將工作在自動(dòng)重裝載方式。在自動(dòng)重裝載方式。0 0:T2T2溢出或溢出或T2EXT2EX上發(fā)生負(fù)跳變時(shí)將上發(fā)生負(fù)跳變時(shí)將自動(dòng)重裝載自動(dòng)重裝載1 1:T2EXT2EX發(fā)生負(fù)跳變時(shí)發(fā)生負(fù)跳變時(shí)捕捉捕捉。3738v(1 1)方式)方式0 0:自動(dòng)重裝初值的自動(dòng)重裝初

35、值的1616位定時(shí)器位定時(shí)器/ /計(jì)數(shù)器方式計(jì)數(shù)器方式原理框圖如圖原理框圖如圖4-54-5所示。所示。表表4-3 T24-3 T2的方式選擇的方式選擇 RCLK0+TCLK0CP/RL2工作方式工作方式00自動(dòng)重裝載的自動(dòng)重裝載的16位定時(shí)器位定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 01帶捕捉的帶捕捉的16位定時(shí)器位定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 1UART0波特率發(fā)生器方式波特率發(fā)生器方式39自動(dòng)重裝初值自動(dòng)重裝初值兩中斷標(biāo)志兩中斷標(biāo)志為為0時(shí)忽略時(shí)忽略T2EX負(fù)跳變,負(fù)跳變,不產(chǎn)生不產(chǎn)生EXF2中斷中斷40vRCLK0=0RCLK0=0、TCLK0=0TCLK0=0、CP/RL2=1CP/RL2=1時(shí),時(shí),T2T2工

36、作在此方式工作在此方式vEXEN2=1EXEN2=1時(shí)為允許捕捉方式,時(shí)為允許捕捉方式,T2EXT2EX引腳上的引腳上的負(fù)跳變負(fù)跳變將將TH2TH2、TL2TL2的當(dāng)前值捕捉到的當(dāng)前值捕捉到RCAP2HRCAP2H、RCAP2LRCAP2L寄存器,同時(shí)置寄存器,同時(shí)置EXF2=1EXF2=1,發(fā),發(fā)出中斷請(qǐng)求。出中斷請(qǐng)求。vEXEN2=0EXEN2=0時(shí),時(shí),RCAP2HRCAP2H、PCAP2LPCAP2L不起作用,此時(shí)不起作用,此時(shí)T2T2與與T0T0、T1T1的的方式方式1 1完全相同。即:完全相同。即:C/T2C/T20 0時(shí)為時(shí)為1616位定時(shí)器方式,位定時(shí)器方式,C/T2C/T21

37、 1時(shí)時(shí)為為1616位計(jì)數(shù)器方式,計(jì)數(shù)溢出時(shí)位計(jì)數(shù)器方式,計(jì)數(shù)溢出時(shí)TF2TF21 1,發(fā)送中斷請(qǐng)求信號(hào)。,發(fā)送中斷請(qǐng)求信號(hào)。 v原理框圖如圖原理框圖如圖4-64-6所示。所示。 41是否捕捉是否捕捉捕捉并產(chǎn)生捕捉并產(chǎn)生EXF2中斷中斷觸發(fā)捕捉觸發(fā)捕捉42v RCLKRCLK或或TCLKTCLK置置1 1時(shí),時(shí),T2T2工作于波特率發(fā)生器方式。工作于波特率發(fā)生器方式。 v 與自動(dòng)重裝載方式相似。但與自動(dòng)重裝載方式相似。但不置位不置位TF2TF2,也不產(chǎn)生中斷。溢出,也不產(chǎn)生中斷。溢出事件事件用作用作UART0UART0的移位時(shí)鐘的移位時(shí)鐘輸入。輸入。 v T2T2溢出可用于產(chǎn)生獨(dú)立的發(fā)送或接收

38、波特率溢出可用于產(chǎn)生獨(dú)立的發(fā)送或接收波特率, ,也可同時(shí)產(chǎn)生發(fā)也可同時(shí)產(chǎn)生發(fā)送和接收波特率,取決于送和接收波特率,取決于T2CONT2CON的設(shè)置。的設(shè)置。 v T2T2的計(jì)數(shù)源可以是的計(jì)數(shù)源可以是系統(tǒng)時(shí)鐘的二分頻系統(tǒng)時(shí)鐘的二分頻,也可以是,也可以是T2T2引腳上的引腳上的輸入,取決于輸入,取決于C/T2C/T2的設(shè)置。的設(shè)置。 v 如果如果EXEN2EXEN2為為1 1,則,則T2EX T2EX 引腳上的負(fù)跳變將置位引腳上的負(fù)跳變將置位EXF2EXF2標(biāo)志,并標(biāo)志,并產(chǎn)生一個(gè)產(chǎn)生一個(gè)T2T2中斷(如果允許)。因此,中斷(如果允許)。因此,T2EX T2EX 輸入可以被用作額輸入可以被用作額外

39、的外部中斷源。外的外部中斷源。v 原理框圖如圖原理框圖如圖4-74-7所示。所示。43做做UART0波特率發(fā)生器波特率發(fā)生器T1作作UART0波波特率發(fā)生器特率發(fā)生器產(chǎn)生外部中斷產(chǎn)生外部中斷時(shí)基選擇時(shí)基選擇不置位不置位TF244v當(dāng)選擇系統(tǒng)時(shí)鐘的二分頻作計(jì)數(shù)源時(shí),當(dāng)選擇系統(tǒng)時(shí)鐘的二分頻作計(jì)數(shù)源時(shí),T2T2為為UART0UART0提提供的波特率可以用如下公式計(jì)算:供的波特率可以用如下公式計(jì)算:v當(dāng)選擇外部引腳當(dāng)選擇外部引腳T2T2上的輸入作為時(shí)基時(shí),上的輸入作為時(shí)基時(shí),T2T2為為UART0UART0提供的波特率可以用如下公式計(jì)算:提供的波特率可以用如下公式計(jì)算: 451. 1. 定時(shí)器定時(shí)器T

40、3T3的結(jié)構(gòu)的結(jié)構(gòu) v1616位定時(shí)位定時(shí)/ /計(jì)數(shù)器,由計(jì)數(shù)器,由TMR3LTMR3L(低字節(jié))和(低字節(jié))和TMR3HTMR3H(高字節(jié))組(高字節(jié))組成。成。 vT3T3的時(shí)鐘輸入可以通過(guò)程序選擇為外部振蕩器的的時(shí)鐘輸入可以通過(guò)程序選擇為外部振蕩器的8 8分頻、系統(tǒng)分頻、系統(tǒng)時(shí)鐘或系統(tǒng)時(shí)鐘的時(shí)鐘或系統(tǒng)時(shí)鐘的1212分頻。分頻。 vT3T3只有自動(dòng)重裝初值一種工作方式,初值保存在只有自動(dòng)重裝初值一種工作方式,初值保存在TMR3RLLTMR3RLL(低(低字節(jié))和字節(jié))和TMR3RLHTMR3RLH(高字節(jié))兩個(gè)(高字節(jié))兩個(gè)SFRSFR中,中,T3T3沒(méi)有計(jì)數(shù)器方式。沒(méi)有計(jì)數(shù)器方式。 v除

41、作為通用定時(shí)除作為通用定時(shí)/ /計(jì)數(shù)器使用外,計(jì)數(shù)器使用外,T3T3還可以用于啟動(dòng)還可以用于啟動(dòng)ADCADC數(shù)據(jù)轉(zhuǎn)數(shù)據(jù)轉(zhuǎn)換、換、SMBusSMBus定時(shí)等。定時(shí)等。 v原理框圖如圖原理框圖如圖4-8所示。所示。46時(shí)基選擇時(shí)基選擇僅此一種方式僅此一種方式啟動(dòng)啟動(dòng)ADC47v位位7 7(TF3TF3):):T3T3溢出標(biāo)志位溢出標(biāo)志位溢出時(shí)置溢出時(shí)置1 1,不能由硬件自動(dòng)清,不能由硬件自動(dòng)清0 0,必須用軟件清,必須用軟件清0 0 v位位2 2(TR3TR3):):T3T3運(yùn)行控制位運(yùn)行控制位 0 0:停止。:停止。1 1:?jiǎn)?dòng)。:?jiǎn)?dòng)。v位位1 1(T3MT3M):):T3T3時(shí)鐘選擇位時(shí)鐘選

42、擇位 0 0:T3T3使用系統(tǒng)時(shí)鐘的使用系統(tǒng)時(shí)鐘的1212分頻。分頻。1 1:T3T3使用系統(tǒng)時(shí)鐘。使用系統(tǒng)時(shí)鐘。v位位0 0(T3XCLKT3XCLK):):T3T3外部時(shí)鐘選擇位外部時(shí)鐘選擇位 0 0:由:由T3MT3M定義。定義。1 1:外部振蕩器輸入的:外部振蕩器輸入的8 8分頻。分頻。 T3XCLKT3MTR3-TF3字節(jié)字節(jié)地址地址C8HC8H D7 D6 D5 D4 D3 D2 D1 D048v例例 4.34.3 假設(shè)假設(shè)C8051F020C8051F020的并行口的并行口P2P2、P3P3連接連接1616個(gè)共陽(yáng)極個(gè)共陽(yáng)極LEDLED指指示燈,試編寫程序使示燈,試編寫程序使P3P

43、3口所接的口所接的LEDLED燈循環(huán)點(diǎn)亮,燈循環(huán)點(diǎn)亮,P2P2口所接的口所接的LEDLED燈實(shí)現(xiàn)走馬燈效果。(燈實(shí)現(xiàn)走馬燈效果。(實(shí)驗(yàn)四實(shí)驗(yàn)四) v解:解:要實(shí)現(xiàn)題目要求的效果,只需要要實(shí)現(xiàn)題目要求的效果,只需要定期更新定期更新P2P2、P3P3口的狀態(tài)口的狀態(tài)即可。這里可即可。這里可以使用以使用T3T3定時(shí)器再加軟件計(jì)數(shù)的方法達(dá)定時(shí)器再加軟件計(jì)數(shù)的方法達(dá)到所要求的時(shí)間,假設(shè)到所要求的時(shí)間,假設(shè)T3T3定時(shí)定時(shí)0.10.1秒產(chǎn)生秒產(chǎn)生中斷,則軟件計(jì)數(shù)器每中斷,則軟件計(jì)數(shù)器每0.10.1秒加秒加1 1,讓計(jì),讓計(jì)數(shù)器加到數(shù)器加到5 5時(shí),改變時(shí),改變P2P2、P3P3口的狀態(tài),就口的狀態(tài),就可以

44、實(shí)現(xiàn)可以實(shí)現(xiàn)每秒每秒2 2次刷新次刷新LEDLED燈的狀態(tài)。燈的狀態(tài)。49#include sfr16 TMR3RL = 0 x92; /16位位SFR sfr16 TMR3 = 0 x94; #define SYSCLK 2000000 /系統(tǒng)時(shí)鐘使用系統(tǒng)時(shí)鐘使用2MHz/函數(shù)聲明函數(shù)聲明void PORT_Init(void); void Timer3_Init(int counts);void Timer3_ISR(void);/P2口口8個(gè)個(gè)LED (共陽(yáng)極)產(chǎn)生走馬燈效果所需的數(shù)據(jù)(共陽(yáng)極)產(chǎn)生走馬燈效果所需的數(shù)據(jù) unsigned int xdata p2led=0 x7f,0 x

45、bf,0 xdf,0 xef,0 xf7, 0 xfb,0 xfd,0 xfe; 50void main (void) WDTCN = 0 xde; /禁止看門狗定時(shí)器禁止看門狗定時(shí)器 WDTCN = 0 xad;PORT_Init(); /端口初始化端口初始化 Timer3_Init(SYSCLK/12/10); /T3初始化,產(chǎn)生初始化,產(chǎn)生0.1秒的定時(shí)中斷秒的定時(shí)中斷 EA = 1; /開(kāi)中斷開(kāi)中斷 while (1) ; /循環(huán)等待循環(huán)等待T3中斷,產(chǎn)生走馬燈效果中斷,產(chǎn)生走馬燈效果 void PORT_Init (void) XBR2 = 0 x40; /使能交叉開(kāi)關(guān)使能交叉開(kāi)關(guān)T

46、C=-T/T計(jì)數(shù)=-0.1/12/SYSCLK=-SYSCLK/12/1051void Timer3_Init (int counts) TMR3CN = 0 x00; TMR3RL = -counts; /T3賦初值,也可以采用賦初值,也可以采用8位位SFR方式,向例方式,向例4.2那樣那樣 TMR3 = 0 xffff; /立即重載立即重載 EIE2 |= 0 x01; /開(kāi)開(kāi)T3中斷中斷 ,見(jiàn)見(jiàn)P44 EIE2格式格式 TMR3CN |= 0 x04; /啟動(dòng)啟動(dòng)T352void Timer3_ISR (void) interrupt 14 static int count; stati

47、c int i=9,j=0; static int led=0 xff; /P3口口LED燈的初始狀態(tài)燈的初始狀態(tài) TMR3CN &= (0 x80); /清清TF3 count+; if(count=5) /T3中斷中斷5次更新一次次更新一次LED燈狀態(tài)燈狀態(tài) count=0; P3=led;P2=p2ledj; /查表查表led=led1; i-; j+; if(j=8) j=0; /P2口口LED燈循環(huán)一個(gè)周期燈循環(huán)一個(gè)周期 if(i=0) i=9; led=0 xff; /P3口口LED燈循環(huán)一個(gè)周期燈循環(huán)一個(gè)周期 為什么為什么i=9,而不是,而不是i=8?因?yàn)檫€有全滅狀態(tài),所因?yàn)檫€有

48、全滅狀態(tài),所以共以共9個(gè)狀態(tài)個(gè)狀態(tài)53vPCA (Programmable Counter Array)提供了提供了增強(qiáng)的定時(shí)器增強(qiáng)的定時(shí)器功能,功能,比標(biāo)準(zhǔn)比標(biāo)準(zhǔn)8051的定時(shí)的定時(shí)/計(jì)數(shù)器需要的計(jì)數(shù)器需要的CPU干預(yù)更少。干預(yù)更少。vC8051F020內(nèi)部集成有一個(gè)內(nèi)部集成有一個(gè)PCA,稱為,稱為PCA0 。一個(gè)專用的一個(gè)專用的16位定時(shí)器位定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器5個(gè)個(gè)16位位捕捉捕捉/比較模塊比較模塊。每個(gè)模塊有自己的。每個(gè)模塊有自己的I/O線線 (CEXn)。通過(guò)交叉開(kāi)。通過(guò)交叉開(kāi)關(guān),可連接到關(guān),可連接到I/O端口。端口。v定時(shí)定時(shí)/計(jì)數(shù)器有計(jì)數(shù)器有六個(gè)計(jì)數(shù)源六個(gè)計(jì)數(shù)源(由由PCA0MD

49、PCA0MD中的中的CPS2-CPS0CPS2-CPS0位選擇位選擇) )系統(tǒng)時(shí)鐘、系統(tǒng)時(shí)鐘系統(tǒng)時(shí)鐘、系統(tǒng)時(shí)鐘/4、系統(tǒng)時(shí)鐘、系統(tǒng)時(shí)鐘/12、外部振蕩器時(shí)鐘源、外部振蕩器時(shí)鐘源8分頻、定時(shí)器分頻、定時(shí)器0溢出、溢出、ECI線上的外部時(shí)鐘信號(hào)。線上的外部時(shí)鐘信號(hào)。v每個(gè)捕捉每個(gè)捕捉/比較模塊可獨(dú)立工作在比較模塊可獨(dú)立工作在6種工作方式種工作方式之一。之一。546種時(shí)鐘源種時(shí)鐘源捕捕捉捉/比比較較模模塊塊55PCA0ME2(XBR0.5)PCA0ME12(XBR0.4)PCA0ME0(XBR0.3)連到連到I/O端口端口連接數(shù)連接數(shù)000所有所有PCA0口都不配置口都不配置I/O端口端口0001C

50、EX01010CEX0、CEX12011CEX0、CEX1、CEX23100CEX0、CEX1、CEX2、CEX341CEX0、CEX1、CEX2、CEX3、CEX455657v可編程計(jì)數(shù)器陣列可編程計(jì)數(shù)器陣列PCA0 一個(gè)專用的一個(gè)專用的16位定時(shí)器位定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 5個(gè)個(gè)16位位捕捉捕捉/比較模塊比較模塊。每個(gè)模塊有自己的。每個(gè)模塊有自己的I/O線線 (CEXn)。通過(guò)通過(guò)交叉開(kāi)關(guān)交叉開(kāi)關(guān),可連接到,可連接到I/O端口端口 定時(shí)定時(shí)/計(jì)數(shù)器有計(jì)數(shù)器有六個(gè)計(jì)數(shù)源六個(gè)計(jì)數(shù)源(由由PCA0MDPCA0MD中的中的CPS2-CPS0CPS2-CPS0位選擇位選擇) ) 每個(gè)捕捉每個(gè)捕捉/比較

51、模塊可獨(dú)立工作在比較模塊可獨(dú)立工作在6種工作方式種工作方式之一之一 相關(guān)相關(guān)SFR:PCA0L+PCA0H、PCA0CPLn+PCA0CPLn、PCA0CN、PCA0MD、PCA0CPMn581 1、PCAPCA控制寄存器控制寄存器PCA0CN PCA0CN CCF0CCF1CCF2CCF3CCF4-CRCF字節(jié)字節(jié)地址地址D8HD8H D7 D6 D5 D4 D3 D2 D1 D0v位位7 7(CFCF):):PCAPCA定時(shí)器定時(shí)器/ /計(jì)數(shù)器溢出標(biāo)志位計(jì)數(shù)器溢出標(biāo)志位PCA0PCA0定時(shí)定時(shí)/ /計(jì)數(shù)器溢出時(shí)由硬件置位。如允許計(jì)數(shù)器溢出時(shí)由硬件置位。如允許CFCF中斷,將使中斷,將使CP

52、UCPU轉(zhuǎn)向轉(zhuǎn)向CFCF中斷服務(wù)程序。不能由硬件自動(dòng)清中斷服務(wù)程序。不能由硬件自動(dòng)清0 0,必須用軟件清,必須用軟件清0 0。 v位位6 6(CRCR):):PCA0PCA0定時(shí)定時(shí)/ /計(jì)數(shù)器運(yùn)行控制位計(jì)數(shù)器運(yùn)行控制位0 0:停止計(jì)數(shù):停止計(jì)數(shù) 1 1:?jiǎn)?dòng)計(jì)數(shù):?jiǎn)?dòng)計(jì)數(shù)v位位4-4-位位0 0(CCF4- CCF0CCF4- CCF0):):PCA0PCA0模塊模塊4-4-模塊模塊0 0捕捉捕捉/ /比較標(biāo)志位比較標(biāo)志位匹配或捕捉時(shí)由硬件置位。允許匹配或捕捉時(shí)由硬件置位。允許CCFCCF中斷時(shí),將使中斷時(shí),將使CPUCPU轉(zhuǎn)向轉(zhuǎn)向CCFCCF中斷服中斷服務(wù)程序。不能由硬件自動(dòng)清務(wù)程序。不能

53、由硬件自動(dòng)清0 0,必須用軟件清,必須用軟件清0 0。59v位位7 7(CIDLCIDL):):PCA0PCA0定時(shí)定時(shí)/ /計(jì)數(shù)器空閑控制位計(jì)數(shù)器空閑控制位0 0:當(dāng):當(dāng)CPUCPU處于等待方式時(shí),處于等待方式時(shí),PCA0PCA0繼續(xù)正常工作。繼續(xù)正常工作。1 1:當(dāng):當(dāng)CPUCPU處于等待方式時(shí),處于等待方式時(shí),PCA0PCA0停止工作。停止工作。v位位3-13-1(CPS2-CPS0CPS2-CPS0):):PCA0PCA0定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)時(shí)鐘源選擇位計(jì)數(shù)器計(jì)數(shù)時(shí)鐘源選擇位這些位選擇這些位選擇PCA0PCA0計(jì)數(shù)器的計(jì)數(shù)時(shí)鐘源,計(jì)數(shù)器的計(jì)數(shù)時(shí)鐘源,如表如表4-94-9所示所示

54、。v位位0 0(ECFECF)PCA0PCA0定時(shí)器定時(shí)器/ /計(jì)數(shù)器溢出中斷允許位計(jì)數(shù)器溢出中斷允許位0 0:禁止:禁止CFCF中斷。中斷。 1 1:允許:允許CFCF中斷。中斷。ECFCPS0CPS1CPS2-CIDL字節(jié)字節(jié)地址地址D9HD9H D7 D6 D5 D4 D3 D2 D1 D060CPS2CPS1CPS0計(jì)數(shù)脈沖源計(jì)數(shù)脈沖源000系統(tǒng)時(shí)鐘的系統(tǒng)時(shí)鐘的12分頻分頻001系統(tǒng)時(shí)鐘的系統(tǒng)時(shí)鐘的4分頻分頻010定時(shí)器定時(shí)器0溢出溢出011ECI負(fù)跳變(最大速率負(fù)跳變(最大速率=系統(tǒng)時(shí)鐘頻率系統(tǒng)時(shí)鐘頻率/4)100系統(tǒng)時(shí)鐘系統(tǒng)時(shí)鐘101外部振蕩源外部振蕩源8分頻分頻61vPCA0CP

55、MnPCA0CPMn地址:地址: PCA0CPM0=0 xDA (n=0)PCA0CPM0=0 xDA (n=0)、PCA0CPMl=0 xDB (n=1)PCA0CPMl=0 xDB (n=1) PCA0CPM2=0 xDC (n=2) PCA0CPM2=0 xDC (n=2)、PCA0CPM3=0 xDD (n=3)PCA0CPM3=0 xDD (n=3) PCA0CPM4=0 xDE (n=4) PCA0CPM4=0 xDE (n=4)v位位7 7:PWMl6nPWMl6n:1616位脈沖寬度調(diào)制允許位位脈沖寬度調(diào)制允許位 當(dāng)工作在脈沖寬度調(diào)制方式時(shí)當(dāng)工作在脈沖寬度調(diào)制方式時(shí) (PWMn

56、=1)(PWMn=1),該位選擇,該位選擇1616位位PWMPWM方式。方式。 0 0:選擇:選擇8 8位位PWMPWM。1 1:選擇:選擇1616位位PWMPWM。ECCFnPWMnTOGnMATnCAPNnCAPPnECOMnPWM16n字節(jié)字節(jié)地址地址0DA-0DEH0DA-0DEH D7 D6 D5 D4 D3 D2 D1 D062v位位6 6(ECOMnECOMn):比較器功能允許位):比較器功能允許位0 0:禁止。:禁止。1 1:允許。:允許。v位位5 5(CAPPnCAPPn):正沿捕捉功能允許位):正沿捕捉功能允許位0 0:禁止。:禁止。1 1:允許。:允許。v位位4 4(CA

57、PNnCAPNn):負(fù)沿捕捉功能允許位):負(fù)沿捕捉功能允許位0 0:禁止。:禁止。1 1:允許。:允許。v位位3 3(MATnMATn):匹配功能允許位):匹配功能允許位0 0:禁止。:禁止。1 1:允許。:允許。v位位2 2(TOGnTOGn):電平切換功能允許位):電平切換功能允許位 0 0:禁止。:禁止。1 1:允許。:允許。v位位1 1(PWMnPWMn):脈寬凋制方式允許位):脈寬凋制方式允許位 0 0:禁止。:禁止。1 1:允許。:允許。v位位0 0(ECCFnECCFn):捕捉):捕捉/ /比較標(biāo)志中斷允許位比較標(biāo)志中斷允許位0 0:禁止:禁止CCFnCCFn中斷中斷1 1:當(dāng):

58、當(dāng)CCFnCCFn位置位置1 1時(shí),允許捕捉時(shí),允許捕捉/ /比較標(biāo)志的中斷請(qǐng)求。比較標(biāo)志的中斷請(qǐng)求。63v1616位位PCAPCA定時(shí)定時(shí)/ /計(jì)數(shù)器由計(jì)數(shù)器由PCA0LPCA0L(低字節(jié))和(低字節(jié))和PCA0HPCA0H(高字節(jié))組(高字節(jié))組成。在讀成。在讀PCA0LPCA0L的同時(shí)的同時(shí)自動(dòng)鎖存自動(dòng)鎖存PCA0HPCA0H的值。讀的值。讀PCA0HPCA0H或或PCA0LPCA0L不不影響計(jì)數(shù)器工作。原理框圖如圖影響計(jì)數(shù)器工作。原理框圖如圖4-144-14所示。所示。vPCA0MDPCA0MD寄存器中的寄存器中的CPS2-CPS0CPS2-CPS0位用于選擇位用于選擇PCAPCA定時(shí)

59、定時(shí)/ /計(jì)數(shù)器的計(jì)計(jì)數(shù)器的計(jì)數(shù)脈沖源,如下表所示。數(shù)脈沖源,如下表所示。CPS2CPS1CPS0計(jì)數(shù)脈沖源計(jì)數(shù)脈沖源000系統(tǒng)時(shí)鐘的系統(tǒng)時(shí)鐘的12分頻分頻001系統(tǒng)時(shí)鐘的系統(tǒng)時(shí)鐘的4分頻分頻010定時(shí)器定時(shí)器0溢出溢出011ECI負(fù)跳變(最大速率負(fù)跳變(最大速率=系統(tǒng)時(shí)鐘頻率系統(tǒng)時(shí)鐘頻率/4)100系統(tǒng)時(shí)鐘系統(tǒng)時(shí)鐘101外部振蕩源外部振蕩源8分頻分頻64v清除清除PCA0MDPCA0MD寄存器中的寄存器中的CIDLCIDL位位則允許則允許PCAPCA在微控制器內(nèi)核處于在微控制器內(nèi)核處于等待方式時(shí)繼續(xù)正常工作。等待方式時(shí)繼續(xù)正常工作。v定時(shí)定時(shí)/ /計(jì)數(shù)器溢出時(shí)計(jì)數(shù)器溢出時(shí) ( (從從0 xF

60、FFF0 xFFFF加加1 1到到0 x0000)0 x0000),PCA0MDPCA0MD中的中的CF CF 置置1 1,如果允許,如果允許CFCF中斷,則可以產(chǎn)生一個(gè)中斷請(qǐng)求。中斷,則可以產(chǎn)生一個(gè)中斷請(qǐng)求。vPCA0MDPCA0MD中的中的ECFECF位置位置1 1即可允許即可允許CFCF中斷,但要使中斷,但要使CFCF中斷得到響應(yīng),中斷得到響應(yīng),必須先必須先總體允許總體允許PCA0PCA0中斷中斷(通過(guò)將(通過(guò)將EAEA位位 (IE.7) (IE.7) 和和EPCA0EPCA0位位 (EIE1.3) (EIE1.3) 置置1 1可總體允許可總體允許PCA0PCA0中斷)。中斷)。CFCF

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論