实验二: Timer定时应用实验

2.1实验目的

1. 认识并了解 CC2530 定时器;

2. 学习定时器的基本配置与应用;

3. 在 ZigBee 模块上运行定时器程序。

2.2实验原理

根据数据手册可知 CC2530 总共有 4 个定时器,但是定时器 2 被系统占用,可用的只有三个,分别为 定时器 1、3、4。其中定时器 3 和定时器 4 是两个 8 位定时器,定时器 1 是一个独立的 16 位定时器,本 节主要介绍基于定时器 1 的定时应用。定时器的一个很重要的概念是操作模式,该模式包含自由运行模 式(free-running)、模模式(modulo)和正计数/倒计数模式(up-down)。以下为摘自 CC2530 中文手册 关于 3 种模式的介绍:

在自由运行操作模式下,计数器从 0x0000 开始,每个活动时钟边沿增加 1。 当计数器达到 0xFFFF 时(溢出),计数器载入 0x0000,继续递增它的值,如图 3.2.1 所示。当达到终计数值 0xFFFF,设置 标志 IRCON.T1IF 和 T1STAT.OVFIF。如果设置了相应的中断屏蔽位 TIMIF.OVFIM 以及 IEN1.T1EN,将产生 一个中断请求。自由运行模式可以用于产生独立的时间间隔,输出信号频率。

当定时器运行在模模式时,16 位计数器从 0x0000 开始,每个活动时钟边沿增加 1。当计数器的计数 值达到 T1CC0 时溢出。寄存器 T1CC0H 与 T1CC0L 保存的终计数值将复位到 0x0000,并继续递增。如果 定时器开始于T1CC0以上的一个值,当达到终计数值(0xFFFF)时,设置标志IRCON.T1IF和 T1CTL.OVFIF。 如果设置了相应的中断屏蔽位 TIMIF.OVFIM 以及 IEN1.T1EN,将产生一个中断请求。该模式可以用于周期不是 0xFFFF 的应用程序。计数器的操作展示在图 3.2.2 中。

在正计数/倒计数模式,计数器反复从 0x0000 开始,正计数直到达到 T1CC0H 与 T1CC0L 保存的值。 然后计数器将倒计数直到 0x0000,如图 3.2.3 所示。这个定时器用于周期必须是对称输出脉冲而不是 0xFFFF 的应用程序,因此允许中心对齐的 PWM 输出应用的实现。在正计数/倒计数模式,当达到终计 数值时,设置标志 IRCON.T1IF 和 T1CTL.OVFIF。如果设置了相应的中断屏蔽位 TIMIF.OVFIM 以及 IEN1.T1EN,将产生一个中断请求。

由以上三种模式的比较可以得出:自由运行模式的溢出值为 0xFFFF 不可变;而其他两种模式则通过 对 T1CC0 赋值,以精确控制定时器的溢出值。

本实验通过对 CC2530 内部定时器 T1 的配置与使用,实现对 ZigBee 模块上的 LED 灯以 1 秒为时间单 位进行均等时间的定时闪烁,即让模块上的 LED 指示灯实现 0.5s 亮与 0.5s 灭,它们亮灭的时间是均等 的。这种均等的时间实现效果正是由 CC2530 的内部定时器 T1 来实现的。

2.2.1 电路分析与程序配置

本节使用 CC2530 的定时器 1 来实现对 LED 的定时闪烁时间控制,所使用的原理图与 3.1 节的一致,即:D4 所对应的 I/O 为 P1_0,D2 所对应的 I/O 为 P1_1,D3 所对应的 I/O 为 P1_2,本实验选择 P1_0, P1_1 和 P1_2 I/O 引脚,P1_0 控制模块上的 LED 灯 Status/Data,P1_1 控制模块上的 LED 灯 Net,P1_2 控制模块上的 LED 灯 User1。故在软件上只要配置好 P1_0,P1_1,P1_2 并初始化好定时器 1 即可。

本次实验学习到的新寄存器:

T1CTL:定时器 1 的控制寄存器。D1、D0 控制运行模式;D3、D2 设置分频值。

T1STAT:定时器 1 的状态寄存器,D4~D0 为通道 4~通道 0 的中断标志,D5 为溢出标志位,当计数到 终计数值时自动置 1。

IRCON:中断标志寄存器;0 为无中断请求。1 为有中断请求。

IEN1:中断允许寄存器 1

2.3 实验步骤

1. 正确连接 ZB-LINK 调试器到 PC 机和 ZigBee 模块,可参考第 1 章的 1.3 节进行连接;

2. 打开:【配套光盘04-实验例程02-ZigBee技术与应用第三章 CC2530基础功能实验3.2 Timer 定时应用实验实验代码】中的实验工程:“timer.eww”,选择 Project→Rebuild All 重新编译 工程;

3. 选择 Project→Download and debug 将程序下载到 ZigBee 模块,下载完成后点

退出;

4. 按下 ZB-LINK 调试器的复位按钮让刚才下载的程序重新运行。

2.4实验源码

#include <ioCC2530.h>          //引入CC2530所对应的头文件(包含各SFR的定义)
#include "sys_init.h"uint counter=0;                //统计溢出次数/*主函数-------------------------------------------------------*/
void main()
{led_init();     //LED初始化 time1_init();   //T1中断初始化while(1);
}/*中断服务子程序-------------------------------------------------------*/
#pragma vector = T1_VECTOR      __interrupt void T1_ISR(void)            {       EA=0;                           //关总中断 counter++;if(counter>15)                  //0.5s时间{counter=0;  D4 = !D4;D2 = !D2;D3 = !D3;}T1IF=0;                         //清中断标志EA=1;                           //开总中断 }

