单片机技术与应用电子教案 3.定时器1模模式下控制LED闪烁_第1页
单片机技术与应用电子教案 3.定时器1模模式下控制LED闪烁_第2页
单片机技术与应用电子教案 3.定时器1模模式下控制LED闪烁_第3页
单片机技术与应用电子教案 3.定时器1模模式下控制LED闪烁_第4页
单片机技术与应用电子教案 3.定时器1模模式下控制LED闪烁_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课时教案课程:单片机技术与应用-基于CC2530的ZigBee技术开发与应用课题定时器1模模式下控制LED闪烁课时4教学目标知识:1.理解模模式的工作原理。2.掌握模模式下相关寄存器的配置。3.掌握模模式下T1初始化函数的设计方法。4.掌握模模式下T1中断服务函数的设计方法。技能:1.会分析模模式的工作原理。2.会设置模模式下相关寄存器。3.会对模模式下T1定时器进行初始化。4.能够依据任务要求设计模模式下定时/计数功能相关函数,将CCDebugger下载仿真器连接至电脑和实训设备,进行仿真演示。素质:1.在任务实施过程中,具备动手、动脑和勇于创新的意识。2.在分析、解决问题过程中,具备团队协作意识。重点1.模模式下与T1相关寄存器的设置2.模模式下T1初始化函数的设计难点1.模模式下T1中断服务函数的设计教法任务驱动式学法自主探究小组合作教具试验多媒体、PPT课件教学过程问题设计及知识点师生互动设计(问题与任务)定时器1自由运行模式下控制LED闪烁【任务描述】基于ZigBee模块做基础开发,利用定时功能实现每隔1sLED1闪烁1次。定时时间要求使用定时器1,32MHz时钟频率,工作模式为模模式,32分频,要求每50ms产生一次溢出中断。【任务分析】1.知识分析实现模模式下定时器1控制LED闪烁,理解模模式的工作原理,熟知模模式工作模式下与T1定时器相关寄存器的设置。2.设备分析定时器/计数器是CC2530单片机内部主要结构之一,实训任务选择ZigBee实训模块,会识读此实训模块电路图,理解此模块定时器/计数器工作原理。3.技能分析实现定时器1模模式下控制LED闪烁,必须清晰模模式下溢出次数的计算方法,熟练运用IAR软件进行模模式下定时/计数功能相关函数的编程,并能编译、链接、调试程序,会利用CCDebugger仿真下载器,将仿真器的下载线连接到ZigBee实训模块与电脑,进行仿真演示。【知识储备】一、模模式的工作原理模模式下,计数器从0x0000开始计数,定时器T1每个分频后的时钟边沿增加1,即每s(CC2530单片机时钟频率是32MHz)增加1,当计数器达到寄存器T1CC0中值(16位寄存器,由T1CC0H和T1CC0L组合)时溢出,计数器重新载入0x0000,继续递增。当计数达到最大计数值寄存器T1CC0中值时,IRCON.T1IF和T1STAT.OVFIF两个标志位被置1,若设置相应的中断使能位T1MIF.OVFIM和IEN1.T1IE,将产生中断请求。定时器1共有5对T1CCxH和T1CCxL寄存器,分别对应通道0到通道4。定时器1的定时功能使用T1CC0H和T1CC0L两个寄存器,存放最大计数值的高8位和低8位。注意:1)如果定时器1的计数器开始于T1CC0以上的一个值,当达到最终计数值(0XFFFF)时,上述相应标志位被置1。2)模模式用于周期不是0XFFFF的场合。二、模模式下与T1定时器相关寄存器及设置根据模模式的工作原理可知判断是否产生溢出,需要将计数值不断与寄存器T1CC0中的值进行比较。所以模模式下与T1相关寄存器有:T1CCTL0:定时器1通道0捕获/比较控制寄存器T1CC0H:定时器1通道0捕获/比较值高位T1CC0L:定时器1通道0捕获/比较值低位T1STAT:定时器1状态寄存器T1CTL:定时器1控制寄存器。TIMIF:定时器1/3/4中断屏蔽/标志【任务指导】1.搭建开发环境1)新建工作区,工作区名为:work3_2。2)新建工程,工程名为:project3_2。3)新建源程序文件,命名为test3_2.c。4)将test3_2.c文件添加到project3_2工程中。5)按键CTRL+S保存工作区。6)配置工程选项,“Project”->“Options”->“GeneralOptions”,“Device”->“TexasInstruments”->“CC2530F256”。7)配置linker,勾选Overridedefault8)配置Debugger,“Debugger”->“Setup”->“Driver”->“TexasInstruments”。2.在编辑窗口设计程序(1)准备工作引入CC2530必要的头文件“iocc2530.h”,定义相关变量等。#include<iocc2530.h>#defineLED1P1_0unsignedcharcount;(2)设计端口初始化函数voidInit_Port()//端口初始化函数{P1SEL&=~0x01;//设置P1_0端口为GPIOP1DIR|=0x01;//定义P1_0端口为输出LED1=0;//关闭LED1}(3)设计定时器T1初始化函数1)初始化函数设计基本流程:将定时器1的最大计数值写入T1CC0。通过T1CCTL0寄存器开启定时器1通道0的输出比较模式。设置定时器1的相关中断控制位。设置EA=1,使能总中断;设置T1IE=1,使能T1中断;设置TIMIF|=0x40或OVFIM=1,使能T1溢出中断。设置分频系数和工作模式并启动定时器。2)定时器T1的最大计数值任务中系统时钟为32MHz,分频系数为32,溢出周期为50ms,则:,将其转换为十六进制为0xC350。3)定时器1初始化函数如下:voidInit_T1()//定时器1初始化函数{T1CC0L=50000&0x00FF;//或T1CC0L=0x50;设置最大计数值的低8位T1CC0H=(50000&0xFF00)>>8;//或T1CC0H=0xC3;设置最大计数值的高8位T1CCTL0|=0x04;//开启通道0的输出比较模式TIMIF|=0x40;//定时器1溢出中断使能T1IE=1;//定时器1中断使能EA=1;//总中断使能T1CTL=0x0A;//启动定时器T1,设32分频,模模式}(4)设计T1中断服务函数1)基本设计思路:清除IRCON的T1中断标志位T1IF及T1STAT的溢出中断标志位OVFIF,因硬件会自动清零,即此语句可省略。判断count是否达到溢出次数,如果达到即1秒定时到,count清零,执行中断服务函数;否则count累加。2)T1中断服务函数#pragmavector=T1_VECTOR__interruptvoidT1_ISR(){if(count>=20){count=0;LED1=!LED1;}else{count++;}}(5)设计主函数voidmain(){CLKCONCMD&=~0x7F;//晶振设置为32MHzwhile(CLKCONSTA&0x40);//等待晶振稳定Init_Port();//调用定时器1初始化函数Init_T1();//调用T1初始化函数while(1);}3.编写、分析、调试程序编译、下载程序。编译无错后,将CCDebugger与ZigBee模块相连,并分别连接到电脑,下载程序,测试程序功能。教师引导学生分析任务教师引导学生分析理解模模式的工作原理小组合作探究模模式下与T1相关寄存器及其设置学生依据任务要求搭建开发环境学生编写程序:引入头文件,定义相关变量学生依据任务要求编写端口初始化函数小组合作探究编写T1初始化函数教师巡视指导评价教师引导学生编写T1中断服务函数学生编写主函数学生实际动手操作,测试程序功能新知应用基于CC2530模块做基础开发,利用定时功能实现每隔1s,LED1和LED2交替闪烁1次,定时时间要求采用定时器T1,32MHz,工作模式为模模式,128分频,已知溢出周期为200ms。了解学生对新知识

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论