無線傳感器網(wǎng)絡(luò)(5)_第1頁
無線傳感器網(wǎng)絡(luò)(5)_第2頁
無線傳感器網(wǎng)絡(luò)(5)_第3頁
無線傳感器網(wǎng)絡(luò)(5)_第4頁
無線傳感器網(wǎng)絡(luò)(5)_第5頁
已閱讀5頁,還剩170頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、無線傳感器網(wǎng)絡(luò)第第5 5章章 CC2530CC2530基基礎(chǔ)實(shí)驗(yàn)礎(chǔ)實(shí)驗(yàn)計(jì)計(jì)算機(jī)科算機(jī)科學(xué)學(xué)系系 宋文強(qiáng)宋文強(qiáng)1 CC2530CC2530 是用于是用于 IEEE 802.15.4、ZigBee 和和 RF4CE 應(yīng)用的一個(gè)應(yīng)用的一個(gè)真正片上系統(tǒng)(真正片上系統(tǒng)(SoC)解決方案,能以低成本建立網(wǎng)絡(luò)節(jié)點(diǎn)。)解決方案,能以低成本建立網(wǎng)絡(luò)節(jié)點(diǎn)。CC2530 結(jié)合了結(jié)合了2.4GHz的的 RF 收發(fā)器性能,收發(fā)器性能, 增強(qiáng)型增強(qiáng)型8051 單片機(jī),單片機(jī), 系統(tǒng)內(nèi)可編程閃存,系統(tǒng)內(nèi)可編程閃存,8KB RAM根據(jù)芯片內(nèi)置閃存的不同容量,根據(jù)芯片內(nèi)置閃存的不同容量,CC2530 有四種不同的型號:有四種不

2、同的型號:vCC2530F32vCC2530F64vCC2530F128vCC2530F256 v編號后綴分別代表具有編號后綴分別代表具有32/64/128/256KB 的閃存。的閃存。CC2530 具有不同的運(yùn)行模式,使它尤其適應(yīng)超低功耗要求的系具有不同的運(yùn)行模式,使它尤其適應(yīng)超低功耗要求的系統(tǒng)。運(yùn)行模式之間的轉(zhuǎn)換時(shí)間短,進(jìn)一步確保了低能源消耗。統(tǒng)。運(yùn)行模式之間的轉(zhuǎn)換時(shí)間短,進(jìn)一步確保了低能源消耗。 2 3 CC2530開發(fā)套件開發(fā)套件4 CC2530芯片主要特性芯片主要特性高性能、低功耗且具有代碼預(yù)取功能的高性能、低功耗且具有代碼預(yù)取功能的 8051 微控制器內(nèi)核微控制器內(nèi)核符合符合 2.

