版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
ZigBee無線傳感器網(wǎng)絡(luò)設(shè)計(jì)實(shí)戰(zhàn)全套可編輯PPT課件以任務(wù)驅(qū)動(dòng)方式介紹了CC2530單片機(jī)開發(fā)和ZigBee協(xié)議棧開發(fā)的基礎(chǔ)知識(shí),主要內(nèi)容包括搭建ZigBee開發(fā)環(huán)境、CC2530單片機(jī)基礎(chǔ)開發(fā)和進(jìn)階開發(fā)、ZigBee無線網(wǎng)絡(luò)入門和提高、ZigBee無線網(wǎng)絡(luò)串口應(yīng)用、ZigBee無線網(wǎng)絡(luò)管理、ZigBee無線網(wǎng)絡(luò)綜合實(shí)戰(zhàn)1PARTONE搭建ZigBee開發(fā)環(huán)境CONTENT目錄3412實(shí)訓(xùn)1-1安裝IAR軟件和硬件驅(qū)動(dòng)實(shí)訓(xùn)1-2新建與調(diào)試ZigBee工程實(shí)訓(xùn)1-3認(rèn)識(shí)ZigBee實(shí)訓(xùn)設(shè)備實(shí)訓(xùn)1-4學(xué)習(xí)ZigBee開發(fā)板電路實(shí)訓(xùn)簡(jiǎn)介本書要用到的IAR軟件即IAREmbeddedWorkbenchfor8051,它是ZigBee的軟件開發(fā)環(huán)境,通過它可以編寫和調(diào)試程序,并將程序下載到ZigBee硬件(如CC2530芯片)中去,進(jìn)而實(shí)現(xiàn)各種應(yīng)用。本實(shí)訓(xùn)主要介紹IAR軟件和硬件驅(qū)動(dòng)的安裝方法。實(shí)訓(xùn)目的1
掌握IAR軟件的安裝方法。2
掌握仿真器驅(qū)動(dòng)和USB轉(zhuǎn)串口驅(qū)動(dòng)的安裝方法。實(shí)訓(xùn)內(nèi)容IAR軟件的安裝。1各種硬件驅(qū)動(dòng)的安裝。2軟件安裝結(jié)果的驗(yàn)證。3知識(shí)鏈接1.物聯(lián)網(wǎng)物聯(lián)網(wǎng)(InternetofThings),是指通過二維碼識(shí)讀設(shè)備、射頻識(shí)別(RFID)裝置、紅外感應(yīng)器、全球定位系統(tǒng)和激光掃描器等信息傳感設(shè)備,按約定的協(xié)議,把任何物體與互聯(lián)網(wǎng)相連接,進(jìn)行信息交換和通信,以實(shí)現(xiàn)智能化識(shí)別、定位、跟蹤、監(jiān)控和管理的一種網(wǎng)絡(luò)。如今,物聯(lián)網(wǎng)與各個(gè)行業(yè)不斷融合,行業(yè)應(yīng)用穩(wěn)步發(fā)展,并蘊(yùn)含巨大空間,如下圖所示。物聯(lián)網(wǎng)應(yīng)用示意圖從市場(chǎng)應(yīng)用來看,占據(jù)中國(guó)物聯(lián)網(wǎng)市場(chǎng)主要份額的領(lǐng)域?yàn)橹悄芄I(yè)、智能物流、智能交通、智能電網(wǎng)、智能醫(yī)療、智能農(nóng)業(yè)、智能環(huán)保和智能家居。其中,智能工業(yè)占比最大。從技術(shù)架構(gòu)上看,物聯(lián)網(wǎng)可以分為3層,即感知層、網(wǎng)絡(luò)層和應(yīng)用層,如右圖所示。物聯(lián)網(wǎng)架構(gòu)示意圖感知層:位于最底層,相當(dāng)于人體的皮膚和五官。它利用RFID、攝像頭、傳感器、GPS、二維碼等隨時(shí)隨地識(shí)別和獲取物體的信息。
網(wǎng)絡(luò)層:位于中間層,相當(dāng)于人體的神經(jīng)中樞和大腦。它通過移動(dòng)通信網(wǎng)絡(luò)與互聯(lián)網(wǎng)的融合,將物體的信息實(shí)時(shí)準(zhǔn)確地傳遞出去。
應(yīng)用層:位于最頂層,相當(dāng)于人的社會(huì)分工。它與行業(yè)需求相結(jié)合,對(duì)感知層得到的信息進(jìn)行處理,實(shí)現(xiàn)智能化識(shí)別、定位、跟蹤、監(jiān)控和管理等實(shí)際應(yīng)用。
感知層是物聯(lián)網(wǎng)發(fā)展和應(yīng)用的基礎(chǔ),解決的是人類世界和物理世界的數(shù)據(jù)獲取問題。它實(shí)際上包含了數(shù)據(jù)采集和數(shù)據(jù)短距離傳輸兩個(gè)過程。即首先通過傳感器、攝像頭等設(shè)備采集外部物理世界的數(shù)據(jù),然后通過ZigBee、藍(lán)牙、Wi-Fi、工業(yè)現(xiàn)場(chǎng)總線等短距離無線或有線通信技術(shù)進(jìn)行協(xié)同工作,或者傳遞數(shù)據(jù)到網(wǎng)關(guān)設(shè)備。在感知層,傳感器、條形碼、二維碼、RFID、智能裝置、通信模塊等設(shè)備組成了一個(gè)無線傳感器網(wǎng)絡(luò),該網(wǎng)絡(luò)負(fù)責(zé)將采集的數(shù)據(jù)傳送至網(wǎng)絡(luò)層。2.無線傳感器網(wǎng)絡(luò)無線傳感器網(wǎng)絡(luò)(WirelessSensorNetwork,WSN),是由部署在監(jiān)測(cè)區(qū)域內(nèi)的大量傳感器節(jié)點(diǎn)(即微型傳感器)通過無線通信方式形成的自組織網(wǎng)絡(luò),其目的是感知、采集和處理網(wǎng)絡(luò)覆蓋區(qū)域中被感知對(duì)象的信息,并發(fā)送給觀察者。無線傳感器網(wǎng)絡(luò)的基本功能就是將一系列空間分散的傳感器節(jié)點(diǎn)通過自組織的無線網(wǎng)絡(luò)進(jìn)行連接,從而將各自采集的數(shù)據(jù)通過無線網(wǎng)絡(luò)進(jìn)行傳輸匯總,以實(shí)現(xiàn)對(duì)空間分散范圍內(nèi)的物理或環(huán)境狀況的協(xié)作監(jiān)控,并根據(jù)這些信息進(jìn)行相應(yīng)的分析和處理。無線傳感器網(wǎng)絡(luò)具有分布控制、無中心和多跳傳輸?shù)忍攸c(diǎn),但它集成了監(jiān)測(cè)、控制和無線通信等功能,還具有如下一些主要特點(diǎn):01節(jié)點(diǎn)數(shù)量更加龐大,節(jié)點(diǎn)分布更加密集。02由于環(huán)境影響和能量耗盡,節(jié)點(diǎn)更容易出現(xiàn)故障。03環(huán)境干擾和節(jié)點(diǎn)故障易造成網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的變化。04要控制網(wǎng)絡(luò)整體成本,就必須降低單個(gè)節(jié)點(diǎn)的成本。05無線傳感器網(wǎng)絡(luò)以數(shù)據(jù)為中心,其核心是感知數(shù)據(jù)而不是網(wǎng)絡(luò)硬件,通常情況下,大多數(shù)傳感器節(jié)點(diǎn)是固定不動(dòng)的。無線傳感器網(wǎng)絡(luò)是構(gòu)建物聯(lián)網(wǎng)的最基本網(wǎng)絡(luò),傳感器作為感知的最前端探測(cè)和搜集信號(hào),之后則需要各種有線和無線的通信技術(shù)進(jìn)行設(shè)備相互間的通信交流。最后100m的短距離接入則主要是通過無線傳感器網(wǎng)絡(luò)來實(shí)現(xiàn)的,其中ZigBee被認(rèn)為是目前最適合無線傳感器網(wǎng)絡(luò)接入端的短距離無線通信技術(shù)。3.ZigBee技術(shù)ZigBee是由ZigBee聯(lián)盟基于IEEE802.15.4無線標(biāo)準(zhǔn)研制開發(fā)的一種近距離、低復(fù)雜度、低功耗、低速率、低成本的組網(wǎng)、安全和應(yīng)用軟件方面的無線通信技術(shù),它正在成為消費(fèi)電子、能源、住宅、商業(yè)和工業(yè)領(lǐng)域廣泛采用的領(lǐng)先無線聯(lián)網(wǎng)、傳感和控制標(biāo)準(zhǔn)。ZigBee可以實(shí)現(xiàn)傳輸節(jié)點(diǎn)自組織,采用分組交換和跳頻技術(shù),并且可使用3個(gè)ISM頻段,分別是868MHz頻段(歐洲適用)、915MHz頻段(北美適用)和2.4GHz頻段(全球通用)。868MHz頻段:定義了1個(gè)信道,擁有20Kbps的傳輸速率。1915MHz頻段:定義了10個(gè)信道,信道中心間隔為2MHz,擁有40Kbps的傳輸速率。22.4GHz頻段:定義了16個(gè)信道,信道中心間隔為5MHz,擁有250Kbps的傳輸速率。3總結(jié)而言,ZigBee主要具有以下特點(diǎn)。 功耗低 成本低 時(shí)延短 可靠性高 安全性高 有效范圍小 網(wǎng)絡(luò)容量大 工作頻段靈活 數(shù)據(jù)傳輸速率低:在家庭/商業(yè)自動(dòng)化、智慧能源、健康醫(yī)療及零售等領(lǐng)域,ZigBee也被證明是可靠的無線網(wǎng)絡(luò)解決方案,如右圖所示。ZigBee技術(shù)應(yīng)用示意圖4.ZigBee與CC2530芯片的關(guān)系ZigBee的作用是構(gòu)建無線局域網(wǎng),無線傳感器網(wǎng)絡(luò)是無線局域網(wǎng)的一個(gè)具體應(yīng)用。ZigBee無線網(wǎng)絡(luò)在軟件上需要ZigBee協(xié)議棧,且在硬件上需要支持ZigBee底層協(xié)議的某種芯片,這樣各硬件設(shè)備之間才可以通過ZigBee協(xié)議進(jìn)行通信?;诖耍绹?guó)德州儀器(TI)公司開發(fā)了Z-Stack協(xié)議棧,還研發(fā)了一系列支持ZigBee底層協(xié)議的芯片(如CC2430、CC2431、CC2530、CC2531、CC2538等),它們都是與Z-Stack協(xié)議棧配合使用的ZigBee芯片。在使用Z-Stack協(xié)議棧時(shí),大多采用CC2530芯片。CC2530根據(jù)閃存容量不同,有4種類型,其中,CC2530F256提供了強(qiáng)大、完善的ZigBee解決方案。CC2530F256CC2530F32CC2530F64CC2530F128CC253032KB的閃存空間64KB的閃存空間128KB的閃存空間256KB的閃存空間5.IAR軟件開發(fā)環(huán)境IAR是一套完整的集成開發(fā)工具集合,包括從代碼編輯器、工程建立到C/C++編譯器、連接器和調(diào)試器的各類開發(fā)工具。它和各種仿真器、調(diào)試器緊密結(jié)合,使用戶在開發(fā)和調(diào)試中僅使用一種開發(fā)環(huán)境界面就可完成對(duì)多種微控制器的開發(fā)。實(shí)施步驟本書采用的IAR版本為IAREmbeddedWorkbenchfor80518.10.1,其安裝包位于本書“教學(xué)資源包”>“相關(guān)軟件和驅(qū)動(dòng)”>“CD-EW8051-8101”文件夾下。步驟部分參照書中描述。1安裝IAR軟件安裝完IAR軟件以后,連接硬件時(shí)還需要安裝必要的驅(qū)動(dòng),一般包括仿真器驅(qū)動(dòng)和USB轉(zhuǎn)串口驅(qū)動(dòng)。其中,仿真器驅(qū)動(dòng)用來實(shí)現(xiàn)電腦和仿真器設(shè)備之間的順利連接,完成程序下載;USB轉(zhuǎn)串口驅(qū)動(dòng)用來將電腦的USB接口轉(zhuǎn)換成模擬串口使用。2常用驅(qū)動(dòng)的安裝1)安裝仿真器驅(qū)動(dòng)首次將仿真器設(shè)備連接到電腦時(shí),桌面右下角會(huì)彈出“未能成功安裝設(shè)備驅(qū)動(dòng)程序”提示,如右圖所示。此時(shí),可按書中步驟完成仿真器驅(qū)動(dòng)的安裝。驅(qū)動(dòng)未安裝提示2)安裝USB轉(zhuǎn)串口驅(qū)動(dòng)直接用數(shù)據(jù)線將ZigBee底板和電腦USB口相連,“設(shè)備管理器”窗口中會(huì)出現(xiàn)未識(shí)別的硬件,如右圖所示,此時(shí)需要安裝USB轉(zhuǎn)串口驅(qū)動(dòng)。未安裝USB轉(zhuǎn)串口驅(qū)動(dòng)USB轉(zhuǎn)串口驅(qū)動(dòng)有多種,此處以PL2303轉(zhuǎn)串口驅(qū)動(dòng)為例進(jìn)行介紹,雙擊可執(zhí)行文件“PL2303_Prolific_DriverInstaller_v10518.exe”,出現(xiàn)安裝向?qū)?,單擊“下一步”按鈕,即可快速完成安裝。安裝完成后,可在“設(shè)備管理器”窗口中找到模擬串口,即ProlificUSB-to-SerialCommPort(COM3),如右圖所示。成功安裝USB轉(zhuǎn)串口驅(qū)動(dòng)下面來驗(yàn)證一下軟件安裝結(jié)果。首先連接好硬件設(shè)備,然后雙擊打開本書“教學(xué)資源包”>“源代碼”>“測(cè)試程序”文件夾下的測(cè)試工程“test.eww”,如右圖所示。系統(tǒng)會(huì)自動(dòng)在IAR軟件中打開該工作空間文件。測(cè)試工程文件單擊IAR工具欄中的“DownloadandDebug”按鈕,或者選擇“Project”>“DownloadandDebug”菜單,如右圖所示。將程序通過仿真器下載到ZigBee開發(fā)板。下載并調(diào)試程序下載程序又稱燒寫程序,是指把程序固化到芯片中的同時(shí)進(jìn)入調(diào)試界面,出現(xiàn)調(diào)試工具欄,單擊其中的全速運(yùn)行按鈕,如下圖所示,可以看到ZigBee開發(fā)板上的LED燈開始閃爍,說明IAR軟件安裝成功了。調(diào)試工具欄調(diào)試工具欄成果檢驗(yàn)自我考核不看教材,獨(dú)立完成IAR軟件和仿真器驅(qū)動(dòng)的安裝,并能驗(yàn)證安裝結(jié)果。ZigBee開發(fā)板上的D8、D9燈不斷閃爍。CONTENT目錄3412實(shí)訓(xùn)1-1安裝IAR軟件和硬件驅(qū)動(dòng)實(shí)訓(xùn)1-2新建與調(diào)試ZigBee工程實(shí)訓(xùn)1-3認(rèn)識(shí)ZigBee實(shí)訓(xùn)設(shè)備實(shí)訓(xùn)1-4學(xué)習(xí)ZigBee開發(fā)板電路實(shí)訓(xùn)簡(jiǎn)介本實(shí)訓(xùn)將介紹用IAR新建與調(diào)試ZigBee工程的一般方法,包括工程的建立;源文件的添加;工程的設(shè)置;程序的編譯、下載與調(diào)試等,最后通過實(shí)驗(yàn)現(xiàn)象驗(yàn)證操作的正確性。實(shí)訓(xùn)目的1
掌握新建與設(shè)置ZigBee工程的方法。2
掌握ZigBee工程的調(diào)試方法。3
了解IAR的各種集成工具。實(shí)訓(xùn)內(nèi)容用IAR新建并保存工程。1向新建的工程中添加源文件。2編譯源文件并將程序下載到ZigBee開發(fā)板。3用IAR創(chuàng)建工程的基本流程啟動(dòng)IAR軟件,默認(rèn)會(huì)生成一個(gè)空的工作空間。此時(shí)可以通過選擇“Project”>“CreateNewProject”菜單在該工作空間下創(chuàng)建一個(gè)新的工程。創(chuàng)建工程文件(.ewp)后,還需選擇“File”>“SaveWorkspace”菜單(或單擊工具欄中的“SaveAll”按鈕),對(duì)工作空間文件(.eww)進(jìn)行保存。知識(shí)鏈接接下來,可以選擇“File”>“New”>“File”菜單(或單擊工具欄中的“Newdocument”按鈕
)新建一個(gè)源文件,來編寫程序,再將源文件保存(后綴為.c)并添加到之前新建的工程中。除此之外,也可以直接將提前編寫好的外部源文件添加到工程中。程序編寫完成后,將ZigBee開發(fā)板通過仿真器連接到電腦,就可以對(duì)程序進(jìn)行編譯、下載和調(diào)試了。但在此之前,通常還需要對(duì)當(dāng)前工程進(jìn)行一些設(shè)置,包括要使用的芯片型號(hào)、調(diào)試器類型等。實(shí)施步驟本實(shí)訓(xùn)將使用IAR軟件新建一個(gè)ZigBee工程,然后為其添加程序源文件,并對(duì)工程進(jìn)行設(shè)置,最后通過程序編譯、下載和調(diào)試,實(shí)現(xiàn)對(duì)ZigBee開發(fā)板的控制。1打開IAR軟件2新建工程3添加源文件到工程4設(shè)置工程5編譯程序6下載與調(diào)試程序以上步驟具體操作參照書中描述。成果檢驗(yàn)自我考核驗(yàn)證仿真是否有效,運(yùn)行程序后實(shí)訓(xùn)板上LED(D8)常亮,LED(D9)閃爍。02驗(yàn)證工程創(chuàng)建是否正確:正常編譯無錯(cuò)誤。01不看教材,重新熟悉創(chuàng)建工程的過程以及配置工程文件。CONTENT目錄3412實(shí)訓(xùn)1-1安裝IAR軟件和硬件驅(qū)動(dòng)實(shí)訓(xùn)1-2新建與調(diào)試ZigBee工程實(shí)訓(xùn)1-3認(rèn)識(shí)ZigBee實(shí)訓(xùn)設(shè)備實(shí)訓(xùn)1-4學(xué)習(xí)ZigBee開發(fā)板電路實(shí)訓(xùn)簡(jiǎn)介本書所有的實(shí)訓(xùn)都是基于訊方通信ZigBee綜合實(shí)訓(xùn)箱完成的,本節(jié)實(shí)訓(xùn)將詳細(xì)介紹實(shí)訓(xùn)中用到的設(shè)備,并詳細(xì)講解每一個(gè)模塊中的接口,以及實(shí)訓(xùn)的硬件連接圖,最后重點(diǎn)講解在實(shí)訓(xùn)過程中遇到電腦不能正確識(shí)別仿真器問題的解決辦法。實(shí)訓(xùn)目的1
認(rèn)識(shí)ZigBee實(shí)訓(xùn)設(shè)備。2
掌握實(shí)訓(xùn)設(shè)備的連接方法。3
了解硬件連接時(shí)的注意事項(xiàng)。實(shí)訓(xùn)內(nèi)容實(shí)訓(xùn)箱里的設(shè)備以及存放的位置。1實(shí)訓(xùn)設(shè)備的正確連接。2實(shí)訓(xùn)設(shè)備1ZigBee開發(fā)板硬件介紹1)ZigBee核心板ZigBee核心板的主要芯片是CC2530,它控制著ZigBee底板上的設(shè)備,如右圖所示。CC2530芯片天線ZigBee核心板2)ZigBee底板ZigBee底板主要提供電源、控制按鈕和一些擴(kuò)展設(shè)備接口等,如右圖所示。ZigBee底板指示燈可調(diào)電阻紅外發(fā)射ZigBee復(fù)位ZigBee按鍵撥碼開關(guān)節(jié)點(diǎn)按鍵復(fù)位傳感器接口1電源開關(guān)電源接口STM32串口1傳感器接口3J-Link接口ZigBeeDebug接口插接ZigBee核心板3)轉(zhuǎn)接板轉(zhuǎn)接板主要用于實(shí)現(xiàn)串口轉(zhuǎn)接、J-Link轉(zhuǎn)接,如右圖所示。J-Link轉(zhuǎn)接輸出口J-Link轉(zhuǎn)接輸入口串口轉(zhuǎn)接輸入口(連接ZigBee底板)串口轉(zhuǎn)接輸出口(連接電腦串口)轉(zhuǎn)接板4)仿真器ZigBee仿真器主要用于將編寫好的程序下載到ZigBee開發(fā)板中,如下圖所示。USB接口(另一端連接電腦)下載接口(另一端連接ZigBee底板)ZigBee仿真器5)其他輔助設(shè)備其他輔助設(shè)備主要包括串口轉(zhuǎn)接線、外接電源適配器、串口延長(zhǎng)線等,如下圖所示。(a)串口轉(zhuǎn)接線(b)外接電源適配器(c)串口延長(zhǎng)線其他輔助設(shè)備2硬件連接圖(1)不使用串口時(shí)的硬件連接圖,如右圖所示。連接電腦USB口外部電源數(shù)據(jù)下載線常用硬件連接圖(2)當(dāng)實(shí)訓(xùn)需要ZigBee節(jié)點(diǎn)與電腦進(jìn)行串口通信時(shí),其硬件連接圖(帶轉(zhuǎn)接板),如右圖所示。如果ZigBee底板上帶有USB轉(zhuǎn)串口模塊,那么直接用數(shù)據(jù)線將該接口與電腦USB接口相連即可,也可實(shí)現(xiàn)串口連接。帶轉(zhuǎn)接板的硬件連接圖數(shù)據(jù)下載線轉(zhuǎn)接線(ZigBee底板與串口轉(zhuǎn)接板連接)串口延長(zhǎng)線,連接電腦串口連接電腦USB口外部電源3串口調(diào)試工具(1)打開本書“教學(xué)資源包”>“相關(guān)軟件和驅(qū)動(dòng)”>“超級(jí)單片機(jī)工具”文件夾下的串口調(diào)試工具,即超級(jí)單片機(jī)工具“MCUTool.exe”,如右圖所示。串口調(diào)試工具的位置(2)串口調(diào)試工具(即超級(jí)單片機(jī)工具)的設(shè)置,如下圖所示。串口調(diào)試工具的設(shè)置選擇對(duì)應(yīng)的串口調(diào)節(jié)對(duì)應(yīng)的波特率設(shè)置模式位打開串口接收內(nèi)容區(qū)發(fā)送內(nèi)容區(qū)“發(fā)送”按鈕關(guān)于IAR軟件找不到仿真器的問題通常情況下,將仿真器通過USB方口數(shù)據(jù)線連接到電腦,并正確安裝仿真器驅(qū)動(dòng)后,就可以自動(dòng)識(shí)別出仿真器硬件。但仿真器類型有多種,有些對(duì)應(yīng)驅(qū)動(dòng)為ChipconSRF04EB,有些對(duì)應(yīng)驅(qū)動(dòng)為SmartRF04EB,如下圖所示。知識(shí)鏈接不同類型的仿真器驅(qū)動(dòng)由于系統(tǒng)默認(rèn)安裝的仿真器驅(qū)動(dòng)是SmartRF04EB,如果與仿真器設(shè)備不對(duì)應(yīng),就會(huì)出現(xiàn)IAR軟件無法識(shí)別仿真器,不能進(jìn)行仿真的問題,如右圖所示。IAR軟件找不到仿真器這種情況下,或者由于其他原因?qū)е翴AR無法正確識(shí)別仿真器時(shí)(此時(shí)“設(shè)備管理器”窗口中會(huì)出現(xiàn)問號(hào)或感嘆號(hào)),則要更新成正確的驅(qū)動(dòng)。例如將仿真器驅(qū)動(dòng)“SmartRF04EB”更新成“ChipconSRF04EB”,具體操作步驟參照書中描述。注意事項(xiàng)4231實(shí)訓(xùn)硬件連接時(shí)不能帶電插拔。拆卸硬件時(shí)要格外注意卡槽和插槽,不要用蠻力拆卸。需要移動(dòng)實(shí)訓(xùn)設(shè)備時(shí),應(yīng)用兩個(gè)手指捏著硬件的邊沿處小心移動(dòng),硬件帶電時(shí)禁止用手觸摸設(shè)備上的焊接點(diǎn)。認(rèn)真檢查連接的電路,確保沒問題時(shí)再給設(shè)備上電。拆卸時(shí),要先斷電再操作。自我考核獨(dú)立解決仿真器不能識(shí)別的問題。02快速連接實(shí)訓(xùn)箱設(shè)備及實(shí)訓(xùn)設(shè)備。01CONTENT目錄3412實(shí)訓(xùn)1-1安裝IAR軟件和硬件驅(qū)動(dòng)實(shí)訓(xùn)1-2新建與調(diào)試ZigBee工程實(shí)訓(xùn)1-3認(rèn)識(shí)ZigBee實(shí)訓(xùn)設(shè)備實(shí)訓(xùn)1-4學(xué)習(xí)ZigBee開發(fā)板電路實(shí)訓(xùn)簡(jiǎn)介本書所采用ZigBee開發(fā)板中,CC2530的內(nèi)核就是大家熟悉的8051內(nèi)核,同時(shí)支持IEEE802.15.4協(xié)議的無線射頻的功能。它有3個(gè)不同的存儲(chǔ)器訪問總線,即 特殊功能寄存器(SFR) 數(shù)據(jù)(DATA) 代碼/外部數(shù)據(jù)(CODE/XDATA)本實(shí)訓(xùn)主要講解ZigBee開發(fā)板的設(shè)計(jì)電路,分析實(shí)訓(xùn)中用到的LED燈和按鍵是連接到哪個(gè)端口的。實(shí)訓(xùn)目的2掌握電路圖中LED燈和按鍵連接到哪個(gè)端口。1了解ZigBee開發(fā)板的設(shè)計(jì)電路。實(shí)訓(xùn)內(nèi)容通過對(duì)比硬件設(shè)備與電路圖,讀懂ZigBee開發(fā)板電路。CC2530是德州儀器公司(TI)研發(fā)的一款ZigBee片上系統(tǒng)解決方案,它建立在IEEE802.15.4標(biāo)準(zhǔn)協(xié)議之上。CC2530集成了業(yè)界領(lǐng)先的RF收發(fā)器、工業(yè)標(biāo)準(zhǔn)的增強(qiáng)型8051內(nèi)核、系統(tǒng)內(nèi)可編程閃存、8KBRAM和許多其他強(qiáng)大的功能。1CC2530芯片簡(jiǎn)介知識(shí)鏈接強(qiáng)大的5通道DMA功能。IEEE802.15.4MAC定時(shí)器,3個(gè)通用定時(shí)器(1個(gè)16位,2個(gè)8位)。IR(紅外線)發(fā)生電路。具有捕獲功能的32kHz睡眠定時(shí)器。硬件支持CSMA/CA(載波偵聽多址接入/避免沖撞協(xié)議)。CC2530具有不同的運(yùn)行模式,使得它尤其適應(yīng)超低功耗要求的系統(tǒng)。運(yùn)行模式之間的轉(zhuǎn)換時(shí)間短,進(jìn)一步確保了低能源消耗。概括而言,其外圍設(shè)備具有以下功能特征:支持精確的數(shù)字化的接收信號(hào)強(qiáng)度指示器(RSSI)/鏈路質(zhì)量指示(LQI)。電池監(jiān)視器和溫度傳感器。具有8路輸入并可配置的12位ADC。高級(jí)加密標(biāo)準(zhǔn)(AES)安全協(xié)處理器。2個(gè)支持多種串行通信協(xié)議的強(qiáng)大USART。21個(gè)通用I/O引腳(19個(gè)4mA,2個(gè)20mA)??撮T狗定時(shí)器。2ZigBee開發(fā)板電路1)ZigBee底板電路圖ZigBee底板的相關(guān)電路如右圖所示。ZigBee底板電路圖
2)ZigBee核心板電路圖ZigBee核心板的相關(guān)電路如右圖所示。ZigBee核心板電路圖由于CC2530核心板是配合底板一起使用的,因此在設(shè)計(jì)CC2530核心板時(shí)通常將I/O引腳擴(kuò)展出來,采用插拔的方式與底板連接,下圖所示為其擴(kuò)展接口電路。ZigBee核心板擴(kuò)展接口電路自我考核通過ZigBee開發(fā)板電路圖分析底板上的SW1、SW2按鍵連接哪個(gè)端口?02通過ZigBee開發(fā)板電路圖分析底板上的D8、D9燈連接哪個(gè)端口?01謝謝觀看ZigBee無線傳感器網(wǎng)絡(luò)設(shè)計(jì)實(shí)戰(zhàn)2PARTTWOCC2530單片機(jī)基礎(chǔ)開發(fā)CONTENT目錄3412實(shí)訓(xùn)2-1通用數(shù)字接口控制實(shí)訓(xùn)2-2配置時(shí)鐘實(shí)訓(xùn)2-3配置外部中斷實(shí)訓(xùn)2-4配置定時(shí)器實(shí)訓(xùn)簡(jiǎn)介CC2530擁有21個(gè)數(shù)字I/O(輸入/輸出)引腳,可以配置為通用數(shù)字I/O,也可以作為外部I/O信號(hào)連接到ADC、定時(shí)器或USART等外部設(shè)備。這些I/O口的功能是通過一系列寄存器配置,由軟件實(shí)現(xiàn)的。I/O口具有如下重要特性:21個(gè)數(shù)字I/O引腳??梢耘渲脼橥ㄓ肐/O或外部設(shè)備I/O。輸入口具備上拉或下拉能力。具有外部中斷能力。這21個(gè)I/O引腳都可以用作外部中斷源輸入口。因此,如果需要,外部設(shè)備可以通過這些I/O產(chǎn)生中斷。外部中斷功能也可以從睡眠模式喚醒設(shè)備。實(shí)訓(xùn)目的1
了解CC2530I/O口的輸入輸出狀態(tài)。2
了解CC2530通用數(shù)字I/O口的使用及相關(guān)寄存器的配置。實(shí)訓(xùn)內(nèi)容編寫一個(gè)用SW2控制LED0閃爍的程序。1燒錄程序并進(jìn)行硬件上的驗(yàn)證。2知識(shí)鏈接1CC2530芯片的引腳CC2530芯片共有40個(gè)引腳,如下圖所示。CC2530實(shí)物及引腳圖其中包括:
21個(gè)I/O引腳(P0_0~P0_7、P1_0~P1_7、P2_0~P2_4)。
2個(gè)2V~3.6V數(shù)字電源引腳(DVDD1~DVDD2)。
1個(gè)1.8V內(nèi)部數(shù)字電源引腳(DCOUPL)。
6個(gè)2V~3.6V模擬電源引腳(AVDD1~AVDD6)。
4個(gè)GND引腳(GND為接地引腳)。
2個(gè)32MHz外部晶振引腳(XOSC_Q1和XOSC_Q2)。
1個(gè)數(shù)字輸入復(fù)位引腳(RESET_N)。
2個(gè)射頻天線輸入輸出引腳(RF_N和RF_P)。
1個(gè)模擬I/O參考電流的外部精密偏置電阻引腳(RBIAS1)。2未使用的I/O引腳未使用的I/O引腳應(yīng)當(dāng)定義電平,不能懸空。一種方法是:使引腳不連接任何元器件,將其配置為具有上拉電阻的通用I/O輸入。這也是所有引腳復(fù)位后的狀態(tài)(只有P1.0和P1.1沒有上拉/下拉功能)。此外,這些引腳也可以配置為通用I/O輸出。為了避免過多的功耗,無論引腳配置為輸入口還是輸出口,都不應(yīng)該直接與VDD或GND連接。3低I/O電壓在實(shí)際應(yīng)用中,當(dāng)數(shù)字I/O電源電壓引腳DVDD1和DVDD2低于2.6V時(shí),寄存器位PICTL.PADSC應(yīng)當(dāng)置為1,以獲得DC特性表中規(guī)定的輸出直流特性。4通用I/O當(dāng)用作通用I/O時(shí),引腳可以組成3個(gè)8位端口,端口0、端口1和端口2表示為P0、P1和P2。其中,P0和P1是完全的8位端口,而P2僅有5位可用。所有的端口均可以位尋址,或通過特殊功能寄存器由P0、P1和P2字節(jié)尋址。每個(gè)端口引腳都可以單獨(dú)設(shè)置為通用I/O或外部設(shè)備I/O。除了兩個(gè)高驅(qū)動(dòng)輸出口P1.0和P1.1各具備20mA的輸出驅(qū)動(dòng)能力之外,所有的輸出口均具備4mA的驅(qū)動(dòng)能力。寄存器PxSEL(其中x為端口的標(biāo)號(hào)0~2)用來設(shè)置每個(gè)端口引腳為通用I/O或者是外部設(shè)備I/O信號(hào)。作為缺省的情況,每當(dāng)復(fù)位之后,所有的數(shù)字輸入/輸出引腳都設(shè)置為通用輸入引腳。在任何時(shí)候,要改變一個(gè)端口引腳的方向,使用寄存器PxDIR來設(shè)置每個(gè)端口引腳為輸入或輸出即可。只要設(shè)置PxDIR中的指定位為1,其對(duì)應(yīng)的引腳口就被設(shè)置為輸出了。當(dāng)讀取端口寄存器P0、P1和P2的值時(shí),不管引腳配置如何,輸入引腳上的邏輯值都被返回。這在執(zhí)行讀—修改—寫指令期間不適用。讀—修改—寫指令為:ANL,ORL,XRL,JBC,CPL,INC,DEC,DJNZ,MOV,CLR和SETB。在一個(gè)端口寄存器上操作,以下是正確的:當(dāng)目標(biāo)是端口寄存器P0、P1或P2中一個(gè)獨(dú)立的位時(shí),寄存器的值(不是引腳上的值)被讀取、修改并寫回端口寄存器。用作輸入時(shí),通用I/O端口引腳可以設(shè)置為上拉、下拉或三態(tài)操作模式。作為缺省的情況,復(fù)位之后,所有的端口均設(shè)置為帶上拉的輸入。要取消輸入的上拉或下拉功能,就要將PxINP中的對(duì)應(yīng)位設(shè)置為1。I/O端口引腳P1.0和P1.1沒有上拉/下拉功能。在電源模式PM1、PM2和PM3下,I/O引腳保留在進(jìn)入PM1、PM2、PM3時(shí)設(shè)置的I/O模式和輸出值(如果可用的話)。通用I/O引腳設(shè)置為輸入后,可以用于產(chǎn)生中斷。中斷可以設(shè)置在外部信號(hào)的上升或下降沿觸發(fā)。P0、P1和P2端口都有中斷使能位,對(duì)位于IEN1和IEN2寄存器內(nèi)的端口所有的位都是公共的,如下:5通用I/O中斷IEN1.P0IE:P0中斷使能。IEN2.P1IE:P1中斷使能。IEN2.P2IE:P2中斷使能。除了這些公共中斷使能外,每個(gè)端口的位都有位于SFR寄存器P0IEN、P1IEN和P2IEN的單獨(dú)的中斷使能。即使配置為外設(shè)I/O或通用輸出的I/O引腳使能時(shí)都有中斷產(chǎn)生。當(dāng)中斷條件發(fā)生在任意一個(gè)I/O引腳上,P0-P2中斷標(biāo)志寄存器中相應(yīng)的中斷狀態(tài)標(biāo)志P0IFG、P1IFG或P2IFG將被置為1。不管引腳是否設(shè)置了它的中斷使能位,中斷狀態(tài)標(biāo)志都被設(shè)置。當(dāng)中斷已經(jīng)執(zhí)行,中斷狀態(tài)標(biāo)志被清除,該標(biāo)志寫入0。這個(gè)標(biāo)志必須在清除CPU端口中斷標(biāo)志(PxIF)之前被清除。I/O端口的寄存器如下:P0:端口0。P1:端口1。P2:端口2。PERCFG:外設(shè)控制寄存器。APCFG:模擬外設(shè)I/O配置。P0SEL:端口0功能選擇寄存器。 P1SEL:端口1功能選擇寄存器。
P2SEL:端口2功能選擇寄存器。
P0DIR:端口0方向寄存器。
P1DIR:端口1方向寄存器。
P2DIR:端口2方向寄存器。P0INP:端口0輸入模式寄存器。P1INP:端口1輸入模式寄存器。P2INP:端口2輸入模式寄存器。P0IFG:端口0中斷狀態(tài)標(biāo)志寄存器。P1IFG:端口1中斷狀態(tài)標(biāo)志寄存器。P2IFG:端口2中斷狀態(tài)標(biāo)志寄存器。PICTL:中斷邊緣寄存器。P0IEN:端口0中斷掩碼寄存器。P1IEN:端口1中斷掩碼寄存器。P2IEN:端口2中斷掩碼寄存器。PMUX:掉電信號(hào)Mux寄存器。OBSSEL0:觀察輸出控制寄存器0。OBSSEL1:觀察輸出控制寄存器1。
OBSSEL2:觀察輸出控制寄存器2。
OBSSEL3:觀察輸出控制寄存器3。
OBSSEL4:觀察輸出控制寄存器4。
OBSSEL5:觀察輸出控制寄存器5。實(shí)施步驟啟動(dòng)IAR軟件,新建一個(gè)工程“GPIO_SET”,具體步驟參見“實(shí)訓(xùn)1-2新建與調(diào)試ZigBee工程”。代碼部分參照書中描述。1實(shí)訓(xùn)源碼1)宏定義2實(shí)訓(xùn)部分代碼解析//定義控制燈的端口#defineLED0P1_0 //定義LED_1為P10口控制#defineLED1P1_1 //定義LED_2為P11口控制//按鍵控制口#defineKEY1P0_0 //定義按鍵為P00口控制#defineKEY2P0_1 //定義按鍵為P01口控制#defineKEY_11#defineKEY_222)LED初始化voidInitLed(void){P1DIR|=0x13; /*P10、P11定義為輸出*/
LED0=1;LED1=1;}3)KEY初始化voidInitKey(void){P0SEL&=~0X03;P0DIR&=~0X03; /*按鍵在P00、P01口,設(shè)置為輸入模式*/}4)按鍵掃描函數(shù)ucharkeyval=0;ucharkey_ct1=0;ucharKeyScan(void){if(KEY1==0) //低電平有效
{ //抖動(dòng)處理
if(key_ct1<10)key_ct1++;elsekey_ct1=5;if(key_ct1==2)keyval|=0x01;elsekeyval&=~0x01;}else{key_ct1=0;keyval&=~0x01;}return(keyval);}5)延時(shí)函數(shù)voidDelay(uintn){uinti;for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);}6)主函數(shù)voidmain(void){InitLed(); //初始化LEDInitKey(); //初始化按鍵控制I/O口
while(1){if(KeyScan()&0x01) //讀取按鍵動(dòng)作
{
LED0=!LED0;}LED1=!LED1;Delay(5000);}}成果檢驗(yàn)自我考核SW2按下后是否能改變LED(D8)的亮和滅。02查看LED(D9)是否閃爍。01修改程序,實(shí)現(xiàn)用KEY1和KEY2分別控制LED0和LED1的亮與滅。CONTENT目錄3412實(shí)訓(xùn)2-1通用數(shù)字接口控制實(shí)訓(xùn)2-2配置時(shí)鐘實(shí)訓(xùn)2-3配置外部中斷實(shí)訓(xùn)2-4配置定時(shí)器實(shí)訓(xùn)簡(jiǎn)介時(shí)鐘是一個(gè)系統(tǒng)設(shè)備的心臟,沒有了時(shí)鐘,一切都無法運(yùn)作。CC2530設(shè)備有一個(gè)內(nèi)部系統(tǒng)時(shí)鐘(或稱為主時(shí)鐘)。該系統(tǒng)時(shí)鐘的源既可以用16MHzRC振蕩器(內(nèi)部RC),也可以采用32MHz晶體振蕩器(外部晶振)。時(shí)鐘的控制可以通過配置CLKCONCMDSFR寄存器執(zhí)行。CC2530還有一個(gè)32MHz時(shí)鐘源,可以是RC振蕩器或晶振,也由CLKCONCMD寄存器控制。CLKCONSTA寄存器是一個(gè)只讀寄存器,用于獲取當(dāng)前時(shí)鐘狀態(tài)。設(shè)備的振蕩器可以選擇高精度的晶體振蕩器,也可以選擇低功耗的高頻RC振蕩器。如果設(shè)備運(yùn)行RF收發(fā)器,必須使用32MHz晶體振蕩器。實(shí)訓(xùn)目的2了解CC2530時(shí)鐘功能的運(yùn)用。1了解CC2530時(shí)鐘寄存器的配置。實(shí)訓(xùn)內(nèi)容2燒錄程序并實(shí)施驗(yàn)證。1通過配置CC2530的時(shí)鐘寄存器實(shí)現(xiàn)LED閃爍。知識(shí)鏈接1振蕩器
1)高頻振蕩器32MHz晶體振蕩器16MHzRC振蕩器
2)低頻振蕩器32kHz晶體振蕩器32kHzRC振蕩器32kHz晶體振蕩器運(yùn)行在32.768kHz,并為系統(tǒng)需要的時(shí)間精度提供一個(gè)穩(wěn)定的時(shí)鐘信號(hào)。校準(zhǔn)時(shí),32kHzRC振蕩器運(yùn)行在32.753kHz。校準(zhǔn)只能發(fā)生在32MHz晶體振蕩器使能的時(shí)候,32kHzRC振蕩器可以用于降低成本和電源消耗。2系統(tǒng)時(shí)鐘系統(tǒng)時(shí)鐘是從所選的主系統(tǒng)時(shí)鐘源獲得的,主系統(tǒng)時(shí)鐘源可以是32MHz晶體振蕩器或16MHzRC振蕩器。CLKCONCMD.OSC位用來選擇主系統(tǒng)時(shí)鐘源。要使用RF收發(fā)器,必須選擇高速且穩(wěn)定的32MHz晶體振蕩器。332kHz振蕩器CC2530設(shè)備中有兩個(gè)32kHz振蕩器(即32kHz晶體振蕩器和32kHzRC振蕩器)作為32kHz時(shí)鐘的時(shí)鐘源。默認(rèn)情況下,當(dāng)復(fù)位后,32kHzRC振蕩器使能,被選為32kHz時(shí)鐘源。所選的32kHz時(shí)鐘源驅(qū)動(dòng)睡眠定時(shí)器,為看門狗定時(shí)器產(chǎn)生標(biāo)記,且當(dāng)計(jì)算睡眠定時(shí)器的睡眠時(shí)間時(shí)用作定時(shí)器2的一個(gè)選通脈沖。選擇哪個(gè)振蕩器作為32kHz時(shí)鐘源,是通過CLKCONCMD.OSC32K寄存器位執(zhí)行的。實(shí)施步驟啟動(dòng)IAR軟件,新建一個(gè)工程“TIMER_SET”,具體步驟參見“實(shí)訓(xùn)1-2新建與調(diào)試ZigBee工程”。代碼部分參照書中描述。1實(shí)訓(xùn)源碼1)宏定義2實(shí)訓(xùn)部分代碼解析#defineDISABLE_ALL_INTERRUPTS()(IEN0=IEN1=IEN2=0x00)2)時(shí)鐘配置#defineSET_MAIN_CLOCK_SOURCE(source)\do{if(source){CLKCONCMD|=0x40;if(TICKSPD==0){CLKCONCMD|=0x08;}SLEEPCMD|=0x04;}else{SLEEPCMD&=~0x04;asm("NOP");CLKCONCMD&=~0x47;SLEEPCMD|=0x04;}}while(0)3)功能實(shí)現(xiàn)while(1){SET_MAIN_CLOCK_SOURCE(RC);for(i=0;i<20;i++){UINT16timeOut=0xFFFF;while(timeOut--);LED1=!LED1; //LED閃爍
}
SET_MAIN_CLOCK_SOURCE(CRYSTAL);for(i=0;i<20;i++){UINT16timeOut=0xFFFF;while(timeOut--);LED1=!LED1; //LED閃爍
}}成果檢驗(yàn)自我考核認(rèn)真觀察閃爍的頻率是否有規(guī)律地變化(一會(huì)慢閃一會(huì)快閃)。02查看LED1(D9)是否閃爍。01修改程序,實(shí)現(xiàn)通過按鍵來修改不同頻率模式下的工作。CONTENT目錄3412實(shí)訓(xùn)2-1通用數(shù)字接口控制實(shí)訓(xùn)2-2配置時(shí)鐘實(shí)訓(xùn)2-3配置外部中斷實(shí)訓(xùn)2-4配置定時(shí)器實(shí)訓(xùn)簡(jiǎn)介所謂中斷,是指CPU在正常執(zhí)行程序的過程中,由于內(nèi)部或外部事件的觸發(fā)或由程序的預(yù)先安排,引起CPU暫時(shí)中斷當(dāng)前正在運(yùn)行的程序,而轉(zhuǎn)去執(zhí)行為內(nèi)部或外部事件或程序預(yù)先安排的事件的服務(wù)子程序。待中斷服務(wù)子程序執(zhí)行完畢后,CPU再返回到被暫時(shí)中斷的程序處(斷點(diǎn))繼續(xù)執(zhí)行原來的程序。CC2530有18個(gè)中斷源。每個(gè)中斷源都有它自己的位于一系列SFR寄存器中的中斷請(qǐng)求標(biāo)志。相應(yīng)標(biāo)志位請(qǐng)求的每個(gè)中斷可以分別使能或禁用。實(shí)訓(xùn)目的2了解CC2530外部中斷功能的運(yùn)用。1了解CC2530外部中斷的配置。實(shí)訓(xùn)內(nèi)容2燒錄程序并進(jìn)行硬件上的驗(yàn)證。1用中斷編寫一個(gè)使用SW1按鍵控制LED亮滅的程序。通用I/O引腳在設(shè)置為輸入后,可以用于產(chǎn)生中斷。中斷可以設(shè)置在外部信號(hào)的上升或下降沿觸發(fā)。P0、P1和P2端口都有中斷使能位,對(duì)位于IENl、IEN2寄存器內(nèi)的端口所有的位都是公共的。如下:1通用I/O中斷IEN1.P0IE:P0中斷使能。IEN2.P1IE:P1中斷使能。IEN2.P2IE:P2中斷使能。知識(shí)鏈接除了這些公共中斷使能之外,每個(gè)端口的位都有位于SFR寄存器P0IEN、P1IEN和P2IEN的單獨(dú)的中斷使能。即使配置為外設(shè)I/O或通用輸出的I/O引腳使能時(shí),也能產(chǎn)生中斷。當(dāng)中斷條件發(fā)生在任意一個(gè)I/O引腳上時(shí),P0~P2中斷標(biāo)志寄存器P0IFG、P1IFG或P2IFG中相應(yīng)的中斷狀態(tài)標(biāo)志將設(shè)置為1。不管引腳是否設(shè)置了它的中斷使能位,中斷狀態(tài)標(biāo)志都被設(shè)置。當(dāng)中斷已經(jīng)執(zhí)行,中斷狀態(tài)標(biāo)志被清除,該標(biāo)志寫入0。這個(gè)標(biāo)志必須在清除CPU端口中斷標(biāo)志(PxIF)之前被清除。用于中斷的SFR寄存器總結(jié)如下:
P0IEN:P0中斷使能。
P1IEN:P1中斷使能。
P2IEN:P2中斷使能。
PICTL:P0、P1和P2觸發(fā)沿設(shè)置。
P0IFG:P0中斷標(biāo)志。
P1IFG:P1中斷標(biāo)志。
P2IFG:P2中斷標(biāo)志。每個(gè)中斷請(qǐng)求可以通過設(shè)置中斷使能SFR寄存器的中斷使能位IEN0、IEN1或IEN2使能或禁止。CPU的中斷使能相對(duì)應(yīng)的SFR寄存器。2中斷配置(1)清除中斷標(biāo)志。(2)如果有,則設(shè)置SFR寄存器中對(duì)應(yīng)的各中斷使能位為1。(3)設(shè)置寄存器IEN0、IEN1或IEN2中對(duì)應(yīng)的中斷使能位為1。(4)設(shè)置IEN0中的EA位為1使能全局中斷。(5)在中斷對(duì)應(yīng)的向量地址上,運(yùn)行該中斷的服務(wù)程序。為了使能任一中斷功能,應(yīng)當(dāng)采取下列步驟:實(shí)施步驟啟動(dòng)IAR軟件,新建一個(gè)工程“EXINT_SET”,具體步驟參見“實(shí)訓(xùn)1-2新建與調(diào)試ZigBee工程”。代碼部分參照書中描述。1實(shí)訓(xùn)源碼1)KEY初始化2實(shí)訓(xùn)部分代碼解析voidInitKey(void){P0SEL&=~0X03;P0DIR&=~0X03; //按鍵在P00、P01口,設(shè)置為輸入模式
P0IEN|=0X02; //P01設(shè)置為中斷方式
PICTL|=0X01; //下降沿觸發(fā)
EA=1;IEN1|=0X20; //P0設(shè)置為中斷方式;P0IFG|=0x00; //初始化中斷標(biāo)志位}2)中斷處理函數(shù)#pragmavector=P0INT_VECTOR__interruptvoidP0_ISR(void){if(P0IFG>0) //按鍵中斷
{P0IFG=0;Delay(100);if(KEY2==0) //按鍵中斷
{KeyFlag=0;}}P0IF=0; //清中斷標(biāo)志
}3)功能實(shí)現(xiàn)while(1){if(KeyFlag==0){KeyFlag=!KeyFlag;LED1=!LED1;LED0=!LED0;}}成果檢驗(yàn)自我考核修改程序,實(shí)現(xiàn)不同按鍵中斷來控制不同LED的亮和滅。02修改程序,實(shí)現(xiàn)SW2按鍵的中斷來控制LED的亮和滅。01按下SW1后是否能改變LED(D8與D9)的亮和滅狀態(tài)。CONTENT目錄3412實(shí)訓(xùn)2-1通用數(shù)字接口控制實(shí)訓(xùn)2-2配置時(shí)鐘實(shí)訓(xùn)2-3配置外部中斷實(shí)訓(xùn)2-4配置定時(shí)器實(shí)訓(xùn)簡(jiǎn)介定時(shí)器1是一個(gè)獨(dú)立的16位定時(shí)器,支持典型的定時(shí)/計(jì)數(shù)功能,比如輸入捕獲、輸出比較和PWM功能。該定時(shí)器擁有5個(gè)獨(dú)立的捕獲/比較通道。每個(gè)通道使用一個(gè)I/O引腳。定時(shí)器1用于范圍廣泛的控制和測(cè)量應(yīng)用,5個(gè)通道具備正計(jì)數(shù)/倒計(jì)數(shù)模式,允許諸如電機(jī)控制應(yīng)用的實(shí)現(xiàn)。綜上所述,定時(shí)器1的功能特征如下:
5個(gè)捕獲/比較通道 上升沿、下降沿或任何邊沿的輸入捕獲 設(shè)置、清除或切換輸出比較 自由運(yùn)行、?;蛘?jì)數(shù)/倒計(jì)數(shù)操作
1,8,32或128時(shí)鐘分頻 在每個(gè)捕獲/比較和最終計(jì)數(shù)上生成中斷請(qǐng)求
DMA觸發(fā)功能實(shí)訓(xùn)目的2了解CC2530T1定時(shí)器功能的運(yùn)用。1了解CC2530T1定時(shí)器的相關(guān)寄存器配置。實(shí)訓(xùn)內(nèi)容2燒錄程序并進(jìn)行硬件上的驗(yàn)證。1用T1定時(shí)器控制LED1每秒鐘閃爍一次。CC2530有5個(gè)定時(shí)器,即定時(shí)器1(16位定時(shí)器)、定時(shí)器2(MAC定時(shí)器)、定時(shí)器3和定時(shí)器4(均為8位定時(shí)器)、睡眠定時(shí)器。1定時(shí)器簡(jiǎn)介知識(shí)鏈接一個(gè)16位定時(shí)器,具有定時(shí)器/計(jì)數(shù)器/PWM功能。定時(shí)器1專門為支持IEEE802.15.4MAC或軟件中其他時(shí)槽的協(xié)議設(shè)計(jì)。定時(shí)器2(MAC定時(shí)器)兩個(gè)都是8位定時(shí)器,具有定時(shí)器/計(jì)數(shù)器/PWM功能。它們有一個(gè)可編程的分頻器、一個(gè)8位的周期值、一個(gè)可編程的計(jì)數(shù)器通道(具有一個(gè)8位的比較值)。每個(gè)計(jì)數(shù)器通道可以用作一個(gè)PWM輸出。定時(shí)器3和定時(shí)器4一個(gè)超低功耗的定時(shí)器,用于計(jì)算32kHz晶體振蕩器或32kHzRC振蕩器的周期。睡眠定時(shí)器在所有工作模式下(除了供電模式3)都可持續(xù)運(yùn)行。這一定時(shí)器的典型應(yīng)用是作為實(shí)時(shí)計(jì)數(shù)器,或作為喚醒定時(shí)器以跳出供電模式1或供電模式2。睡眠定時(shí)器定時(shí)器1包括一個(gè)16位計(jì)數(shù)器,在每個(gè)活動(dòng)時(shí)鐘邊沿遞增或遞減?;顒?dòng)時(shí)鐘邊沿周期由寄存器位CLKCONCMD.TICKSPD定義,它設(shè)置全球系統(tǒng)時(shí)鐘的劃分,提供了從0.25MHz到32MHz的不同的時(shí)鐘標(biāo)簽頻率(可以使用32MHz晶體振蕩器作為時(shí)鐘源)。216位計(jì)數(shù)器這在定時(shí)器1中,由T1CTL.DIV設(shè)置的分頻器值進(jìn)一步劃分。這個(gè)分頻器值可以為1,8,32或128。因此,當(dāng)32MHz晶體振蕩器用作系統(tǒng)時(shí)鐘源時(shí),定時(shí)器1可以使用的最低時(shí)鐘頻率是1953.125Hz,最高是32MHz。當(dāng)16MHzRC振蕩器用作系統(tǒng)時(shí)鐘源時(shí),定時(shí)器1可以使用的最高時(shí)鐘頻率是16MHz。這個(gè)16位計(jì)數(shù)器可以作為一個(gè)自由運(yùn)行計(jì)數(shù)器、模計(jì)數(shù)器,或在中心對(duì)齊的PWM里使用的正計(jì)數(shù)/倒計(jì)數(shù)器運(yùn)行。可以通過兩個(gè)8位的SFR寄存器T1CNTH和T1CNTL讀取16位計(jì)數(shù)器的值,分別包含高位字節(jié)和低位字節(jié)。當(dāng)讀取T1CNTL時(shí),計(jì)數(shù)器的高位字節(jié)在那時(shí)被緩沖到T1CNTH,以便高位字節(jié)可以從T1CNTH中讀出。因此,T1CNTL必須總是在讀取T1CNTH之前首先讀取。對(duì)T1CNTL寄存器的所有寫入訪問將復(fù)位16位計(jì)數(shù)器。當(dāng)達(dá)到最終計(jì)數(shù)值(溢出)時(shí),計(jì)數(shù)器產(chǎn)生一個(gè)中斷請(qǐng)求??梢杂肨1CTL控制寄存器設(shè)置啟動(dòng)和停止該計(jì)數(shù)器。當(dāng)一個(gè)不是00的值寫入到T1CTL.MODE時(shí),計(jì)數(shù)器開始運(yùn)行。如果00寫入到T1CTL.MODE,計(jì)數(shù)器將停止在它現(xiàn)在的值上。一般來說,控制寄存器T1CTL用于控制定時(shí)器1的操作,狀態(tài)寄存器T1STAT保存中斷標(biāo)志。下面介紹一下各種操作模式。3定時(shí)器1的操作1)自由運(yùn)行模式在自由運(yùn)行操作模式下,計(jì)數(shù)器從0x0000開始,在每個(gè)活動(dòng)時(shí)鐘邊沿增加1。當(dāng)計(jì)數(shù)器達(dá)到0xFFFF(溢出)時(shí),計(jì)數(shù)器載入0x0000,繼續(xù)遞增它的值,如右圖所示。自由運(yùn)行模式當(dāng)達(dá)到最終計(jì)數(shù)值0xFFFF時(shí),設(shè)置標(biāo)志IRCON.T1IF和T1STAT.OVFIF。如果設(shè)置了相應(yīng)的中斷屏蔽位TIMIF.OVFIM以及IEN1.T1EN,將產(chǎn)生一個(gè)中斷請(qǐng)求。自由運(yùn)行模式可以用于產(chǎn)生獨(dú)立的時(shí)間間隔和輸出信號(hào)頻率。2)模模式當(dāng)定時(shí)器運(yùn)行在模模式時(shí),16位計(jì)數(shù)器從0x0000開始,在每個(gè)活動(dòng)時(shí)鐘邊沿增加1。當(dāng)計(jì)數(shù)器達(dá)到T1CC0(溢出)即寄存器T1CC0H:T1CC0L保存的最終計(jì)數(shù)值時(shí),計(jì)數(shù)器將復(fù)位到0x0000,并繼續(xù)遞增,如右圖所示。模模式如果定時(shí)器開始于T1CC0以上的一個(gè)值,當(dāng)達(dá)到最終計(jì)數(shù)值(0xFFFF)時(shí),設(shè)置標(biāo)志IRCON.T1IF和T1STAT.OVFIF。如果設(shè)置了相應(yīng)的中斷屏蔽位TIMIF.OVFIM以及IEN1.T1EN,將產(chǎn)生一個(gè)中斷請(qǐng)求。模模式可以用于周期不是0xFFFF的應(yīng)用程序。3)正計(jì)數(shù)/倒計(jì)數(shù)模式在正計(jì)數(shù)/倒計(jì)數(shù)模式,計(jì)數(shù)器反復(fù)從0x0000開始,正計(jì)數(shù)直到達(dá)到T1CC0H:T1CC0L保存的值,然后計(jì)數(shù)器將倒計(jì)數(shù)直到0x0000,如右圖所示。正計(jì)數(shù)/倒計(jì)數(shù)模式這個(gè)定時(shí)器用于周期必須是對(duì)稱輸出脈沖而不是0xFFFF的應(yīng)用程序,因此允許中心對(duì)齊的PWM輸出應(yīng)用的實(shí)現(xiàn)。在正計(jì)數(shù)/倒計(jì)數(shù)模式下,當(dāng)達(dá)到最終計(jì)數(shù)值時(shí),設(shè)置標(biāo)志IRCON.T1IF和T1STAT.OVFIF。如果設(shè)置了相應(yīng)的中斷屏蔽位TIMIF.OVFIM以及IEN1.T1EN,將產(chǎn)生一個(gè)中斷請(qǐng)求。實(shí)施步驟啟動(dòng)IAR軟件,新建一個(gè)工程“T1_SET”,具體步驟參見“實(shí)訓(xùn)1-2新建與調(diào)試ZigBee工程”。代碼部分參照書中描述。1實(shí)訓(xùn)源碼1)定時(shí)器T1初始化2實(shí)訓(xùn)部分代碼解析voidInitialT1(void){ //初始化計(jì)數(shù)器1
T1CTL=0x05;T1STAT=0x21; //通道0,中斷有效,8分頻;自動(dòng)重裝模式(0x0000->0xffff)}2)功能實(shí)現(xiàn)while(1){if(IRCON>0){IRCON=0; //清溢出標(biāo)志
counter++;if(counter>=15) //中斷計(jì)數(shù),約0.25s{counter=0;LEDFlag=!LEDFlag;}}if(LEDFlag){LED1=!LED1; //LED燈每隔1s閃爍一下
LED0=!LED0;LEDFlag=!LEDFlag; //閃爍標(biāo)志變量置0}}成果檢驗(yàn)自我考核修改程序,通過T1定時(shí)中斷來控制LED的變化。02修改程序,實(shí)現(xiàn)LED閃爍的時(shí)間變化。01查看LED燈(D8與D9)是否每秒閃爍一次。謝謝觀看ZigBee無線傳感器網(wǎng)絡(luò)設(shè)計(jì)實(shí)戰(zhàn)3PARTTHREECC2530單片機(jī)進(jìn)階開發(fā)CONTENT目錄3412實(shí)訓(xùn)3-1看門狗應(yīng)用實(shí)訓(xùn)3-2串口通信實(shí)訓(xùn)3-3ADC單次采樣實(shí)訓(xùn)3-4采集溫度信息實(shí)訓(xùn)簡(jiǎn)介在CPU可能受到軟件顛覆或者外部電磁干擾的情況下,容易使單片機(jī)系統(tǒng)死掉,這時(shí)看門狗定時(shí)器(WatchdogTimer,WDT)可被用來作為一種恢復(fù)的手段。當(dāng)軟件在指定的時(shí)間間隔里不能清除WDT時(shí),WDT就會(huì)復(fù)位系統(tǒng)??撮T狗可以用于那些會(huì)受到電磁噪聲、電源故障、靜電放電影響的應(yīng)用,或者需要高可靠性的應(yīng)用。如果一個(gè)應(yīng)用不需要看門狗功能,可以將看門狗定時(shí)器配置成一個(gè)間隔定時(shí)器,用于在指定的時(shí)間間隔產(chǎn)生中斷??撮T狗定時(shí)器的主要特性如下:
4個(gè)可選的定時(shí)器間隔。 看門狗模式。 定時(shí)器模式。 在定時(shí)器模式下產(chǎn)生中斷請(qǐng)求。WDT可配置成一個(gè)看門狗定時(shí)器,也可配置成一個(gè)通用定時(shí)器。WDT模塊的運(yùn)行由WDCTL寄存器控制。看門狗定時(shí)器包含一個(gè)由32kHz時(shí)鐘源同步的15位計(jì)數(shù)器。需要注意的是,用戶并不能獲得15位計(jì)數(shù)器的內(nèi)容。15位計(jì)數(shù)器的內(nèi)容在所有供電模式下都能保持,而當(dāng)再次進(jìn)入主動(dòng)模式時(shí),看門狗定時(shí)器繼續(xù)計(jì)數(shù)。實(shí)訓(xùn)目的1
了解CC2530看門狗相關(guān)寄存器的配置。2
了解CC2530看門狗功能的運(yùn)用。實(shí)訓(xùn)內(nèi)容用看門狗實(shí)現(xiàn)一個(gè)SW2控制LED1閃爍時(shí)LED0不亮的程序。1燒錄程序并進(jìn)行硬件上的驗(yàn)證。2知識(shí)鏈接1看門狗模式系統(tǒng)復(fù)位后,看門狗定時(shí)器會(huì)被禁用。要在看門狗模式下啟動(dòng)WDT,WDCTL.MODE[1:0]位必須設(shè)置為10。然后看門狗定時(shí)器的計(jì)數(shù)器從0開始遞增。在看門狗模式下,一旦定時(shí)器使能,就不能禁用定時(shí)器了。WDT運(yùn)行在32.768kHz的看門狗定時(shí)器時(shí)鐘頻率上(當(dāng)使用32kHz晶體振蕩器時(shí))。當(dāng)計(jì)數(shù)值分別設(shè)置為64,512,8192和32768時(shí),時(shí)鐘頻率對(duì)應(yīng)的超時(shí)時(shí)間為1.9ms,15.625ms,0.25s和1s。如果計(jì)數(shù)器達(dá)到了選定的定時(shí)器間隔值,看門狗定時(shí)器就產(chǎn)生一個(gè)復(fù)位信號(hào)給系統(tǒng)。如果在計(jì)數(shù)器達(dá)到選定的定時(shí)器間隔值之前,執(zhí)行了一個(gè)看門狗清除序列,計(jì)數(shù)器就復(fù)位為0并繼續(xù)遞增??撮T狗清除序列包括在一個(gè)看門狗時(shí)鐘周期內(nèi)寫0xA到WDCTL.CLR[3:0],接著寫0x5到同一個(gè)寄存器位。如果在看門狗周期結(jié)束之前,這個(gè)序列沒有被完全執(zhí)行,看門狗定時(shí)器就會(huì)產(chǎn)生一個(gè)復(fù)位信號(hào)給系統(tǒng)。在看門狗模式下,如果WDT已經(jīng)使能,就不能通過寫WDCTL.MODE[1:0]位來改變這個(gè)模式,定時(shí)器間隔值也不能改變。在看門狗模式下,WDT不會(huì)產(chǎn)生中斷請(qǐng)求。2定時(shí)器模式要在定時(shí)器模式下啟動(dòng)WDT,WDCTL.MODE[1:0]位必須設(shè)置為11。定時(shí)器啟動(dòng)后,計(jì)數(shù)器從0開始遞增。當(dāng)計(jì)數(shù)器達(dá)到選定的間隔值時(shí),定時(shí)器將產(chǎn)生一個(gè)中斷請(qǐng)求(IRCON2.WDTIF/IEN2.WDTIE)。在定時(shí)器模式,可以通過寫1到WDCTL.CLR[0]來清除定時(shí)器內(nèi)容。當(dāng)定時(shí)器被清除,計(jì)數(shù)器內(nèi)容就被置為0。寫00或01到WDCTL.MODE[1:0]將停止定時(shí)器并清除它為0。定時(shí)器間隔通過WDCTL.INT[1:0]位設(shè)置。在定時(shí)器運(yùn)行期間,不能改變定時(shí)器間隔,故當(dāng)定時(shí)器啟動(dòng)時(shí)應(yīng)設(shè)置定時(shí)器間隔。在定時(shí)器模式,到達(dá)定時(shí)器間隔不會(huì)產(chǎn)生復(fù)位。如果選擇了看門狗模式,在芯片復(fù)位之前無法選擇定時(shí)器模式。實(shí)施步驟啟動(dòng)IAR軟件,新建一個(gè)工程“WDT_SET”,具體步驟參見“實(shí)訓(xùn)1-2新建與調(diào)試ZigBee工程”。代碼部分參照書中描述。1實(shí)訓(xùn)源碼1)看門狗初始化2實(shí)訓(xùn)部分代碼解析voidInit_Watchdog(void){WDCTL=0x00; //時(shí)間間隔一秒,看門狗模式
WDCTL|=0x08; //啟動(dòng)看門狗}2)喂狗函數(shù)voidFeedDog(void){WDCTL=0xa0;WDCTL=0x50;}3)功能實(shí)現(xiàn)voidmain(void){SET_MAIN_CLOCK(0); //設(shè)置系統(tǒng)晶振時(shí)鐘
InitLed(); //初始化LEDInitKey(); //初始化按鍵控制I/O口
Init_Watchdog(); //初始化看門狗
LED1=1;//當(dāng)按下鍵1值時(shí),系統(tǒng)不喂狗,一直復(fù)位,LED1則一直閃爍
Delay(5000);while(1){if(KEY1!=0)//讀取按鍵動(dòng)作,如果按鍵沒有按下則一直執(zhí)行{FeedDog();//喂狗指令(加入后系統(tǒng)不復(fù)位,小燈一直閃爍)
LED0=!LED0;Delay(5000);}LED1=0;Delay(5000);}}成果檢驗(yàn)自我考核LED(D9)正常運(yùn)行情況下是否處于不亮狀態(tài)。02查看LED(D8)是否閃爍。01修改程序,實(shí)現(xiàn)不同時(shí)間的喂狗測(cè)試。SW2按下后LED(D9)是否閃爍,且LED(D8)不亮。03CONTENT目錄3412實(shí)訓(xùn)3-1看門狗應(yīng)用實(shí)訓(xùn)3-2串口通信實(shí)訓(xùn)3-3ADC單次采樣實(shí)訓(xùn)3-4采集溫度信息實(shí)訓(xùn)簡(jiǎn)介CC2530有兩個(gè)串行通信接口,即USART0和USART1,它們具有相同的功能,可以設(shè)置在單獨(dú)的I/O引腳,均能分別運(yùn)行于異步UART模式和同步SPI模式,本實(shí)訓(xùn)僅涉及異步UART模式。異步串行接口都提供UART模式。在UART模式中,接口使用兩線或者含有引腳RXD和TXD、可選RTS和CTS的四線連接。UART運(yùn)行模式具有下列特點(diǎn):
8位或者9位負(fù)載數(shù)據(jù)。 奇校驗(yàn)、偶校驗(yàn)或者無奇偶校驗(yàn)。 配置起始位和停止位電平。 配置LSB(最低有效位)或者M(jìn)SB(最高有效位)首先傳送。 獨(dú)立收發(fā)中斷。 獨(dú)立收發(fā)DMA觸發(fā)。 奇偶校驗(yàn)和幀校驗(yàn)出錯(cuò)狀態(tài)。實(shí)訓(xùn)目的2了解CC2530串口功能的運(yùn)用。1了解CC2530串口寄存器的配置。實(shí)訓(xùn)內(nèi)容2燒錄程序并進(jìn)行硬件上的驗(yàn)證。1使用串口輸出“Hello?。 ?。知識(shí)鏈接UART模式提供全雙工異步傳送,接收器中的位同步不影響發(fā)送功能。傳送一個(gè)UART字節(jié)包含1個(gè)起始位、8個(gè)數(shù)據(jù)位、1個(gè)作為可選項(xiàng)的第9位數(shù)據(jù)或者奇偶校驗(yàn)位、1個(gè)或2個(gè)停止位。注意,雖然真實(shí)的數(shù)據(jù)包含8位或者9位,但是數(shù)據(jù)傳送只涉及一個(gè)字節(jié)。UART操作由USART控制和狀態(tài)寄存器UxCSR、UART控制寄存器UxUCR來控制。這里的x是USART的編號(hào),其數(shù)值為0或者1。當(dāng)UxCSR.MODE設(shè)置為1時(shí),就選擇了UART模式。1UART發(fā)送當(dāng)USART收/發(fā)數(shù)據(jù)緩沖寄存器UxDBUF寫入數(shù)據(jù)時(shí),UART發(fā)送啟動(dòng),該字節(jié)發(fā)送到輸出引腳TXDx。UxDBUF是雙緩沖寄存器。當(dāng)字節(jié)傳送開始時(shí),UxCSR.ACTIVE位變?yōu)楦唠娖?;?dāng)字節(jié)傳送結(jié)束時(shí),UxCSR.ACTIVE位變?yōu)榈碗娖?。?dāng)傳送結(jié)束時(shí),UxCSR.TX_BYTE位設(shè)置為1。當(dāng)UxDBUF寄存器就緒,準(zhǔn)備接收新的發(fā)送數(shù)據(jù)時(shí),會(huì)產(chǎn)生一個(gè)中斷請(qǐng)求。該中斷在傳送開始之后立刻發(fā)生。因此,當(dāng)字節(jié)正在發(fā)送時(shí),新的數(shù)據(jù)字節(jié)能夠裝入數(shù)據(jù)緩沖器。2UART接收當(dāng)1寫入U(xiǎn)xCSR.RE位時(shí),在UART上數(shù)據(jù)接收就開始了。UART會(huì)在輸入引腳RXDx中尋找有效起始位,并設(shè)置UxCSR.ACTIVE位為高電平。當(dāng)檢測(cè)出有效起始位時(shí),收到的字節(jié)就會(huì)傳入到接收寄存器,UxCSR.RX_BYTE位設(shè)置為1。該操作完成時(shí),產(chǎn)生接收中斷。同時(shí),UxCSR.ACTIVE位變?yōu)榈碗娖?。通過寄存器UxDBUF提供收到的數(shù)據(jù)字節(jié)。當(dāng)UxDBUF讀出時(shí),UxCSR.RX_BYTE位由硬件清0。3UART特征格式如果寄存器UxUCR中的BIT9和奇偶校驗(yàn)位設(shè)置為1,那么奇偶校驗(yàn)產(chǎn)生而且檢測(cè)使能。奇偶校驗(yàn)計(jì)算出來,作為第9位來傳送。在接收期間,奇偶校驗(yàn)位計(jì)算出來而且與收到的第9位進(jìn)行比較。如果奇偶校驗(yàn)出錯(cuò),則UxCSR.ERR位設(shè)置為高電平。當(dāng)讀取UxCSR時(shí),UxCSR.ERR位清除。要傳送的停止位的數(shù)量設(shè)置為1或者2,這取決于寄存器位UxUCR.SPB。接收器總是要核對(duì)一個(gè)停止位。如果在接收期間收到的第一個(gè)停止位不是期望的停止位電平,就通過設(shè)置寄存器位UxCSR.FE為高電平發(fā)出幀出錯(cuò)信號(hào)。當(dāng)讀取UxCSR時(shí),UxCSR.FE位清除。當(dāng)UxUCR.SPB設(shè)置為1時(shí),接收器將核對(duì)兩個(gè)停止位。注意當(dāng)檢測(cè)到第一個(gè)停止位正確時(shí),將設(shè)置RX中斷。如果第二個(gè)停止位不正確,設(shè)置幀誤碼位UxCSR.FE時(shí)將有一個(gè)延遲。這個(gè)延遲與波特率有關(guān)(位持續(xù)時(shí)間)。4USART寄存器CC2530有USART0和USART1兩個(gè)串口,可以通過設(shè)置相應(yīng)的寄存器來決定選用哪一個(gè)串口。對(duì)于每個(gè)USART,有如下5個(gè)寄存器(x是USART的編號(hào),為0或者1):
UxCSR:USARTx控制和狀態(tài)寄存器。
UxUCR:USARTxUART控制寄存器。
UxGCR:USARTx通用控制寄存器。
UxDBUF:USARTx接收/發(fā)送數(shù)據(jù)緩沖寄存器。
UxBAUD:USARTx波特率控制寄存器。實(shí)施步驟啟動(dòng)IAR軟件,新建一個(gè)工程“USART_SET”,具體步驟參見“實(shí)訓(xùn)1-2新建與調(diào)試ZigBee工程”。代碼部分參照書中描述。1實(shí)訓(xùn)源碼1)串口初始化2實(shí)訓(xùn)部分代碼解析voidinitUART(void){CLKCONCMD&=~0x40; //設(shè)置系統(tǒng)時(shí)鐘源為32MHz晶振
while(CLKCONSTA&0x40); //等待晶振穩(wěn)定
CLKCONCMD&=~0x47; //設(shè)置系統(tǒng)主時(shí)鐘頻率為32MHzPERCFG=0x00; //位置1P0口
P0SEL=0x3c; //P0_2,P0_3,P0_4和P0_5用作串口
P2DIR&=~0XC0; //P0優(yōu)先作為USART0U0CSR|=0x80; //UART方式
U0GCR|=10;U0BAUD|=59; //波特率設(shè)為38400
UTX0IF=0; //USART0TX中斷標(biāo)志初始置位0}2)串口發(fā)送函數(shù)voidUartTX_Send_String(char*Data,intlen){intj;for(j=0;j<len;j++){U0DBUF=*Data++;while(UTX0IF==0);UTX0IF=0;}}3)功能實(shí)現(xiàn)while(1){if(KeyScan()&0x01) //讀取按鍵動(dòng)作
{
LED0=!LED0;}LED1=!LED1;UartTX_Send_String(Txdata,sizeof(Txdata)) //串口發(fā)送數(shù)據(jù)
Delay(50000);Delay(50000);}成果檢驗(yàn)(1)查看LED(D9)是否閃爍,查看串口接收數(shù)據(jù)指示燈D5是否閃爍。(2)查看串口調(diào)試工具是否接收到正確數(shù)據(jù),如右圖所示。串口接收數(shù)據(jù)自我考核修改程序,實(shí)現(xiàn)串口數(shù)據(jù)的接收處理。CONTENT目錄3412實(shí)訓(xùn)3-1看門狗應(yīng)用實(shí)訓(xùn)3-2串口通信實(shí)訓(xùn)3-3ADC單次采樣實(shí)訓(xùn)3-4采集溫度信息實(shí)訓(xùn)簡(jiǎn)介CC2530具有ADC功能。ADC支持14位的模擬/數(shù)字轉(zhuǎn)換,有效位數(shù)(ENOB)多達(dá)12位。它包括一個(gè)模擬多路轉(zhuǎn)換器(具有多達(dá)8個(gè)各自可配置的通道)和一個(gè)參考電壓發(fā)生器,并通過DMA將轉(zhuǎn)換結(jié)果寫入存儲(chǔ)器。此外,它還具有多種運(yùn)行模式。ADC的主要特性如下: 可選的抽取率,這也設(shè)置了分辨率(7到12位)。
8個(gè)獨(dú)立的輸入通道,可接收單端或差分信號(hào)。 參考電壓可選為內(nèi)部、外部單端、外部差分或AVDD5。 產(chǎn)生中斷請(qǐng)求。 轉(zhuǎn)換結(jié)束時(shí)的DMA觸發(fā)。 溫度傳感器輸入。 電池測(cè)量功能。實(shí)訓(xùn)目的2了解CC2530ADC單次采集功能的運(yùn)用。1了解CC2530ADC的相關(guān)寄存器配置。實(shí)訓(xùn)內(nèi)容2燒錄程序并進(jìn)行硬件上的驗(yàn)證。1編寫一個(gè)ADC采集外部滑動(dòng)變阻器電壓的程序。
知識(shí)鏈接ADC操作主要包括ADC輸入、ADC轉(zhuǎn)換序列、單個(gè)ADC轉(zhuǎn)換、ADC運(yùn)行模式、ADC轉(zhuǎn)換結(jié)果、ADC參考電壓、ADC轉(zhuǎn)換時(shí)間、ADC中斷等。1ADC輸入端口0引腳的信號(hào)可以用作ADC輸入。在下面的描述中,這些端口引腳指的是AIN0~AIN7引腳。輸入引腳AIN0~AIN7是連接到ADC的??梢园演斎肱渲脼閱味嘶虿罘州斎?。在選擇差分輸入的情況下,差分輸入包括輸入對(duì)AIN0-AIN1、AIN2-AIN3、AIN4-AIN5和AIN6-AIN7。注意負(fù)電壓不適用這些引腳,大于VDD(未調(diào)節(jié)電壓)的電壓也不適用。它是在差分模式下轉(zhuǎn)換的輸入對(duì)之間的差。除了輸入引腳AIN0~AIN7,片上溫度傳感器的輸出也可以選擇作為ADC的輸入,用于溫度測(cè)量。還可以輸入一個(gè)對(duì)應(yīng)AVDD5/3的電壓,作為ADC輸入。這個(gè)輸入允許諸如需要在應(yīng)用中實(shí)現(xiàn)電池監(jiān)測(cè)器的功能。需要注意的是,在這種情況下參考電壓不能取決于電源電壓,比如AVDD5電壓不能作為參考電壓。單端輸入AIN0~AIN7以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版咨詢業(yè)務(wù)協(xié)議模板88527版B版
- 2024年度互聯(lián)網(wǎng)內(nèi)容平臺(tái)債務(wù)保證擔(dān)保合同3篇
- 水暖管道系統(tǒng)安全防護(hù)技術(shù)考核試卷
- 簡(jiǎn)歷機(jī)械課程設(shè)計(jì)范文
- 棉織造工藝優(yōu)化與生產(chǎn)效率提升考核試卷
- 港口物流與物流配送效率提升考核試卷
- 粵劇主題課程設(shè)計(jì)
- 電子系統(tǒng)仿真課程設(shè)計(jì)
- 2024年時(shí)尚生活類雜志訂閱與品牌授權(quán)合同3篇
- 玻璃纖維增強(qiáng)塑料在電子線路板的應(yīng)用考核試卷
- 10S505 柔性接口給水管道支墩
- 2024北京高考語文試卷(真題+答案)
- GB/T 35603-2024綠色產(chǎn)品評(píng)價(jià)衛(wèi)生陶瓷
- 2024年人教版初二物理上冊(cè)期末考試卷(附答案)
- 手機(jī)攝影教程
- 產(chǎn)品進(jìn)入醫(yī)院的程序及方法
- 中國(guó)法律史-第三次平時(shí)作業(yè)-國(guó)開-參考資料
- 司機(jī)勞務(wù)合同
- 搭乘私家車免責(zé)協(xié)議書
- TD/T 1032-2011 基本農(nóng)田劃定技術(shù)規(guī)程(正式版)
- 模擬集成電路設(shè)計(jì)智慧樹知到期末考試答案章節(jié)答案2024年廣東工業(yè)大學(xué)
評(píng)論
0/150
提交評(píng)論