




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课时教案课程:单片机技术与应用-基于CC2530的ZigBee技术开发与应用课题测量外部电压值课时8教学目标知识:1.理解ADC的工作模式2.理解光敏传感器与CC2530芯片的电路工作原理3.掌握传感数据采集函数的编程设计思想技能:1.会分析任务,确定任务知识点2.会编写任务中各种初始化函数3.会使用CCDebugger仿真下载器及串口调试工具进行仿真演示素质:1.具备守纪律,讲规矩的优秀品质,做遵规守纪的明白人。2.具备严谨求实、认真负责、踏实敬业的工作态度重点任务中初始化函数的设计难点功能函数的设计教法小组合作问题探究学法自主探究教具试验多媒体、PPT课件教学过程问题设计及知识点师生互动设计(问题与任务)CC2530片内温度测量【任务描述】基于ZigBee模块,编程实现测量CC2530芯片外部光敏传感器的电压。将光敏传感器安装到ZigBee模块上,光线的强弱转换成电压的高低,经ADC转换以后通过串口将电压值发送给计算机,并通过串口调试软件读取电压值。要求:1)每隔2s采集光照度数据,并将数据转换成电压通过串口发送,每次采集LED1闪烁。2)使用定时器1中断方式来控制定时时间,定时器1参数配置要求采用32分频,自由运行模式。3)串口通信要求使用串口0的备用位置1:P0_2(RX),P0_3(TX),波特率115200,奇偶校验无,1位停止位,8位数据位,流控无。4)光敏传感器插在ZigBee实训模块的传感器插槽上,查看相关的电路图和数据手册,设置采集光敏传感器的引脚初始化和ADC相关参数,ADC要求配置为:3.3V电压(AVDD5引脚)、128位抽取率、AIN0单通道。【任务分析】1.知识分析定时通过串口发送外部电压值,需要掌握定时器、串口发送等相关知识,要应用单片机外设ADC模块测量外部电压,必须明确ADC工作模式。2.设备分析实训任务选择ZigBee实训模块,要会识读此实训模块电路图,并理解此模块与测量光敏传感器输出电压电路工作原理。3.技能分析定时通过串口输出测量电压值,必须会运用IAR软件进行编程,并能够编译、链接、调试程序;会利用CCDebugger仿真下载器,将仿真器的下载线连接到ZigBee实训模块与电脑,利用串口调试工具进行仿真演示。【知识储备】一、电路分析将光敏传感器安装到ZigBee模块上,电路连接如图5-2-1所示,光敏电阻的阻值大小会根据环境光线的变化而变化,经串联的电阻R16分压后连接到CC2530的19引脚。第19引脚是CC2530的片内ADC模块的0通道输入端,通过测量电压输入的电压来感知环境光照的强弱。二、程序设计分析将光敏传感器模块安装在ZigBee实训模块上,光敏电阻的阻值大小会按照环境光线的变化而变化,连接在CC2530的19脚。第19脚是CC2530的片内ADC模块的0通道(P0_0脚)输入端,通过测量电压输入的电压来感知环境光照的强弱。程序设计流程图:【任务指导】1.搭建开发环境1)新建工作区,工作区名为:work5_2。2)新建工程,工程名为:project5_2。3)新建源程序文件,命名为test5_2.c。4)将test5_2.c文件添加到project5_2工程中。5)按键CTRL+S保存工作区。6)配置工程选项,“Project”->“Options”->“GeneralOptions”,“Device”->“TexasInstruments”->“CC2530F256”。7)配置linker,勾选Overridedefault8)配置Debugger,“Debugger”->“Setup”->“Driver”->“TexasInstruments”。2.在编辑窗口设计程序引入CC2530必要的头文件“iocc2530.h”,定义相关变量等。/*包含头文件*/#include<iocc2530.h>#include<string.h>/*宏定义*/#defineLED1P1_0#defineuint16unsignedshort/*定义变量*/intcount=0;//统计定时器溢出次数charoutput[8];//存放转换成字符形式的传感器数据uint16flamgas_val;//ADC采集结果/*声明函数*/voidInitCLK(void);//系统时钟初始化函数,为32MHzvoidInitUART0();//串口0初始化voidInitT1();//定时器1初始化voidDelay(intdelaytime);//延时函数unsignedshortGet_adc();//ADC采集voidUart_tx_string(char*data_tx,intlen);//往串口发送指定长度的数据voidInitLED(void);//灯的初始化/*定义函数*/voidInitCLK(void){CLKCONCMD&=0x80;while(CLKCONSTA&0x40);}voidInitLED(){P1SEL&=~0x01;//设置P1_0、P1_1为GPIO口P1DIR|=0x01;//设置P1_0和P1_1为输出LED1=0;//设置LED1和LED2的初始状态}voidInitT1(){T1CTL=0X09;//32分频,自由运行模式(1001)T1IE=1;//使能定时器1中断TIMIF|=0x40;//不产生定时器1的溢出中断EA=1;}voidInitUART0(){U0CSR|=0X80;//串口模式PERCFG|=0x00;//USART0使用备用位置1P0_2P0_3P0SEL|=0X0C;//设置P0_2P0_3为外设U0UCR|=0X80;//流控无8位数据位无奇偶校验1位停止位U0GCR=11;//设置波特率为115200(见书上对应表)U0BAUD=216;UTX0IF=0;EA=1;}voidInitADC(){APCFG|=1;//设置P0_0为模拟端口P0SEL|=0x01;//设置P0_0为外设P0DIR&=~0x01;//设置P0_0为输入方向ADCCON3=0x90;//设置参考电压3.3V128抽取率使用AIN0通道}uint16Get_adc(){while(!ADCIF);ADCIF=0;unsignedlongvalue;value=ADCH;value=value<<8;value|=ADCL;value=value*330;//VALUE*3.3v/32768value=value>>15;return(uint16)value;}voidUart_tx_string(char*data_tx,intlen){unsignedintj;for(j=0;j<len;j++){U0DBUF=*data_tx++;while(UTX0IF==0);UTX0IF=0;}}#pragmavector=T1_VECTOR__interruptvoidt1(){T1IF=0;//清除定时器1中断标志count++;//累加中断次数if(count>=31)//定时2秒到{LED1=~LED1;//LED1灯翻转count=0;//计数值清零flamgas_val=Get_adc();output[0]=flamgas_val/100+'0';output[1]='.';output[2]=flamgas_val/10%10+'0';output[3]=flamgas_val%10+'0';output[4]='V';output[5]='\r';output[6]='\n';output[7]='\0';Uart_tx_string("光敏传感器电压值:",sizeof("光敏传感器电压值:"));Uart_tx_string(output,8);//发送传感数据到串口}}voidmain(){InitCLK();//系统时钟32MInitLED();//灯的初始化InitT1();//定时器初始化InitUART0();//串口初始化InitADC();//ADC初始化while(1);}3.编译、分析、调试程序编译、下载程序。编译无错后,将CCDebugger与ZigBee模块相连,并分别连接到电脑,下载程序,通过串口查看光敏传感器电压值。教师引导学生分析任务学生复习巩固所学知识小组合作探究教师指导教师引导学生设计程序设计流程图学生依据任务要求搭建开发环境学生编写程序:引入头文件,定义相关变量,声明相关函数小组合作依据前面所学设计任务中初始化函数教师巡视指导总结评价教师引导学生理解采用函数的设计思路小组合作设计T1中断服务函数学生设计主函数动手操作,实现功能教师总结评价新知应用将光敏传感器安装到ZigBee模块上,光线的强弱转换成电压的高低,经ADC转换以后通过串口将电压值发送给计算机,并通过串口调试软件读取电压值。要求:1)每隔3s采集光照度数据,并将数据转换成电压通过串口发送,每次采集LED2闪烁。2)使用定时器1中断方式来控制定时时间,定时器1参数配置要求采用32分频,模模式,溢出周期为50ms.3)串口通信要求使用串口0的备用位置1:P0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论