版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第6章章 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器內(nèi)容提要:內(nèi)容提要:5.1 5.1 定時(shí)器定時(shí)器/ /計(jì)數(shù)器功能計(jì)數(shù)器功能 5.2 5.2 定時(shí)器和計(jì)數(shù)器硬件結(jié)構(gòu)定時(shí)器和計(jì)數(shù)器硬件結(jié)構(gòu) 5.3 5.3 定時(shí)器定時(shí)器/ /計(jì)數(shù)器工作方式計(jì)數(shù)器工作方式 5.4 5.4 定時(shí)器定時(shí)器/ /計(jì)數(shù)器編程計(jì)數(shù)器編程 5.1 5.1 定時(shí)定時(shí)/ /計(jì)數(shù)器功能計(jì)數(shù)器功能5.1 5.1 定時(shí)定時(shí)/ /計(jì)數(shù)器功能計(jì)數(shù)器功能 5.4.1 5.4.1 定時(shí)器功能定時(shí)器功能起定時(shí)延時(shí)作用起定時(shí)延時(shí)作用和和在規(guī)定的引腳上在規(guī)定的引腳上 輸出一定寬度的方波信號。輸出一定寬度的方波信號。 所謂定時(shí)功能就是通過來自單片機(jī)內(nèi)部的時(shí)鐘脈沖所
2、謂定時(shí)功能就是通過來自單片機(jī)內(nèi)部的時(shí)鐘脈沖作計(jì)數(shù)脈沖,使計(jì)數(shù)器計(jì)數(shù),即每個(gè)機(jī)器周期計(jì)數(shù)器加作計(jì)數(shù)脈沖,使計(jì)數(shù)器計(jì)數(shù),即每個(gè)機(jī)器周期計(jì)數(shù)器加1 1,計(jì)數(shù)值達(dá)到予置值后,定時(shí)計(jì)數(shù)值達(dá)到予置值后,定時(shí)/ /計(jì)數(shù)模塊產(chǎn)生溢出。計(jì)數(shù)模塊產(chǎn)生溢出。5.1 5.1 定時(shí)定時(shí)/ /計(jì)數(shù)器功能計(jì)數(shù)器功能5.1 5.1 定時(shí)定時(shí)/ /計(jì)數(shù)器功能計(jì)數(shù)器功能 5.4.2 計(jì)數(shù)器功能計(jì)數(shù)器功能 所謂計(jì)數(shù)是指對外部事件進(jìn)行計(jì)數(shù)。外部事件的發(fā)所謂計(jì)數(shù)是指對外部事件進(jìn)行計(jì)數(shù)。外部事件的發(fā)生以輸入脈沖表示,因此計(jì)數(shù)功能的實(shí)質(zhì)就是對外來脈生以輸入脈沖表示,因此計(jì)數(shù)功能的實(shí)質(zhì)就是對外來脈沖進(jìn)行計(jì)數(shù)。沖進(jìn)行計(jì)數(shù)。5.2 5.2 定時(shí)
3、和計(jì)數(shù)器硬件結(jié)構(gòu)定時(shí)和計(jì)數(shù)器硬件結(jié)構(gòu) PIC16F877PIC16F877單片機(jī)配置了單片機(jī)配置了3 3個(gè)定時(shí)器個(gè)定時(shí)器/ /計(jì)數(shù)器模塊,分別為計(jì)數(shù)器模塊,分別為TMR0TMR0、TMR1TMR1和和TMR2TMR2。 共同點(diǎn):共同點(diǎn):它們的核心部分都是一個(gè)由時(shí)鐘信號觸發(fā),按遞增它們的核心部分都是一個(gè)由時(shí)鐘信號觸發(fā),按遞增方式累加工作的循環(huán)計(jì)數(shù)器;從預(yù)先設(shè)定的某一初始值開始累方式累加工作的循環(huán)計(jì)數(shù)器;從預(yù)先設(shè)定的某一初始值開始累計(jì),在累計(jì)到計(jì)數(shù)器產(chǎn)生溢出,并同時(shí)建立一個(gè)相應(yīng)的溢出中計(jì),在累計(jì)到計(jì)數(shù)器產(chǎn)生溢出,并同時(shí)建立一個(gè)相應(yīng)的溢出中斷標(biāo)志。斷標(biāo)志。 三者的不同點(diǎn):三者的不同點(diǎn): TMR0TM
4、R0為為8 8位寬位寬,有一個(gè)可選的預(yù)分頻器,用于通用目的,可用,有一個(gè)可選的預(yù)分頻器,用于通用目的,可用于于定時(shí)和計(jì)數(shù)定時(shí)和計(jì)數(shù); TMR1TMR1為為1616位寬位寬,附帶一個(gè)可編程的預(yù)分頻器和一個(gè)可選的低,附帶一個(gè)可編程的預(yù)分頻器和一個(gè)可選的低頻時(shí)基振蕩器,適合與頻時(shí)基振蕩器,適合與CCPCCP(捕捉(捕捉/ /比較脈寬調(diào)制)模塊比較脈寬調(diào)制)模塊配合使用來實(shí)現(xiàn)輸入捕捉或輸出比較功能,也可用于定配合使用來實(shí)現(xiàn)輸入捕捉或輸出比較功能,也可用于定時(shí)和計(jì)數(shù);時(shí)和計(jì)數(shù); TMR2TMR2為為8 8位寬位寬,附帶一個(gè)配合使用來實(shí)現(xiàn),附帶一個(gè)配合使用來實(shí)現(xiàn)PWMPWM脈沖寬度調(diào)制信脈沖寬度調(diào)制信號的
5、產(chǎn)生,只能用于定時(shí)。號的產(chǎn)生,只能用于定時(shí)。5.2.15.2.1定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器TMR0TMR0的硬件結(jié)構(gòu)的硬件結(jié)構(gòu) * *TMR0TMR0可以用于定時(shí)控制、延時(shí)、對外部事件進(jìn)行計(jì)可以用于定時(shí)控制、延時(shí)、對外部事件進(jìn)行計(jì) 數(shù)和檢測等場合。數(shù)和檢測等場合。 * *TMR0TMR0可以使用內(nèi)部系統(tǒng)時(shí)鐘,也可以使用外部始終。可以使用內(nèi)部系統(tǒng)時(shí)鐘,也可以使用外部始終。 * *TMR0TMR0用于內(nèi)部定時(shí)或?qū)ν庥?jì)數(shù)時(shí)都不占用用于內(nèi)部定時(shí)或?qū)ν庥?jì)數(shù)時(shí)都不占用CPUCPU時(shí)間。時(shí)間。1.1.定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器TMR0TMR0具有以下特點(diǎn):具有以下特點(diǎn):(1 1)TMR0TMR0是一
6、個(gè)是一個(gè)8 8位寬的由時(shí)鐘信號上升沿觸發(fā)的循環(huán)位寬的由時(shí)鐘信號上升沿觸發(fā)的循環(huán)累加計(jì)數(shù)寄存器。累加計(jì)數(shù)寄存器。(2 2)有一個(gè)專用的外部觸發(fā)信號輸入端)有一個(gè)專用的外部觸發(fā)信號輸入端 ( (T0CKI-RA4T0CKI-RA4)。)。(3 3)TMR0TMR0也是一個(gè)在文件寄存器區(qū)域內(nèi)統(tǒng)一編也是一個(gè)在文件寄存器區(qū)域內(nèi)統(tǒng)一編址址的寄的寄 存器,地址為存器,地址為01H01H或或101H101H,用戶用軟件方式可直接,用戶用軟件方式可直接讀讀/ /寫計(jì)數(shù)器的內(nèi)容。寫計(jì)數(shù)器的內(nèi)容。(4 4)具有一個(gè)軟件可編程的)具有一個(gè)軟件可編程的8 8位位預(yù)分頻器預(yù)分頻器。(5 5)當(dāng)使用內(nèi)部觸發(fā)信號,即指令周期
7、作為時(shí)鐘信號)當(dāng)使用內(nèi)部觸發(fā)信號,即指令周期作為時(shí)鐘信號源時(shí),模塊源時(shí),模塊TMR0TMR0工作于定時(shí)方式,觸發(fā)方式為固工作于定時(shí)方式,觸發(fā)方式為固定上升沿觸發(fā)有效。在計(jì)數(shù)器溢出時(shí),相應(yīng)的溢定上升沿觸發(fā)有效。在計(jì)數(shù)器溢出時(shí),相應(yīng)的溢出中斷標(biāo)志出中斷標(biāo)志T0IFT0IF自動(dòng)置位,并可產(chǎn)生溢出中斷。自動(dòng)置位,并可產(chǎn)生溢出中斷。(6 6)當(dāng)外部時(shí)鐘信號源時(shí),模塊)當(dāng)外部時(shí)鐘信號源時(shí),模塊TMR0TMR0工作于計(jì)數(shù)方工作于計(jì)數(shù)方式,觸發(fā)方式可由程序設(shè)置位上升沿觸發(fā)或下降式,觸發(fā)方式可由程序設(shè)置位上升沿觸發(fā)或下降 沿觸發(fā)有效。在計(jì)數(shù)器溢出時(shí),也可產(chǎn)生溢出中沿觸發(fā)有效。在計(jì)數(shù)器溢出時(shí),也可產(chǎn)生溢出中斷。斷
8、。2 2與定時(shí)器與定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器TMR0TMR0模塊相關(guān)的寄存器模塊相關(guān)的寄存器 (1 1)選項(xiàng)寄存器)選項(xiàng)寄存器 OPTION_REGOPTION_REG (1)(1)是作為定時(shí)器還是作為計(jì)數(shù)器是作為定時(shí)器還是作為計(jì)數(shù)器 (2)(2)決定分頻器的分頻系數(shù)決定分頻器的分頻系數(shù) (3)(3)時(shí)鐘是上升沿時(shí)鐘是上升沿/ /下降沿觸發(fā)下降沿觸發(fā)(2 2)中斷控制寄存器)中斷控制寄存器 INTCONINTCON (1)(1)中斷總控制中斷總控制-允許允許/ /禁止禁止 (2)(2)各類中斷的控制各類中斷的控制 (3)(3)各類中斷的標(biāo)志各類中斷的標(biāo)志(3 3)RARA口方向寄存器口方向寄存器
9、 TRISATRISA 當(dāng)當(dāng)TMR0TMR0工作于計(jì)數(shù)器時(shí)工作于計(jì)數(shù)器時(shí),RA4,RA4必須設(shè)為輸入必須設(shè)為輸入, ,以便從該腳輸以便從該腳輸 入時(shí)鐘脈沖信號。入時(shí)鐘脈沖信號。(4 4)定時(shí)器)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器 TMR0TMR0 8 8位累加計(jì)數(shù)寄存器位累加計(jì)數(shù)寄存器與計(jì)數(shù)和定時(shí)無關(guān)與計(jì)數(shù)和定時(shí)無關(guān)3 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器TMR0模塊的電路結(jié)構(gòu)和工作原理模塊的電路結(jié)構(gòu)和工作原理 4.分頻器和控制邏輯電路 分頻器實(shí)際上也是一個(gè)8位累加計(jì)數(shù)器,它只能配合TMR0或WDT輸出的時(shí)鐘由PS2PS0設(shè)定分頻比,這個(gè)分頻比由OPTION_REG寄存器中的PS2PS0決定。5.TMR0累加計(jì)數(shù)
10、寄存器 TMR0有定時(shí)器和計(jì)數(shù)器兩種工作模式。這兩種模式之間的差異是觸發(fā)信號的來源不同。TMR0的工作模式由T0CS位(選項(xiàng)寄存器OPTION_REG)決定表表53 TMR0的工作模式的工作模式T0CSTMR0工作模式工作模式觸發(fā)信號的來源觸發(fā)信號的來源0定時(shí)器定時(shí)器計(jì)數(shù)器的觸發(fā)信號取自內(nèi)部指令周期計(jì)數(shù)器的觸發(fā)信號取自內(nèi)部指令周期1計(jì)數(shù)器計(jì)數(shù)器計(jì)數(shù)器的觸發(fā)信號取自外部引腳計(jì)數(shù)器的觸發(fā)信號取自外部引腳T0CKI電電平的上升沿平的上升沿/下降沿下降沿TMR0 定時(shí)時(shí)間的計(jì)算公式:定時(shí)時(shí)間的計(jì)算公式: t= P (28 X) T X= 28 t/(TxP) t:設(shè)定的定時(shí)時(shí)間:設(shè)定的定時(shí)時(shí)間uS P
11、:分頻器的分頻比:分頻器的分頻比-2256 取值為取值為2、4、8、16、32、64、128、256。 X:TMR0的計(jì)數(shù)初值的計(jì)數(shù)初值-0255 T:指令周期:指令周期uS定時(shí)器最短的定時(shí)時(shí)間定時(shí)器最短的定時(shí)時(shí)間:t=2x(256-255)x1uS=2uS定時(shí)器最長的定時(shí)時(shí)間定時(shí)器最長的定時(shí)時(shí)間:t=256x(256-0)x1uS=65536uS 在使用在使用TMR0做定時(shí)器時(shí),可以用做定時(shí)器時(shí),可以用查詢查詢和和中斷中斷的方法獲得定時(shí)時(shí)間。的方法獲得定時(shí)時(shí)間。1、查詢方法:、查詢方法: 在將初值寫入在將初值寫入TMR0時(shí),立即查詢時(shí),立即查詢T0IF是是否等于否等于1,如果,如果T0IF=
12、1,表示時(shí)間已到,若,表示時(shí)間已到,若T0IF=0,表示時(shí)間未到,繼續(xù)等候。,表示時(shí)間未到,繼續(xù)等候。2、中斷方法:、中斷方法: 設(shè)置中斷服務(wù)子程序,每當(dāng)設(shè)置中斷服務(wù)子程序,每當(dāng)TMR0溢出時(shí),溢出時(shí),進(jìn)入中斷服務(wù)程序,得到一個(gè)準(zhǔn)確的定時(shí)時(shí)間。進(jìn)入中斷服務(wù)程序,得到一個(gè)準(zhǔn)確的定時(shí)時(shí)間。TMR0的定時(shí)程序舉例:的定時(shí)程序舉例:用用TMR0產(chǎn)生產(chǎn)生10毫秒的定時(shí)時(shí)間,在毫秒的定時(shí)時(shí)間,在RC0輸出一個(gè)輸出一個(gè)10毫秒的方波。毫秒的方波。一、用查詢方法編寫程序,步驟如下:一、用查詢方法編寫程序,步驟如下: (1) 求出求出10毫秒定時(shí)時(shí)間對應(yīng)的毫秒定時(shí)時(shí)間對應(yīng)的TRM0的計(jì)數(shù)初值:的計(jì)數(shù)初值: X=
13、 28 t/(TxP) =256-10000/(1x64) =256-156 =100(64H) (2) 根據(jù)題目的要求,對根據(jù)題目的要求,對OPTION_REG配置配置 T0CS=0; /時(shí)鐘源為內(nèi)部指令周期時(shí)鐘源為內(nèi)部指令周期 PSA=0; /分頻器分配給分頻器分配給TMR0 PS2=1; /TMR0的分頻比為的分頻比為1:64 PS1=0; PS0=1; GIE=0; /禁止產(chǎn)生中斷禁止產(chǎn)生中斷 /OPTION=0 x05; (3) 將將(X=100)寫入寫入TMR0計(jì)數(shù)寄存器計(jì)數(shù)寄存器 TMR0=100; (4) 等待等待T0IF溢出,溢出時(shí),定時(shí)時(shí)間已到。溢出,溢出時(shí),定時(shí)時(shí)間已到。
14、 while(!T0IF);實(shí)際程序入下:實(shí)際程序入下:#include void init(); /I/O口初始化函數(shù)口初始化函數(shù)void tmint(); /定時(shí)器初始化函數(shù)定時(shí)器初始化函數(shù)void main() init(); tmint(); while(1) if(T0IF) T0IF=0; TMR0=100; RC0=!RC0; / I/O口初始化函數(shù)口初始化函數(shù)void init() TRISC=0X00; /定時(shí)初始化(定時(shí)初始化(OPTION_REG)void tmint() T0CS=0; /時(shí)鐘源為內(nèi)部指令周期時(shí)鐘源為內(nèi)部指令周期 PSA=0; /分頻器分配給分頻器分配給
15、TMR0 PS2=1; /TMR0的分頻比為的分頻比為1:64 PS1=0; PS0=1; GIE=0; /禁止產(chǎn)生中斷禁止產(chǎn)生中斷 T0IF=0; /清除定時(shí)器清除定時(shí)器0中斷標(biāo)志中斷標(biāo)志 TMR0=0X64; /預(yù)置預(yù)置TMR0初值初值 #include void init(); /I/O口初始化函數(shù)口初始化函數(shù)void tmint(); /定時(shí)器初始化函數(shù)定時(shí)器初始化函數(shù)void interrupt dealtime();void main() init(); tmint(); while(1) ; / I/O口初始化函數(shù)口初始化函數(shù)void init() TRISC=0X00; /定時(shí)
16、中斷初始化定時(shí)中斷初始化void tmint() OPTION=0 x05; /對對OPTION進(jìn)行配置進(jìn)行配置 GIE=1; /允許允許產(chǎn)生中斷產(chǎn)生中斷 T0IE=1; /定時(shí)器定時(shí)器T0允許允許產(chǎn)生中斷產(chǎn)生中斷 T0IF=0; /清楚定時(shí)器清楚定時(shí)器0中斷標(biāo)志中斷標(biāo)志 TMR0=0X64; /預(yù)置初值預(yù)置初值 /中斷服務(wù)子程序中斷服務(wù)子程序void interrupt dealtime() /每中斷一次的時(shí)間為每中斷一次的時(shí)間為10毫秒毫秒 T0IF=0; TMR0=0X64; RC0=!RC0; 5.2.2定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器TMR1的硬件結(jié)構(gòu)的硬件結(jié)構(gòu) 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器
17、TMR1不僅可作通用的定時(shí)器不僅可作通用的定時(shí)器和計(jì)數(shù)器;而且利用內(nèi)置的低頻時(shí)基振蕩器,還和計(jì)數(shù)器;而且利用內(nèi)置的低頻時(shí)基振蕩器,還可實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘可實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘RTC功能;通過功能;通過TMR1與與CCP模塊配合使用,定時(shí)器模塊配合使用,定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器TMR1又可實(shí)現(xiàn)又可實(shí)現(xiàn)輸入捕捉和輸出比較功能。輸入捕捉和輸出比較功能。 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器TMR1是一個(gè)是一個(gè)16位的可讀可位的可讀可寫的計(jì)數(shù)寄存器,由高低兩字節(jié)組成(寫的計(jì)數(shù)寄存器,由高低兩字節(jié)組成(TMR1H和和TMR1L)16位寄存器從位寄存器從0000H到到FFFFH加加1計(jì)數(shù),然后回到計(jì)數(shù),然后回到0000H。在從在從F
18、FFFH到到0000H的過程中,置位中斷標(biāo)志位的過程中,置位中斷標(biāo)志位TMR1IF。定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器TMR1還帶有一個(gè)還帶有一個(gè)3位的可編程位的可編程預(yù)分頻器和一個(gè)內(nèi)置的低功耗低頻時(shí)基振蕩器。預(yù)分頻器和一個(gè)內(nèi)置的低功耗低頻時(shí)基振蕩器。 5.2.25.2.2定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器TMR1TMR1的硬件結(jié)構(gòu)的硬件結(jié)構(gòu)1 1定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器TMR1TMR1模塊具有的特點(diǎn)模塊具有的特點(diǎn): :(1 1)一個(gè))一個(gè)1616位的由時(shí)鐘信號上升沿觸發(fā)的累加計(jì)數(shù)位的由時(shí)鐘信號上升沿觸發(fā)的累加計(jì)數(shù)寄存器對寄存器對TMR1HTMR1H:TMR1LTMR1L;(2 2)TMR1HTMR
19、1H和和TMR1LTMR1L是在是在RAMRAM中統(tǒng)一編址的寄存器對,中統(tǒng)一編址的寄存器對, 地址為地址為0EH0EH和和0FH0FH,可用軟件方式讀,可用軟件方式讀/ /寫寫TMR1TMR1寄存寄存器對的內(nèi)容;器對的內(nèi)容;(3 3)一個(gè)可選用的)一個(gè)可選用的3 3位可編程的預(yù)分頻器位可編程的預(yù)分頻器;(4 4)累加計(jì)數(shù)的信號源可選擇內(nèi)部系統(tǒng)時(shí)鐘、)累加計(jì)數(shù)的信號源可選擇內(nèi)部系統(tǒng)時(shí)鐘、外部觸外部觸 發(fā)信號或自帶時(shí)基振蕩器信號;發(fā)信號或自帶時(shí)基振蕩器信號;(5 5)既可工作于)既可工作于定時(shí)器模式定時(shí)器模式,又可工作于,又可工作于計(jì)數(shù)器模計(jì)數(shù)器模式式,還可用作,還可用作實(shí)時(shí)時(shí)鐘實(shí)時(shí)時(shí)鐘(RTC)
20、(RTC)功能功能;(6 6)在計(jì)數(shù)器溢出時(shí),相應(yīng)的溢出中斷標(biāo)志自動(dòng)置)在計(jì)數(shù)器溢出時(shí),相應(yīng)的溢出中斷標(biāo)志自動(dòng)置位,并可產(chǎn)生溢出中斷。位,并可產(chǎn)生溢出中斷。5.2.2定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器TMR1的硬件結(jié)構(gòu)的硬件結(jié)構(gòu)2. 與定時(shí)器與定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器TMR1模塊相關(guān)的寄存器模塊相關(guān)的寄存器 (1) PIE1外設(shè)中斷使能寄存器外設(shè)中斷使能寄存器在第在第6章介紹章介紹 (2) PIR1外設(shè)中斷標(biāo)志寄存器外設(shè)中斷標(biāo)志寄存器在第在第6章介紹章介紹 (3) INTCON中斷控制寄存器中斷控制寄存器 各中斷的使能及中斷標(biāo)志各中斷的使能及中斷標(biāo)志 (4) T1CONTMR1控制寄存器控制寄存器 決定決
21、定TMR1的分頻比、的分頻比、TMR1振蕩器的使能、內(nèi)外時(shí)鐘、振蕩器的使能、內(nèi)外時(shí)鐘、 TMR1的關(guān)閉與打開等。的關(guān)閉與打開等。 (5) TMR1LTMR1計(jì)數(shù)寄存器低字節(jié)計(jì)數(shù)寄存器低字節(jié) (6) TMR1HTMR1計(jì)數(shù)寄存器高字節(jié)計(jì)數(shù)寄存器高字節(jié) 3. T1CON寄存器各數(shù)據(jù)位的含義和功能寄存器各數(shù)據(jù)位的含義和功能4. TMR1 定時(shí)時(shí)間的計(jì)算公式:定時(shí)時(shí)間的計(jì)算公式: t= P (216 X) T X= 216 t/(TxP) t:設(shè)定的定時(shí)時(shí)間:設(shè)定的定時(shí)時(shí)間uS P:分頻器的分頻比:分頻器的分頻比-18 取值為取值為1、2、4、8 X:TMR1H和和TMR1L的計(jì)數(shù)初值的計(jì)數(shù)初值-06
22、5535 T:指令周期:指令周期uS定時(shí)器最短的定時(shí)時(shí)間定時(shí)器最短的定時(shí)時(shí)間:t=1x(65536-65535)x1uS=1uS定時(shí)器最長的定時(shí)時(shí)間定時(shí)器最長的定時(shí)時(shí)間:t=8x(65536-0)x1uS=524288uS5. TMR1的定時(shí)程序舉例:的定時(shí)程序舉例:用用TMR1產(chǎn)生產(chǎn)生10毫秒的定時(shí)時(shí)間,步驟如下:毫秒的定時(shí)時(shí)間,步驟如下: (1) 求出求出10毫秒定時(shí)時(shí)間對應(yīng)的計(jì)數(shù)初值毫秒定時(shí)時(shí)間對應(yīng)的計(jì)數(shù)初值 X= 216 t/(TxP) =65536-10000/(1x8) =65536-1250 =64286(FB1EH) (2) 根據(jù)題目的要求,對根據(jù)題目的要求,對T1CON配置配
23、置 (3) 將將(X=FB1E)分別寫入分別寫入TMR1H和和TMR1L計(jì)數(shù)寄存器計(jì)數(shù)寄存器 (4) 將將T1OSCEN位置位置1,啟動(dòng)啟動(dòng)TMR1開始定時(shí)開始定時(shí) (4) 等待等待PIR1的的TMR1IF位為位為1,為,為1時(shí),定時(shí)時(shí)間已到時(shí),定時(shí)時(shí)間已到TMR1的定時(shí)程序舉例:的定時(shí)程序舉例:LIST P=16F877A;列表偽指令列表偽指令I(lǐng)NCLUDE P16F877A.INC;把包含文件含入源程序把包含文件含入源程序 _CONFIG 3F39H;設(shè)置配置位中振蕩方式為設(shè)置配置位中振蕩方式為XT, 其它全部禁止或關(guān)閉其它全部禁止或關(guān)閉;*COUNTEQU20H ORG 0 x000;主
24、程序開始地址主程序開始地址 GOTOMAIN;跳轉(zhuǎn)到主程序跳轉(zhuǎn)到主程序 ORG0005H ;主程序開始地址為主程序開始地址為0005HMAIN MOVLW0F0H ;或者或者30H MOVWFT1CON;設(shè)定定時(shí)器工作方式,分頻比為設(shè)定定時(shí)器工作方式,分頻比為1:8;*; 定時(shí)定時(shí)0.5秒秒; X=65536-t/(TxP)=65536-500000/(1x8)=3036=0BDCH; MOVLW0BH MOVWFTMR1H;設(shè)定設(shè)定TMR1高位初值高位初值 MOVLW0DCH ; MOVWFTMR1L ;設(shè)定設(shè)定TMR1低位初值低位初值 ;* BSFT1CON,TMR1ON ;啟動(dòng)定時(shí)器啟動(dòng)
25、定時(shí)器TMR1LOOP1 BTFSS PIR1,TMR1IF ;是否溢出?是否溢出? GOTOLOOP1 ;沒溢出沒溢出,繼續(xù)等待繼續(xù)等待BCFPIR1,TMR1IF ;已溢出已溢出,清清TMR1溢出標(biāo)志溢出標(biāo)志;* GOTO $ ;程序在原地踏步程序在原地踏步 END ;源程序結(jié)束源程序結(jié)束5.3.2 5.3.2 計(jì)數(shù)器工作方式計(jì)數(shù)器工作方式1.1.定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器TMR0TMR0模塊模塊的的計(jì)數(shù)器模式計(jì)數(shù)器模式1 1)當(dāng))當(dāng)T0CS(OPTION_REG)=1T0CS(OPTION_REG)=1時(shí)時(shí),TMR0,TMR0被被 設(shè)為計(jì)數(shù)器模式設(shè)為計(jì)數(shù)器模式; ;2 2)觸發(fā)信號從
26、片外引腳的)觸發(fā)信號從片外引腳的RA4/T0CKIRA4/T0CKI 輸入輸入 3 3)T0SE=1,T0SE=1,下降沿觸發(fā)下降沿觸發(fā), T0SE=0, T0SE=0,上升沿觸發(fā)上升沿觸發(fā) 4 4)當(dāng)計(jì)數(shù)寄存器)當(dāng)計(jì)數(shù)寄存器TMR0TMR0寫入初值時(shí)寫入初值時(shí), ,計(jì)數(shù)器立即開始計(jì)計(jì)數(shù)器立即開始計(jì) 數(shù)數(shù). . 5 5)如果分頻比為)如果分頻比為1:11:1時(shí)時(shí), ,每一個(gè)外部脈沖輸入每一個(gè)外部脈沖輸入,TMR0,TMR0加加1,1, 如果分頻比為如果分頻比為1:21:2時(shí)時(shí), ,每兩個(gè)外部脈沖輸入每兩個(gè)外部脈沖輸入,TMR0,TMR0加加 1,1,6 6)TMR0TMR0的計(jì)數(shù)公式的計(jì)數(shù)公式
27、: : 計(jì)數(shù)值計(jì)數(shù)值= =分頻比分頻比x(2x(28 8- -計(jì)數(shù)初值計(jì)數(shù)初值) ) 分頻比取值為分頻比取值為:2:2、4 4、8 8、16162562567 7)TMR0TMR0的最大計(jì)數(shù)范圍的最大計(jì)數(shù)范圍: : 計(jì)數(shù)值計(jì)數(shù)值=256x(2=256x(28 8-0)-0) =256x256 =256x256 =65535 =655352.2.定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器TMR1TMR1模塊模塊的的計(jì)數(shù)器模式計(jì)數(shù)器模式1 1)當(dāng))當(dāng)TMR1CS=1TMR1CS=1時(shí)時(shí),TMR1,TMR1工作于計(jì)數(shù)器工作方式,時(shí)鐘工作于計(jì)數(shù)器工作方式,時(shí)鐘 來自外部引腳或自帶的低頻振蕩器。來自外部引腳或自帶的
28、低頻振蕩器。2 2)當(dāng))當(dāng)TMR1TMR1設(shè)定為計(jì)數(shù)方式時(shí),在其開始自增前,必須設(shè)定為計(jì)數(shù)方式時(shí),在其開始自增前,必須 有一個(gè)下降沿。當(dāng)有一個(gè)下降沿。當(dāng)TMR1TMR1隨著外部觸發(fā)信號遞增時(shí),隨著外部觸發(fā)信號遞增時(shí), 發(fā)生在上升沿。如圖所示:發(fā)生在上升沿。如圖所示:3 3)TMR1TMR1的計(jì)數(shù)公式的計(jì)數(shù)公式: : 計(jì)數(shù)值計(jì)數(shù)值= =分頻比分頻比x(2x(21616- -計(jì)數(shù)初值計(jì)數(shù)初值) ) 分頻比取值為分頻比取值為:1:1、2 2、4 4、8 84 4)TMR0TMR0的最大計(jì)數(shù)范圍的最大計(jì)數(shù)范圍: : 計(jì)數(shù)值計(jì)數(shù)值=8x(2=8x(21616-0)-0) =8x65535 =8x65535 =524280 =5242805 5)計(jì)數(shù)器)計(jì)數(shù)器TMR1TMR1的應(yīng)用舉例的應(yīng)用舉例頻率計(jì)頻率計(jì)本章小節(jié)1 1、熟悉、熟悉PIC16F87XPIC16F87X單片機(jī)的定時(shí)單片機(jī)的定時(shí)/ /計(jì)數(shù)器功能計(jì)數(shù)器功能PIC16F87XPIC16F87X單片機(jī)有單片機(jī)有3 3個(gè)定時(shí)器個(gè)定時(shí)器/ /計(jì)數(shù)器模塊,它們計(jì)數(shù)器模塊,它們的共同點(diǎn)是其核心部分都是一個(gè)由時(shí)鐘信號觸發(fā),按的共同點(diǎn)是其核心部分都是一個(gè)由時(shí)鐘信號觸發(fā),按遞增方式累加工作的循環(huán)計(jì)數(shù)器;從預(yù)先設(shè)定的某一遞增方式累加工作的循環(huán)計(jì)數(shù)器;從預(yù)先設(shè)定的某一初始值開始累計(jì),在累計(jì)到計(jì)數(shù)器產(chǎn)生溢出,并同時(shí)初始值開始累計(jì),在累計(jì)到計(jì)數(shù)器產(chǎn)生溢
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度電力系統(tǒng)電力物資安全儲存與運(yùn)輸合同3篇
- 二零二五年建筑公司內(nèi)部工程承包合同范本5篇
- 臨時(shí)服務(wù)協(xié)議:專項(xiàng)工作期間合作意向書版A版
- 2025年度農(nóng)家樂鄉(xiāng)村旅游服務(wù)合同范本3篇
- 2024版有關(guān)房屋分配協(xié)議書
- 2024租賃期滿設(shè)備回收合同
- 二零二五年租房合同涉及的環(huán)保要求3篇
- 二零二五版出租車行業(yè)駕駛員勞動(dòng)合同執(zhí)行規(guī)范6篇
- 二零二五年能源設(shè)施工程設(shè)計(jì)合同補(bǔ)充協(xié)議3篇
- 2024版智能可穿戴設(shè)備設(shè)計(jì)與生產(chǎn)合同
- 道德經(jīng)中德文對照版
- 公路工程隨機(jī)抽樣一覽表(路基路面現(xiàn)場測試隨機(jī)選點(diǎn)方法自動(dòng)計(jì)算)
- 2021版中醫(yī)癥候醫(yī)保對應(yīng)中醫(yī)癥候醫(yī)保2
- 2023年山東省青島市中考化學(xué)試題(含答案解析)
- 商業(yè)計(jì)劃書(BP)產(chǎn)品與服務(wù)的撰寫秘籍
- 安徽華塑股份有限公司年產(chǎn) 4萬噸氯化石蠟項(xiàng)目環(huán)境影響報(bào)告書
- 公司章程(二個(gè)股東模板)
- 世界奧林匹克數(shù)學(xué)競賽6年級試題
- 藥用植物學(xué)-課件
- 文化差異與跨文化交際課件(完整版)
- 國貨彩瞳美妝化消費(fèi)趨勢洞察報(bào)告
評論
0/150
提交評論