文章目录

  • 一、中断是什么
    • (1)中断
    • (2)中断优先级
  • 二、中断的使用
    • 1.外部中断
    • (2)定时器中断
      • 一、定时器中断使用
      • 二、TMOD与TCON
    • 2.中断服务程序写法
  • 总结

一、中断是什么

中断的控制是我们学习单片机所必须掌握的,可以说“如果中断都不会,那根本谈不上掌握了单片机。”
那么中断是什么呢?

(1)中断

中断是单片机CPU在处理某一事件时,发生了另一事件B。CPU立马停止处理事件A,转去处理事件B。等到处理完事件B后在回去继续执行事件A的过程。

(2)中断优先级

既然有事件的执行有先后顺序,那么就涉及到一个非常重要的关键词——中断优先级。
以89C52单片机为例:52单片机有6个中断源
INT0——外部中断0
INT1——外部中断1
T0——定时器、计数器0中断
T1——定时器、计数器1中断
T2——定时器、计数器2中断
TI/RI——串行口中断

二、中断的使用

1.外部中断

同时我们也可以对中断的优先级进行更改

(2)定时器中断

定时器的实质是加一计数器(16位),由高八位和低八位两个寄存机构成。
TMOD——工作方式寄存器,确定中断控制方式和功能。
TCON——控制寄存器,控制中断源T0、T1的启动和停止。

一、定时器中断使用

单片机定时器中断实质上是加一计数器,每来一个脉冲加一,当加到计数器全唯一,再输入一个脉冲,计数器回零,并且向CPU发送中断请求。
这里补充一个概念知识点:1个机器周期等于12个振荡周期,即计数频率是晶振频率的1/12 。
计数值N×机器周期=定时时间

二、TMOD与TCON





这里控制TCON和TMOD既可以采用直接输入如GATE=1,也可以通过位操作直接控制。
例如我想要使GATE=0,C/T=0、M1=0、M0=1. 就可以写成TMOD=0x01

2.中断服务程序写法

代码如下(示例):

void T1_time()interrupt3//3为中断序号,这里使用定时器1 中断序号为3
{TH1=(65536-10000)/256;
TL1=(65536-10000)%256;
}

T H1、TL1代表着定时器1的高八位和低八位数据。


总结

中断程序的设计:
1、 打开总中断
2、设置触发方式(IT0=0低电平触发、IT0=1下降沿触发)
3、选择中断
4、中断时间计算
5、编写中断服务程序
6、设置TMOD

单片机之魂——定时器、中断相关推荐

  1. 51单片机基础之定时器中断(二)

    TMOD寄存器: 这里讲一下TMOD寄存器,这个寄存器可以选择开启定时器0还是1,还有可以决定定时器以什么方式工作.如图: 代码: #include <reg51.h>sbit LED=P ...

  2. 51单片机自学笔记定时器中断

    目录 相关寄存器 中断允许寄存器IE 中断优先级寄存器IP 定时器/计数器控制寄存器TCON 定时器/计数器工作模式寄存器TMOD 程序 代码 计算定时器初值 中断函数写法 相关寄存器 中断允许寄存器 ...

  3. 51单片机|keilc51|实例|定时器中断|简易的交通灯设计

    文章目录 1.实验要求 2.实验原理 3.Keil c51编程 4.Proteus仿真 5.问题及总结 1.编程过程中创建了字符串 code[] ,编译出错 2.LED始终不亮 3.keil中全局替换 ...

  4. 定时器中断实现数码管动态显示

    金沙滩51单片机教程,定时器中断实现数码管动态显示. #include <reg52.h>sbit ADDR0 = P1^0; sbit ADDR1 = P1^1; sbit ADDR2 ...

  5. 单片机定时报警C语言程序,51单片机 定时器 中断程序 (C语言)

    EA     是 中断总开关, 不管是定时器,串口还是外部中断,都需要打开 EA 才能触发中断; ET0   是 定时器0 的专用中断开关, 也就是说: 打开了EA.而不打开ET0,定时器0是无法触发 ...

  6. 单片机原理及其应用——单片机定时器中断实验(八段数码管依次显示0~9数字)

    目录 一.实验要求 二.知识要点 (一)单片机定时器/计数器 (二)相关的特殊功能寄存器 1.工作方式寄存器TMOD 2.定时器/计数器控制寄存器TCON (三)定时器/计数器的工作方式 1.工作方式 ...

  7. 单片机中断程序实例_单片机定时器中断实现长时间定时程序

    单片机定时器中断实现长时间定时程序 #include // 包含51单片机寄存器定义的头文件 sbit D1=P2^0; //将D1位定义为P2.0引脚 unsigned char Countor; ...

  8. 串口中断和定时器中断_启士 | 蓝桥杯单片机教程12 中断与定时器 (上)

    这是 北航士谔书院 的第 949 篇推送 本文介绍中断(interrupt)的基本概念,并演示定时器中断.外部中断的使用方法.如果同学们对文章内容有疑问,或发现文中有任何不妥之处,请点击"阅 ...

  9. 51单片机学习笔记(郭天祥版)(3)——引脚讲解、数码管静态显示、中断系统(外部中断,定时器中断)...

    学习引脚的功能 9引脚 复位管脚,当给2个机器周期(24个时钟振荡周期)的高电平时会复位,单片机正常工作时会给0.5v的低电平 VPD备用电源的输入端,当主电源VCC发生故障降低到某一规定的低电平时, ...

最新文章

  1. clevo风扇调速软件_YVP变频调速电机
  2. 如何用php采集照片,使用PHP采集远程图片
  3. GNU C中的零长度数组
  4. 通过制定编码规范的过程来说明《学会放弃、妥协也是个大进步,也是相当的提高工作效率》...
  5. JEPaas代码_((列表)输入字段值而改变值
  6. java utf8转iso8859-1_在Java中将UTF-8转换为ISO-8859-1
  7. 在Jupyter Notebook中实现图像检测服务的调用
  8. iOS多线程编程技术之NSThread、Cocoa NSOperation、GCD
  9. 【黑客】利用VBS脚本让QQ永远在线,等级速升
  10. CAD二次开发 C# .net dwg批量转dxf
  11. 解决旅游行业营销人员痛点的作品策划
  12. NVIDIA卡和ATI卡的对比,以及如何判断 N卡 和 A卡 每个型号的含义:
  13. 配置聚合连接 和 配置firewalld防火墙
  14. 星巴克季节限定星怡杯樱花味拿铁升级回归
  15. Maxwell 转矩出现正负值情况解决措施
  16. $().each()与$.each()的区别
  17. savour 钱包开发者招募
  18. 云服务器同账号不同地域数据迁移的方法
  19. iowait 过高问题的查找及解决linux
  20. python3学习笔记01

热门文章

  1. (android 源码下开发应用程序) 如何在 Android 各 level ( 包含 user space 與 kernel space ) 使用dump call stack的方法...
  2. Android Studio 使用笔记:快捷键
  3. Android开发视频教学第一季(17-34集)视频源码下载
  4. 我的春Phone之行
  5. 关于Android RenderScript 的详细说明和一些实用文档
  6. 七个顶级的心理寓言(转载)
  7. 洛谷2661 信息传递 三倍经验?
  8. intellij jsp 中文乱码
  9. php随笔11-Thinkphp常用系统配置大全
  10. air写文件 SecurityError: fileWriteResource 时报错的解决方法