版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第四單元 CC2530定時/計數(shù)器應(yīng)用目錄任務(wù)六 實現(xiàn)發(fā)光二極管的周期性閃爍本章小結(jié)習(xí)題戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)要求使用CC2530單片機內(nèi)部定時/計數(shù)器來控制LED1進行周期性閃爍,具體閃爍效果要求如下:通電后LED1每隔2秒閃爍一次。LED1每次閃爍點亮?xí)r間為0.5秒。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)分析本任務(wù)要求LED1周期性閃爍,對閃爍周期和LED點亮?xí)r間進行了指定,需要使用定時/計數(shù)器才能達到較為精準(zhǔn)的時間控制。CC2530內(nèi)部含有多個定時/計數(shù)器,其中定時/計數(shù)器1功能最為全面,可使用此定時/計數(shù)器來完成任務(wù)。建議學(xué)生帶著
2、以下問題去進行本任務(wù)的學(xué)習(xí)和實踐:什么是定時/計數(shù)器?定時/計數(shù)器是如何工作的? CC2530包含有哪些定時/計數(shù)器? 如何使用CC2530中的定時/計數(shù)器?戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識1.定時/計數(shù)器介紹(1)定時/計數(shù)器的概念定時/計數(shù)器是一種能夠?qū)r鐘信號或外部輸入信號進行計數(shù),當(dāng)計數(shù)值達到設(shè)定要求時便向CPU提出處理請求,從而實現(xiàn)定時或計數(shù)功能的外設(shè)。在單片機中,一般使用Timer表示定時計數(shù)器。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識(2)定時/計數(shù)器的作用定時/計數(shù)器的基本功能是實現(xiàn)定時和計數(shù),且在整個工作過 程中不需要CPU
3、進行過多參與,它的出現(xiàn)將CPU從相關(guān)任務(wù)中解放 出來,提高了CPU的使用效率。例如我們之前實現(xiàn)LED燈閃爍時采 用的是軟件延時方法,在延時過程中CPU通過執(zhí)行循環(huán)指令來消耗 時間,在整個延時過程中會一直占用CPU,降低了CPU的工作效率。若使用定時/計數(shù)器來實現(xiàn)延時,則在延時過程中CPU可以去執(zhí)行其 他工作任務(wù)。CPU與定時/計數(shù)器之間的交互關(guān)系可用圖4-1來進行表示。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識圖4-1CPU與定時/計數(shù)器交互戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識單片機中的定時/計數(shù)器一般具有以下功能:1) 定時器功能對規(guī)定時間間隔的
4、輸入信號的個數(shù)進行計數(shù),當(dāng)計數(shù)值達到指定 值時,說明定時時間已到。這是定時/計數(shù)器的常用功能,可用來實現(xiàn)延時或定時控制,其輸入信號一般使用單片機內(nèi)部的時鐘信號。2) 計數(shù)器功能產(chǎn)線產(chǎn)品計數(shù)、信號數(shù)量統(tǒng)計和轉(zhuǎn)速測量等方面。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識3) 捕獲功能對規(guī)定時間間隔的輸入信號的個數(shù)進行計數(shù),當(dāng)外界輸入有效信 號時,捕獲計數(shù)器的計數(shù)值。通常用來測量外界輸入脈沖的脈寬或頻率, 需要在外界輸入信號的上升沿和下降沿進行兩次捕獲,通過計算兩次捕 獲值的差值可以計算出脈寬或周期等信息。4) 比較功能當(dāng)計數(shù)值與需要進行比較的值相同時向CPU提出中斷請求或改變I/O
5、口輸出電平等操作。一般用于控制信號輸出。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識5)PWM輸出功能對規(guī)定時間間隔的輸入信號的個數(shù)進行計數(shù),根據(jù)設(shè)定的周期和 占空比從I/O口輸出控制信號。一般用來控制LED燈亮度或電機轉(zhuǎn)速。(3)定時/計數(shù)器基本工作原理無論使用定時/計數(shù)器的哪種功能,其最基本的工作原理是進行計數(shù)。定時/計數(shù)器的核心是一個計數(shù)器,可以進行加1(或減1)計數(shù), 每出現(xiàn)一個計數(shù)信號,計數(shù)器就自動加1(或自動減1),當(dāng)計數(shù)值從最大值變成0(或從0變成最大值)溢出時定時/計數(shù)器便向CPU提出中斷請求。計數(shù)信號的來源可選擇周期性的內(nèi)部時鐘信號(如定時功能)或非周期性的
6、外界輸入信號(如計數(shù)功能)。一戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識一個典型單片機的內(nèi)部8位減1計數(shù)器工作過程可用圖4-2進行表示。圖4-28位減1計數(shù)器工作過程戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識2.CC2530的定時/計數(shù)器CC2530包含了5個定時/計數(shù)器,分別是定時器1、定時器2、定時器3、定時器4和睡眠定時器。(1)定時器1定時器1是一個16位定時器,主要具有以下功能:支持輸入捕獲功能,可選擇上升沿、下降沿或任何邊沿進行輸 入捕獲。支持輸出比較功能,輸出可選擇設(shè)置、清除或切換。支持PWM功能。具有5個獨立的捕獲/比較通道,每個通道使用
7、一個I/O引腳。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識具有自由運行、模、正計數(shù)/倒計數(shù)三種不同工作模式。具有可被1、8、32或128整除的時鐘分頻器,為計數(shù)器提供計 數(shù)信號。能在每個捕獲/比較和最終計數(shù)上產(chǎn)生中斷請求。能觸發(fā)DMA功能。定時器1是CC2530優(yōu)先選用的對象。能最全的一個定時/計數(shù)器,是在應(yīng)用中被戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識(2)定時器2定時器2主要用于為802.15.4CSMA-CA算法提供定時,以及為802.15.4MAC層提供一般的計時功能,也叫做MAC定時器,用戶一般情況下不使用該定時器,在此不再對其進行詳細(xì)介紹。
8、(3)定時器3和定時器4定時器3和定時器4都是8位的定時器,主要具有以下功能:支持輸入捕獲功能,可選擇上升沿、下降沿或任何邊沿進行輸入捕獲。支持輸出比較功能,輸出可選擇設(shè)置、清除或切換。具有2個獨立的捕獲/比較通道,每個通道使用一個I/O引腳。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識具有自由運行、倒計數(shù)、模、正計數(shù)/倒計數(shù)四種不同工作模式。具有可被1、2、4、8、16、32、64或128整除的時鐘分頻器, 為計數(shù)器提供計數(shù)信號。能在每個捕獲/比較和最終計數(shù)上產(chǎn)生中斷請求。能觸發(fā)DMA功能。定時器3和定時器4通過輸出比較功能也可以實現(xiàn)簡單的PWM控制。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)
9、提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識(4)睡眠定時器睡眠定時器是一個24位正計數(shù)定時器,運行在32KHz的時鐘頻率下,支持捕獲/比較功能,能夠產(chǎn)生中斷請求和DMA觸發(fā)。睡眠定時器主要用于設(shè)置系統(tǒng)進入和退出低功耗睡眠模式之間的周期,還用于低功耗睡眠模式時維持定時器2的定時。3.CC2530定時/計數(shù)器的工作模式CC2530的定時器1、定時器3和定時器4雖然使用的計數(shù)器計數(shù)位數(shù)不同,但它們都具備“自由運行”、“模”和“正計數(shù)/倒計數(shù)”三種不同的工作模式,定時器3和定時器4還具有單獨的倒計數(shù)模式。此處以定時器1為例進行介紹。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識(1)自由
10、運行模式在自由運行模式下,計數(shù)器從0x0000開始,在每個活動時鐘邊沿增加1,當(dāng)計數(shù)器達到0xFFFF時溢出,計數(shù)器重新載入0x0000并開始新一輪遞增計數(shù),如圖4-3所示。圖4-3自由運行模式戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識自由運行模式的計數(shù)周期是固定值0xFFFF,當(dāng)計數(shù)器達到最終 計 數(shù) 值 0xFFFF 時 , 系 統(tǒng) 自 動 設(shè) 置 標(biāo) 志 位 IRCON.T1IF 和T1STAT.OVFIF , 如 果 用 戶 設(shè) 置 了 相 應(yīng) 的 中 斷 屏 蔽 位TIMIF.T1OVFIM和IEN1.T1EN,將產(chǎn)生一個中斷請求。(2)模模式在模模式下,計數(shù)器從
11、0x0000開始,在每個活動時鐘邊沿增加1,當(dāng)計數(shù)器達到T1CC0寄存器保存的值時溢出,計數(shù)器將復(fù)位到0x0000并開始新一輪遞增計數(shù),如圖4-4所示。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識圖4-4模模式戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識計數(shù)溢出后,將置位相應(yīng)標(biāo)志位,同時如果設(shè)置了相應(yīng)的中斷使能則會產(chǎn)生一個中斷請求。T1CC0 由2 個8 位寄存器T1CC0H和T1CC0L構(gòu)成,分別用來保存最終計數(shù)值的高8位和低8位。模模式的計數(shù)周期不是固定值,可由用戶自行設(shè)定,以便獲取不同時長的定時時間。定時器3和定時器4的倒計數(shù)模式類似與模模式,只不過計
12、數(shù)值是從最大計數(shù)值向0x00倒序計數(shù)。(3)正計數(shù)/倒計數(shù)模式在正計數(shù)/倒計數(shù)模式下,計數(shù)器反復(fù)從0x0000開始,正計數(shù)到T1CC0保存的最終計數(shù)值,然后再倒計時回0x0000,如圖4-5所示。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識圖4-5正計數(shù)/倒計數(shù)模式戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育必備知識正計數(shù)/倒計數(shù)模式下,計數(shù)器在到達最終計數(shù)值時溢出,并置位相關(guān)標(biāo)志位,若用戶已使能相關(guān)中斷,則會產(chǎn)生中斷請求。這種工 作模式在用來進行PWM控制時可以實現(xiàn)中心對齊的PWM輸出。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)實施建立任務(wù)6的工程
13、項目,進行代碼設(shè)計和調(diào)試。1.任務(wù)實現(xiàn)思路選用定時器1,讓其每隔固定時間產(chǎn)生一次中斷請求,在定時器1的中斷服務(wù)函數(shù)中判斷時間是否到達1.5秒,如果到達1.5秒則直接在中斷服務(wù)函數(shù)中點亮LED1,當(dāng)?shù)竭_2秒時再熄滅LED1。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)實施圖4-6定時器1初始化步驟戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)實施圖4-7定時器1中斷服務(wù)函數(shù)處理流程戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)實施程序中的核心內(nèi)容是對定時器1進行初始化配置和定時器1中斷服務(wù)函數(shù)的編寫。對定時器1進行初始化配置可參照圖4-6所示步驟,定時器1中
14、斷服務(wù)函數(shù)處理流程可參照圖4-7所示。2.初始化定時器1(1)設(shè)置定時器1分頻系數(shù)定時器1的計數(shù)信號來自CC2530內(nèi)部系統(tǒng)時鐘信號的分頻, 可選擇1、8、32或128分頻。CC2530在上電后,默認(rèn)使用內(nèi)部頻率為16MHz的RC振蕩器,也可以使用外接的晶體振蕩器,一般為32MHz頻率的晶振。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)實施定時器1采用16位計數(shù)器,最大計數(shù)值為0xFFFF,即65535。當(dāng)使用16MHzRC振蕩器時,如果使用最大分頻128分頻,則定時器1的最大定時時長為524.28ms。設(shè)定定時器1的分頻系數(shù)需要使用T1CTL寄存器,通過設(shè)置DIV1:0兩位的值
15、為定時器1選擇分頻系數(shù),T1CTL寄存器描述如表4-1所示。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)實施表4-1T1CTL寄存器戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育位 位名稱 復(fù)位值 操作 描述 7:4 - 0000 R0 未使用。 3:2 DIV1:0 00 R/W 定時器 1 時鐘分頻設(shè)置。00:1 分頻。 01:8 分頻。 10:32 分頻。 11:128 分頻。 1:0 MODE1:0 00 R/W 定時器 1 工作模式設(shè)置。00:暫停運行。 01:自由運行模式。 10:模模式。 11:正計數(shù)/倒計數(shù)模式。 任務(wù)實施在本任務(wù)中,我們?yōu)槎〞r器1選擇最1
16、28分頻,設(shè)置代碼為:T1CTL |= 0x0c;/定時器1時鐘頻率128分頻(2)設(shè)置定時器1最大計數(shù)值任務(wù)要求定時時間為2秒和0.5秒,根據(jù)CC2530時鐘源的選擇和定時器1的分頻選擇我們可知,定時器1最大定時時長為0.52秒多。為便于程序中進行計算,可設(shè)置定時器1的定時時長為0.25秒,并計算出計數(shù)最大值為:戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)實施在使用定時器1的定時功能時,使用T1CC0H和T1CC0L兩個寄存器存放最大計數(shù)值的高8位和低8位。T1CCxH和T1CCxL共有5 對,分別對應(yīng)定時器1的通道0到通道4,兩個寄存器的功能描述如表4-2和表4-3。表4-2
17、T1CCxH寄存器戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育位 位名稱 復(fù)位值 操作 描述 7:0 T1CCx15:8 0x00 R/W 定時器 1 通道 0 到通道 4 捕獲/比較值的高位字節(jié)。 任務(wù)實施表4-3T1CCxL寄存器在程序設(shè)計中,應(yīng)先寫低位寄存器,再寫高位寄存器。例如設(shè)置定時器1計數(shù)初值0xF424的代碼為:T1CC0L = 0x12;T1CC0H = 0x7A;/設(shè)置最大計數(shù)值低8位/設(shè)置最大計數(shù)值高8位戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育位位名稱復(fù)位值操作描述7:0T1CCx7:00x00R/W定時器1通道0到通道4捕獲/比較值的低位字節(jié)。任務(wù)
18、實施1)查詢方式使用代碼讀取定時器1當(dāng)前計數(shù)值,在程序中根據(jù)計數(shù)值大小確定要執(zhí)行的操作。通過讀取T1CNTH和T1CNTL兩個寄存器來分別獲取當(dāng)期計數(shù)值的高位字節(jié)和低位字節(jié),兩個寄存器的描述如表4-4和表4-5。表4-4T1CNTH寄存器戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育位 位名稱 復(fù)位值 操作 描述 7:0 CNT15:8 0x00 R/W 定時器 1 計數(shù)器高位字節(jié)。 在讀 T1CNTL 時,計數(shù)器的高位字節(jié)緩沖到該寄存器。 任務(wù)實施表4-5T1CNTL寄存器當(dāng)讀取T1CNTL 寄存器時, 計數(shù)器的高位字節(jié)會被緩沖到T1CNTH寄存器,以便高位字節(jié)可以從T1CNTH中讀
19、出,因此在程序中應(yīng)先讀T1CNTL寄存器,然后再讀取T1CNTH寄存器。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育位 位名稱 復(fù)位值 操作 描述 7:0 CNT7:0 0x00 R/W 定時器 1 計數(shù)器低位字節(jié)。 向該寄存器寫任何值將導(dǎo)致計數(shù)器被清除為 0x0000。 任務(wù)實施2)中斷方式定時器有3種情況能產(chǎn)生中斷請求:計數(shù)器達到最終計數(shù)值(自由運行模式下到0xFFFF,正計數(shù)/ 倒計數(shù)模式下到0x0000)。輸入捕獲輸出比較。(模模式時使用)。要使用定時器的中斷工作方式,必須使能各個相關(guān)中斷控制位。CC2530中定時器1到定時器4的中斷使能位分別是IEN1寄存器中的T1IE、T
20、2IE、T3IE和T4IE。由于IEN1寄存器可以進行位尋址,所以使能定時器1中斷可以采用以下代碼:戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)實施/使能定時器1中斷T1IE = 1;除此之外,定時器1、定時器3和定時器4還分別擁有一個計數(shù)溢出中斷屏蔽位,分別是T1OVFIM、T3OVFIM和T4OVFIM,當(dāng)這些位被設(shè)置成1時,對應(yīng)定時器的計數(shù)溢出中斷便被使能。這些位都可以進行位尋址,不過一般用戶不需要對其進行設(shè)置,因為這些位在CC2530上電時的初始值就是1。如果要手工設(shè)置,可以用以下代碼:T1OVFIM = 1;/使能定時器1溢出中斷最后要使能系統(tǒng)總中斷EA。戰(zhàn)略性信息產(chǎn)業(yè)
21、教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)實施(4)設(shè)置定時器1工作模式由于需要手工設(shè)定最大計數(shù)值,因此可為定時器1選擇工作模式為正計數(shù)/倒計數(shù)模式,只需要設(shè)置T1CTL寄存器中的MODE1:0 位即可,可見前面表4-1的描述。一旦設(shè)置了定時器1的工作模式(MODE1:0為非0值),則定時器1立刻開始定時計數(shù)工作,設(shè)置代碼為:T1CTL |= 0x03;/定時器1采用模模式如果使用的是定時器3或定時器4,則可參照表4-6設(shè)置相關(guān)寄存器。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育表4-6T3CTL寄存器或T4CTL寄存器戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育位 位名
22、稱 復(fù)位值 操作 描述 7:5 DIV 2:0 000 R/W 定時器時鐘分頻值。000:1 分頻。 001:2 分頻。 010:4 分頻。 011:8 分頻。 100:16 分頻。 101:32 分頻。 110:64 分頻。 111:128 分頻。 4 START 0 R/W 啟動定時器。 0:定時器暫停運行。 1:定時器正常運行。 3 OVFIM 1 R/W0 計數(shù)器溢出中斷屏蔽。0:中斷禁止。 1:中斷使能。 2 CLR 0 R0/W1 清除計數(shù)器,寫1 到CLR 復(fù)位計數(shù)器到0x00, 并初始化相關(guān)通道所有的輸出引腳。 1:0 MODE1:0 00 R/W 定時器工作模式選擇。00:自
23、由運行模式。 01:倒計數(shù)模式。 10:模模式。 11:正計數(shù)/倒計數(shù)模式。 任務(wù)實施(5)程序初始化代碼在程序主函數(shù)中,對LED控制端口和將定時器1進行初始化后的代碼如下:/*函數(shù)名稱:main功能:程序主函數(shù)入口參數(shù):無出口參數(shù):無返 回 值:無*/戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)實施(5)程序初始化代碼在程序主函數(shù)中,對LED控制端口和將定時器1進行初始化后的代碼如下:/*函數(shù)名稱:main功能:程序主函數(shù)入口參數(shù):無出口參數(shù):無返 回 值:無*/戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)實施void main(void)/*LED1初始化部分*
24、/P1SEL &= 0x01; P1DIR |= 0x01;LED1 = 0;/設(shè)置P1_0口為普通I/O口/設(shè)置P1_0口為輸出口/熄滅LED1/*定時器1初始化部分*/T1CTL |= 0x0c;T1CC0L = 0x12; T1CC0H = 0x7A;/定時器1時鐘頻率128分頻/設(shè)置最大計數(shù)值低8位/設(shè)置最大計數(shù)值高8位戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)實施/使能定時器1中斷T1IE = 1;T1OVFIM = 1;EA = 1;T1CTL |= 0x03;/使能定時器1溢出中斷/使能總中斷/定時器1采用正計數(shù)/倒計數(shù)模式/*/while(1)/程序主循環(huán)戰(zhàn)略性
25、信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)實施3.編寫定時器1中斷服務(wù)函數(shù)(1)定時器1的中斷標(biāo)志根據(jù)前面對定時器1進行的初始化配置,定時器1每隔0.5秒會產(chǎn)生一次中斷請求,自動將定時器1的中斷標(biāo)志位T1IF位和計數(shù)溢出標(biāo)志位OVFIF位置位。T1IF位處于IRCON寄存器中,該寄存器可進行位尋址,其中還包括了其他定時器的中斷標(biāo)志位,如T2IF、T3IF和T4IF。這些定時器的中斷標(biāo)志在執(zhí)行相應(yīng)的中斷服務(wù)函數(shù)時會自動清除,不需要用戶手工操作。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)實施OVFIF 位處于T1STAT 寄存器中, 需要手工進行清除。T1STAT寄存器的
26、描述如表4-7。表4-7T1STAT寄存器清除定時器1計數(shù)器溢出中斷標(biāo)志的代碼是:T1STAT &= 0x20;/清除定時器1溢出中斷標(biāo)志位戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育位 位名稱 復(fù)位值 操作 描述 7:6 - 00 R0 未使用。 5 OVFIF 0 R/W0 定時器 1 計數(shù)器溢出中斷標(biāo)志。 4:0 CHxIF 0 R/W0 定時器 1 通道 4 到通道 0 的中斷標(biāo)志。 任務(wù)實施(2)計算定時時間定時器1的定時周期為0.5秒,無法直接達到2秒的定時時長, 可以使用一個自定義變量來統(tǒng)計定時器1計數(shù)溢出次數(shù),如:unsigned char t1_Count=0;/定
27、時器1溢出次數(shù)計數(shù)由于采用正計數(shù)/倒計數(shù)模式,定時器1每溢出一次表示經(jīng)過了0.5秒,此時讓t1_Count自加1,然后判斷t1_Count的值。如果t1_Count等于4,則說明定時已達到2秒,同時要清零t1_Count的值, 以便開始新的統(tǒng)計周期。根據(jù)任務(wù)要求,可在一輪定時的1.5秒后點 亮LED1,在定時2秒后熄滅LED1。完整的定時器1中斷服務(wù)程序如下:戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)實施#pragmavector = T1_VECTOR interrupt void T1_INT(void)T1STAT &= 0x20;/清除定時器1溢出中斷標(biāo)志位t1_Cou
28、nt+;/定時器1溢出次數(shù)加1,溢出周期為0.5秒if(t1_Count = 3)/如果溢出次數(shù)到達3說明經(jīng)過了1.5秒LED1 = 1;/點亮LEDif(t1_Count = 4)/如果溢出次數(shù)到達4說明經(jīng)過了2秒/熄滅LED1LED1 = 0;t1_Count = 0;/清零定時器1溢出次數(shù)戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)實施編譯并生成目標(biāo)代碼,下載到實驗板上運行,觀察LED1的顯示效果。也可使用示波器觀察LED1控制引腳的信號輸出。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)拓展(1) 定時/計數(shù)器應(yīng)用拓展練習(xí)1使用定時器3實現(xiàn)任務(wù)6。提示:注意定時器3使用的是8位計數(shù)器,且定時器3具有專門的啟/??刂莆?。(2) 定時/計數(shù)器應(yīng)用拓展練習(xí)2使用定時器3和定時器4分別控制LED1和LED2的亮/滅,具體要求如下:系統(tǒng)上電后LED1和LED2全部熄滅。LED1每隔3秒就點亮1秒,LED3的亮/滅周期為4秒。LED2每隔1秒切換一次亮/滅狀態(tài),其亮/滅周期為2秒。戰(zhàn)略性信息產(chǎn)業(yè)教育服務(wù)提供商聯(lián)世界 育未來創(chuàng)新物聯(lián)教育任務(wù)拓展(3)定時/計數(shù)器應(yīng)用拓展練習(xí)3使用定時器1的模模式實現(xiàn)任務(wù)6。提示:模模式下,使用的不再是定時器1的溢出中斷,而是定時器1通道0的比較。因此要將通道0配置成比較功能,且在中斷服務(wù)函數(shù)中清除通
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025寧波市甬北糧食收儲有限公司公開招聘工作人員2人筆試參考題庫及答案解析
- 2026年山西經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院單招試題及答案1套
- 2026廣東陽江市陽春市高校畢業(yè)生就業(yè)見習(xí)招募(第一期)筆試模擬試題及答案解析
- 2026年消防干部心理考試題庫及答案參考
- 2026年浙江機電職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試模擬測試卷附答案
- 2026年河北能源職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試題庫附答案
- 2026年山西鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫及答案1套
- 2026山西晉城市高平市選聘廉潔征兵監(jiān)督員筆試備考題庫及答案解析
- 2025廣東云浮市招聘醫(yī)療衛(wèi)生人才8人(江蘇地區(qū)高校專場)(公共基礎(chǔ)知識)綜合能力測試題附答案
- 2026四川德陽市廣漢市廣電文化傳媒有限責(zé)任公司招聘6人筆試模擬試題及答案解析
- 2025學(xué)年上海市七年級語文上冊作文題目匯編及解析
- 2026年河南經(jīng)貿(mào)職業(yè)學(xué)院單招職業(yè)技能測試題庫及參考答案詳解
- ai寫作與公文寫作培訓(xùn)課件
- 欄桿安裝施工方案示例
- JJF 2333-2025 恒溫金屬浴校準(zhǔn)規(guī)范
- 網(wǎng)約配送員培訓(xùn)
- 2025年水工金屬結(jié)構(gòu)行業(yè)分析報告及未來發(fā)展趨勢預(yù)測
- 軟件產(chǎn)品項目管理方案
- 文書模板-生產(chǎn)環(huán)節(jié)的大氣、水體、固體以及噪聲排放污染等符合相關(guān)標(biāo)準(zhǔn)的情況說明
- 財務(wù)共享服務(wù)2025年發(fā)展趨勢與挑戰(zhàn)研究報告
- 小兒腦癱作業(yè)療法家庭指導(dǎo)
評論
0/150
提交評論