CC2530的中断系统和定时器原理课件.ppt_第1页
CC2530的中断系统和定时器原理课件.ppt_第2页
CC2530的中断系统和定时器原理课件.ppt_第3页
CC2530的中断系统和定时器原理课件.ppt_第4页
CC2530的中断系统和定时器原理课件.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、CC2530的中断系统 和定时器的定时原理,CC2530及STC89C51芯片对比,STC89C51,定时器个数:2 工作模式: 计数器工作模式 定时器工作模式 工作方式:4种工作方式(方式0-方式3),CC2530,定时器个数:4 工作模式: 自由运行模式 模模式 正计数/倒计数模式 通道模式控制 输入捕获模式 输出比较模式,STC89C51,工作方式的设置:,CC2530,工作方式的设置:,STC89C51,CC2530,STC89C51,计算定时/计数初值 89C51定时/计数初值计算公式:,CC2530,其中: N与工作方式有关: 方式0时,N=13; 方式1时,N=16; 方式2、3

2、时,N=8。 机周时间与主振频率有关:机周时间=12/fosc fosc=12MHZ时,1机周=1S; fosc=6MHZ 时,1机周=2S。,初始化,STC89C51,启动重新赋值:清零,你正在专心看书,突然电话铃响,于是你记下正在看的书的页数,去接电话,接完电话后再回来接着看书。,日常生活中中断的例子:,中断系统,计算机中的中断概念:,CPU正在执行程序时,单片机外部或内部发生的某一事件,请求CPU迅速去处理。CPU暂时中止当前的工作,转到中断服务处理程序处理所发生的事件。处理完该事件后,再回到原来被中止的地方,继续原来的工作,这称为中断。 CPU处理事件的过程,称为CPU的中断响应过程。

3、 对事件的整个处理过程,称为中断处理(或中断服务)。,CPU处理事件的过程,称为CPU的中断响应过程。 对事件的整个处理过程,称为中断处理(或中断服务)。 将能引起中断的事件称为中断源。 CPU现行运行的程序称为主程序。 处理随机事件的程序称为中断服务子程序。,STC89C51 中断源个数:5个 外部输入中断源INT0(P3.2) 外部输入中断源INT1(P3.3) 片内定时器T0的溢出 片内定时器T1的溢出 片内串行口发送或接收中断源,CC2530 CPU 有18个中断源。每个中断源都有它自己的位于一系列 SFR 寄存器中的中断请求标志。相应标志位请求的每个中断可以分别使能或禁用。,每个中断

4、请求可以通过设置中断使能 SFR 寄存器的中断使能位 IEN0 , IEN1 或者 IEN2 使能或禁止。 注意某些外部设备有若干事件,可以产生与外设相关的中断请求。这些中断请求可以作用在端口 0 、端口 1 、端口 2 、定时器 1 、定时器 2 、定时器 3 、定时器 4 和无线电上。对于每个内部中断源对应的 SFR 寄存器,这些外部设备都有中断屏蔽位。,使能中断步骤: 1 清除中断标志。 2 如果有,则设置 SFR 寄存器中对应的各中断使能位为 1 3 设置寄存器 IEN0 、 IEN1 和 IEN2 中对应的中断使能位为1 4 设置 IEN0 中的 EA 位为 1 使能全局中断。 5

5、在该中断对应的向量地址上,运行该中断的服务程序。,中断使能寄存器0,中断使能寄存器1,中断使能寄存器2,中断处理,当中断发生时,CPU 就指向中断向量地址。一旦中断服务开始,就只能够被更高优先级的中断打断。中断服务程序由中断指令 RETI终止,当 RETI 执行时,CPU 将返回到中断发生时的下一条指令。 当中断发生时,不管该中断使能或禁止,CPU 都会在中断标志寄存器中设置中断标志位。如果当设置中断标志时中断使能,那么在下一个指令周期,由硬件强行产生一个 LCALL 到对应的向量地址,运行中断服务程序。 中断的响应需要不同的时间,取决于该中断发生时 CPU 的状态。,中断响应时间,中断的响应

6、需要不同的时间,取决于该中断发生时 CPU 的状态。当 CPU 正在运行的中断服务程序,其优 先级大于或等于新的中断时,新的中断暂不运行,直至新的中断的优先级高于正在运行的中断服务程序。在其 他情况下,中断响应的时间取决于当前的指令,最快响应一个中断的时间是 7 个机器指令周期,其中 1 个机器 指令周期用于探测中断,其余 6 个用来执行 LCALL。,中断标志寄存器4,中断标志寄存器5,中断优先级,中断组合成为 6 个中断优先组,每组的优先级通过设置寄存器 IP0 和 IP1 实现。为了给中断(也就是它所在的中断优先组)赋值优先级,需要设置 IP0 和 IP1 的对应位,如表 2-6 所示。

7、,中断优先级及其赋值的中断源显示在表 2-7 中。每组赋值为 4 个中断优先级之一。当进行中断服务请求时 ,不允许被较低级别或同级的中断打断。,当同时收到几个相同优先级的中断请求时, 采取如同表 2-8 所列的轮流探测顺序来判定哪个中断优先响应 。,CC2530定时中断代码例程,#include #define uint unsigned int #define uchar unsigned char #define LED1 P1_0 #define LED2 P1_1 #define LED3 P0_4 uint counter=0;/统计溢出次数 uint LEDFlag;/标志是否要闪

8、烁 void InitialT1test(void); /初始化函数声明,void InitialT1test(void) /初始化LED控制端口P1 P1DIR = 0 x03; /P10 P11 为输出 P0DIR = 0 x10; /P04为输出 LED1 = 1; LED2 = 1; LED3 = 1; /初始化计数器1 T1CTL = 0 x05; T1STAT= 0 x21; /通道0,中断有效,8分频;自动重装模式(0 x0000-0 xffff) ,void main() InitialT1test(); /调用初始化函数 while(1) /查询溢出 if(IRCON 0) IRCON = 0; /清溢出标志 counter+; if(counter=15) /中断计数,约0.25s counter =0; LEDFlag = !LEDFlag; ,if(LEDFlag) LED2 = LED1; LED3 = !LED2; LED1 = !LED1; / 每 1s LED灯闪烁一下 LEDFlag = !LEDFlag; / 闪烁标志变量置0 ,人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅

温馨提示

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

评论

0/150

提交评论