《无线传感器网络设计与应用》(第8周)定时器配置和中断控制灯教案.doc

《无线传感器网络设计与应用》(第8周)定时器配置和中断控制灯教案.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
扬州工业职业技术学院教案 序号 15 周次 8 授课形式 讲授 授课章节名称 基于zigbee的cc2530硬件平台的定时器配置 教学目的 1、通过讲解,让同学们掌握 cc2530定时器的使用方法,熟悉定时器相关寄存器的配置方法,学会和定时器相关的程序设计方法。 教学重点 1、cc2530定时器的使用方法 教学难点 1、cc2530定时器的使用方法 使用教具 无 课外作业 1、建立一个有关定时器的项目 课后体会 通过讲解,同学们掌握了cc2530定时器的使用方法。完成了教学任务,达到了教学效果。 授课主要内容 [旧课复习与新课引入] 上一节课我们介绍了无线传感器网络硬件开发平台按键控制led灯的实验,了解了通用IO口作为输出引脚的配置方式,也熟悉了软件编写的基本方法,接下来我们给同学们介绍一下关于cc2530的一个重要外设定时器的使用。 [新课讲解] 一,cc2530片上外设定时器简介 定时器T1实际上是一个16位计数器,通过对晶体振荡器的时钟进行分频来得到需要的时钟,从而进行各种不同的计数应用 定时器的工作原理 计数值可以从0000h一直到ffffh,即65535.每一个时钟周期计数值增加一,直到溢出为止。当然我们可以对计数值的上限进行自由设置,用来满足不同的需求。 二,定时器的配置寄存器 定时器在配置的时候需要用到3个寄存器分别是:T1CTL,T1STAT,IRCON。 T1CTL是用来对定时器T1进行总体的控制和状态显示用的,他可以用来对晶振进行分频设置,和模式设置,比如模计数,和正向计数,反向计数等操作。 T1CC0 第二个寄存器为T1STAT(中断标志寄存器) 该寄存器的低5位是定时器的中断标志位,分别对应定时器1中通道0-4的中断标志。 Bit5为计数器溢出中断标志位。 第三个寄存器为IRCON系统中断标志寄存器 影响定时器的bit位是IRCON中的bit2, 二,项目设计:定时器T1产生秒信号控制LED灯闪烁 #include <ioCC2530.h> #define uint unsigned int #define uchar unsigned char #define LED1 P1_0 //定义LED1为P10口控制 #define LED2 P1_1 //定义LED2为P11口控制 #define LED3 P1_4 //定义LED3为P14口控制 uint counter=0; //统计溢出次数 uint LEDFlag; //标志是否要闪烁 void InitialT1test(void); //初始化函数声明 /**************************** //T1初始化程序 ***************************/ void InitialT1test(void) { //初始化LED控制端口P1 P1DIR = 0x13; //P10 P11 P14为输 //灯默认为灭 LED1 = 1; LED2 = 1; LED3 = 1; //初始化计数器1 T1CTL = 0x05; //0x05 // T1STAT= 0x21; // 0010 0001 通道0,中断有效,8分频;自动重装模式(0x0000->0xffff) } void main() { InitialT1test(); //调用初始化函数 while(1) //查询溢出 { if(T1IF > 0) // if(IRCON > 0) { T1IF = 0; //清溢出标志 counter++; if(counter==15) //中断计数,约0.25s { counter =0; LEDFlag = !LEDFlag; } } if(LEDFlag) { LED2 = LED1; LED3 = !LED2; LED1 = !LED1; // 每 1s LED灯闪烁一下 LEDFlag = !LEDFlag; // 闪烁标志变量置0 } } } 解释上述代码含

您可能关注的文档

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档