3、4GHz IEEE 802.15.4標(biāo)準(zhǔn)標(biāo)準(zhǔn) 的無線的無線 RF 收發(fā)器收發(fā)器低功耗,寬電源電壓范圍(低功耗,寬電源電壓范圍(2 V3.6 V)支持硬件調(diào)試支持硬件調(diào)試支持精確的數(shù)字化支持精確的數(shù)字化 RSSI/LQI和強(qiáng)大的和強(qiáng)大的 5 通道通道 DMAIEEE 802.5.4 MAC 定時(shí)器,通用定時(shí)器(定時(shí)器,通用定時(shí)器(1個(gè)個(gè) 16 位,位,1個(gè)個(gè) 8 位)位)具有具有IR 發(fā)生電路發(fā)生電路具有捕獲功能的具有捕獲功能的 32kHz 睡眠定時(shí)器睡眠定時(shí)器硬件支持硬件支持 CSMA/CA功能功能具有電池監(jiān)測功能和溫度傳感功能具有電池監(jiān)測功能和溫度傳感功能具有具有 8 路輸入和可配置分辨率的

4、路輸入和可配置分辨率的12 位位ADC集成集成AES 安全協(xié)處理器安全協(xié)處理器5 CC2530的應(yīng)用領(lǐng)域的應(yīng)用領(lǐng)域2.4GHz IEEE 802.15.4 系統(tǒng)系統(tǒng)RF4CE 遠(yuǎn)程控制系統(tǒng)(需要大于遠(yuǎn)程控制系統(tǒng)(需要大于 64KB閃存)閃存)ZigBee 系統(tǒng)(需要系統(tǒng)(需要256KB 閃存)閃存)家庭家庭/樓宇自動化樓宇自動化照明系統(tǒng)照明系統(tǒng)工業(yè)控制和監(jiān)控工業(yè)控制和監(jiān)控低功耗無線傳感網(wǎng)絡(luò)低功耗無線傳感網(wǎng)絡(luò)消費(fèi)型電子消費(fèi)型電子醫(yī)療保健醫(yī)療保健6 5.1.3 CC2530概述概述 CC2530大致可以分為四個(gè)部分:大致可以分為四個(gè)部分:vCPU v和內(nèi)存相關(guān)的模塊和內(nèi)存相關(guān)的模塊v外設(shè)、時(shí)鐘和電

5、源管理相關(guān)的模塊外設(shè)、時(shí)鐘和電源管理相關(guān)的模塊v無線通信相關(guān)的模塊無線通信相關(guān)的模塊7 8 1. CPU 和內(nèi)存和內(nèi)存 CC253x芯片中芯片中 CPU內(nèi)核是一個(gè)單周期內(nèi)核是一個(gè)單周期8051兼容內(nèi)核兼容內(nèi)核v單周期(單周期(1T)每個(gè)時(shí)鐘周期執(zhí)行一條指令每個(gè)時(shí)鐘周期執(zhí)行一條指令v多周期(多周期(12T)每每12每個(gè)時(shí)鐘周期執(zhí)行一條指令每個(gè)時(shí)鐘周期執(zhí)行一條指令v多周期(多周期(6T)每每6每個(gè)時(shí)鐘周期執(zhí)行一條指令每個(gè)時(shí)鐘周期執(zhí)行一條指令它有三種內(nèi)存訪問總線(它有三種內(nèi)存訪問總線(SFR,DATA 和和CODE/XDATA),),單周期訪問單周期訪問SFR,DATA 和主和主SRAM一個(gè)調(diào)試接口

6、(一個(gè)調(diào)試接口(P2_1調(diào)試模式中的調(diào)試數(shù)據(jù),調(diào)試模式中的調(diào)試數(shù)據(jù), 、P2_2是調(diào)是調(diào)試時(shí)鐘,當(dāng)設(shè)備不在調(diào)試模式時(shí),作為通用試時(shí)鐘,當(dāng)設(shè)備不在調(diào)試模式時(shí),作為通用I/O)一個(gè)一個(gè)18 輸入擴(kuò)展中斷單元輸入擴(kuò)展中斷單元9 內(nèi)存空間內(nèi)存空間CODE:用于存儲程序的只讀存儲空間,地址范圍用于存儲程序的只讀存儲空間,地址范圍64KBDATA:可讀:可讀/寫的數(shù)據(jù)存儲空間,可以被一個(gè)單周期寫的數(shù)據(jù)存儲空間,可以被一個(gè)單周期CPU指令訪問,存儲空間地址指令訪問,存儲空間地址256字節(jié),低字節(jié),低128字節(jié)可字節(jié)可以直接或間接尋址,高以直接或間接尋址,高128字節(jié)只能間接尋址字節(jié)只能間接尋址XDATA:可

7、讀:可讀/寫的數(shù)據(jù)存儲空間,通常需要寫的數(shù)據(jù)存儲空間,通常需要45個(gè)個(gè)CPU周期來訪問,存儲空間地址周期來訪問,存儲空間地址64KB,訪問,訪問XDATA慢慢于訪問于訪問DATASFR:特殊功能寄存器,地址是被:特殊功能寄存器,地址是被8整除的整除的SFR,每一,每一位可以單獨(dú)尋址位可以單獨(dú)尋址這四個(gè)存儲空間在這四個(gè)存儲空間在51單片機(jī)結(jié)構(gòu)中是分開的單片機(jī)結(jié)構(gòu)中是分開的10 8KB SRAM超低功耗超低功耗映射到映射到DAT存儲空間和部分存儲空間和部分XDATA存儲空間存儲空間即使數(shù)字部分掉電(供電模式即使數(shù)字部分掉電(供電模式2、3)也能保留)也能保留其內(nèi)容其內(nèi)容 11 32/64/128/

8、256 KB 閃存閃存 為設(shè)備提供了內(nèi)電路可編程的非易失性程序存儲器,為設(shè)備提供了內(nèi)電路可編程的非易失性程序存儲器,映射到映射到XDATA 存儲空間。存儲空間。除了保存程序代碼和常量以外,非易失性存儲器允許除了保存程序代碼和常量以外,非易失性存儲器允許應(yīng)用程序保存必須保留的數(shù)據(jù),這樣設(shè)備重啟之后可應(yīng)用程序保存必須保留的數(shù)據(jù),這樣設(shè)備重啟之后可以使用這些數(shù)據(jù)。以使用這些數(shù)據(jù)。使用這個(gè)功能,可以利用已經(jīng)保存的網(wǎng)絡(luò)具體數(shù)據(jù),使用這個(gè)功能,可以利用已經(jīng)保存的網(wǎng)絡(luò)具體數(shù)據(jù),CC2530就不需要每次啟動都需要經(jīng)歷網(wǎng)絡(luò)尋找和加入就不需要每次啟動都需要經(jīng)歷網(wǎng)絡(luò)尋找和加入過程。過程。12 中斷控制器中斷控制器1

9、8個(gè)中斷源,每個(gè)中斷源都有自己的中斷請求標(biāo)志個(gè)中斷源,每個(gè)中斷源都有自己的中斷請求標(biāo)志分為分為6個(gè)中斷組個(gè)中斷組4個(gè)中斷優(yōu)先級個(gè)中斷優(yōu)先級當(dāng)設(shè)備從活動模式回到空閑模式,任一中斷服務(wù)請當(dāng)設(shè)備從活動模式回到空閑模式,任一中斷服務(wù)請求就被觸發(fā)求就被觸發(fā)一些中斷還可以從睡眠模式喚醒設(shè)備一些中斷還可以從睡眠模式喚醒設(shè)備13 3. 外設(shè)外設(shè)調(diào)試接口調(diào)試接口執(zhí)行一個(gè)專有的兩線串行接口,用于內(nèi)電路調(diào)試。執(zhí)行一個(gè)專有的兩線串行接口,用于內(nèi)電路調(diào)試。通過這個(gè)調(diào)試接口,可以執(zhí)行通過這個(gè)調(diào)試接口,可以執(zhí)行v整個(gè)閃存存儲器的擦除整個(gè)閃存存儲器的擦除v控制使能哪個(gè)振蕩器控制使能哪個(gè)振蕩器v停止和開始執(zhí)行用戶程序停止和開始

10、執(zhí)行用戶程序v執(zhí)行執(zhí)行8051 內(nèi)核提供的指令內(nèi)核提供的指令v設(shè)置代碼斷點(diǎn),以及內(nèi)核中全部指令的單步調(diào)試。設(shè)置代碼斷點(diǎn),以及內(nèi)核中全部指令的單步調(diào)試。使用這些技術(shù),可以很好地執(zhí)行內(nèi)電路的調(diào)試和外使用這些技術(shù),可以很好地執(zhí)行內(nèi)電路的調(diào)試和外部閃存的編程。部閃存的編程。 14 3. 外設(shè)外設(shè)I/O控制器控制器負(fù)責(zé)所有通用負(fù)責(zé)所有通用I/O引腳引腳CPU可以配置外設(shè)模塊是否控制某個(gè)引腳或它們是可以配置外設(shè)模塊是否控制某個(gè)引腳或它們是否受軟件控制,如果是的話,每個(gè)引腳配置為一個(gè)否受軟件控制,如果是的話,每個(gè)引腳配置為一個(gè)輸入還是輸出。輸入還是輸出。CPU 中斷可以分別在每個(gè)引腳上使能。中斷可以分別在每

11、個(gè)引腳上使能。每個(gè)連接到每個(gè)連接到I/O 引腳的外設(shè)可以選擇兩個(gè)不同的引腳的外設(shè)可以選擇兩個(gè)不同的I/O 引腳位置,以確保在不同應(yīng)用程序中的引腳的使用引腳位置,以確保在不同應(yīng)用程序中的引腳的使用不發(fā)生沖突。不發(fā)生沖突。 15 3. 外設(shè)外設(shè)五通道五通道DMA控制器控制器系統(tǒng)可以使用一個(gè)多功能的五通道系統(tǒng)可以使用一個(gè)多功能的五通道DMA控制器,使用控制器,使用XDATA存儲空間訪問存儲器,因此能夠訪問所有物理存儲器。存儲空間訪問存儲器,因此能夠訪問所有物理存儲器。每個(gè)通道(觸發(fā)器、優(yōu)先級、傳輸模式、尋址模式、源和每個(gè)通道(觸發(fā)器、優(yōu)先級、傳輸模式、尋址模式、源和目標(biāo)指針和傳輸計(jì)數(shù))用目標(biāo)指針和傳

12、輸計(jì)數(shù))用DMA 描述符在存儲器任何地方描述符在存儲器任何地方配置。配置。許多硬件外設(shè)(許多硬件外設(shè)(AES 內(nèi)核、閃存控制器、內(nèi)核、閃存控制器、USART、定時(shí)、定時(shí)器、器、ADC 接口)通過使用接口)通過使用DMA 控制器在控制器在SFR 或或XREG 地地址和閃存址和閃存/SRAM 之間進(jìn)行數(shù)據(jù)傳輸,在獲得高效率操作的之間進(jìn)行數(shù)據(jù)傳輸,在獲得高效率操作的同時(shí),大大減輕了內(nèi)核的負(fù)擔(dān)同時(shí),大大減輕了內(nèi)核的負(fù)擔(dān) 16 3. 外設(shè)外設(shè)定時(shí)器定時(shí)器1 定時(shí)器定時(shí)器1 是一個(gè)是一個(gè)16 位定時(shí)器,具有定時(shí)器位定時(shí)器,具有定時(shí)器/PWM 功能。功能。它有它有v一個(gè)可編程的分頻器一個(gè)可編程的分頻器v一個(gè)

13、一個(gè)16 位周期值位周期值v五個(gè)各自可編程的計(jì)數(shù)器五個(gè)各自可編程的計(jì)數(shù)器/捕獲通道,每個(gè)都有一個(gè)捕獲通道,每個(gè)都有一個(gè)16 位比較值位比較值每個(gè)計(jì)數(shù)器每個(gè)計(jì)數(shù)器/捕獲通道可以用作一個(gè)捕獲通道可以用作一個(gè)PWM輸出或捕獲輸入信輸出或捕獲輸入信號邊沿的時(shí)序。它還可以配置在號邊沿的時(shí)序。它還可以配置在IR產(chǎn)生模式,定時(shí)器產(chǎn)生模式,定時(shí)器3 的輸?shù)妮敵鍪怯米钚〉某鍪怯米钚〉腃PU 干涉產(chǎn)生調(diào)制的干涉產(chǎn)生調(diào)制的IR 信號。信號。17 3. 外設(shè)外設(shè)定時(shí)器定時(shí)器2 MAC定時(shí)器(定時(shí)器定時(shí)器(定時(shí)器2)是專門為支持)是專門為支持IEEE 802.15.4 MAC或軟件中其他時(shí)槽的協(xié)議設(shè)計(jì)。或軟件中其他時(shí)槽

14、的協(xié)議設(shè)計(jì)。定時(shí)器有定時(shí)器有v一個(gè)可配置的定時(shí)器周期和一個(gè)一個(gè)可配置的定時(shí)器周期和一個(gè)8 位溢出計(jì)數(shù)器,可以用于保持位溢出計(jì)數(shù)器,可以用于保持跟蹤已經(jīng)過的周期數(shù)。跟蹤已經(jīng)過的周期數(shù)。v一個(gè)一個(gè)16 位捕獲寄存器也用于記錄收到位捕獲寄存器也用于記錄收到/發(fā)送一個(gè)幀開始界定符的發(fā)送一個(gè)幀開始界定符的精確時(shí)間,或傳輸結(jié)束的精確時(shí)間,精確時(shí)間,或傳輸結(jié)束的精確時(shí)間,v還有一個(gè)還有一個(gè)16 位輸出比較寄存器,可以在具體時(shí)間產(chǎn)生不同的選通位輸出比較寄存器,可以在具體時(shí)間產(chǎn)生不同的選通命令(開始命令(開始RX,開始,開始TX,等等)到無線模塊,等等)到無線模塊18 3. 外設(shè)外設(shè)定時(shí)器定時(shí)器3、4 8 位定

15、時(shí)器,具有定時(shí)器位定時(shí)器,具有定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器/PWM 功能。功能。它們有一個(gè)可編程分頻器,一個(gè)可編程計(jì)數(shù)器通道,具有它們有一個(gè)可編程分頻器,一個(gè)可編程計(jì)數(shù)器通道,具有一個(gè)一個(gè)8 位比較值。位比較值。經(jīng)常用作輸出經(jīng)常用作輸出PWM19 3. 外設(shè)外設(shè)睡眠定時(shí)器睡眠定時(shí)器 睡眠定時(shí)器是一個(gè)超低功耗的定時(shí)器,在除了供電睡眠定時(shí)器是一個(gè)超低功耗的定時(shí)器,在除了供電模式模式3 的所有工作模式下不斷運(yùn)行。的所有工作模式下不斷運(yùn)行。睡眠定時(shí)器的典型應(yīng)用是作為實(shí)時(shí)計(jì)數(shù)器,或作為睡眠定時(shí)器的典型應(yīng)用是作為實(shí)時(shí)計(jì)數(shù)器,或作為一個(gè)喚醒定時(shí)器跳出供電模式一個(gè)喚醒定時(shí)器跳出供電模式1 或或2。20 3. 外設(shè)外設(shè)

16、ADC ADC支持支持7到到12位的分辨率,分別在位的分辨率,分別在30 kHz或或4 kHz的帶的帶寬。寬。DC和音頻轉(zhuǎn)換可以使用高達(dá)八個(gè)輸入通道。輸入可以選擇和音頻轉(zhuǎn)換可以使用高達(dá)八個(gè)輸入通道。輸入可以選擇作為單端輸入或差分輸入。作為單端輸入或差分輸入。參考電壓可以是內(nèi)部電壓、參考電壓可以是內(nèi)部電壓、AVDD 或是一個(gè)單端或差分外或是一個(gè)單端或差分外部信號。部信號。ADC 還有一個(gè)溫度傳感輸入通道來測量內(nèi)部溫度。還有一個(gè)溫度傳感輸入通道來測量內(nèi)部溫度。ADC 可以自動執(zhí)行定期抽樣或轉(zhuǎn)換通道序列的程序??梢宰詣訄?zhí)行定期抽樣或轉(zhuǎn)換通道序列的程序。21 3. 外設(shè)外設(shè)隨機(jī)數(shù)發(fā)生器隨機(jī)數(shù)發(fā)生器 使

17、用一個(gè)使用一個(gè)16 位位LFSR 來產(chǎn)生偽隨機(jī)數(shù),這可以被來產(chǎn)生偽隨機(jī)數(shù),這可以被CPU 讀取或由讀取或由選通命令處理器直接使用。例如隨機(jī)數(shù)可以用作產(chǎn)生隨機(jī)密鑰選通命令處理器直接使用。例如隨機(jī)數(shù)可以用作產(chǎn)生隨機(jī)密鑰,用于安全。,用于安全。AES加密加密/解密內(nèi)核允許用戶使用帶有解密內(nèi)核允許用戶使用帶有128位密鑰的位密鑰的AES算法加算法加密和解密數(shù)據(jù)。這一內(nèi)核能夠支持密和解密數(shù)據(jù)。這一內(nèi)核能夠支持IEEE 802.15.4 MAC 安全、安全、ZigBee 網(wǎng)絡(luò)層和應(yīng)用層要求的網(wǎng)絡(luò)層和應(yīng)用層要求的AES 操作。操作。22 3. 外設(shè)外設(shè)看門狗看門狗一個(gè)內(nèi)置的看門狗允許一個(gè)內(nèi)置的看門狗允許CC

18、2530 在固件掛起(跑飛)在固件掛起(跑飛)的情況下復(fù)位自身。的情況下復(fù)位自身。當(dāng)看門狗定時(shí)器由軟件使能,它必須定期清除;否則當(dāng)看門狗定時(shí)器由軟件使能,它必須定期清除;否則,當(dāng)超時(shí)發(fā)生時(shí),就復(fù)位設(shè)備。,當(dāng)超時(shí)發(fā)生時(shí),就復(fù)位設(shè)備??梢耘渲糜米饕粋€(gè)通用可以配置用作一個(gè)通用32kHz 定時(shí)器。定時(shí)器。23 3. 外設(shè)外設(shè)串口串口 USART 0和和USART 1每個(gè)被配置為一個(gè)每個(gè)被配置為一個(gè)SPI主主/從從或一個(gè)或一個(gè)UART。它們?yōu)椤K鼈優(yōu)镽X和和TX提供了雙緩沖,以提供了雙緩沖,以及硬件流控制,因此非常適合于高吞吐量的全雙工及硬件流控制,因此非常適合于高吞吐量的全雙工應(yīng)用。應(yīng)用。每個(gè)串口都有

19、自己的高精度波特率發(fā)生器,因此可每個(gè)串口都有自己的高精度波特率發(fā)生器,因此可以使普通定時(shí)器空閑出來用作其他用途。以使普通定時(shí)器空閑出來用作其他用途。 標(biāo)準(zhǔn)標(biāo)準(zhǔn)51單片機(jī)的串口波特率是怎么設(shè)置的?單片機(jī)的串口波特率是怎么設(shè)置的?24 4. 無線設(shè)備無線設(shè)備 CC2530 具有一個(gè)具有一個(gè)IEEE 802.15.4 兼容無線收發(fā)器。兼容無線收發(fā)器。RF 內(nèi)核控制模擬無線模塊。內(nèi)核控制模擬無線模塊。另外,它提供了另外,它提供了MCU 和無線設(shè)備之間的一個(gè)接口,和無線設(shè)備之間的一個(gè)接口,這使得可以發(fā)出命令,讀取狀態(tài),自動操作和確定這使得可以發(fā)出命令,讀取狀態(tài),自動操作和確定無線設(shè)備事件的順序。無線設(shè)備

20、事件的順序。無線設(shè)備還包括一個(gè)數(shù)據(jù)包過濾和地址識別模塊。無線設(shè)備還包括一個(gè)數(shù)據(jù)包過濾和地址識別模塊。 25 5.1.4 CC2530引腳功能引腳功能26 1. I/O端口引腳功能端口引腳功能21個(gè)可編程個(gè)可編程I/O引腳引腳vP0 P0_0P0_7vP1 P1_0P1_7vP2 P2_0P2_4P1_0、P1_1具有具有20mA輸出驅(qū)動能力輸出驅(qū)動能力其他其他I/0端口具有端口具有4mA輸出驅(qū)動能力輸出驅(qū)動能力通過設(shè)置特殊功能寄存器(通過設(shè)置特殊功能寄存器(SFR),可以將引腳設(shè)置為普),可以將引腳設(shè)置為普通通I/O,或作為外設(shè),或作為外設(shè)I/O全部全部I/O口具有響應(yīng)外部中斷的能力,可喚醒休

21、眠口具有響應(yīng)外部中斷的能力,可喚醒休眠27 2. 電源引腳功能電源引腳功能AVDD1AVDD6:為模擬電路提供:為模擬電路提供2.03.6V電壓電壓DCOUPL:提供:提供1.8V去耦電壓(不為外電路使用)去耦電壓(不為外電路使用)DVDD1、DVDD2:為數(shù)字電路提供:為數(shù)字電路提供2.03.6V電壓電壓GND28 CC2530的供電模式的供電模式29 CC2530的供電模式的供電模式30 3. 控制引腳功能控制引腳功能RESET_n: 負(fù)位,低電平有效負(fù)位,低電平有效RBIAS:為參考電流提供精確的偏置電阻為參考電流提供精確的偏置電阻RF_N:RX期間負(fù)期間負(fù)RF輸入信號到輸入信號到LNA

22、RF_P: RX期間正期間正RF輸入信號到輸入信號到LNAXOSC_01: 32MHz晶振引腳晶振引腳XOSC_02 : 32MHz晶振引腳晶振引腳31 5.1.5 CC2530增強(qiáng)型增強(qiáng)型8051內(nèi)核簡介內(nèi)核簡介CC2530使用標(biāo)準(zhǔn)使用標(biāo)準(zhǔn)51單片機(jī)指令集單片機(jī)指令集每個(gè)指令周期是一個(gè)時(shí)鐘周期每個(gè)指令周期是一個(gè)時(shí)鐘周期32 5.2 通用通用I/O端口端口5.2.1 通用通用I/O端口簡介端口簡介(1)21個(gè)數(shù)字個(gè)數(shù)字I/O引腳引腳 P0: 8 P1: 8 P2: 5(2)可以配置為通用數(shù)字)可以配置為通用數(shù)字I/O引腳或外設(shè)引腳或外設(shè)I/O引腳引腳(3)輸入口具備上拉或下拉能力)輸入口具備上

