CC2530定时器1的原理与编程解析.ppt_第1页
CC2530定时器1的原理与编程解析.ppt_第2页
CC2530定时器1的原理与编程解析.ppt_第3页
CC2530定时器1的原理与编程解析.ppt_第4页
CC2530定时器1的原理与编程解析.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理与应用,大课 (1)CC2530定时器:定时器1、定时器2、定时器3、定时器4、睡眠定时器 (2)定时器1的三种工作模式:自由运行、模模式、正计数/倒计数模式 小课 (1)CC2530外部中断 外部中断初始化:输入方式、清除中断标志位、合上开关; 中断响应程序: (2)串口通过标志位发送接收 串口初始化:时钟、位置、方式、波特率、合开关等; 串口发送:等待、清标志位、发送; 串口接收:等待、接收(硬件自动清标志位),教学回顾,1.定时器1原理(难点); 2.定时器1编程(重点); 3. PWM原理,本周教学主要内容,教学目标,理解CC2530 定时器1的原理; 掌握CC2530 定时

2、器1的编程方法; 熟悉CC2530 PWM调节原理,一、定时器1,自由运行模式 模计数器模式 正计数/倒计数模式,+65535,一、定时器1自由运行模式,T1CNTH,T1CNTL,T1CNTH,T1CNTL,经历了65535个时钟脉冲后变成16个1,如下:,每经历一个时钟脉冲,数值加1,T1CNTH,T1CNTL,同时产生中断溢出标志位:IRCON.T1IF和T1STAT.OVFIF,+1,初始值:为0,T1CNTH和T1CNTL里的值从16个0逐渐增加再回到16个0,需要经过65536个时钟脉冲,一、定时器1,当时钟脉冲设置为32M,不分频,不分频,自由运行模式,每次溢出时间间隔为:,定时

3、器 溢出,不分频,定时器溢出500次,就让灯状态取反:,灯每隔1.024S亮一次,隔1.024S灭一次,每次溢出时间间隔为:,一、定时器1自由运行模式,当时钟脉冲设置为32M,不分频,自由运行模式,每次溢出时间间隔为:,定时器 溢出,8分频,定时器溢出300次,就让灯状态取反:,灯每隔4.9152S亮一次,隔4.9152S灭一次,改变上面的时钟频率、全局定时分频、T1分频,就可以改变定时器溢出时间,配合溢出次数,就可以随心所欲定时!,带阴影的标志位会有硬件清除,T1溢出中断屏蔽,复位为1,T1溢出 标志位,T1中断标志,允许/禁止T1中断,EA,中断优先级,T1的5个通道 中断标志,T1的5个

4、通道 中断屏蔽,一、定时器1,/用T1来做实验128分频;自由运行模式 T1CTL=(0 x32)|(0 x10);,定时器1的控制和状态寄存器T1CTL:,通过T1CNTH和T1CNTL读取16位的计数器值,当读取T1CTL时,计数器高位字节被缓冲到T1CNTH中,以便高位字节可以从T1CTLH中读出。T1CNTL必须总是在读取T1CNTH之前首先读取。,T1CNTL定时器1计数器低位,T1CNTH定时器1计数器高位,一、定时器1,IRCON中断标志寄存器如下:,无中断未决:无中断信号给CPU 中断未决:有中断信号给CPU,一、定时器1,T1STAT定时器1状态寄存器如下:,一、定时器1,模

5、计数模式:T1CC0L和T1CC0H寄存器设置,T1CC0L 定时器1通道0捕获/比较值低位,T1CC0H 定时器1通道0捕获/比较值高位,一、定时器1,定时器1实例分析,下述内容用于实现定时器1溢出标志控制LED亮灭 1.定时器1初始化,void Initial(void) EA=1; T1IE=1; /用T1来做实验 128分频;自动运行模式(0 x0000-0 xffff); T1CTL = 0 x0d; ,void InitClock(void) CLKCONCMD /* CLKSPD不分频*/ ,2.时钟初始化,- 16 -,定时器1实例分析,3.LED初始化,void Initle

6、d(void) /初始化LED灯 P1SEL ,#include #define uint unsigned int #define uchar unsigned char #define LED1 P1_0 uint counter=0;/统计溢出次数,4.头文件、宏定义,- 17 -,定时器1,void main() /调用初始化函数 void Initial(void); void InitClock(void); void Initled(void); while(1) ; ,#pragma vector=T1_VECTOR/指定中断向量 _interrupt void T1_ISR(

7、void) IRCON=0X00;/清除中断标志,也可由硬/件自动完成 if(counter300) counter+; else counter=0; LED1 =!LED1 ; ,5.主函数、中断服务程序,二、定时器3、定时器4编程,T3 溢出,当时钟脉冲设置为32M,不分频,不分频,自由运行 模式:256,8分频,定时器溢出500次,就让灯状态取反:,每次溢出时间间隔为:,1,三、PWM数字调光的原理,在P1_1上的信号如果按下面几种情况,D2亮度有什么不同呢?,1,0,0,1,0,(1),(2),(3),(4),上面4中情况,由暗到亮的顺序为:(1)(2)(3)(4)当加在P1_1管脚

8、上的信号的一个周期中,低电平所持续的时间占整个周期的时间越长,则发光二极管越亮。由此可见,我们只需要改变占空比就可以调节D2亮度。我们一般把这种占空比可以改变的数字信号叫做PWM(Pulse Width Modulation)波。 2、通过合适的配置,CC2530的定时器1除了产生定时中断外,还可以在输出pwm波。定时器1共有5路pwm输出通道,具体如下:,三、PWM数字调光的原理,2、通过合适的配置,CC2530的定时器1除了产生定时中断外,还可以在输出pwm波。定时器1共有5路pwm输出通道,具体如下:,三、PWM数字调光的原理,由上图可知,定时器1的PWM波的输出通道有两个位置: 位置1

9、:通道0、1、2、3、4的输出管脚为P0_2,P0_3,P0_4,P0_5,P0_6; 位置2:通道0、1、2、3、4的输出管脚为P1_2,P1_1,P1_0,P0_7,P0_6; 发光二极管D2所连接的IO口: P1_1,如果我们希望通过P1_1对D2进行数字调光,就必须让定时器1的某个通道的PWM输出位于P1_1,做到这一点,须进行如下设置:,(1)定时器1的PWM输出位与LED灯是同一个引脚是P1_1,选择位置2: PERCFG|=16; (2)IO口冲突时定时器1优先:P2SEL|=13; (3)P1_1为外部设备模式:P1SEL|=11;,三、PWM数字调光的原理,上图为定时器1运行在正/倒计数模式下PWM,在此种模式下T1CC0(T1CC0H:T1CC0L)用做了定时计数值,所以通道0不用做PWM输出。 PWM的周期=(T1CC0+1)*2*1/计数脉冲的频率 PWM的占空比=(T1CC0-T1CCn)/ T1CC0*2,小结,1.CC2

温馨提示

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

评论

0/150

提交评论