




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、CC1110模塊基礎(chǔ)實(shí)驗(yàn)系列 XWWK-CC1110基礎(chǔ)實(shí)驗(yàn)CC1110模塊基礎(chǔ)實(shí)驗(yàn)系列 目 錄實(shí)驗(yàn)1、CC1110-指示燈自動(dòng)閃爍試驗(yàn)1一、試驗(yàn)?zāi)康?二、試驗(yàn)設(shè)備1三、試驗(yàn)現(xiàn)象4四、代碼分析5實(shí)驗(yàn)2、CC1110-按鍵控制指示燈試驗(yàn)5一、試驗(yàn)?zāi)康?二、試驗(yàn)設(shè)備6三、試驗(yàn)現(xiàn)象6四、代碼分析6實(shí)驗(yàn)3、CC1110-按鍵控制指示燈閃爍試驗(yàn)7一、試驗(yàn)?zāi)康?二、試驗(yàn)設(shè)備7三、試驗(yàn)現(xiàn)象7四、代碼分析7實(shí)驗(yàn)4、CC1110-按鍵中斷試驗(yàn)8一、試驗(yàn)?zāi)康?二、試驗(yàn)設(shè)備8三、試驗(yàn)現(xiàn)象9四、代碼分析9實(shí)驗(yàn)5、CC1110-Timer1試驗(yàn)9一、試驗(yàn)?zāi)康?二、試驗(yàn)設(shè)備10三、試驗(yàn)現(xiàn)象10四、代碼分析10實(shí)驗(yàn)6、CC
2、1110-Timer2試驗(yàn)11一、試驗(yàn)?zāi)康?1二、試驗(yàn)設(shè)備11三、試驗(yàn)現(xiàn)象11四、代碼分析11實(shí)驗(yàn)6、CC1110-Timer3試驗(yàn)13一、試驗(yàn)?zāi)康?3二、試驗(yàn)設(shè)備13三、試驗(yàn)現(xiàn)象13四、代碼分析13實(shí)驗(yàn)8、CC1110-Timer4試驗(yàn)14實(shí)驗(yàn)9、CC1110-串口發(fā)送試驗(yàn)14一、試驗(yàn)?zāi)康?4二、試驗(yàn)設(shè)備14三、試驗(yàn)現(xiàn)象15四、代碼分析15實(shí)驗(yàn)10、CC1110-串口接收試驗(yàn)17實(shí)驗(yàn)11、CC1110-定時(shí)器中斷試驗(yàn)17一、試驗(yàn)?zāi)康?7二、試驗(yàn)設(shè)備17三、試驗(yàn)現(xiàn)象17四、代碼分析18實(shí)驗(yàn)12、CC1110-睡眠定時(shí)器試驗(yàn)19一、試驗(yàn)?zāi)康?9二、試驗(yàn)設(shè)備19三、試驗(yàn)現(xiàn)象19四、代碼分析19實(shí)驗(yàn)
3、13、CC1110-系統(tǒng)喚醒試驗(yàn)20一、試驗(yàn)?zāi)康?0二、試驗(yàn)設(shè)備20三、試驗(yàn)現(xiàn)象20四、代碼分析21實(shí)驗(yàn)14、CC1110-系統(tǒng)睡眠試驗(yàn)22一、試驗(yàn)?zāi)康?2二、試驗(yàn)設(shè)備22三、試驗(yàn)現(xiàn)象22四、代碼分析22實(shí)驗(yàn)15、CC1110-AD采集VDD%3試驗(yàn)24一、試驗(yàn)?zāi)康?4二、試驗(yàn)設(shè)備25三、試驗(yàn)現(xiàn)象25四、代碼分析25實(shí)驗(yàn)16、CC1110-AD采集片內(nèi)溫度傳感器試驗(yàn)26一、試驗(yàn)?zāi)康?6二、試驗(yàn)設(shè)備27三、試驗(yàn)現(xiàn)象27四、代碼分析27實(shí)驗(yàn)17、CC1110-看門(mén)狗試驗(yàn)28一、試驗(yàn)?zāi)康?8二、試驗(yàn)設(shè)備28三、試驗(yàn)現(xiàn)象28四、代碼分析28實(shí)驗(yàn)18、CC1110-看門(mén)狗試驗(yàn)-喂狗29一、試驗(yàn)?zāi)康?9二
4、、試驗(yàn)設(shè)備29三、試驗(yàn)現(xiàn)象29四、代碼分析29實(shí)驗(yàn)1、CC1110-指示燈自動(dòng)閃爍試驗(yàn)一、 試驗(yàn)?zāi)康耐ㄟ^(guò)本試驗(yàn)實(shí)現(xiàn)指示燈的自動(dòng)閃爍,學(xué)習(xí)單片機(jī)IO口編程,實(shí)現(xiàn)驅(qū)動(dòng)指示燈。由上圖可知,高電平1時(shí),指示燈熄滅,低電平0時(shí),指示燈亮起。二、 試驗(yàn)設(shè)備1個(gè)CC1110模塊,1個(gè)底板,1臺(tái)仿真器、1條MiniUSB線,1根天線(可不用)。將模塊插入底板上,連接仿真器和模塊,將一條MiniUSB線也連接計(jì)算機(jī)和仿真器。如果你還沒(méi)安裝仿真器驅(qū)動(dòng),請(qǐng)參考以下步驟安裝(如果您已安裝驅(qū)動(dòng),則該步驟可以省略)。1、連接仿真器后,系統(tǒng)提示安裝驅(qū)動(dòng),選擇C:Program FilesIAR SystemsEmbedde
5、d Workbench 5.48051driversTexas Instruments,進(jìn)行默認(rèn)安裝。2、打開(kāi)我的電腦-設(shè)備管理器-Cebal controlled devices 就可以看到已經(jīng)安裝了設(shè)備3、如果系統(tǒng)沒(méi)有提示您安裝任何驅(qū)動(dòng),很可能已經(jīng)安裝了SmartRF04EB,這時(shí),您需要更新驅(qū)動(dòng)程序。步驟如下 :(1)右鍵點(diǎn)擊SmartRF04EB,更新驅(qū)動(dòng)程序(2)選擇“瀏覽計(jì)算機(jī)以查找驅(qū)動(dòng)程序軟件”(3)首先選擇瀏覽C:Program FilesIAR SystemsEmbedded Workbench 5.48051driversTexas Instruments,安裝驅(qū)動(dòng),若更新
6、失敗,則參考下圖進(jìn)行。選擇“從計(jì)算機(jī)的設(shè)備程序驅(qū)動(dòng)列表中選擇”三、 試驗(yàn)現(xiàn)象打開(kāi)工程文件,選擇XWWK-CC1110Test.eww ,打開(kāi)工程,然后進(jìn)行重新編譯,如下圖:然后,點(diǎn)擊Run,下載并運(yùn)行程序(后面試驗(yàn)照此法,后略)。藍(lán)色指示燈快速閃爍。四、 代碼分析/定義控制燈的端口#define YLED P1_0/定義LED1為P10口控制,本模塊中YLED為藍(lán)燈#define RLED P1_1/定義LED2為P11口控制,本模塊中RLED為紅燈/*/主函數(shù)*/void main(void)Initial();/調(diào)用初始化函數(shù)YLED = 0;/開(kāi)LED1,參考上圖RLED = 0;/開(kāi)L
7、ED2,參考上圖while(1) YLED = !YLED; /LED取反 Delay(10000);實(shí)驗(yàn)2、CC1110-按鍵控制指示燈試驗(yàn)一、 試驗(yàn)?zāi)康耐ㄟ^(guò)本試驗(yàn)實(shí)現(xiàn)按鍵控制指示燈,學(xué)習(xí)單片機(jī)IO口編程,實(shí)現(xiàn)檢測(cè)按鍵、控制指示燈。由圖可知,端口被上拉,按鍵按下為低電平,抬起為高電平。二、 試驗(yàn)設(shè)備1個(gè)CC1110模塊,1個(gè)底板,1臺(tái)仿真器、1條MiniUSB線,1根天線(可不用)。三、 試驗(yàn)現(xiàn)象S1控制紅燈,S2 控制藍(lán)燈,按鍵按下,指示燈改變狀態(tài)。四、 代碼分析#define K1 P0_1 /按鍵s1為P01口#define K2 P0_5 /按鍵s2P05口/*/主函數(shù)*/void
8、main(void)Initial();/調(diào)用初始化函數(shù) InitKey(); /按鍵初始化RLED = 0;/LED1YLED = 1;/LED2while(1) Keyvalue = KeyScan(); if(Keyvalue = 1) RLED = !RLED; /S1控制紅燈 Keyvalue = 0; if(Keyvalue = 2) YLED = !YLED; /S2控制藍(lán)燈 Keyvalue = 0; /*/讀鍵值*/uchar KeyScan(void) /采用查詢方式檢測(cè)按鍵是否被按下,后面的實(shí)驗(yàn)還可以通過(guò)中斷檢測(cè)按鍵。實(shí)驗(yàn)3、CC1110-按鍵控制指示燈閃爍試驗(yàn)一、 試驗(yàn)
9、目的通過(guò)本試驗(yàn)實(shí)現(xiàn)按鍵控制指示燈連續(xù)閃爍,學(xué)習(xí)單片機(jī)IO口的控制與編程,實(shí)現(xiàn)通過(guò)按鍵、控制指示燈狀態(tài)。按鍵原理可以參考實(shí)驗(yàn)2。二、 試驗(yàn)設(shè)備1個(gè)CC1110模塊,1個(gè)底板,1臺(tái)仿真器、1條MiniUSB線,1根天線(可不用)。三、 試驗(yàn)現(xiàn)象S1控制紅燈閃爍,S2 控制藍(lán)燈閃爍,按鍵按下,指示燈連續(xù)閃爍,否則關(guān)閉。四、 代碼分析/*/主函數(shù)*/void main(void) uchar i;Initial();/調(diào)用初始化函數(shù) InitKey();RLED = 0;/LED開(kāi)YLED = 1;/LED關(guān)while(1) Keyvalue = KeyScan();/鍵值掃描 if(Keyvalue
10、>0) /按鍵按下 i = Keyvalue-1; Keyvalue = 0; if(GlintFlagi = 1) /判斷閃爍標(biāo)志 GlintFlagi=0; else GlintFlagi = 1; ; if(GlintFlag0=1) RLED = !RLED; Delay(4000); else RLED = 1; if(GlintFlag1=1) YLED = !YLED; if(GlintFlag0 = 0) Delay(4000); else YLED = 1;實(shí)驗(yàn)4、CC1110-按鍵中斷試驗(yàn)一、 試驗(yàn)?zāi)康耐ㄟ^(guò)本試驗(yàn)實(shí)現(xiàn)按鍵中斷,初步理解單片機(jī)外部中斷的邏輯;學(xué)習(xí)單片機(jī)I
11、O口的中斷服務(wù)程序編寫(xiě),實(shí)現(xiàn)通過(guò)按鍵、控制指示燈狀態(tài)。按鍵原理可以參考實(shí)驗(yàn)2。二、 試驗(yàn)設(shè)備1個(gè)CC1110模塊,1個(gè)底板,1臺(tái)仿真器、1條MiniUSB線,1根天線(可不用)。三、 試驗(yàn)現(xiàn)象S1或者S2 控制紅燈、藍(lán)燈的狀態(tài)閃爍。任意一個(gè)按鍵按下,兩個(gè)指示燈均改變當(dāng)前狀態(tài),有時(shí)候可能改變兩次,是因?yàn)榘存I抖動(dòng)造成的,實(shí)際應(yīng)用中,需要進(jìn)行軟件去抖處理。四、 代碼分析/首先分析一下按鍵初始化函數(shù),進(jìn)行了中斷的配置void InitKey() P0SEL &= 0X22; /P0.1 and P0.5 用作一般的IO口 P0DIR &= 0X22; /P0.1 and P0.5 用作
12、輸入 P0INP &= 0X22;/P0的中斷,有上拉、下拉 P2INP &= 0X20; /選擇p0口上拉 PICTL |= 0X19; /P0.5 和 P0.1中斷使能,并選擇下降沿有效,即按鍵抬起 P0IFG &= 0x22; /清除中斷標(biāo)志 IEN1 |= 0X20; /使能P0口中斷 #pragma vector = P0INT_VECTOR /中斷服務(wù)程序 _interrupt void P0_ISR(void) if(P0IFG>0) /檢測(cè)到按鍵中斷,則置標(biāo)志位 P0IFG = 0; /軟件清除 RLED = !RLED; YLED = !YLED
13、; P0IF = 0; 實(shí)驗(yàn)5、CC1110-Timer1試驗(yàn)一、 試驗(yàn)?zāi)康耐ㄟ^(guò)本試驗(yàn)實(shí)現(xiàn)通過(guò)Timer1來(lái)控制LED的狀態(tài),初步理解單片機(jī)計(jì)數(shù)器的工作原理。二、 試驗(yàn)設(shè)備1個(gè)CC1110模塊,1個(gè)底板,1臺(tái)仿真器、1條MiniUSB線,1根天線(可不用)。三、 試驗(yàn)現(xiàn)象上電運(yùn)行后,每10次中斷兩個(gè)LED閃爍一輪。四、 代碼分析/*/初始化程序*/void Initial(void)/初始化P1P1DIR = 0x03; /P10 P11為輸出YLED = 1;RLED = 1;/滅LED/用Timer1來(lái)做實(shí)驗(yàn),具體寄存器設(shè)置,可參考CC1110 DatasheetT1CTL = 0x3d;
14、/通道0,中斷有效,128分頻;自動(dòng)重裝模式(0x0000->0xffff);/*/主函數(shù)*/void main()Initial(); /調(diào)用初始化函數(shù)YLED = 0; /亮起LEDRLED = 0;while(1) /等待中斷 if(IRCON > 0) /檢測(cè)到Timer1中斷 IRCON = 0x00;/可不清中斷標(biāo)志,硬件自動(dòng)完成 if(counter<10)counter+;/10次中斷LED閃爍一輪 else counter = 0; if(TempFlag) TempFlag = 0; else TempFlag = 1; if(TempFlag)RLED
15、= !RLED;YLED = !YLED;Delay(6000);實(shí)驗(yàn)6、CC1110-Timer2試驗(yàn)一、 試驗(yàn)?zāi)康耐ㄟ^(guò)本試驗(yàn)實(shí)現(xiàn)通過(guò)Timer2的中斷函數(shù)來(lái)控制LED的狀態(tài),學(xué)習(xí)單片機(jī)計(jì)數(shù)器中斷的工作原理。二、 試驗(yàn)設(shè)備1個(gè)CC1110模塊,1個(gè)底板,1臺(tái)仿真器、1條MiniUSB線,1根天線(可不用)。三、 試驗(yàn)現(xiàn)象上電運(yùn)行后,每3次中斷,藍(lán)色LED狀態(tài)改變一次。四、 代碼分析/*/初始化程序*/void Initial(void)/初始化P1P1DIR = 0x03; /P10 P11為輸出YLED = 1;RLED = 1;/滅LED/用T2來(lái)做實(shí)驗(yàn) TIMER2_INIT();EA
16、 = 1; /開(kāi)總中斷 IEN1 |= 0X04; /開(kāi)T2中斷 TIMER2_ENABLE_INTERRUPT(); /Timer2 中斷使能 TIMER2_SET_COUNTER(0x50); / t = T2PR*VAL(T2CTL.TIP)/Timer2的周期. TIMER2_SET_TICK_PERIOD(0); /設(shè)置Timer2的周期 TIMER2_SET_MODE(1); /設(shè)置Timer2的工作模式/以上設(shè)置,可以參考CC1110 Datasheet 的寄存器設(shè)置。/*/主函數(shù)*/void main()Initial(); /調(diào)用初始化函數(shù)YLED = 0; /點(diǎn)這紅色LED
17、RLED = 1;while(1) /等待中斷 if(TempFlag) /該標(biāo)志由中斷服務(wù)程序設(shè)置 RLED = RLED;YLED = !YLED; TempFlag = 0;Delay(6000); /Timer2 中斷服務(wù)程序#pragma vector = T2_VECTOR _interrupt void T2_ISR(void) TIMER2_CLEAR_EXPIRED(); /清T2CTL寄存器標(biāo)志位 IRCON = 0x00;/可不清中斷標(biāo)志,硬件自動(dòng)完成 if(counter<3)counter+;/3次中斷LED閃爍一輪 else counter = 0; /計(jì)數(shù)清
18、零 TempFlag = !TempFlag; /改變閃爍標(biāo)志 實(shí)驗(yàn)6、CC1110-Timer3試驗(yàn)一、 試驗(yàn)?zāi)康耐ㄟ^(guò)本試驗(yàn)實(shí)現(xiàn)通過(guò)Timer3的中斷函數(shù)來(lái)控制LED的狀態(tài),每中斷200次,更新指示燈的控制標(biāo)志,學(xué)習(xí)單片機(jī)計(jì)數(shù)器3中斷的工作原理。二、 試驗(yàn)設(shè)備1個(gè)CC1110模塊,1個(gè)底板,1臺(tái)仿真器、1條MiniUSB線,1根天線(可不用)。三、 試驗(yàn)現(xiàn)象上電運(yùn)行后,每200次中斷,藍(lán)色LED狀態(tài)改變一次,實(shí)現(xiàn)較快速度閃爍。四、 代碼分析/*/T3及LED初始化*/void Init_T3_AND_LED(void) P1DIR = 0X03; YLED = 1; RLED = 1; TI
19、MER34_INIT(3); /初始化T3 TIMER34_ENABLE_OVERFLOW_INT(3,1); /開(kāi)T3中斷 EA = 1; /使能總的中斷 T3IE = 1;/使能Timer3中斷 /T3CTL |= 0XA0; /時(shí)鐘32分頻101 TIMER3_SET_CLOCK_DIVIDE(32); /時(shí)鐘選擇 TIMER3_SET_MODE(0); /自動(dòng)重裝00>0xff T3CC0 = 0Xf0; / TIMER3_START(1); /啟動(dòng);/*/主函數(shù)*/void main(void) Init_T3_AND_LED(); YLED = 1; while(1); /永
20、遠(yuǎn)循環(huán),等待中斷執(zhí)行/Timer3中斷服務(wù)程序#pragma vector = T3_VECTOR _interrupt void T3_ISR(void) IRCON = 0x00;/可不清中斷標(biāo)志,硬件自動(dòng)完成 /RLED = 0; /for test if(counter<200)counter+;/10次中斷LED閃爍一輪 else counter = 0; /計(jì)數(shù)清零 YLED = !YLED; /改變小燈的狀態(tài) 實(shí)驗(yàn)8、CC1110-Timer4試驗(yàn)Timer4 與Timer3的操作完全相同,可參考實(shí)驗(yàn)6 、Timer3實(shí)驗(yàn)進(jìn)行 。實(shí)驗(yàn)9、CC1110-串口發(fā)送試驗(yàn)一、 試驗(yàn)
21、目的通過(guò)本試驗(yàn)實(shí)現(xiàn)單片機(jī)串口發(fā)送數(shù)據(jù)到上位機(jī),學(xué)習(xí)單片機(jī)串口發(fā)送的設(shè)置和工作原理。二、 試驗(yàn)設(shè)備1個(gè)CC1110模塊,1個(gè)CC1110BB底板,1臺(tái)仿真器、2條MiniUSB線,1根天線(可不用)。將模塊插入底板上,連接仿真器和模塊,并將另一條MiniUSB線也連接計(jì)算機(jī)。如果你還沒(méi)安裝虛擬USB串口驅(qū)動(dòng),請(qǐng)參考以下步驟安裝。1、運(yùn)行PL2303_Prolific_DriverInstaller_v10518.exe (根據(jù)您的操作系統(tǒng),選擇合適的驅(qū)動(dòng)程序,這個(gè)文件Win7系統(tǒng)安裝);2、一路默認(rèn)安裝;3、打開(kāi)我的電腦-設(shè)備管理器-端口,就可以看到已經(jīng)安裝了串口設(shè)備4、串口配置:串口號(hào)COM?
22、,波特率57600,8位數(shù)據(jù),無(wú)校驗(yàn),1位停止位。三、 試驗(yàn)現(xiàn)象上電運(yùn)行后,每間隔一段時(shí)間,發(fā)送"XWWK Test Data "到上位機(jī),同時(shí),紅色LED狀態(tài)改變一次。四、 代碼分析 /*函數(shù)功能 :初始化串口1*入口參數(shù) :無(wú)*返 回 值 :無(wú)*說(shuō) 明 :57600-8-n-1*/void initUARTtest(void) CLKCON &= 0x40; /晶振 while(!(SLEEP & 0x40); /等待晶振穩(wěn)定 CLKCON &= 0x47; /TICHSPD128分頻,CLKSPD不分頻 SLEEP |= 0x04; /關(guān)閉不用
23、的RC振蕩器 PERCFG = 0x00;/位置1 P0口 P0SEL = 0x3c;/P0用作串口 U0CSR |= 0x80;/UART方式 U0GCR |= 11;/baud_e = 11; U0BAUD |= 34;/波特率設(shè)為57600 UTX0IF = 1; 發(fā)送標(biāo)志/*函數(shù)功能 :串口發(fā)送字符串函數(shù)*入口參數(shù) : data:數(shù)據(jù)*len :數(shù)據(jù)長(zhǎng)度*返 回 值 :無(wú)*說(shuō) 明 :*/void UartTX_Send_String(uchar *Data,int len) int j; for(j=0;j<len;j+) U0DBUF = *Data+; while(UTX0I
24、F = 0); /發(fā)送完畢 UTX0IF = 0; /*函數(shù)功能 :主函數(shù)*入口參數(shù) :無(wú)*返 回 值 :無(wú)*說(shuō) 明 :無(wú)*/void main(void) uchar tempstr="XWWK Test Data " /填充數(shù)據(jù) /P1 outP1DIR = 0x03; /P1控制LEDYLED = 1;RLED = 1;/關(guān)LEDinitUARTtest();while(1) RLED = 1; UartTX_Send_String(tempstr,16); /發(fā)送; Delay(50000); RLED = 0; Delay(50000); Delay(50000)
25、;實(shí)驗(yàn)10、CC1110-串口接收試驗(yàn)Timer4 與Timer3的操作完全相同,可參考實(shí)驗(yàn)6 、Timer3實(shí)驗(yàn)進(jìn)行 。實(shí)驗(yàn)11、CC1110-定時(shí)器中斷試驗(yàn)一、 試驗(yàn)?zāi)康耐ㄟ^(guò)本試驗(yàn)實(shí)現(xiàn)通過(guò)定時(shí)器4進(jìn)入中斷服務(wù)程序,在中斷函數(shù)中設(shè)置標(biāo)志位,符合條件后,在主程序中執(zhí)行相應(yīng)的任務(wù)。二、 試驗(yàn)設(shè)備1個(gè)CC1110模塊,1個(gè)CC1110BB底板,1臺(tái)仿真器、1條MiniUSB線,1根天線(可不用)。將模塊插入底板上,連接仿真器和模塊。三、 試驗(yàn)現(xiàn)象上電運(yùn)行后,每間隔一定時(shí)間,兩個(gè)指示燈快速閃爍。四、 代碼分析/*/T4及LED初始化*/void Init_T4_AND_LED(void) P1DIR
26、 = 0X03; YLED = 1; RLED = 1; TIMER34_INIT(4); /初始化T4 TIMER34_ENABLE_OVERFLOW_INT(4,1); /開(kāi)T4中斷 EA = 1; T4IE = 1; /T4CTL |= 0XA0; /時(shí)鐘128分頻101 TIMER34_SET_CLOCK_DIVIDE(4,128); TIMER34_SET_MODE(4,0); /自動(dòng)重裝00>0xff T4CC0 = 0Xf0; TIMER34_START(4,1); /啟動(dòng);/*/主函數(shù)*/void main(void) Init_T4_AND_LED(); while(1
27、) if(GlintFlag = 1) YLED = !YLED; /改變指示燈的狀態(tài) RLED =!RLED; Delay(2000); ;/Timer4 中斷服務(wù)函數(shù)#pragma vector = T4_VECTOR _interrupt void T4_ISR(void) IRCON = 0x00;/可不清中斷標(biāo)志,硬件自動(dòng)完成 /led2 = 0; /for test if(counter<200)counter+;/200次中斷LED閃爍一輪 else counter = 0; /計(jì)數(shù)清零 GlintFlag = !GlintFlag; 實(shí)驗(yàn)12、CC1110-睡眠定時(shí)器試驗(yàn)
28、一、 試驗(yàn)?zāi)康耐ㄟ^(guò)本試驗(yàn)了解CC1110單片機(jī)睡眠定時(shí)器的工作原理,該定時(shí)器在低功耗設(shè)計(jì)中非常有用。本實(shí)驗(yàn)通過(guò)睡眠定時(shí)器中斷喚醒單片機(jī),重新開(kāi)始工作。二、 試驗(yàn)設(shè)備1個(gè)CC1110模塊,1個(gè)CC1110BB底板,1臺(tái)仿真器、1條MiniUSB線,1根天線(可不用)。將模塊插入底板上,連接仿真器和模塊。三、 試驗(yàn)現(xiàn)象上電運(yùn)行后,每間隔一定時(shí)間,藍(lán)色指示燈快速閃爍,表示系統(tǒng)已經(jīng)被喚醒。四、 代碼分析/*/初始化SleepTimer*/void Init_SLEEP_TIMER(void) WORCTL |= 0x00; /215 period EA = 1; IEN0 |= 0X20; /開(kāi)中斷
29、WORIRQ |= 0X10; /void main(void) SET_MAIN_CLOCK_SOURCE(0); LED_ENABLE(1); YLED = 1; /保持熄滅 RLED = 0; /打開(kāi)紅燈 while(1) Init_SLEEP_TIMER(); SET_POWER_MODE(2);/喚醒后 ,執(zhí)行閃燈程序 LedGlint(); #pragma vector = ST_VECTOR _interrupt void ST_ISR(void) IRCON &= 0x80; /清標(biāo)志 WORIRQ &= 0X01; /喚醒 實(shí)驗(yàn)13、CC1110-系統(tǒng)喚醒試驗(yàn)
30、一、 試驗(yàn)?zāi)康耐ㄟ^(guò)本試驗(yàn)了解CC1110單片機(jī)低功耗模式的工作原理,共有四種低功耗模式,分別為PM0,PM1 PM2 PM3 。本實(shí)驗(yàn)通過(guò)按鍵外部中斷實(shí)現(xiàn)喚醒低功耗模式,使得CPU進(jìn)入正常工作狀態(tài)。 二、 試驗(yàn)設(shè)備1個(gè)CC1110模塊,1個(gè)CC1110BB底板,1臺(tái)仿真器、1條MiniUSB線,1根天線(可不用)。將模塊插入底板上,連接仿真器和模塊。三、 試驗(yàn)現(xiàn)象上電運(yùn)行后,紅色指示燈連續(xù)閃爍10幾次后熄滅,每按下按鍵(S1 或者 S2 ),藍(lán)色指示燈狀態(tài)改變,表明中斷服務(wù)程序被執(zhí)行,同時(shí),紅燈連續(xù)閃爍十幾次,表示系統(tǒng)已經(jīng)被喚醒。閃爍結(jié)束,系統(tǒng)重新進(jìn)入低功耗模式。四、 代碼分析/*函數(shù)功能:初
31、始化低功耗模式*入口參數(shù):para1,para2,para3,para4*返回值:無(wú)*說(shuō) 明:para1,模式選擇* para1 0 123* mode PM0PM1PM2PM3*/void PowerMode(uchar sel)uchar i,j;i = sel;if(sel<4)SLEEP &= 0xfc;/mode 模式位清0SLEEP |= i;for(j=0;j<4;j+);PCON = 0x01;Else /如果不存在該模式,則默認(rèn)活動(dòng)狀態(tài) PCON = 0x00;/*/主函數(shù)*/void main(void) Init_IO_AND_LED(); InitK
32、ey(); YLED = 0; RLED = 0; Delay(2000); Delay(2000); YLED =1; RLED =1; while(1) LedGlint(); /連續(xù)閃爍,表明模塊處于活動(dòng)狀態(tài) PowerMode(2);/進(jìn)入低功耗狀態(tài) ;/中斷服務(wù)程序,當(dāng)有按鍵按下時(shí)候,進(jìn)入該程序#pragma vector = P0INT_VECTOR _interrupt void P0_ISR(void) if(P0IFG>0) /檢測(cè)中斷標(biāo)志 P0IFG = 0; YLED = !YLED; /改變藍(lán)燈,代表中斷執(zhí)行一次 P0IF = 0; 實(shí)驗(yàn)14、CC1110-系統(tǒng)睡
33、眠試驗(yàn)一、 試驗(yàn)?zāi)康耐ㄟ^(guò)本試驗(yàn)了解CC1110單片機(jī)低功耗模式的工作原理,共有四種低功耗模式,分別為PM0,PM1 PM2 PM3 。本實(shí)驗(yàn)使得CPU進(jìn)入睡眠工作狀態(tài)。 二、 試驗(yàn)設(shè)備1個(gè)CC1110模塊,1個(gè)CC1110BB底板,1臺(tái)仿真器、1條MiniUSB線,1根天線(可不用)。將模塊插入底板上,連接仿真器和模塊。三、 試驗(yàn)現(xiàn)象上電運(yùn)行后,藍(lán)色指示燈亮起,紅色指示燈連續(xù)閃爍20次后熄滅,進(jìn)入低功耗模式。四、 代碼分析/*函數(shù)功能:初始化低功耗模式*入口參數(shù):para1,para2,para3,para4*返回值:無(wú)*說(shuō) 明:para1,模式選擇* para1 0 123* mode PM
34、0PM1PM2PM3*/void PowerMode(uchar sel)uchar i,j;i = sel;if(sel<4)SLEEP &= 0xfc;SLEEP |= i;for(j=0;j<4;j+);PCON = 0x01;else PCON = 0x00;/*函數(shù)功能 :初始化時(shí)鐘*入口參數(shù) :para1選擇使用RC、晶振(高速)10* :para2 選擇使用RC、晶振(低速)10* :para3選擇時(shí)計(jì)數(shù)鐘分頻000111* :para4選擇時(shí)系統(tǒng)鐘分頻000111*返 回 值 :無(wú)*說(shuō) 明 :para3<=para4 , para1(2)=1使用RC,
35、反之使用晶振*/void Init_clocks(uchar para1,uchar para2,uchar para3,uchar para4)uchar i;i = para1<<7;CLKCON |= 0X80;CLKCON &= i;i = para2<<6;CLKCON |= 0X40;CLKCON &= i;i = para3<<3;CLKCON &= 0X37;CLKCON |= i;i = para4;CLKCON &= 0XF8;CLKCON |= i;/*函數(shù)功能:主函數(shù)*入口參數(shù):*返回值:無(wú)*說(shuō) 明:1
36、0次綠色LED閃爍后進(jìn)入睡眠狀態(tài)*/void main()uchar count = 0;Initial();Init_clocks(0,0,0,4);/高低速時(shí)鐘均選用晶振,最后一位形參選擇系統(tǒng)時(shí)鐘分頻數(shù)/改變?cè)撝禃?huì)影響CPU運(yùn)行速度YLED = 0; /開(kāi)紅色LED,系統(tǒng)工作指示Delay(); /延時(shí)Delay();Delay();Delay();while(1)RLED = !RLED;count+;if(count = 20)PowerMode(3);/10次閃爍后進(jìn)入睡眠狀態(tài)/Delay(); Delay(); /延時(shí)函數(shù)無(wú)形參,只能通過(guò)改變系統(tǒng)時(shí)鐘頻率 /來(lái)改變小燈的閃爍頻率;實(shí)
37、驗(yàn)15、CC1110-AD采集VDD%3試驗(yàn)一、 試驗(yàn)?zāi)康耐ㄟ^(guò)本試驗(yàn)了解CC1110單片機(jī)AD的工作原理,分辨率可以達(dá)到10或者12位,可采集多達(dá)10幾個(gè)通道。通過(guò)本實(shí)驗(yàn)可以實(shí)現(xiàn)采集電源電壓,用于電池等供電電量指示。 二、 試驗(yàn)設(shè)備1個(gè)CC1110模塊, 1臺(tái)仿真器、1條MiniUSB線,1根天線(可不用),連接仿真器和模塊。三、 試驗(yàn)現(xiàn)象上電運(yùn)行后,藍(lán)色指示燈閃爍,每閃爍一次,采集數(shù)據(jù)一次。四、 代碼分析/*函數(shù)功能 :初始化*入口參數(shù) :無(wú) *返 回 值 :無(wú)*說(shuō) 明 :參考電壓1.25V,轉(zhuǎn)換對(duì)象是1/3AVDD*/void InitialAD(void)/P1 outP1DIR = 0
38、x03; /P1控制LEDled1 = 1;led2 = 1;/關(guān)LEDstatic uchar readVoltage(void) uint value; /清除標(biāo)志 ADCIF = 0; /參考電壓 1.25V,10位分辨率,采集通道VDD/3 ADCCON3 = (HAL_ADC_REF_125V | HAL_ADC_DEC_256 | HAL_ADC_CHN_VDD3); /等待轉(zhuǎn)換完成 while ( !ADCIF ); /獲得轉(zhuǎn)換結(jié)果 value = ADCL; value |= (uint) ADCH) << 8; /測(cè)量的值為VDD/2 /因此 0 代表 0V,32767 代表 1.25V / voltage = (value*3*1.25)/32767 volts / 為了去掉小數(shù)點(diǎn),乘以10,比如 3.4V就是 value=34 value = value >> 6; / divide first by 26 value = (uint)(value * 37.5); value = value >> 9; return value;/*函數(shù)功能 :主函數(shù)*入口參數(shù) :無(wú)*返 回 值 :無(wú)*說(shuō) 明 :無(wú)*/void main(void) CLKCON &= 0x40; /晶振 while(!(SLEE
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 文獻(xiàn)資源建設(shè)考核試卷
- 玉石在新時(shí)代文化建設(shè)弘揚(yáng)民族精神中的價(jià)值考核試卷
- 縫制機(jī)械的綠色設(shè)計(jì)理念考核試卷
- 珠海市高三上學(xué)期學(xué)業(yè)質(zhì)量監(jiān)測(cè)文綜歷史試題
- 遼寧政法職業(yè)學(xué)院《中學(xué)歷史教學(xué)技能訓(xùn)練(Ⅱ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海財(cái)經(jīng)大學(xué)《港臺(tái)文學(xué)專(zhuān)題》2023-2024學(xué)年第一學(xué)期期末試卷
- 吉林省松原市前郭爾羅斯蒙古族自治縣重點(diǎn)達(dá)標(biāo)名校2025屆中考備考沖刺階段(查缺補(bǔ)漏)生物試題含解析
- 涼城縣2025屆數(shù)學(xué)五年級(jí)第二學(xué)期期末監(jiān)測(cè)模擬試題含答案
- 西安郵電大學(xué)《水處理生物學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇省南京江北新區(qū)南京市浦口外國(guó)語(yǔ)校2024-2025學(xué)年初三下學(xué)期第一次診斷(期末)考試語(yǔ)文試題含解析
- FZ/T 32001-2018亞麻紗
- FZ/T 24011-2019羊絨機(jī)織圍巾、披肩
- 金螳螂企業(yè)管理課件
- 炊事機(jī)械安全操作規(guī)程
- 最新版教育心理學(xué)課件3-成就動(dòng)機(jī)
- 《大數(shù)據(jù)環(huán)境下的網(wǎng)絡(luò)安全問(wèn)題探討(論文)8000字》
- 離合器-汽車(chē)畢業(yè)設(shè)計(jì)-設(shè)計(jì)說(shuō)明書(shū)
- 中國(guó)民間美術(shù)年畫(huà)-完整版PPT
- 2022年《趣味接力跑》教案
- 級(jí)配碎石旁站監(jiān)理記錄表.模板
- 國(guó)電南自PSL 641U線路保護(hù)測(cè)控裝置技術(shù)說(shuō)明書(shū)V1.1
評(píng)論
0/150
提交評(píng)論