23、拉或下拉能力(4)具有外部中斷能力,)具有外部中斷能力,21個(gè)個(gè)I/O引腳都可以用作外部中斷引腳都可以用作外部中斷源輸入口,外部中斷可以將源輸入口,外部中斷可以將CC2530從睡眠模式中喚醒從睡眠模式中喚醒33 5.2.2 通用通用I/O端口相關(guān)寄存器端口相關(guān)寄存器(1)PxSEL 用來設(shè)置端口的每個(gè)引腳為通用用來設(shè)置端口的每個(gè)引腳為通用I/O或外設(shè)或外設(shè)I/O(復(fù)位后全部(復(fù)位后全部為通用為通用I/O),其中),其中x為端口號為端口號02(2)PxDIR (0:輸入:輸入 1:輸出):輸出) 用來設(shè)置每個(gè)端口引腳為輸入或輸出,其中用來設(shè)置每個(gè)端口引腳為輸入或輸出,其中x為端口號為端口號02(

24、3)PxINP 在通用在通用I/O端口用作輸入時(shí),將其設(shè)置為上拉、下拉或三態(tài)端口用作輸入時(shí),將其設(shè)置為上拉、下拉或三態(tài)模式。模式。 復(fù)位之后,所有端口均設(shè)置為帶上拉的輸入復(fù)位之后,所有端口均設(shè)置為帶上拉的輸入 配置為外設(shè)配置為外設(shè)I/O的引腳沒有上拉的引腳沒有上拉/下拉功能下拉功能34 5.2.3 實(shí)驗(yàn)實(shí)驗(yàn)1:點(diǎn)亮:點(diǎn)亮LED35 實(shí)驗(yàn)相關(guān)寄存器實(shí)驗(yàn)相關(guān)寄存器36 寄存器配置編程寄存器配置編程37 源程序分析源程序分析/* 文文 件件 名名: main.c* 作作 者者: Andy* 修修 訂訂: 2013-01-08* 版版 本本: 1.0* 描描 述述: GPIO輸出控制實(shí)驗(yàn)輸出控制實(shí)驗(yàn)1

25、 操作操作IO口控制口控制LED燈的亮和滅燈的亮和滅*/#include typedef unsigned char uchar;typedef unsigned int uint;#define LED1 P1_0 / 定義定義P1.0口為口為LED1控制端控制端38 延時(shí)函數(shù)延時(shí)函數(shù)/* 名名 稱稱: DelayMS()* 功功 能能: 以毫秒為單位延時(shí),系統(tǒng)時(shí)鐘不配置時(shí)默認(rèn)為以毫秒為單位延時(shí),系統(tǒng)時(shí)鐘不配置時(shí)默認(rèn)為16M(用示波器測量相當(dāng)用示波器測量相當(dāng)精確精確)* 入口參數(shù)入口參數(shù): msec 延時(shí)參數(shù),值越大,延時(shí)越久延時(shí)參數(shù),值越大,延時(shí)越久* 出口參數(shù)出口參數(shù): 無無*/void

