




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
./實驗一軟件安裝和工程建立一、實驗?zāi)康?.熟悉IARFor8051的安裝;2.掌握開發(fā)環(huán)境的配置;3.掌握工程文件的建立。二、實驗任務(wù)1.IARFor8051的安裝;2.根據(jù)需要配置開發(fā)環(huán)境;3.工程文件的使用,如建立空工程,選擇Device,選擇Code和MemoryModel,配置linker,配置仿真器和添加文件到工程;三、實驗步驟等〔一IARFor8051安裝IARfor8051軟件時開發(fā)TIZ-Stack協(xié)議棧應(yīng)用程序的必備軟件,所有程序的編譯、仿真調(diào)試均需使用該軟件,當(dāng)前最新版的Z-Stack協(xié)議為ZStack-CC2530-2.5.1a,配套IAR版本V8.101.1安裝文件程序安裝包以及破解文件位于開發(fā)套件根目錄下的軟件工具文件夾下,如下圖都解壓,在目錄找到安裝文件,雙擊開始安裝,如下圖:點擊第二個選項InstallIAREmbeddedWorkbench開始安裝,然后點擊Next,接受license,再點擊next。此時在破解文件目錄找到破解文件,并且雙擊運行,如果是WIN7系統(tǒng),請使用管理員權(quán)限運行,如下圖按照圖示步驟,選擇好需要破解的IAR版本,然后獲取ID,最后生成注冊碼,然后回到安裝程序,拷貝相應(yīng)的序列號到需要的地方,然后在點擊next,繼續(xù)安裝過程。點擊完next后,選擇全部安裝。安裝目錄就選擇默認(rèn)的安裝目錄,最好不要修改,否則在編譯程序的過程中有可能出現(xiàn)找不到庫文件的錯誤,如下圖。然后一路next,直至安裝過程結(jié)束。安裝結(jié)束后,在開始->程序目錄中找到IARFOR8051,并打開程序打開界面如下1.2配置開發(fā)環(huán)境開發(fā)環(huán)境安裝好后,需要對開發(fā)環(huán)境進(jìn)行配置,這樣能更好的方便開發(fā),具體配置過程如下:打開Tools->options選項,在editor配置項中,把TabSize與Indentsize均配置為4,如下圖然后在該配置項下的colorsandFonts,配置字體大小與顯示顏色,如下圖:
其中語法配色在本環(huán)境中配置如下<其中字體配置為CourierNew,Size=12>:名稱配色樣式CKeywordBlueBoldStringsGreenNormalCharGreenNormalPreprocessorBlueNormalInteger<dec>RedNormalInteger<oct>RedNormalInteger<hex>RedNormalFloatRedNormalC++commentGreenNormalCommentGreenNormalUserKeywordBlueBoldCompileKeywordBlueBoldAsmKeywordBlueBoldAsmcommentGreenNormal所有的配置好后,點擊確定保存配置,自此開發(fā)環(huán)境配置結(jié)束,下面開始正式學(xué)習(xí)CC2530的容?!捕⒐こ淘陂_始實驗前首先需要建立一個新的工程,建立過程如下:2.1、建立空工程在Project菜單下點擊CreatNewProject然后選擇建立空工程點擊OK后,選擇工程建立的目錄,例如我們建立了一個名為"1、LED"文件夾,把工程建立在此文件夾下,該文件夾在電腦的位置根據(jù)自己習(xí)慣定,輸入工程名稱led,然后保存。2.2、選擇Device首先在Workspace工作區(qū)右鍵點擊工程,選擇Options,如下圖然后選擇Device,本開發(fā)板中單片機為TI的CC2530F256,選擇如下圖:然后選擇CC2530F256,如下圖2.3、選擇Code和MemoryModel在code類型中有Near和Banked兩項可選擇"Near"當(dāng)不需要Bank支持是可以選擇Near,例如,你只需要訪問64Kflash空間的時候,不需要更多的flash空間,比如你使用的是CC2530F32或CC2530F64,或者使用的CC2530F256但并不需要那么大的flash空間時,可以選擇Near。"Banked"選擇該項時標(biāo)明你需要更多的空間能夠仿真CC253xF128或者CC253xF256的整個Flash空間。默認(rèn)Nearcodemodel中的datamodel是Small,默認(rèn)的Banked,datamodel為Large,datamodel決定編譯器或者連接器如何使用8051的存來存儲變量,選擇smalldatamodel,變量典型的存儲在DATA存空間,如果使用Largedatamodel,變量存儲在XDATA空間。在CC2530用戶手冊和IAR8051編譯器參考手冊中會詳細(xì)描述變量存空間。在這里,重要的事情是,8051使用不同的指令來訪問variousmemoryspaces訪問IDATA,一般情況下,比仿真XDATA要快,但通常XDATA的空間會比IDATA大。在Z-Stack協(xié)議棧中,使用largememorymodel來支持CC2530F256,這樣協(xié)議??梢源鎯υ赬DATA區(qū)域,以上設(shè)置結(jié)束后,如下圖所示。在Bankedcodemodel中,有一些額外的選項需要注意,選擇CodeBanktab,如下圖,CC2530使用7個codebanks,為了訪問整個256K的Flash空間,Numberof必須設(shè)置為0x07,Register0x9F是CC2530的FMAP寄存器,用來控制當(dāng)前那個codebank映射到8051的地址空間,第三個Register未使用,最好設(shè)置0xFF,設(shè)置如下圖。然后選擇使用的庫,如下圖2.4、配置linker下一步需要配置IDE怎樣使用Linker來程序代碼。在左邊的選項中選擇Linker,并在右邊的選項卡中選擇Config一頁,在LinkerCommandfile中復(fù)選Overridedefault,例如,我們選擇lnk51ew_CC2530F256_banked.xcl,banked表示使用bankedcodemodel。默認(rèn)路徑為:$TOOLKIT_DIR$\config\devices\TexasInstruments\lnk51ew_CC2530F256_banked.xcl2.5、配置仿真器在Debug選項中選擇TI的仿真器,其他都默認(rèn)配置即可至此工程已經(jīng)配置完畢,我們可以開始在這個環(huán)境中編寫我們自己的應(yīng)用了。2.6、添加文件到工程在工具欄中點擊新建文件,此時文件還沒有保存,然后在點擊工具欄上保存按鈕,輸入文件名,例如我們新建一個led.c的文件,選擇保存在我們的工程目錄下,如下圖:但此時led.c文件還一個獨立的文件,還沒有加入到工程,進(jìn)行如下操作把該文件加入到工程中去,然后編譯文件,雖然本文件還是個空文件,編譯是不能通過的,因為沒main函數(shù),所以我們在led.c文件中加入如下代碼即可voidmain<void>{}在工程名上點擊右鍵->make此時會提示保存工程,按如下操作即可。在輸出信息窗口可以得到如下結(jié)果表示編譯成功,此時點擊工具欄上的downloadanddebug按鈕,即可開始仿真程序。至此我們可以在此文件添加其他的代碼,或者在該工程中添加其他文件,方法都如上所述。實驗二LED燈控制實驗一、實驗?zāi)康模菏煜C2530的I/O口的基本操作;二、實驗任務(wù):使用I/O口來控制LED燈,如點亮LED燈,控制LED燈閃爍;三、實驗設(shè)備:仿真器1臺,ZigBee模塊1塊,USB連接線1根;四、實驗步驟等1、實驗介紹本次實驗的目的是讓用戶學(xué)會使用CC2530的I/0來控制外設(shè),本例以LED燈為外設(shè),用CC2530控制簡單外設(shè)時,應(yīng)將I/O設(shè)置為輸出。實驗設(shè)備:仿真器1臺,ZigBee模塊1塊,USB連接線1根。底板上共兩個LED,電路連接如下圖由電路可知,低電平點亮LED燈。實驗中操作了的寄存器有P1SEL,P1DIR,具體說明如下:P1SEL〔P1寄存器位號位名復(fù)位值操作性功能描述7:0P1[:0]000讀/寫P1端口普通功能寄存器,可位尋址P1DIR〔P1方向寄存器位號位名復(fù)位值操作性功能描述7DIRP1_70讀/寫P1_7方向0輸入1輸出6DIRP1_60讀/寫P1_6方向0輸入1輸出5DIRP1_50讀/寫P1_5方向0輸入1輸出4DIRP1_40讀/寫P1_4方向0輸入1輸出3DIRP1_30讀/寫P1_3方向0輸入1輸出2DIRP1_20讀/寫P1_2方向0輸入1輸出1DIRP1_10讀/寫P1_1方向0輸入1輸出0DIRP1_00讀/寫P1_0方向0輸入1輸出2、示例源碼如下:led1.c點亮led1#include<ioCC2530.h>#defineLED_1P1_0voidInitLedGPIO<void>{ P1DIR|=0x01;//將P1_0定義為輸出 LED_1=1;//LED1off}voidmain<void>{while<1>{InitLedGPIO<>;LED_1=0;}}Led2.c將Led2燈閃爍#include<ioCC2530.h>#include<stdint.h>#defineLED_2P1_1voidInitLedGPIO<void>{ P1DIR|=0x02;//將P1_1定義為輸出 LED_2=1;//LED2off}voiddelay<uint16_tn>{ uint16_ttt; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>;}voidmain<void>{InitLedGPIO<>;while<1>{LED_2=!LED_2;delay<50000>;}}3、實驗相關(guān)函數(shù)解釋voiddelay<uint16_tn>{ uint16_ttt; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>;}函數(shù)功能是軟件延時,在下面學(xué)習(xí)了定時器后,可以使用定時器進(jìn)行精確的延時。4、實驗要求〔1建立工程,編寫代碼點亮LED2〔2建立工程,編寫代碼同時實現(xiàn)LED1、LED2閃爍實驗三按鍵控制LED實驗一、實驗?zāi)康模涸黾訉O口設(shè)置的認(rèn)識;二、實驗任務(wù):按下K1鍵LED1狀態(tài)取反,按下K2鍵LED2狀態(tài)取反;三、實驗設(shè)備:仿真器1臺,ZigBee模塊1塊,USB連接線1根;四、實驗步驟等1、實驗介紹:電路連接如下圖2、實驗相關(guān)寄存器實驗中相關(guān)的寄存器除LED相關(guān)的外,還有有P0SEL,P1SEL,P0DIR,P1DIR,P0INP,P1INP。前面三個寄存器在實驗1已經(jīng)有詳述,這里不再重復(fù)介紹。下面為P0INP,P1INP的描述3、實驗源碼key控制LED1#include<ioCC2530.h>#include<stdint.h>#defineLED_1P1_0#defineKEY_1P0_1voidInitLedGPIO<void>{P1DIR|=0x03;//IO口為輸出LED_1=1;//關(guān)閉LED1燈}voidInitKeyGPIO<void>{P0DIR&=~0x01;//P0_1口為輸入}voiddelay<uint16_tn>{ uint16_ttt; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>;}uint8_tget_key<void>{if<KEY_1==0>{delay<200>;//delaysometimeavoidMechanicalditherif<KEY_1==0>{while<KEY_1==0>;//WaituntilReleasereturn1;}}return0;}voidmain<void>{uint8_tkey; InitLedGPIO<>;InitKeyGPIO<>; while<1> {key=get_key<>;if<key==1>LED_1=!LED_1; }}4、實驗要求〔1建立工程,編寫代碼實現(xiàn)KEY2控制Led2的亮滅〔2建立工程,編寫代碼同時實現(xiàn)KEY1控制Led1,KEY2控制Led2的亮滅實驗四外部中斷實驗一、實驗?zāi)康模涸黾訉O口設(shè)置的認(rèn)識;二、實驗任務(wù):使用中斷方式,按下K1鍵LED1狀態(tài)取反,按下K2鍵LED2狀態(tài)取反;三、實驗設(shè)備:仿真器1臺,ZigBee模塊1塊,USB連接線1根;四、實驗步驟等1、實驗介紹:電路連接如下圖2、實驗相關(guān)寄存器:實驗中操作了的除前面使用的寄存器外,中斷涉及到的寄存器有P0IEN,P0CTL,IEN2,P0IFG等寄存器。P0IEN〔P0口中斷掩位號位名復(fù)位值可操作性功能描述7P0_7IEN0讀/寫P07中斷掩碼0關(guān)中斷1開中斷6P0_6IEN0讀/寫P06中斷掩碼0關(guān)中斷1開中斷5P0_5IEN0讀/寫P05中斷掩碼0關(guān)中斷1開中斷4P0_4IEN0讀/寫P04中斷掩碼0關(guān)中斷1開中斷3P0_3IEN0讀/寫P03中斷掩碼0關(guān)中斷1開中斷2P0_2IEN0讀/寫P02中斷掩碼0關(guān)中斷1開中斷1P0_1IEN0讀/寫P01中斷掩碼0關(guān)中斷1開中斷0P0_0IEN0讀/寫P00中斷掩碼0關(guān)中斷1開中斷PICTL〔P口中斷控制寄存器位號位名復(fù)位值可操作性功能描述7-0讀預(yù)留6ADSC0讀/寫輸出驅(qū)動能力選擇0最小驅(qū)能力,1大驅(qū)動能力5P2IEN0讀/寫P2〔0-4斷使能位0關(guān)中斷1開中斷4P0IENH0讀/寫P0〔4-7斷使能位0關(guān)中斷1開中斷3P0IENL0讀/寫P0〔0-3斷使能位0關(guān)中斷1開中斷2P2ICON0讀/寫P2〔0-4中斷配置0上升沿發(fā),1下沿觸發(fā)1P1ICON0讀/寫P1〔0-7中斷配置0上升沿發(fā),1下沿觸發(fā)0P0ICON0讀/寫P0〔0-7中斷配置0上升沿發(fā),1下沿觸發(fā)P0IFG〔P0口中斷標(biāo)志寄存器位號位名復(fù)位值可操作性功能描述7:0P0IF[70]000讀/寫P〔0-7斷標(biāo)志位在中斷條件發(fā)生,相應(yīng)位自動置1IEN1〔中斷使能寄存器位號位名復(fù)位值功可操作性功能描述7:6--00讀沒有,讀出為005P0IE0讀/寫端口0中斷使能0:中斷禁止1:中斷使能4T4IE0讀/寫定時器4中斷使能0:中斷禁止1:中斷使能3T3IE0讀/寫定時器3中斷使能0:中斷禁止1:中斷使能2T2IE0讀/寫定時器2中斷使能0:中斷禁止1:中斷使能1T1IE0讀/寫定時器1中斷使能0:中斷禁止1:中斷使能0DMAIE0讀/寫DMA傳輸中斷使能0:中斷禁止1:中斷使能IEN2〔中斷使能寄存器位號位名復(fù)位值可操作性功能描述7:6-00讀沒有,讀出為05WDTIE0讀/寫看門狗定時器中斷使能0關(guān)中斷1開中斷4P1IE0讀/寫P1中斷使能使能0關(guān)中斷1開中斷3UTX1IE0讀/寫串口1發(fā)中斷使能0關(guān)中斷1開中斷2UTX0IE0讀/寫串口0發(fā)中斷使能0關(guān)中斷1開中斷1P2IE0讀/寫P2口中斷使能0關(guān)中斷1開中斷0RFIE0讀/寫普通射頻中斷使能0關(guān)中斷1開中斷3、示例源碼〔使用中斷,用按鍵K1控制LED1燈亮滅按照表格寄存器容,我們對LED1和按鍵K1,也就是P1.0和P0.1口進(jìn)行配置,當(dāng)P1.0輸出低電平LED1被點亮,按鍵K1按下時P0.1產(chǎn)生外部中斷從而控制LED1的亮滅,具體配置如下:LED1初始化:外部中斷初始化:<3>中斷函數(shù):<4>示例源碼:#include<ioCC2530.h>#include<stdint.h>#defineLED_1P1_0#defineKEY_1P0_1voiddelay<uint16_tn>{ uint16_ttt; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>;}voidInitLedGPIO<void>{P1DIR|=0x01;//P1.0定義為輸出LED_1=1;//LED1燈關(guān)閉}voidInitKeyGPIO<void>{P0DIR&=~0x02;//設(shè)置K1:P0.1asinput定義為輸入P0IEN|=0x02;//P0.1設(shè)置為中斷方式PICTL|=0x01;//下降沿觸發(fā)IEN1|=0x20;//端口0中斷使能P0IFG=0x00;//中斷標(biāo)志位初始化EA=1;//開總中斷}#pragmavector=P0INT_VECTOR//中斷格式:#pragmavector=中斷向量//緊接著是中斷處理程序__interruptvoidP0_ISR<void>{delay<2000>;//去抖動LED_1=!LED_1;//改變LED1狀態(tài)P0IFG=0;//清中斷標(biāo)志P0IF=0;//清中斷標(biāo)志}voidmain<void>{ InitLedGPIO<>;//調(diào)用初始化函數(shù)InitKeyGPIO<>; while<1>;//等待外部中斷}4、實驗要求請實現(xiàn)上述示例源碼功能,并編寫代碼使用中斷,實現(xiàn)K2控制Led2燈的亮滅,完成程序的下載和實現(xiàn)。實驗五定時/計數(shù)器實驗〔T1自由運行模式實驗?zāi)康模毫私舛〞r器1的基本上使用方法二、實驗任務(wù):用定時器1來改變LED燈的狀態(tài),T1每溢出一次,兩個led閃爍取反,使用定時器中斷。三、實驗設(shè)備:仿真器1臺,ZigBee模塊1塊,USB連接線1根;四、實驗步驟等1、實驗介紹:定時器包括一個16位計數(shù)器,在每個活動時鐘邊沿遞增或遞減?;顒訒r鐘邊沿周期由寄存器位CLKCON.TICKSPD定義,它設(shè)置系統(tǒng)時鐘的劃分,提供了從0.25MHz到32MHz的不同的時鐘標(biāo)簽頻率〔可以使用32MHzXOSC作為時鐘源。這在定時器1中由T1CTL.DIV設(shè)置的分頻器值進(jìn)一步劃分。這個分頻器值可以從1、8、32或128。因此當(dāng)32MHz晶振用作系統(tǒng)時鐘源時,定時器1可以使用的最低時鐘頻率是1953.125Hz,最高是32MHz。當(dāng)16MHzRC振蕩器用作系統(tǒng)時鐘源時,定時器1可以使用的最高時鐘頻率是16MHz。計數(shù)器可以作為一個自由運行計數(shù)器,一個模計數(shù)器或一個正計數(shù)/倒計數(shù)器運行,用于中心對齊的PWM??梢酝ㄟ^兩個8位的SFR讀取16位的計數(shù)器值:T1CNTH和T1CNTL,分別包含在高位字節(jié)和低位字節(jié)中。當(dāng)讀取T1CNTL時,計數(shù)器的高位字節(jié)在那時被緩沖到T1CNTH,以便高位字節(jié)可以從T1CNTH中讀出。因此T1CNTL必須總是在讀取T1CNTH之前首先讀取。對T1CNTL寄存器的所有寫入訪問將復(fù)位16位計數(shù)器。當(dāng)達(dá)到最終計數(shù)值〔溢出時,計數(shù)器產(chǎn)生一個中斷請求??梢杂肨1CTL控制寄存器設(shè)置啟動并停止該計數(shù)器。當(dāng)一個不是00值的寫入到T1CTL.MODE時,計數(shù)器開始運行。如果00寫入到T1CTL.MODE,計數(shù)器停止在它現(xiàn)在的值上。2、實驗相關(guān)寄存器在前面介紹的寄存器在這就不在介紹,在這里需要時鐘控制的相關(guān)的寄存器CLKCOMMD與CLKCONSTA,具體介紹如下:另外還有中斷使能控制器IEN1:定時器1的控制寄存器T1CTL3、示例源碼用定時器1來改變LED1燈的狀態(tài),T1每溢出一次,LED1閃爍取反,使用定時器中斷:系統(tǒng)時鐘設(shè)置:該函數(shù)實現(xiàn)的功能是切換外部時鐘,使用外部時鐘32M晶體定時器T1設(shè)置:該函數(shù)把定時器1初始化為自由運行模式,對系統(tǒng)時鐘32分頻,也就是定時器工作的時鐘是1M,這樣當(dāng)定時器計數(shù)從0000-FFFF時溢出產(chǎn)生中斷,時間為=65536us。完整源碼:#include<ioCC2530.h>#include<stdint.h>#defineLED_1P1_0voidInitLedGPIO<void>{ P1DIR|=0x01;//將P1_0定義為輸出 LED_1=1;//LED1off}voidInitSysTick<void>{CLKCONCMD&=~0x40;//設(shè)置系統(tǒng)時鐘源為32MHZ晶振while<CLKCONSTA&0x40>;//等待晶振穩(wěn)定為32MCLKCONCMD&=~0x47;//設(shè)置系統(tǒng)主時鐘頻率為32MHZ}voidInitTimer1<void>{T1CTL=<0x02<<2>|<0x01>;//DIV[1:0]=10,T1時鐘標(biāo)記頻率/32//MOD[1:0]=01,T1自由運行模式IEN1|=0x02;//允許T1中斷EA=1;//開總中斷}voidmain<void>{ InitSysTick<>;InitLedGPIO<>;InitTimer1<>; while<1>;}#pragmavector=T1_VECTOR__interruptvoidT1_ISR<void>{LED_1=!LED_1;}4、實驗要求請實現(xiàn)上述示例源碼功能,并編寫代碼使用中斷,實現(xiàn)T1控制Led2燈的亮滅,完成程序的下載和實現(xiàn)。實驗六串口通信〔查詢模式一、實驗?zāi)康模毫私獯诘氖褂梅椒ǎ欢?、實驗任?wù):使用查詢方式,串口發(fā)送HelloWorld!字符串;三、實驗設(shè)備:仿真器1臺,ZigBee模塊1塊,USB連接線1根;四、實驗步驟等1、實驗介紹:電路連接如下圖由上圖可知,串口的管腳分別在單片機的P0.2〔RX與P0.3〔TX,使用的為USART0。在CC2530中,USART0和USART1是串行通信接口,它們能夠分別運行于異步USART模式或者同步SPI模式。兩個USART的功能是一樣的,可以通過設(shè)置在單獨的IO引腳上。USART模式的操作具有下列特點:1、8位或者9位負(fù)載數(shù)據(jù)2、奇校驗、偶校驗或者無奇偶校驗3、配置起始位和停止位電平4、配置LSB或者M(jìn)SB首先傳送5、獨立收發(fā)中斷6、獨立收發(fā)DMA觸發(fā)注:在本次實驗中,我們用到的是UART0。CC2530配置串口的一般步驟:1、配置IO,使用外部設(shè)備功能。此處配置P0_2和P0_3用作串口UART02、配置相應(yīng)串口的控制和狀態(tài)寄存器。此處配置UART0的工作寄存器3、配置串口工作的波特率。此處配置為波特率為115200注意:在本實驗中需要使用到USB轉(zhuǎn)串口,所以要在PC機上安裝usb轉(zhuǎn)串口的驅(qū)動。2、實驗相關(guān)寄存器P0SEL〔1功能選擇寄存器位號位名復(fù)位值操作性功能描述7SELP0_70讀/寫P0_7功能0普通I/O1外設(shè)功能6SELP0_60讀/寫P0_6功能0普通I/O1外設(shè)功能5SELP0_50讀/寫P0_5功能0普通I/O1外設(shè)功能4SELP0_40讀/寫P0_4功能0普通I/O1外設(shè)功能3SELP0_30讀/寫P0_3功能0普通I/O1外設(shè)功能2SELP0_20讀/寫P0_2功能0普通I/O1外設(shè)功能1SELP0_10讀/寫P0_1功能0普通I/O1外設(shè)功能0SELP0_00讀/寫P0_0功能0普通I/O1外設(shè)功能3、示例源碼在串口調(diào)試助手上可以看到不停的收到CC2530發(fā)過來的:Helloworld!波特率:9600,并用LED1的閃爍來標(biāo)志數(shù)據(jù)的每一次發(fā)送。系統(tǒng)時鐘設(shè)置:串口設(shè)置:數(shù)據(jù)發(fā)送模塊:4、實驗要求:完成上述的完整源碼,實現(xiàn)程序下載和調(diào)試,完成數(shù)據(jù)通信,得出實驗結(jié)果。實驗六串口通信〔中斷模式一、實驗?zāi)康模毫私獯诘氖褂梅椒?;二、實驗任?wù):使用中斷方式,從PC機接收字符并返回;三、實驗設(shè)備:仿真器1臺,ZigBee模塊1塊,USB連接線1根;四、實驗步驟等1、實驗介紹:電路連接見實驗五2、實驗相關(guān)寄存器:在此給出新的寄存器,其他見實驗五3、示例源碼:從串口調(diào)試助手發(fā)送數(shù)據(jù)到CC2530,而CC2530將數(shù)據(jù)返回計算機。系統(tǒng)時鐘設(shè)置:串口設(shè)置:中斷設(shè)定4、實驗要求:完成上述的完整源碼,實現(xiàn)程序下載和調(diào)試,完成數(shù)據(jù)通信,得出實驗結(jié)果。實驗七A/D實驗一、實驗?zāi)康模毫私釩C2530的ADC使用方法;二、實驗任務(wù):通過串口輸出AD通道0轉(zhuǎn)換的值;三、實驗設(shè)備:仿真器1臺,ZigBee模塊1塊,USB連接線1根;四、實驗步驟等1、實驗相關(guān)寄存器:實驗需要使用到的寄存器ADCCON32、實驗源碼:voidInitialAD<void>{APCFG|=_BV<0>;//EnableIOADP0SEL|=_BV<0>;ADCCON3=0x03<<4;//SelectInternalreference,Channal:AIN0 //512decimationrate<12bitsENOB> ADCCON1=0x03<<4; //stopADconvert ADCCON1|=_BV<6>; //startADconvert}/***briefdelaysometime.*paramndelaycount*retvalNone*/voiddelay<uint16_tn>{ uint16_ttt; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>;}/***briefinitsystemtickclock.*paramNone*retvalNone*/voidInitSysTick<void>{CLKCONCMD&=~0x40;/*selectxosc32MHzassystemclock*/while<CLKCONSTA&0x40>;/*waituntilxoscstable*/CLKCONCMD=0;/*usexosc32MHzassystem,timer1clock32Mhz*/}/***briefinituart.*paramNone*retvalNone*/voidInitUart<void>{PERCFG&=~_BV<0>;/*usedefaultpinasuart0pin:TX-P0.3RX-P0.2*/P0SEL|=<_BV<2>|_BV<3>>;/*selectP0.2P0.3usedasPeripheralfunction*/P0DIR&=~_BV<2>;/*P0.2:RXsetinput*/U0CSR|=_BV<7>;/*Selectuartmode*/U0GCR|=8;U0BAUD=59;/*setbaudrate:9600*/UTX0IF=0;}/***briefsendstringuseuart0*paramNone*retvalNone*/voiduart_send_string<uint8_t*dat,intlen>{uint16_tj;for<j=0;j<len;j++>{U0DBUF=*dat++;while<UTX0IF==0>;UTX0IF=0;}}/***briefgetadcvalue.*paramNone*retvalNone*/voidget_adc<void>{uint16_tadc;uint8_ti;uint8_ttmp[2];floatad;if<ADCCON1>=0x80>{InitialAD<>;tmp[1]=ADCL;tmp[0]=ADCH;adc=tmp[1];adc|=<tmp[0]<<8>;adc>>=4;if<adc&0x8000>adc=0;//ifnegative,adc=0;ad=adc*1.25/2048;memset<get_dat,'',8>;//formatstringadc=<uint16_t><ad*1000>;sprintf<<void*>get_dat,"%d",adc>;get_dat[strlen<<void*>get_dat>]='';for<i=0;i<8;i++>{buf[13+i]=get_dat[i];}uart_send_string<buf,sizeof<buf>>;}}/***briefMainprogram.*paramNone*retvalNone*/voidmain<void>{InitSysTick<>;InitUart<>;InitialAD<>;while<1>{get_adc<>;delay<50000>;delay<50000>;}}3、實驗要求:完成上述的完整源碼,并給主要源碼加以注釋,實現(xiàn)程序下載和調(diào)試,完成數(shù)據(jù)通信,得出實驗結(jié)果。實驗八熱釋紅外實驗一、實驗?zāi)康模菏煜後尲t外傳感器的使用方法;二、實驗任務(wù):通過檢測熱釋紅外傳感器檢測是否有人,并通過串口顯示"有人","無人";三、實驗設(shè)備:仿真器1臺,ZigBee模塊1塊,USB連接線1根;四、實驗步驟等1、實驗介紹:1熱釋紅外原理:專門用作探測人體輻射的紅外線傳感器,由探測元件將探測并接收到的紅外輻射轉(zhuǎn)變成微弱的電壓信號,經(jīng)裝在探頭的場效應(yīng)管放大后向外輸出。為了提高探測器的探測靈敏度以增大探測距離,一般在探測器的前方裝設(shè)一個菲涅爾透鏡,它和放大電路相配合,可將信號放大70分貝以上,這樣就可以測出20米圍人的行動。人體輻射的紅外線中心波長為9~10--um,而探測元件的波長靈敏度在0.2~20--um圍幾乎穩(wěn)定不變。在傳感器頂端開設(shè)了一個裝有濾光鏡片的窗口,這個濾光片可通過光的波長圍為7~10--um,正好適合于人體紅外輻射的探測,而對其它波長的紅外線由濾光片予以吸收,這樣便形成了一種專門用作探測人體輻射的紅外線傳感器。2實驗所用傳感器簡介:本實驗的熱釋紅外傳感器如下圖所示:當(dāng)有人進(jìn)入其感應(yīng)圍則輸出高電平,人離開感應(yīng)圍則自動延時關(guān)閉輸出低電平。感應(yīng)距離7米,感應(yīng)角度110°傳感器電路板接口電路圖如下:終端與傳感器板接口,熱釋紅外的輸出接到了單片機的P0.0口2、實驗源碼:使用傳感器檢測其周圍是否有人:當(dāng)有人出現(xiàn)在其檢測圍時,在計算機上顯示"有人",否則顯示"無人"。系統(tǒng)時鐘設(shè)置:串口設(shè)置:數(shù)據(jù)發(fā)送模塊:傳感器檢測模塊:3、實驗要求:完成上述的完整源碼,實現(xiàn)程序下載和調(diào)試,完成傳感器檢測和通信,得出實驗結(jié)果。實驗九超聲波傳感器實驗一、實驗?zāi)康模毫私獬暡▊鞲衅鞯氖褂梅椒?;二、實驗任?wù):通過超聲波傳感器串口打印被測量物體的距離;三、實驗設(shè)備:仿真器1臺,ZigBee模塊1塊,USB連接線1根;四、實驗步驟等1、實驗介紹:1超聲波原理:超聲波傳感器是利用超聲波的特性研制而成的傳感器。超聲波是一種振動頻率高于聲波的機械波,由換能晶片在電壓的激勵下發(fā)生振動產(chǎn)生的,它具有頻率高、波長短、繞射現(xiàn)象小,特別是方向性好、能夠成為射線而定向傳播等特點。超聲波對液體、固體的穿透本領(lǐng)很大,尤其是在不透明的固體中,它可穿透幾十米的深度。超聲波碰到雜質(zhì)或分界面會產(chǎn)生顯著反射形成反射成回波,碰到活動物體能產(chǎn)生多普勒效應(yīng)。因此超聲波檢測廣泛應(yīng)用在工業(yè)、國防、生物醫(yī)學(xué)等方面。2實驗所用超聲波傳感器簡介:傳感器參數(shù):感應(yīng)角度:不大于15度。探測距離:2cm-400cm高精度:可達(dá)0.3cm。電路圖:Trig〔控制端——P0.0,Echo〔接收端——P0.1時序圖:控制口發(fā)一個10US以上的高電平,就可以在接收口等待高電平輸出.一有輸出就可以開定時器計時,當(dāng)此口變?yōu)榈碗娖綍r就可以讀定時器的值,此時就為此次測距的時間,方可算出距離.如此不斷的周期測,就可以達(dá)到你移動測量的值了。檢測流程:<1>采用IO觸發(fā)測距,給至少10us的高電平信號;<2>模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回;<3>有信號返回,通過IO輸出一高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間.測試距離=<高電平時間*聲速<340M/S>>/2或者測試距離=nUS/58厘米;2、實驗源碼:使用傳感器檢測其前方遮擋物體距離,并通過串口顯示距離信息,當(dāng)前方無法檢測到
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025重慶市安全員-A證考試題庫附答案
- 2025-2030年中國金屬鈷市場發(fā)展趨勢規(guī)劃研究報告
- 2025-2030年中國袋式除塵器行業(yè)運營趨勢規(guī)劃研究報告
- 2025-2030年中國芝麻素市場運行狀況與前景趨勢分析報告
- 2025-2030年中國翻譯行業(yè)競爭狀況及發(fā)展趨勢分析報告
- 2025-2030年中國砂巖行業(yè)市場運行態(tài)勢及發(fā)展風(fēng)險分析報告
- 2025-2030年中國電熱水龍頭市場運行現(xiàn)狀及發(fā)展前景預(yù)測報告
- 廣西民族大學(xué)《建筑設(shè)備自動化A》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東外語外貿(mào)大學(xué)《法律與人生》2023-2024學(xué)年第二學(xué)期期末試卷
- 咖啡店合同咖啡店合作經(jīng)營協(xié)議
- 2025年山東鋁業(yè)職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 全套電子課件:技能成就夢想
- 2024年教育公共基礎(chǔ)知識筆記
- 2025年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 異構(gòu)數(shù)據(jù)融合技術(shù)-深度研究
- 北京市朝陽區(qū)2024-2025學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 《銷售合同執(zhí)行》課件
- 2025年春新外研版(三起)英語三年級下冊課件 Unit4第2課時Speedup
- 山東2024年山東經(jīng)貿(mào)職業(yè)學(xué)院第二批招聘102人歷年參考題庫(頻考版)含答案解析
- 急性呼吸窘迫綜合征的護(hù)理課件(演示)
評論
0/150
提交評論