6.2 任務6.2 PC控制CC2530開發板LED的亮與滅_第1頁
6.2 任務6.2 PC控制CC2530開發板LED的亮與滅_第2頁
6.2 任務6.2 PC控制CC2530開發板LED的亮與滅_第3頁
6.2 任務6.2 PC控制CC2530開發板LED的亮與滅_第4頁
6.2 任務6.2 PC控制CC2530開發板LED的亮與滅_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

單片機應用技術項目六CC2530單片機與PC的通信任務6.2PC控制CC2530開發板LED的亮與滅任務要求

實現用PC控制CC2530開發板D3、D4的亮與滅。PC通過串口調試助手發送數據給CC2530單片機,CC2530單片機通過串口進行數據的接收,來控制D3、D4的亮與滅。PC與CC2530單片機約定一個數據格式,表示控制的是D3的亮與滅,還是D4的亮與滅。1基礎知識2相關寄存器3任務分析4任務實現一、基礎知識

串口接收數據的方式CC2530單片機在數據接收完畢后,中斷標志位TCON.URXxIF被置位,程序通過檢測TCON.URXxIF來判斷USARTx是否接收到數據。查詢方式采用查詢方式接收串口數據,實際上是程序不斷地查詢中斷標志位TCON.URXxIF是否置位。如果查詢到TCON.URXxIF的值沒有置位,程序繼續查詢等待;如果查詢到TCON.URXxIF置位,程序將TCON.URXxIF的值清零,并將接收/發送數據緩沖寄存器UxDBUF中的數據賦值給變量,完成數據接收。一、基礎知識

串口接收數據的方式設置IEN0.URXxIE的值為1,則USARTx的接收中斷使能。中斷方式在中斷服務函數中,對中斷標志位TCON.URXxIF軟件清零,接收/發送數據緩沖寄存器UxDBUF中的數據賦值給變量,完成數據接收。CC2530單片機在數據接收完畢后,中斷標志位TCON.URXxIF被置位,就產生串口數據接收中斷。一、基礎知識

串口控制命令的格式控制命令分為3部分:命令開始標志、LED序號和亮/滅狀態。例如,命令“*4O”,表示點亮D4命令開始標志是字符“*”,當串口接收到字符“*”時,標志著開始接收控制命令。LED的序號使用數字表示,使用一個字節數據。D3、D4燈分別用數字3、4分別表示。LED的亮/滅兩種狀態使用字符“O”和“C”表示,使用一個字節數據?!癘”表示點亮LED;“C”表示熄滅LED。二、相關寄存器

UxCSR,USARTx控制和狀態寄存器位名稱復位操作描述7MODE0R/WUSART模式選擇。0:SPI模式。1:UART模式6REN0R/WUART接收器使能。注意在UART完全配置之前不使能接收。0:禁用接收器。1:使能接收器5SLAVE0R/WSPI主或者從模式選擇。0:SPI主模式。1:SPI從模式4FE0R/W0UART數據幀錯誤狀態。0:無數據幀錯誤。1:字節收到不正確的停止位3ERR0R/W0UART奇偶錯誤狀態。0:無奇偶錯誤檢測。1:字節收到奇偶錯誤2RX_BYTE0R/W0接收字節狀態。URAT模式和SPI從模式。當讀U0DBUF該位自動清除,通過寫0清除它,這樣有效丟棄U0DBUF中的數據。0:沒有接收到字節。1:準備好接收字節1TX_BYTE0R/W0發送字節狀態。URAT模式和SPI主模式。0:字節沒有被發送。1:寫到數據緩存寄存器的最后字節被發送0ACTIVE0RUSART發送/接收主動狀態、在SPI從模式下該位等于從模式選擇。0:USART空閑。1:在發送或者接收模式USART忙碌三、任務分析

1.CC2530開發板上電后,CC2530單片機的串口處于等待接收狀態,且D3和D4處于熄滅狀態。2.PC按照現有的命令格式向CC2530單片機發送控制LED亮滅的控制命令。3.CC2530單片機處理PC發送的命令,并根據命令,點亮或者關閉LED。四、任務實現

串口初始化voidinit_USART0(){CLKCONCMD&=~0x40;while(CLKCONSTA&0x40);CLKCONCMD&=~0x07;PERCFG=0x00;//USART0使用位置1

P0SEL=0x3c;//P0端口用作串口,P0_2、P0_3引腳分別作為串口RX、TXU0BAUD=216;U0GCR=10;U0CSR|=0x80;//設置UART模式U0UCR|=0x80;//清除單元,并返回單元空閑狀態URX0IF=0;U0CSR|=0x40;//接收使能}四、任務實現

接收數據uchar

c;

c=

U0DBUF;

//

讀取接收到的字節

if(c

==

'*')

{

buff_RxDat[0]=c;

//控制命令起始字符存入接收數據緩沖數組

uIndex=0;

}

else

if(buff_RxDat[0]=='*')

{

//數據緩沖區有起始字符,正在接收控制命令

uIndex++;

buff_RxDat[uIndex]=c;

}四、任務實現

處理數據onoff=buff_RxDat[2]=='O'?1:0;

switch(buff_RxDat[1])

{

case

'3':

D3=onoff;

break;

case

'4':

D4=onoff;

break;

}運算符==?:是一個三元運算符,在該代碼中的意思是,判斷buffer_RxData[2]的值是否為字符“O”,如果是,那么buff_RxDat[2]=='O'?1:0的值為1,否則,該式子的值為0,進而將式子的值賦給變量onoff四、任務實現編譯程序,并生成.hex文件,將.hex文件燒寫

溫馨提示

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

評論

0/150

提交評論