26、 DelayMS(uint msec) uint i,j; for (i=0; imsec; i+) for (j=0; j535; j+);39 初始化函數(shù)初始化函數(shù)/* 名名 稱稱: InitLed()* 功功 能能: 設(shè)置設(shè)置LED燈相應(yīng)的燈相應(yīng)的IO口口* 入口參數(shù)入口參數(shù): 無無* 出口參數(shù)出口參數(shù): 無無*/void InitLed(void) P1DIR |= 0 x01; /P1.0定義為輸出口定義為輸出口40 主函數(shù)主函數(shù)/* 程序入口函數(shù)程序入口函數(shù)*/void main(void) InitLed(); / 設(shè)置設(shè)置LED燈相應(yīng)的燈相應(yīng)的IO口口 while(1) / 無

27、限循環(huán)無限循環(huán) LED1 = 0; / 點(diǎn)亮點(diǎn)亮LED1 DelayMS(1000); / 延時(shí)延時(shí)1秒秒 LED1 = 1; / LED1熄滅熄滅 DelayMS(1000); / 延時(shí)延時(shí)1秒秒 41 5.3 外部中斷外部中斷中斷中斷號碼號碼描述描述名稱名稱中斷中斷號碼號碼描述描述名稱名稱0RF發(fā)送緩沖器空或接收緩沖器滿RFERR9定時(shí)器1溢出T11ADC轉(zhuǎn)換結(jié)束ADC10定時(shí)器2溢出T22USART0 RX完成URX011定時(shí)器3溢出T33USART1 RX完成URX112定時(shí)器4溢出T44AES加解密完成ENC13端口0輸入P0INT5睡眠定時(shí)器比較ST14USART1 TX完成UTX

28、16端口2輸入/USBP2INT15端口1輸入P1INT7USART0 TX完成UTX016RF通用中斷RF8DMA傳送完成DMA17看門狗計(jì)時(shí)溢出WDT5.3.1 中斷概述中斷概述mCC2530有有18個(gè)中斷源,每個(gè)中斷源都有自己的中斷請求標(biāo)志,每個(gè)個(gè)中斷源,每個(gè)中斷源都有自己的中斷請求標(biāo)志,每個(gè)中斷都可以分別使能或禁止中斷都可以分別使能或禁止42 5.3.2 中斷屏蔽中斷屏蔽中斷使能寄存器中斷使能寄存器IEN0、 IEN1、 IEN2v每個(gè)中斷請求可以通過設(shè)置每個(gè)中斷請求可以通過設(shè)置中斷使能寄存器中斷使能寄存器來允許或禁來允許或禁止止v某些外部設(shè)備會因?yàn)槟承┩獠吭O(shè)備會因?yàn)椤笆录录卑l(fā)生而

29、產(chǎn)生中斷請求發(fā)生而產(chǎn)生中斷請求v這些中斷請求可以作用于這些中斷請求可以作用于P0、P1、P2、DMA、計(jì)數(shù)器、計(jì)數(shù)器或或RF上上IEN0.EA總控總控43 表表5.6 中斷使能寄存器中斷使能寄存器 IEN0端口端口 Bit位位 名稱名稱初始化初始化 讀讀/寫寫描述描述IEN07EA0R/W禁止所有中斷0:無中斷被確認(rèn)。1:通過設(shè)置對應(yīng)的使能位,將每個(gè)中斷源分別使能或禁止。60R0不使用,讀取為0值5STIE0R/W睡眠定時(shí)器中斷使能4ENCIE0R/WAES加解密中斷使能3URX1IE0R/W串口1接收中斷使能2URX0IE0R/W串口0接收中斷使能1ADCIE0R/WADC中斷使能0RFER

30、RIE0R/WRF接收/發(fā)送隊(duì)列中斷使能44 表表5.7 中斷使能寄存器中斷使能寄存器IEN1端口端口 Bit位位名稱名稱初始化初始化讀讀/寫寫描述描述IEN17:600R0不使用,讀取為0值5P0IE0R/W端口0中斷使能4T4IE0R/W定時(shí)器4中斷使能3T3IE0R/W定時(shí)器3中斷使能2T2IE0R/W定時(shí)器2中斷使能1T1IE0R/W定時(shí)器1中斷使能0DMAIE0R/WDMA傳輸中斷使能45 表表5.8 中斷使能寄存器中斷使能寄存器IEN2端口端口Bit位位名稱名稱初始化初始化讀讀/寫寫描述描述IEN27:600R0不使用,讀取為0值5WDTIE0R/W看門狗中斷使能4P1IE0R/W

