單片機技術與應用課件 38.Zigbee技術開發(fā)綜合實訓_第1頁
單片機技術與應用課件 38.Zigbee技術開發(fā)綜合實訓_第2頁
單片機技術與應用課件 38.Zigbee技術開發(fā)綜合實訓_第3頁
單片機技術與應用課件 38.Zigbee技術開發(fā)綜合實訓_第4頁
單片機技術與應用課件 38.Zigbee技術開發(fā)綜合實訓_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

Zigbee技術開發(fā)綜合實訓zigbee技術開發(fā)主講人:XXXZigbeetechnologydevelopmentZigbee技術開發(fā)綜合實訓任務描述基于ZigBee模塊進行基礎開發(fā),上電先讓LED1和LED2都滅,然后通過定時器每隔1秒進行溫濕度光敏傳感器數(shù)據(jù)的定時采集。并根據(jù)光照值來控制LED1和LED2的亮滅,當有光照時,LED1和LED2滅,當沒有光照時,LED1和LED2亮。每次LED1和LED2的狀態(tài)發(fā)生改變時,往串口發(fā)送相應數(shù)據(jù)告知光照情況的變化。設備列表ZigBee模塊1個CCDebugger燒寫器1個溫濕度光敏傳感器1個(或光敏傳感器1個)010203Zigbee技術開發(fā)綜合實訓任務要求1.ZigBee模塊一上電,LED1燈和LED2燈都滅。2.使用定時器1中斷方式來控制采集傳感器數(shù)據(jù)的時間,定時器1參數(shù)配置要求采用自由運行模式、128分頻。3.溫濕度光敏傳感器插在ZigBee的傳感器插槽上,查看相關的電路圖和數(shù)據(jù)手冊,設置采集溫濕度光敏傳感器的引腳初始化和ADC相關參數(shù),ADC要求配置為:3.3V電壓(AVDD5引腳)、128位抽取率、AIN0單通道。4.串口通信要求使用串口0的備用位置1:P0_2(RX),P0_3(TX),波特率19200,奇偶校驗無,1位停止位,8位數(shù)據(jù)位,流控無。5.定時1秒后,采集一次傳感器的值(注:要求將該處代碼中的“100”改成正確的值,且通過使用變量“l(fā)ight_val”實現(xiàn)采集傳感器的值)。6.根據(jù)光照狀態(tài)是否發(fā)生變化來控制兩個LED的亮滅,有光照則兩個LED都亮,沒有則都滅。7.將光照情況上發(fā)到串口顯示。注:串口接收信息時要選擇“ASCII碼”格式;發(fā)送的光照信息格式應如:“光照值:0.25V”,且添加相應的回車(“\r”)、換行(“\n”)、結束(“\0”)符號。Zigbee技術開發(fā)綜合實訓任務分析本次任務涉及到了CC2530單片機的I/O端口、定時器、串口及ADC相關寄存器的配置、初始化函數(shù)的設計及定時器中斷、串口接收/發(fā)送、ADC轉(zhuǎn)換等相關函數(shù)的設計相關知識。1.知識分析實訓任務選擇ZigBee實訓模塊如圖所示,要會識讀此實訓模塊電路圖,溫濕度光敏傳感器插在ZigBee的傳感器插槽上,會查看相關的電路圖和數(shù)據(jù)手冊。2.設備分析認真分析任務要求,明確各功能模塊的程序設計要求,會運用IAR軟件進行編程,并能夠編譯、鏈接、調(diào)試程序;會利用CCDebugger仿真下載器,將仿真器的下載線連接到ZigBee實訓模塊與電腦,利用串口調(diào)試工具進行仿真演示。3.技能分析主要包括基礎函數(shù)及功能實現(xiàn)函數(shù)的調(diào)用包括按鍵中斷服務函數(shù)、字符串發(fā)送函數(shù)、定時器中斷服務函數(shù)、串口中斷服務函數(shù)、ADC電壓值獲取函數(shù)Zigbee技術開發(fā)綜合實訓引用頭文件定義相關變量、聲明函數(shù)設計基礎函數(shù)設計功能實現(xiàn)函數(shù)設計主函數(shù)一、程序設計基本流程包括時鐘初始化函數(shù)、延時函數(shù)、燈的端口初始化函數(shù)、按鍵端口初始化函數(shù)、定時器初始化函數(shù)、串口初始化函數(shù)、ADC初始化函數(shù)任務實施一、搭建開發(fā)環(huán)境(1)新建工作區(qū),工作區(qū)名為:work。(2)新建工程,工程名為:project。(3)新建源程序文件,命名為test.c。(4)將test.c文件添加到project工程中。(5)按鍵CTRL+S保存工作區(qū)。(6)配置工程選項,“Project”->“Options”->“GeneralOptions”,“Device”->“TexasInstruments”->“CC2530F256”。(7)配置linker,勾選Overridedefault(8)配置Debugger,“Debugger”->“Setup”->“Driver”->“TexasInstruments”。Zigbee技術開發(fā)綜合實訓二、在編輯窗口編寫程序程序設計過程1.引入頭文件,定義相關變量聲明相關函數(shù)/*包含頭文件*/#include<iocc2530.h>#include<string.h>/*宏定義*/#defineLED1P1_0#defineLED2P1_1#defineuint16unsignedshort/*定義變量*/intcount=0;//統(tǒng)計定時器溢出次數(shù)charoutput[8];//存放轉(zhuǎn)換成字符形式的傳感器數(shù)據(jù)uint16light_val=0;//ADC采集結果uint16light_flag=0;//光照狀態(tài)標志位1:有光照;0:沒光照uint16light_flag_last=0;//上一次的光照狀態(tài)/*聲明函數(shù)*/voidInitCLK(void);//系統(tǒng)時鐘初始化函數(shù),為32MHzvoidInitUART0();//串口0初始化voidInitT1();//定時器1初始化voidDelay(intdelaytime);//延時函數(shù)voidInitADC();//ADC初始化函數(shù)unsignedshortGet_adc();//ADC采集voidUart_tx_string(char*data_tx,intlen);//往串口發(fā)送指定長度的數(shù)據(jù)voidInitLED(void);//燈的初始化Zigbee技術開發(fā)綜合實訓2.定義相關函數(shù)函數(shù)程序設計過程(1)時鐘初始化函數(shù)voidInitCLK(void){CLKCONCMD&=0x80;while(CLKCONSTA&0x40);}Zigbee技術開發(fā)綜合實訓(2)燈的端口初始化函數(shù)(3)T1初始化函數(shù)voidInitLED(){P1SEL&=~0x03;//設置P1_0、P1_1為GPIO口P1DIR|=0x03;//設置P1_0和P1_1為輸出LED1=LED2=0;//設置LED1和LED2的初始狀態(tài)}voidInitT1(){T1CTL=0X0D;//128頻,自由運行模式(1101)TIMIF|=0X40;//使能定時器溢出中斷IEN1|=0X02;//定時器1中斷使能或T1IE=1EA=1;}程序設計過程(4)串口初始化函數(shù)voidInitUART0(){U0CSR|=0X80;//串口模式PERCFG|=0x00;//USART0使用備用位置1P0_2P0_3P0SEL|=0X0C;//設置P0_2P0_3為外設U0UCR|=0X80;//流控無8位數(shù)據(jù)位無奇偶校驗1位停止位U0GCR=9;//設置波特率為19200(見書上對應表)U0BAUD=59;UTX0IF=0;EA=1;}Zigbee技術開發(fā)綜合實訓(5)串口發(fā)送函數(shù)voiduart_tx_string(char*data_tx,intlen){unsignedintj;for(j=0;j<len;j++){U0DBUF=*data_tx++;while(UTX0IF==0);UTX0IF=0;}}程序設計過程(6)ADC初始化函數(shù)voidInitADC(){APCFG|=1;//設置P0_0為模擬端口P0SEL|=0x01;//設置P0_0為外設P0DIR&=~0x01;//設置P0_0為輸入方向ADCCON3=0xA0;//設置參考電壓3.3V256抽取率使用AIN0通道}Zigbee技術開發(fā)綜合實訓(7)ADC采集函數(shù)uint16Get_adc(){while(!ADCIF);ADCIF=0;unsignedlongvalue;value=ADCH;value=value<<8;value|=ADCL;value=value*330;//VALUE*3.3v/32768value=value>>15;return(uint16)value;}程序設計過程Zigbee技術開發(fā)綜合實訓3.定時器T1中斷服務函數(shù)#pragmavector=T1_VECTOR__interruptvoidt1(){T1IF=0;//清除定時器1中斷標志count++;//累加中斷次數(shù)/*.......定時1秒后,采集一次傳感器的值*/if(count==4)//定時1秒到{light_val=Get_adc();//獲取光照值if(light_val>50)light_flag=1;//光照強elselight_flag=0;//幾乎無光照程序設計過程Zigbee技術開發(fā)綜合實訓3.定時器T1中斷服務函數(shù)if(light_flag_last!=light_flag)//當光照狀態(tài)發(fā)生改變時{/*.......根據(jù)光照狀態(tài)控制兩個LED的亮滅,有光照則都滅,沒有則都亮*/if(light_flag==1){LED1=0;LED2=0;}else{LED1=1;LED2=1;}程序設計過程Zigbee技術開發(fā)綜合實訓3.定時器T1中斷服務函數(shù)/*.......將光照情況按要求組幀后上發(fā)到串口顯示*/output[0]=light_val/100+'0';output[1]='.';output[2]=light_val/10%10+'0';output[3]=light_val%10+'0';output[4]='V';output[5]='\r';output[6]='\n';output[7]='\0';Uart_tx_string("光照值:",sizeof("光照值:"));Uart_tx_string(output,sizeof(output));//發(fā)送傳感數(shù)據(jù)到串口light_flag_last=light_flag;//保持上一次的光照狀態(tài)}count=0;//計數(shù)值清零}}程序設計過程Zigbee技術開發(fā)綜合實訓4.主函數(shù)voidmain(){InitCLK();//系統(tǒng)時鐘32MInitLED();//燈的初始化InitT1();//定時器初始化InitUART0();//串口初始化InitADC();//ADC初始化while(1);}3.編譯、分析、調(diào)試程序1編譯無誤后,將CCDebugger

溫馨提示

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

評論

0/150

提交評論