單片機技術(shù)與應用課件 36.CC2530片內(nèi)溫度測量_第1頁
單片機技術(shù)與應用課件 36.CC2530片內(nèi)溫度測量_第2頁
單片機技術(shù)與應用課件 36.CC2530片內(nèi)溫度測量_第3頁
單片機技術(shù)與應用課件 36.CC2530片內(nèi)溫度測量_第4頁
單片機技術(shù)與應用課件 36.CC2530片內(nèi)溫度測量_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

CC2530片內(nèi)溫度測量zigbee技術(shù)開發(fā)主講人:劉美玉ZigbeetechnologydevelopmentCC2530片內(nèi)溫度測量任務描述測量ZigBee模塊上CC2530片內(nèi)溫度傳感器數(shù)值,將ZigBee實訓模塊和溫度/光照傳感器模塊都固定在NEWLab平臺上,用導線把ZigBee模塊上ADC0和溫度傳感器模塊上的電位器分壓端(J10)連接起來。由電路限制,J10端電壓范圍0.275~3.025V。要求ADC采用單端輸入方式,選擇內(nèi)部參考電壓,12位分辨率。測量值通過串口發(fā)送到PC端,時間間隔為1s,串口波特率設置為19200。CC2530片內(nèi)溫度測量任務分析測量CC2530片內(nèi)溫度,必須理解CC2530中ADC模塊的工作原理及其相關(guān)寄存器的設置。1.知識分析實訓任務選擇ZigBee實訓模塊如圖所示,明確CC2530單片機ADC模塊的工作過程。2.設備分析測量CC2530片內(nèi)溫度,必須會運用IAR軟件進行編程,并能夠編譯、鏈接、調(diào)試程序;會利用CCDebugger仿真下載器,將仿真器的下載線連接到ZigBee實訓模塊與電腦,通過串口調(diào)試器進行仿真演示。3.技能分析CC2530片內(nèi)溫度測量ADCCON3-ADC控制3寄存器的設置依據(jù)任務要求設置ADCCON3寄存器:1.內(nèi)部參考電壓:7:6→002.12位分辨率:5:4→113.采用單通道

溫度傳感器

:3:0→11107654321000111110ADCCON3=0x3e;CC2530片內(nèi)溫度測量程序設計分析測量值通過串口發(fā)送1.設計串口初始化函數(shù)2.設計串口發(fā)送函數(shù)測量值每隔1s發(fā)送一次設計延時函數(shù)測量片內(nèi)溫度設計片內(nèi)溫度采樣函數(shù)CC2530片內(nèi)溫度測量測量CC2530片內(nèi)溫度任務實施實施過程1.搭建開發(fā)環(huán)境2.在編輯窗口編寫程序(1)新建工作區(qū),工作區(qū)名為:workTem。(2)新建工程,工程名為:projectTem。(3)新建源程序文件,命名為testTem.c。(4)將testTem.c文件添加到projectTem工程中。(5)按鍵CTRL+S保存工作區(qū)。(6)配置工程選項,“Project”->“Options”->“GeneralOptions”,“Device”->“TexasInstruments”->“CC2530F256”。(7)配置linker,勾選Overridedefault(8)配置Debugger,“Debugger”->“Setup”->“Driver”->“TexasInstruments”。CC2530片內(nèi)溫度測量程序設計過程1.引入頭文件,定義相關(guān)變量2.設計延時函數(shù)#include<iocc2530.h>chardata[]="測試CC2530片內(nèi)溫度!\n";charname_string[20];voiddelay(unsignedinti){unsignedintj,k;for(k=0;k<i;k++){for(j=0;j<500;j++);}}CC2530片內(nèi)溫度測量程序設計過程3.串口初始化函數(shù)4.串口發(fā)送函數(shù)voidinitial_usart(){

CLKCONCMD&=~0X7F;//晶振設置為32MHzwhile(CLKCONSTA&0X40);//等待晶振穩(wěn)定CLKCONCMD&=~0X47;//設置系統(tǒng)主時鐘頻率為32MHzPERCFG=0X00;//usart0使用備用位置1TX-P0_3RX-P0_2P0SEL|=0X3C;//P0_2P0_3P0_4P0_5用于外設功能P2DIR&=~0xC0;//P0優(yōu)先作為UART方式U0CSR|=0XC0;//uart模式允許接收U0GCR=9;U0BAUD=59;//波特率設為19200URX0IF=0;//uart0tx中斷標志位清零}voiduart_tx_string(char*data_tx,intlen){unsignedintj;for(j=0;j<len;j++){U0DBUF=*data_tx++;while(UTX0IF==0);UTX0IF=0;}}CC2530片內(nèi)溫度測量程序設計過程5.片內(nèi)溫度采樣函數(shù)floatgetTemperature(void){signedshortintvalue;ADCCON3=0x3e;//選擇內(nèi)部參考電壓;12位分辨率;對片內(nèi)溫度傳感器采樣ADCCON1|=0x30;//選擇ADC的啟動模式為手動ADCCON1|=0x40;//啟動AD轉(zhuǎn)化while(!(ADCCON1&0x80));//等待ADC轉(zhuǎn)化結(jié)束value=ADCL>>2;value|=((int)ADCH<<6);//8位轉(zhuǎn)為16位,后補6個0,得最終轉(zhuǎn)化結(jié)果,存入value中if(value<0)value=0;//若value<0,就認為它為0returnvalue*0.06229-348.2;//根據(jù)公式計算出溫度值}CC2530片內(nèi)溫度測量程序設計過程6.主函數(shù)voidmain(void){unsignedchari;floatavgTemp;initial_usart();//調(diào)用UART初始化函數(shù)uart_tx_string(data,sizeof(data));//發(fā)送串口數(shù)據(jù)“測試CC2530片內(nèi)溫度”TR0=0X01;//連接溫度傳感器到SOC_ADCATEST=0X01;//使能溫度傳感器while(1){avgTemp=getTemperature();for(i=0;i<64;i++)//連續(xù)采樣64次,并計算出平均值{avgTemp+=getTemperature();avgTemp=avgTemp/64;}data[0]=(unsignedchar)(avgTemp)/10+0x30;//十位data[1]=(unsignedchar)(avgTemp)%10+0x30;//個位data[2]='.';//小數(shù)點data[3]=(unsignedchar)(avgTemp*10)%10+0x30;//十分位data[4]=(unsignedchar)(avgTemp*100)%10+0x30;//百分位uart_tx_string(data,5);uart_tx_string("℃\n",3);//在PC上顯示溫度值和℃符號delay(10000);//延時}}三、編譯、分析、調(diào)試程序編譯、下載程序。編譯無錯后,將CCDebugger與ZigBee模塊

溫馨提示

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

評論

0/150

提交評論