31、端口1中斷使能3UTX1IE0R/W串口1中斷使能2UTX0IE0R/W串口0中斷使能1P2IE0R/W端口2中斷使能0RFIE0R/WRF通用中斷使能46 寄存器寄存器P0IEN、 P1IEN 、 P2IEN為為P0、P1、P2端口每個(gè)引腳設(shè)置中斷使能端口每個(gè)引腳設(shè)置中斷使能見見P67,表,表5.9、表、表5.10、表、表5.1147 中斷使能步驟中斷使能步驟(1)使)使IEN0中的中的IEN0.EA為為1,開總控中斷,開總控中斷(2)設(shè)置寄存器)設(shè)置寄存器IEN0、IEN1、IEN2中相應(yīng)中斷使能位為中相應(yīng)中斷使能位為1(3)如果需要,則設(shè)置)如果需要,則設(shè)置P0、P1、P2各引腳對應(yīng)的各

32、中斷使各引腳對應(yīng)的各中斷使能位為能位為1(4)最后在寄存器)最后在寄存器PICTL中設(shè)置中斷是上升沿還是下降沿觸中設(shè)置中斷是上升沿還是下降沿觸發(fā)發(fā)48 5.3.3 中斷處理中斷處理中斷發(fā)生時(shí),無論該中斷使能或禁止,中斷發(fā)生時(shí),無論該中斷使能或禁止,CPU都會在都會在中斷標(biāo)志寄存器中設(shè)置中斷標(biāo)志位,在程序中可以中斷標(biāo)志寄存器中設(shè)置中斷標(biāo)志位,在程序中可以通過中斷標(biāo)志位來判斷是否發(fā)生了相應(yīng)的中斷通過中斷標(biāo)志位來判斷是否發(fā)生了相應(yīng)的中斷如果設(shè)置中斷標(biāo)志時(shí)使能中斷,在下一指令周期由如果設(shè)置中斷標(biāo)志時(shí)使能中斷,在下一指令周期由硬件產(chǎn)生一個(gè)長調(diào)用指令硬件產(chǎn)生一個(gè)長調(diào)用指令LCALL到對應(yīng)的向量地到對應(yīng)的向

33、量地址,運(yùn)行中斷服務(wù)程序址,運(yùn)行中斷服務(wù)程序中斷的響應(yīng)時(shí)間長短,取決于中斷發(fā)生時(shí)中斷的響應(yīng)時(shí)間長短,取決于中斷發(fā)生時(shí)CPU的狀的狀態(tài)態(tài)49 5.3.3 中斷處理中斷處理某些外部設(shè)備會因?yàn)槿舾墒录a(chǎn)生中斷請求。這些某些外部設(shè)備會因?yàn)槿舾墒录a(chǎn)生中斷請求。這些中斷請求可以作用在端口中斷請求可以作用在端口0、端口、端口1、端口、端口2、定時(shí)、定時(shí)器器1、定時(shí)器、定時(shí)器2、定時(shí)器、定時(shí)器3、定時(shí)器、定時(shí)器4或者無線上?;蛘邿o線上。這些外部設(shè)備在相應(yīng)的寄存器里都有一個(gè)內(nèi)部中斷這些外部設(shè)備在相應(yīng)的寄存器里都有一個(gè)內(nèi)部中斷源的中斷屏蔽位。源的中斷屏蔽位。50 啟用中斷的步驟啟用中斷的步驟為了啟用中斷,需要以

34、下步驟:為了啟用中斷,需要以下步驟:(1)清除中斷標(biāo)志位()清除中斷標(biāo)志位(Clear interrupt flags););(2)如果有,則設(shè)置)如果有,則設(shè)置SFR寄存器中對應(yīng)的各中斷使能位;寄存器中對應(yīng)的各中斷使能位;(3)設(shè)置寄存器)設(shè)置寄存器IEN0、IEN1和和IEN2中對應(yīng)的中斷使能位為中對應(yīng)的中斷使能位為1;(4)設(shè)置全局中斷位)設(shè)置全局中斷位IEN0.EA為為1;(5)在該中斷對應(yīng)的向量地址上,運(yùn)行該中斷的服務(wù)程序。)在該中斷對應(yīng)的向量地址上,運(yùn)行該中斷的服務(wù)程序。51 5.3.3 中斷處理中斷處理當(dāng)中斷發(fā)生時(shí),當(dāng)中斷發(fā)生時(shí),CPU就指向中斷向量地址。一旦中就指向中斷向量地址

35、。一旦中斷服務(wù)開始,就只能夠被更高優(yōu)先級的中斷打斷。斷服務(wù)開始,就只能夠被更高優(yōu)先級的中斷打斷。中斷服務(wù)程序由指令中斷服務(wù)程序由指令RETI終止,當(dāng)執(zhí)行終止,當(dāng)執(zhí)行RETI后,后,CPU將返回到中斷發(fā)生時(shí)的下一條指令。將返回到中斷發(fā)生時(shí)的下一條指令。當(dāng)中斷發(fā)生時(shí),不管該中斷使能或禁止,當(dāng)中斷發(fā)生時(shí),不管該中斷使能或禁止,CPU都會都會在中斷標(biāo)志寄存器中設(shè)置中斷標(biāo)志位。當(dāng)中斷使能在中斷標(biāo)志寄存器中設(shè)置中斷標(biāo)志位。當(dāng)中斷使能時(shí),首先設(shè)置中斷標(biāo)志,然后在下一個(gè)指令周期,時(shí),首先設(shè)置中斷標(biāo)志,然后在下一個(gè)指令周期,由硬件強(qiáng)行產(chǎn)生一個(gè)由硬件強(qiáng)行產(chǎn)生一個(gè)LCALL到對應(yīng)的向量地址,到對應(yīng)的向量地址,運(yùn)行中

36、斷服務(wù)程序。運(yùn)行中斷服務(wù)程序。52 中斷響應(yīng)中斷響應(yīng)新中斷的響應(yīng),取決于該中斷發(fā)生時(shí)新中斷的響應(yīng),取決于該中斷發(fā)生時(shí)CPU的狀態(tài)。的狀態(tài)。當(dāng)當(dāng)CPU正在運(yùn)行的中斷服務(wù)程序,其優(yōu)先級大于或正在運(yùn)行的中斷服務(wù)程序,其優(yōu)先級大于或等于新的中斷時(shí),新的中斷暫不運(yùn)行,直至新的中等于新的中斷時(shí),新的中斷暫不運(yùn)行,直至新的中斷的優(yōu)先級高于正在運(yùn)行的中斷服務(wù)程序。斷的優(yōu)先級高于正在運(yùn)行的中斷服務(wù)程序。中斷響應(yīng)的時(shí)間取決于當(dāng)前的指令,最快的為中斷響應(yīng)的時(shí)間取決于當(dāng)前的指令,最快的為7個(gè)個(gè)機(jī)器指令周期,其中機(jī)器指令周期,其中1個(gè)機(jī)器指令周期用于檢測中個(gè)機(jī)器指令周期用于檢測中斷,其余斷,其余6個(gè)用來執(zhí)行個(gè)用來執(zhí)行L

37、CALL。53 中斷標(biāo)志寄存器中斷標(biāo)志寄存器TCONS0CONS1CONIRCON2P0IFGP1IFGP2IFG54 表表5.12 TCON中斷標(biāo)志寄存器中斷標(biāo)志寄存器1寄存器寄存器 BitBit位位名名稱稱初始化初始化 讀讀/ /寫寫描述描述TCONTCON7URX1IF 0R/WH0USART 1 RX中斷發(fā)生時(shí)設(shè)1,CPU向量指向中斷服務(wù)例程時(shí)清0。0:無中斷未決1:中斷未決60R/W不使用5ADCIF0R/WH0ADC中斷發(fā)生時(shí)設(shè)1,CPU向量指向中斷服務(wù)例程時(shí)清0。0:無中斷未決1:中斷未決40R/W不使用3URX0IF 0R/WH0USART 0 RX中斷發(fā)生時(shí)設(shè)1,CPU向量指

