单片机技术与应用课件 36.CC2530片内温度测量.pptx
CC2530片内温度测量zigbee技术开发主讲人:刘美玉Zigbeetechnologydevelopment
CC2530片内温度测量任务描述测量ZigBee模块上CC2530片内温度传感器数值,将ZigBee实训模块和温度/光照传感器模块都固定在NEWLab平台上,用导线把ZigBee模块上ADC0和温度传感器模块上的电位器分压端(J10)连接起来。由电路限制,J10端电压范围0.275~3.025V。要求ADC采用单端输入方式,选择内部参考电压,12位分辨率。测量值通过串口发送到PC端,时间间隔为1s,串口波特率设置为19200。
CC2530片内温度测量任务分析测量CC2530片内温度,必须理解CC2530中ADC模块的工作原理及其相关寄存器的设置。1.知识分析实训任务选择ZigBee实训模块如图所示,明确CC2530单片机ADC模块的工作过程。2.设备分析测量CC2530片内温度,必须会运用IAR软件进行编程,并能够编译、链接、调试程序;会利用CCDebugger仿真下载器,将仿真器的下载线连接到ZigBee实训模块与电脑,通过串口调试器进行仿真演示。3.技能分析
CC2530片内温度测量ADCCON3-ADC控制3寄存器的设置依据任务要求设置ADCCON3寄存器:1.内部参考电压:7:6→002.12位分辨率:5:4→113.采用单通道温度传感器:3:0→11107654321000111110ADCCON3=0x3e;
CC2530片内温度测量程序设计分析测量值通过串口发送1.设计串口初始化函数2.设计串口发送函数测量值每隔1s发送一次设计延时函数测量片内温度设计片内温度采样函数
CC2530片内温度测量测量CC2530片内温度任务实施实施过程1.搭建开发环境2.在编辑窗口编写程序(1)新建工作区,工作区名为:workTem。(2)新建工程,工程名为:projectTem。(3)新建源程序文件,命名为testTem.c。(4)将testTem.c文件添加到projectTem工程中。(5)按键CTRL+S保存工作区。(6)配置工程选项,“Project”-“Options”-“GeneralOptions”,“Device”-“TexasInstruments”-“CC2530F256”。(7)配置linker,勾选Overridedefault(8)配置Debugger,“Debugger”-“Setup”-“Driver”-“TexasInstruments”。
CC2530片内温度测量程序设计过程1.引入头文件,定义相关变量2.设计延时函数#includeiocc2530.hchardata[]=测试CC2530片内温度!\n;charname_string[20];voiddelay(unsignedinti){unsignedintj,k;for(k=0;ki;k++){for(j=0;j500;j++);}}
CC2530片内温度测量程序设计过程3.串口初始化函数4.串口发送函数voidinitial_usart(){CLKCONCMD=~0X7F;//晶振设置为32MHzwhile(CLKCONSTA0X40);//等待晶振稳定CLKCONCMD=~0X47;//设置系统主时钟频率为32MHzPERCFG=0X00;//usart0使用备用位置1TX-P0_3RX-P0_2P0SEL|=0X3C;//P0_2P0_3P0_4P0_5用于外设功能P2DIR=~0xC0;//P0优先作为UART方式U0CSR|=0XC0;//uart模式允许接收U0GCR=9;U0BAUD=59;//波特率设为19200URX0IF=0;//uart0tx中断标志位清零}voiduart_tx_string(char*data_tx,intlen){unsignedintj;for(j=0;jlen;j++){U0DBUF=*data_tx++;while(UTX0IF==0);UTX0IF=0;}}
CC2530片内温度测量程序设计过程5.片内温度采样函数floatgetTemperature(void){signedshortintvalue;ADCCON3=0x3