2.5 实验结果与分析

程序运行后,会发现 ZigBee 模块上的所有 LED 指示灯在定时器 1 的作用下开始以1秒为周期,0.5s 为亮灭时间间隔的方式不停地闪烁,从而达到了本节实验所要求的实验效果。

实现定时中断_无线传感器网络实验报告(二)Timer定时应用实验相关推荐

  1. 计算机大机实验报告,大学计算机一实验报告二大学算机一实验报告二大学计算机一实验报告二大学计算机一实验报告二.doc...

    大学计算机一实验报告二大学算机一实验报告二大学计算机一实验报告二大学计算机一实验报告二 广东金融学院实验报告 课程名称:大学计算机Ⅰ 实验编号 及实验名称实验二中文Word 2010 实验系 别姓 名 ...

  2. 天津理工大学计算机网络实验报告二,天津理工大学计算机网络实验报告一(中加).docx...

    文档介绍: 天津理工大学实验报告 学院(系)名称: 计算机与通信工程学院 姓名 学号 专业 计算机科学与技术(中加合作) 班级 教学 1 班 实验项目 实验一:网络命令的使用 课程名称 计算机网络 课 ...

  3. C语言实验报告二模板,C语言实验报告模板

    left=m; }else if(a[m]>num) { right=m; } else { printf(\的位置是%d\\n\ break; } Step13:考虑到不合法的问题if(lef ...

  4. 【实验报告】四恶意代码实验

    学   号201421420040   中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告   实验四 恶意代码技术     ...

  5. java类与对象实验报告心得体会_java上机实验心得体会报告(大全五篇)

    北京联合大学信息学院 "面向对象程序设计"课程上机实验报告 题目: JAVA上机实验心得体会 姓名(学号): 专业:计算机科学与技术 编制时间: 2012年12月19日 版本: 1 ...

  6. 南京邮电大学c语言实验报告3v2,南京邮电大学操作系统实验报告

    <南京邮电大学操作系统实验报告>由会员分享,可在线阅读,更多相关<南京邮电大学操作系统实验报告(20页珍藏版)>请在人人文库网上搜索. 1.通信与信息工程学院2015 / 20 ...

  7. 计算机系统的备份与还原实验报告,数据备份与数据恢复实验报告

    <数据备份与数据恢复实验报告>由会员分享,可在线阅读,更多相关<数据备份与数据恢复实验报告(7页珍藏版)>请在人人文库网上搜索. 1.数据备份和数据恢复实验报告实验目的熟悉使用 ...

  8. 【使用华为云MindSpore框架实现目标分类___实验报告(二)】

    *************************************************** 码字不易,收藏之余,别忘了给我点个赞吧! *************************** ...

  9. 计算机网络对等网规划设计实验报告,对等网的组建实验报告

    信息科学与技术学院实验报告 课程名称:计算机网络原理 实验项目:对等网的组建 实验地点: 博西409机房 指导教师: 马占飞 日期: 2013-9-17 实验类型: 设计性实验(验证性实验 综合性实验 ...

最新文章

  1. Windows 2008 R2 SP1部署Lync2010企业版(四)
  2. [ python ] 类的组合
  3. 云计算技术 — 数据中心基础架构变迁史
  4. 精益与敏捷开发(随笔)
  5. 在word上写博客直接发到CSDN博客
  6. JSP的getRequestDispatcher()与sendRedirect()的区别
  7. IPM: 使用代码删除Acquisition contract上的IP Product
  8. asp.net core高级应用:TagHelper+Form
  9. 走进AngularJs(二) ng模板中常用指令的使用方式
  10. Netty工作笔记0031---NIO零拷贝应用案例
  11. python built-in cache (don't reinvent the wheel)
  12. mariadb重置自动id_如何更改/重置MySQL或MariaDB根密码
  13. 十大品牌去除甲醛净化器 哪个品牌好
  14. Ubuntu18新系统火狐浏览器无法播放音乐和视频
  15. 基于IR2136的三相电机控制
  16. 栈和队列的常见面试题-栈实现队列-队列实现栈
  17. js控制禁用退格键回到上一个页面
  18. mac日历显示国家节假日及补班日期
  19. cast 和convert和concat详解以及mysql和sqlserver兼容问题
  20. 计算机必学知识,基础电脑知识:计算机操作常识入门必学

热门文章

  1. linux php 添加gd,linux(centos)下为php添加添加GD扩展
  2. 路由器上的usb接口有什么用_工业主板上有多少种USB接口,红色的USB接口代表什么...
  3. java 计算机开始时间,关于计算Java程序运行时间
  4. 最大值_Leetcode2 | 滑动窗口最大值(Q239)
  5. 淤泥管道机器人_丛台区设备管道清洗超高效率
  6. android 语音编码,android – 如何将录制的语音编码为ogg vorbis?
  7. 通过docker无法访问到tomcat报页面404
  8. CTF-汇编语言归纳
  9. mysql 命令行 设置同步_MySQL同步(二) 设置同步
  10. cad多线段长度计算总和_没想到啊,我平时用的CAD多段线有这么多学问