38、向中斷服務(wù)例程時(shí)清0。0:無中斷未決1:中斷未決2IT11R/W保留。必須一直設(shè)1。1RFERRIF0R/WH0RF TX/RX FIFO中斷發(fā)生時(shí)設(shè)1,CPU向量指向中斷服務(wù)例程時(shí)清0。0:無中斷未決1:中斷未決0IT01R/W保留。必須一直設(shè)1。55 表表5.13 S0CON中斷標(biāo)志寄存器中斷標(biāo)志寄存器2寄存器寄存器 Bit位位 名稱名稱初始化初始化讀讀/寫寫描述描述S0CON7:2 000000 R/W不使用1ENCIF_10R/WAES中斷。ENC有兩個(gè)中斷標(biāo)志位,ENCIF_1和ENCIF_0。設(shè)置其中一個(gè)標(biāo)志就好請求中斷服務(wù)。當(dāng)AES協(xié)處理器請求中斷時(shí),兩個(gè)標(biāo)志都有設(shè)置。0:無中斷

39、未決1:中斷未決0ENCIF_00R/WAES中斷。ENC有兩個(gè)中斷標(biāo)志位,ENCIF_1和ENCIF_0。設(shè)置其中一個(gè)標(biāo)志就好請求中斷服務(wù)。當(dāng)AES協(xié)處理器請求中斷時(shí),兩個(gè)標(biāo)志都有設(shè)置。0:無中斷未決1:中斷未決56 表表5.14 S1CON中斷標(biāo)志寄存器中斷標(biāo)志寄存器3寄存器寄存器 Bit位位 名稱名稱初始化初始化讀讀/寫寫描述描述S1CON7:2000000R/W 不使用1RFIF_10R/WRF一般中斷。RF有兩個(gè)中斷標(biāo)志,RFIF_1和RFIF_0,設(shè)置其中一個(gè)標(biāo)志就會請求中斷服務(wù)。當(dāng)無線電請求中斷時(shí)兩個(gè)標(biāo)志都有設(shè)置。0:無中斷未決1:中斷未決0RFIF_00R/WRF一般中斷。RF

40、有兩個(gè)中斷標(biāo)志,RFIF_1和RFIF_0,設(shè)置其中一個(gè)標(biāo)志就會請求中斷服務(wù)。當(dāng)無線電請求中斷時(shí)兩個(gè)標(biāo)志都有設(shè)置。0:無中斷未決1:中斷未決57 寄存器寄存器BitBit位位名名稱稱初始化初始化讀讀/ /寫寫描述描述IRCONIRCON7STIF0R/W睡眠定時(shí)器中斷標(biāo)志位0:無中斷未決1:中斷未決6-0R/W必須一直設(shè)0。5P0IF0R/W端口0中斷標(biāo)志0:無中斷未決1:中斷未決4T4IF0R/WH0定時(shí)器4中斷發(fā)生時(shí)設(shè)1,當(dāng)CPU向量指向中斷服務(wù)例程時(shí)清0。0:無中斷未決1:中斷未決3T3IF0R/WH0定時(shí)器3中斷發(fā)生時(shí)設(shè)1,當(dāng)CPU向量指向中斷服務(wù)例程時(shí)清0。0:無中斷未決1:中斷未決

41、2T2IF0R/WH0定時(shí)器2中斷發(fā)生時(shí)設(shè)1,當(dāng)CPU向量指向中斷服務(wù)例程時(shí)清0。0:無中斷未決1:中斷未決1T1IF0R/WH0定時(shí)器1中斷發(fā)生時(shí)設(shè)1,當(dāng)CPU向量指向中斷服務(wù)例程時(shí)清0。0:無中斷未決1:中斷未決0DMAIF0R/WDMA完成中斷標(biāo)志0:無中斷未決1:中斷未決58 表表5.16 IRCON2中斷標(biāo)志寄存器中斷標(biāo)志寄存器5寄存器寄存器Bit位位名稱名稱初始化初始化讀讀/寫寫描述描述IRCON27:5000R/W不使用4WDTIF0R/W看門狗定時(shí)器中斷標(biāo)志0:無中斷未決1:中斷未決3P1IF0R/W端口1中斷標(biāo)志0:無中斷未決1:中斷未決2UTX1IF0R/WUSART 1

42、TX中斷標(biāo)志0:無中斷未決1:中斷未決1UTX0IF0R/WUSART 0 TX中斷標(biāo)志0:無中斷未決1:中斷未決0P2IF0R/W端口2中斷標(biāo)志0:無中斷未決1:中斷未決59 中斷優(yōu)先級中斷優(yōu)先級CC2530的的中斷可劃分為中斷可劃分為6個(gè)中斷優(yōu)先組,每組的個(gè)中斷優(yōu)先組,每組的優(yōu)先級通過設(shè)置寄存器優(yōu)先級通過設(shè)置寄存器IP0和和IP1來實(shí)現(xiàn)。來實(shí)現(xiàn)。為了給中斷(也就是它所在的中斷優(yōu)先組)賦值優(yōu)為了給中斷(也就是它所在的中斷優(yōu)先組)賦值優(yōu)先級,需要設(shè)置先級,需要設(shè)置IP0和和IP1的對應(yīng)位。的對應(yīng)位。60 中斷優(yōu)先級中斷優(yōu)先級端口端口 Bit位位名稱名稱初始化初始化讀讀/寫寫描述描述IP17:6

43、-00R/W沒使用5IP1_IPG50R/W中斷第5組,優(yōu)先級控制位14IP1_IPG40R/W中斷第4組,優(yōu)先級控制位13IP1_IPG30R/W中斷第3組,優(yōu)先級控制位12IP1_IPG20R/W中斷第2組,優(yōu)先級控制位11IP1_IPG10R/W中斷第1組,優(yōu)先級控制位10IP1_IPG00R/W中斷第0組,優(yōu)先級控制位161 中斷優(yōu)先級中斷優(yōu)先級端口端口 Bit位位名稱名稱初始化初始化讀讀/寫寫描述描述IP07:6-00R/W 沒使用5IP0_IPG50R/W 中斷第5組,優(yōu)先級控制位04IP0_IPG40R/W 中斷第4組,優(yōu)先級控制位03IP0_IPG30R/W 中斷第3組,優(yōu)先級

44、控制位02IP0_IPG20R/W 中斷第2組,優(yōu)先級控制位01IP0_IPG10R/W 中斷第1組,優(yōu)先級控制位00IP0_IPG00R/W 中斷第0組,優(yōu)先級控制位062 中斷優(yōu)先級設(shè)置中斷優(yōu)先級設(shè)置中斷優(yōu)先級及其賦值的中斷源顯示在中斷優(yōu)先級及其賦值的中斷源顯示在下下表中,每組表中,每組賦值為賦值為4個(gè)中斷優(yōu)先級之一。個(gè)中斷優(yōu)先級之一。當(dāng)進(jìn)行中斷服務(wù)請求時(shí),不允許被同級或較低級別當(dāng)進(jìn)行中斷服務(wù)請求時(shí),不允許被同級或較低級別的中斷打斷。的中斷打斷。IP1_XIP0_X優(yōu)先級優(yōu)先級000(最低)011102113(最高)63 中斷優(yōu)先組中斷優(yōu)先組組組中斷中斷IPG0PEERRRFDMAIPG1

45、ADCT1P2INTIPG2URX0T2UTX0IPG3URX1T3UTX1IPG4ENCT4P1INTIPG5STP0INTWDT64 5.3.4 實(shí)驗(yàn):按鍵中斷控制實(shí)驗(yàn):按鍵中斷控制LED(1)實(shí)驗(yàn)?zāi)康模海?shí)驗(yàn)?zāi)康模簐編程實(shí)現(xiàn)按鍵控制編程實(shí)現(xiàn)按鍵控制LED1和和LED2交替閃爍,掌握通用交替閃爍,掌握通用I/O端口中斷處理方法端口中斷處理方法(2)實(shí)驗(yàn)步驟與現(xiàn)象:)實(shí)驗(yàn)步驟與現(xiàn)象:v按鍵按鍵S1,控制,控制LED1和和LED2交替閃爍交替閃爍65 5.3.4 實(shí)驗(yàn):按鍵中斷控制實(shí)驗(yàn):按鍵中斷控制LED程序程序#include #include “exboard.h”void main()

