51单片机第二讲(定时器中断)
2018-01-28 19:03
337 查看
1.中断的概念
CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断产生);
CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);
待CPU将事件B处理完毕后,再回到原来事件A中断的地方继续处理事件A(中断返回),这一过程称为中断。
2.中断的优先级
51单片机里一共有5个中断源,分别是外部中断0,定时器0,外部中断1,定时器1,串口中断,中断优先级从大到小分别是0,1,2,3,4。
3.中断的优点
分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;
实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;
可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。
4.外部中断
外部中断0是定义在P3.2口,外部中断1是定义在P3.3口
TCON的中断标志(控制寄存器):
IT0(TCON.0),外部中断0触发方式控制位。
当IT0=0时,为电平触发方式。
当IT0=1时,为边沿触发方式(下降沿有效)。
IE0(TCON.1),外部中断0中断请求标志位。
IT1(TCON.2),外部中断1触发方式控制位。
IE1(TCON.3),外部中断1中断请求标志位。
TR0(TCON.4):T0运行控制位,其功能与TR1类同。
TF0(TCON.5),定时/计数器T0溢出中断请求标志位。
TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止
TF1(TCON.7),定时/计数器T1溢出中断请求标志位。
外部中断初始化:
5.定时器中断
工作方式寄存器TMOD:
GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。即此时定时器的启动多了一条件。(默认情况下等于0不要设置)。
C/T:定时/计数模式选择位。=0为定时模式;=1为计数模式。
M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。(正常情况旋方式1,即M1M0=01)。
中断寄存器:
EA是总中断
ET0是定时器0中断
EX0是外部中断0
ET1是定时器1中断
EX1是外部中断1
CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断产生);
CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);
待CPU将事件B处理完毕后,再回到原来事件A中断的地方继续处理事件A(中断返回),这一过程称为中断。
2.中断的优先级
51单片机里一共有5个中断源,分别是外部中断0,定时器0,外部中断1,定时器1,串口中断,中断优先级从大到小分别是0,1,2,3,4。
3.中断的优点
分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;
实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;
可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。
4.外部中断
外部中断0是定义在P3.2口,外部中断1是定义在P3.3口
TCON的中断标志(控制寄存器):
IT0(TCON.0),外部中断0触发方式控制位。
当IT0=0时,为电平触发方式。
当IT0=1时,为边沿触发方式(下降沿有效)。
IE0(TCON.1),外部中断0中断请求标志位。
IT1(TCON.2),外部中断1触发方式控制位。
IE1(TCON.3),外部中断1中断请求标志位。
TR0(TCON.4):T0运行控制位,其功能与TR1类同。
TF0(TCON.5),定时/计数器T0溢出中断请求标志位。
TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止
TF1(TCON.7),定时/计数器T1溢出中断请求标志位。
外部中断初始化:
void bsp_Int0_Init(void)//外部中断0 { IT0 = 1; //设置边沿触发方式 等于0是电平触发方式 EX0 = 1; //开外部中断,在中断寄存器里 EA = 1; //开总中断 } void bsp_Int1_Init(void)//外部中断1 { IT1 = 1; EX1 = 1; EA = 1; } void ISR_INT0(void) interrupt 0//中断处理函数 { P1 = 0x55; } void ISR_INT1(void) interrupt 2 { P1 = 0xaa; }
5.定时器中断
工作方式寄存器TMOD:
GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。即此时定时器的启动多了一条件。(默认情况下等于0不要设置)。
C/T:定时/计数模式选择位。=0为定时模式;=1为计数模式。
M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。(正常情况旋方式1,即M1M0=01)。
中断寄存器:
EA是总中断
ET0是定时器0中断
EX0是外部中断0
ET1是定时器1中断
EX1是外部中断1
void Timer0_Init(void) { TMOD |= 0x01;//设置定时器为工作方式1 C/T位为1的时候是计数器模式,为0的时候是定时器模式,前四位是定时器1,后四位是定时器0 TL0 = (65536 - 1000)%256; //装初值,低8位 TH0 = (65536 - 1000)/256; //高8位 ET0 = 1; //开定时器的中断 TR0 = 1; //开定时器 EA = 1; //开总中断 } void Timer0(void) interrupt 1 { TL0 = (65536 - 1000)%256; //装初值,低8位//初值是1000即1ms TH0 = (65536 - 1000)/256; //高8位 count++; if(count == 1000) { count = 0; LED = ~LED;//LED一秒钟闪烁一次 } }
相关文章推荐
- 51单片机的定时器与中断
- 51单片机汇编语言:定时器与中断
- 单片机的定时器中断以及使用的一般步骤(51为例)
- 51单片机:利用定时器中断写一个简易加法计算器,按键消抖算法很好。
- 嵌入式学习笔记(10)——51单片机之中断(定时器中断)
- 好玩的51单片机——中断与定时器的运用
- 51 单片机的定时器中断(寄存器) [李园7舍_404]
- 51学习之定时器中断的两种方式——查询和中断
- 51单片机之中断的实现过程
- 51单片机之——中断的概念
- 51单片机的中断与定时计数器尝试
- 打打基础,回头看看avr单片机的定时器、中断和PWM(转)
- 单片机编程-定时器中断
- 【单片机笔记】51内核的中断及中断向量
- 51单片机的中断系统(二)
- 一个写的比较牛逼的51定时器中断
- STM32单片机学习(5) 定时器中断实验
- 51单片机的定时器0和串口同时使用问题
- 奶爸业余单片机学习之:定时器中断的使用方法——进入中断TF0(TF1)值硬件自动重置
- 51单片机之中断系统