46、P0SEL &= 0 x02; P0INP |= 0 x02;/ 上拉上拉 P0IEN |= 0 x02;/ P0_1設(shè)置為中斷方式設(shè)置為中斷方式 PICTL |= 0 x02;/ 下降沿觸發(fā)下降沿觸發(fā) EA = 1; IEN1 |=0 x20;/ P0設(shè)置為中斷方式設(shè)置為中斷方式 P0IFG |=0 x00;/ 初始化中斷標(biāo)志位初始化中斷標(biāo)志位 P1SEL &= 0 xc0;/ 設(shè)置設(shè)置LED P1DIR |= 0 xc0; led1 = 1; led2 = 0; while(1);66 5.3.4 實(shí)驗(yàn):按鍵中斷控制實(shí)驗(yàn):按鍵中斷控制LED程序程序#pragma vector = POIN

47、T_VECTOR_interrupt void P0_ISR(void) if(P0IFG0) led1= !led1; led2 = !led2; P0IFG = 0;/ 清除清除P0_0中斷標(biāo)志中斷標(biāo)志 P0IF = 0;/ 清除清除P0中斷標(biāo)志中斷標(biāo)志 67 5.4 定時(shí)器定時(shí)器5.4.1 片內(nèi)外設(shè)片內(nèi)外設(shè)I/O5.4.2 定時(shí)器簡介定時(shí)器簡介5.4.3 定時(shí)器定時(shí)器1寄存器寄存器5.4.4 定時(shí)器定時(shí)器1操作操作5.4.5 16位計(jì)數(shù)器位計(jì)數(shù)器5.4.6 實(shí)驗(yàn)實(shí)驗(yàn)1:定時(shí)器:定時(shí)器1控制控制LED閃爍閃爍5.4.7 定時(shí)器定時(shí)器3概述概述5.4.8 實(shí)驗(yàn)實(shí)驗(yàn)2:定時(shí)器:定時(shí)器1、3同時(shí)

48、控制同時(shí)控制LED1、268 5.4.1 片內(nèi)外設(shè)片內(nèi)外設(shè)I/O片內(nèi)外設(shè):片內(nèi)外設(shè):USART、定時(shí)器、定時(shí)器、ADC需要通過需要通過I/O口實(shí)現(xiàn)其功能口實(shí)現(xiàn)其功能片內(nèi)外設(shè)使用的片內(nèi)外設(shè)使用的I/O口可以有兩個(gè)不同的選擇口可以有兩個(gè)不同的選擇表表5-20 外設(shè)外設(shè)I/O引腳映射引腳映射外外設(shè)設(shè)/ /功能功能P0P0P1P17654321076543210ADCA7A6A5A4A3A2A1A0USART0SPICSSM0M1M0M0M1M1C CSSSSUSART0UARTRTCTTXRXTXTXRXRXRTRTCTCTUSART1SPIM1M0CSSM1M1M0M0C CSSSSUSART1U

49、ARTRXTXRTCTRXRXTXTXRTRTCTCT69 通用通用I/O或外設(shè)或外設(shè)I/O的選擇的選擇當(dāng)引腳被用作通用當(dāng)引腳被用作通用I/O時(shí),需要設(shè)置對應(yīng)的時(shí),需要設(shè)置對應(yīng)的PxSEL=0當(dāng)引腳被用作外設(shè)當(dāng)引腳被用作外設(shè)I/O時(shí),需要設(shè)置對應(yīng)的時(shí),需要設(shè)置對應(yīng)的PxSEL=1外外設(shè)設(shè)/ /功能功能P0P0P1P17654321076543210ADCADCA7A7A6A6A5A5A4A4A3A3A2A2A1A1A0A0USART0USART0SPISPIC CSSSSM0M0M1M1M0M0M1M1C CSSSSUSART0USART0UARTUARTRTRTCTCTTXTXRXRXTXT

50、XRXRXRTRTCTCTUSART1USART1SPISPIM1M1M0M0C CSSSSM1M1M0M0C CSSSSUSART1USART1UARTUARTRXRXTXTXRTRTCTCTRXRXTXTXRTRTCTCT70 5.4.1 片內(nèi)外設(shè)片內(nèi)外設(shè)I/O表表5.21 寄存器寄存器PERCFG芯片復(fù)位后,芯片復(fù)位后,PERCFG各位初始值均為各位初始值均為0,默認(rèn)選擇,默認(rèn)選擇備用位置備用位置1位位名名稱稱復(fù)復(fù)位位R/WR/W對對象象描述描述7 70 0R0R0沒沒有使用有使用6 6T1CFGT1CFG0 0R/WR/W定定時(shí)時(shí)器器1 10 0:備備用位置用位置1 11 1:備備用位

51、置用位置2 25 5T3CFGT3CFG0 0R/WR/W定定時(shí)時(shí)器器3 30 0:備備用位置用位置1 11 1:備備用位置用位置2 24 4T4CFGT4CFG0 0R/WR/W定定時(shí)時(shí)器器4 40 0:備備用位置用位置1 11 1:備備用位置用位置2 23 30 0R0R0沒沒有使用有使用2 20 0R0R0沒沒有使用有使用1 1U1CFGU1CFG0 0R/WR/WUSART1USART10 0:備備用位置用位置1 11 1:備備用位置用位置2 20 0U0CFGU0CFG0 0R/WR/WUSART0USART00 0:備備用位置用位置1 11 1:備備用位置用位置2 271 5.4.

52、2 定時(shí)器簡介定時(shí)器簡介CC2530共有共有4個(gè)定時(shí)器個(gè)定時(shí)器T116位定時(shí)器,支持輸入采樣、輸出比較和位定時(shí)器,支持輸入采樣、輸出比較和PWM功功能。能。T1有有5個(gè)獨(dú)立的輸入采樣個(gè)獨(dú)立的輸入采樣/輸出比較通道,每個(gè)通道對輸出比較通道,每個(gè)通道對應(yīng)一個(gè)應(yīng)一個(gè)I/O口口T2MAC定時(shí)器定時(shí)器T3、T48位定時(shí)器,支持輸出比較和位定時(shí)器,支持輸出比較和PWM功能。功能。 T3、T4有兩個(gè)獨(dú)立的輸出比較通道,每個(gè)通道對應(yīng)一個(gè)有兩個(gè)獨(dú)立的輸出比較通道,每個(gè)通道對應(yīng)一個(gè)I/O口口72 5.4.3 定時(shí)器定時(shí)器1寄存器寄存器PERCFG.T1CFG選擇端口使用備用位置選擇端口使用備用位置1還是備還是備用

53、位置用位置2定時(shí)器定時(shí)器1包含以下寄存器:包含以下寄存器:(1)T1CNTH定時(shí)器定時(shí)器1計(jì)數(shù)高位計(jì)數(shù)高位(2)T1CNTL定時(shí)器定時(shí)器1計(jì)數(shù)低位計(jì)數(shù)低位(3)T1CTL定時(shí)器定時(shí)器1控制控制(4)T1STAT定時(shí)器定時(shí)器1狀態(tài)狀態(tài)73 5.4.3 定時(shí)器定時(shí)器1寄存器寄存器表表5.24 T1CTL定時(shí)器定時(shí)器1的控制寄存器的控制寄存器位位名名稱稱復(fù)復(fù)位位R/WR/W描述描述7:47:400000000R0R0保留保留3:23:2DIVDIV0000R/WR/W0000:標(biāo)記頻標(biāo)記頻率率/1/10000:標(biāo)記頻標(biāo)記頻率率/8/80000:標(biāo)記頻標(biāo)記頻率率/32/320000:標(biāo)記頻標(biāo)記頻率率/

54、128/1281:01:0MODEMODE0000R/WR/W0000:暫暫停停運(yùn)運(yùn)行行0101:自由:自由運(yùn)運(yùn)行,行,從從0 x00000 x0000到到0 xFFFF0 xFFFF反反復(fù)計(jì)數(shù)復(fù)計(jì)數(shù)1010:模,:模,從從0 x00000 x0000到到T1CC0T1CC0反反復(fù)計(jì)數(shù)復(fù)計(jì)數(shù)1111:正:正計(jì)數(shù)計(jì)數(shù)/ /倒倒計(jì)數(shù)計(jì)數(shù),從從0 x00000 x0000到到T1CC0T1CC0,然后,然后從從T1CC0T1CC0到到0 x00000 x0000反反復(fù)計(jì)數(shù)復(fù)計(jì)數(shù)74 5.4.3 定時(shí)器定時(shí)器1寄存器寄存器表表5.25 T1STAT定時(shí)器定時(shí)器1的狀態(tài)寄存器的狀態(tài)寄存器位位名名稱稱復(fù)復(fù)

55、位位R/WR/W描述描述7:600R0保留5OVFIF0R/W0定時(shí)器1計(jì)數(shù)器溢出中斷標(biāo)志4CH4IF0R/W0定時(shí)器1通道4中斷標(biāo)志,當(dāng)通道4中斷條件發(fā)生時(shí)設(shè)置,寫1沒有影響3CH3IF0R/W0定時(shí)器1通道3中斷標(biāo)志,當(dāng)通道3中斷條件發(fā)生時(shí)設(shè)置,寫1沒有影響2CH2IF0R/W0定時(shí)器1通道2中斷標(biāo)志,當(dāng)通道2中斷條件發(fā)生時(shí)設(shè)置,寫1沒有影響1CH1IF0R/W0定時(shí)器1通道1中斷標(biāo)志,當(dāng)通道1中斷條件發(fā)生時(shí)設(shè)置,寫1沒有影響0CH0IF0R/W0定時(shí)器1通道0中斷標(biāo)志,當(dāng)通道0中斷條件發(fā)生時(shí)設(shè)置,寫1沒有影響75 5.4.4 定時(shí)器定時(shí)器1操作操作1.自由運(yùn)行模式自由運(yùn)行模式計(jì)數(shù)器從計(jì)數(shù)

56、器從0 x0000開始,每個(gè)時(shí)鐘周期加開始,每個(gè)時(shí)鐘周期加1 。當(dāng)計(jì)數(shù)到。當(dāng)計(jì)數(shù)到0 xFFFF之后,自動載入之后,自動載入0 x0000,從頭開始遞增計(jì)數(shù)。,從頭開始遞增計(jì)數(shù)。當(dāng)達(dá)到最終計(jì)數(shù)值當(dāng)達(dá)到最終計(jì)數(shù)值0 xFFFF,設(shè)置標(biāo)志,設(shè)置標(biāo)志IRCON.T1IF和和T1STAT.OVFIF如果設(shè)置了相應(yīng)的中斷屏蔽位如果設(shè)置了相應(yīng)的中斷屏蔽位TIMIF.OVFIM以及以及IEN1.T1IE,將產(chǎn)生一個(gè)中斷請求,將產(chǎn)生一個(gè)中斷請求0 xFFFF0 xFFFF0 x00000 x0000OVFLOVFLOVFLOVFL76 5.4.4 定時(shí)器定時(shí)器1操作操作2.“模?!蹦J侥J接?jì)數(shù)器從計(jì)數(shù)器從0

57、x0000開始,每個(gè)時(shí)鐘周期加開始,每個(gè)時(shí)鐘周期加1。當(dāng)計(jì)數(shù)器達(dá)到寄。當(dāng)計(jì)數(shù)器達(dá)到寄存器存器T1CC0的預(yù)設(shè)值時(shí),自動從的預(yù)設(shè)值時(shí),自動從0 x0000開始重新遞增計(jì)數(shù)開始重新遞增計(jì)數(shù)當(dāng)達(dá)到最終計(jì)數(shù)值時(shí),設(shè)置標(biāo)志當(dāng)達(dá)到最終計(jì)數(shù)值時(shí),設(shè)置標(biāo)志IRCON.T1IF和和T1STAT.OVFIF如果設(shè)置了相應(yīng)的中斷屏蔽位如果設(shè)置了相應(yīng)的中斷屏蔽位TIMIF.OVFIM以及以及IEN1.T1IE,將產(chǎn)生一個(gè)中斷請求,將產(chǎn)生一個(gè)中斷請求T1CC0T1CC00 x00000 x0000OVFLOVFLOVFLOVFL77 5.4.4 定時(shí)器定時(shí)器1操作操作3.正計(jì)數(shù)正計(jì)數(shù)/倒計(jì)數(shù)模式倒計(jì)數(shù)模式計(jì)數(shù)器從計(jì)數(shù)器

58、從0 x0000開始計(jì)數(shù),遞增計(jì)數(shù)到開始計(jì)數(shù),遞增計(jì)數(shù)到T1CC0,然后遞減,然后遞減計(jì)數(shù)直到計(jì)數(shù)直到0 x0000,如此反復(fù),如此反復(fù)當(dāng)達(dá)到最終計(jì)數(shù)值時(shí),設(shè)置標(biāo)志當(dāng)達(dá)到最終計(jì)數(shù)值時(shí),設(shè)置標(biāo)志IRCON.T1IF和和T1STAT.OVFIF如果設(shè)置了相應(yīng)的中斷屏蔽位如果設(shè)置了相應(yīng)的中斷屏蔽位TIMIF.OVFIM以及以及IEN1.T1IE,將產(chǎn)生一個(gè)中斷請求,將產(chǎn)生一個(gè)中斷請求T1CC0T1CC00 x00000 x0000OVFLOVFLOVFLOVFL78 5.4.5 16位計(jì)數(shù)器位計(jì)數(shù)器定時(shí)器定時(shí)器1包括一個(gè)包括一個(gè)16位計(jì)數(shù)器,由位計(jì)數(shù)器,由T1CNTH、T1CNTL構(gòu)成,在每個(gè)活動時(shí)

59、鐘邊沿遞增或遞減構(gòu)成,在每個(gè)活動時(shí)鐘邊沿遞增或遞減時(shí)鐘周期由時(shí)鐘周期由CLKCON.TICKSPD定義定義系統(tǒng)時(shí)鐘晶振頻率為系統(tǒng)時(shí)鐘晶振頻率為1953.125Hz32MHz定時(shí)器定時(shí)器1中的中的T1CTL.DIV用來設(shè)置分頻比(用來設(shè)置分頻比(1、8、32、128)向向T1CTL.MODE寫入寫入00,計(jì)數(shù)器停止在前值上,計(jì)數(shù)器停止在前值上 01,自由運(yùn)行模式,自由運(yùn)行模式 10,“模?!蹦J侥J?11,正計(jì)數(shù),正計(jì)數(shù)/倒計(jì)數(shù)模式倒計(jì)數(shù)模式79 5.4.6 實(shí)驗(yàn)實(shí)驗(yàn)1:定時(shí)器:定時(shí)器1控制控制LED閃爍閃爍(1)實(shí)驗(yàn)?zāi)康模憾〞r(shí)器)實(shí)驗(yàn)?zāi)康模憾〞r(shí)器1控制控制LED,掌握定時(shí)器,掌握定時(shí)器/計(jì)數(shù)器

60、的使計(jì)數(shù)器的使用方法用方法(2)實(shí)驗(yàn)現(xiàn)象:)實(shí)驗(yàn)現(xiàn)象:LED大約大約5s閃爍一次閃爍一次(3)程序分析)程序分析在主函數(shù)中,程序首先開放在主函數(shù)中,程序首先開放T1的溢出中斷,然后和設(shè)置的溢出中斷,然后和設(shè)置T1CTL,使,使T1處于處于8分頻的自由運(yùn)行模式,所以分頻的自由運(yùn)行模式,所以T1的計(jì)數(shù)器的計(jì)數(shù)器每每8/(32x106)= 0.25微秒加微秒加1。在自由運(yùn)行模式下,在自由運(yùn)行模式下,T1從從0計(jì)數(shù)到計(jì)數(shù)到0 xFFFF,約需,約需0.16s,產(chǎn)生一次溢出中斷產(chǎn)生一次溢出中斷在中斷處理程序中,記錄中斷發(fā)生的次數(shù),每當(dāng)計(jì)滿在中斷處理程序中,記錄中斷發(fā)生的次數(shù),每當(dāng)計(jì)滿300次時(shí),控制次時(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論