单片机之魂——定时器、中断
文章目录
- 一、中断是什么
- (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
单片机之魂——定时器、中断相关推荐
- 51单片机基础之定时器中断(二)
TMOD寄存器: 这里讲一下TMOD寄存器,这个寄存器可以选择开启定时器0还是1,还有可以决定定时器以什么方式工作.如图: 代码: #include <reg51.h>sbit LED=P ...
- 51单片机自学笔记定时器中断
目录 相关寄存器 中断允许寄存器IE 中断优先级寄存器IP 定时器/计数器控制寄存器TCON 定时器/计数器工作模式寄存器TMOD 程序 代码 计算定时器初值 中断函数写法 相关寄存器 中断允许寄存器 ...
- 51单片机|keilc51|实例|定时器中断|简易的交通灯设计
文章目录 1.实验要求 2.实验原理 3.Keil c51编程 4.Proteus仿真 5.问题及总结 1.编程过程中创建了字符串 code[] ,编译出错 2.LED始终不亮 3.keil中全局替换 ...
- 定时器中断实现数码管动态显示
金沙滩51单片机教程,定时器中断实现数码管动态显示. #include <reg52.h>sbit ADDR0 = P1^0; sbit ADDR1 = P1^1; sbit ADDR2 ...
- 单片机定时报警C语言程序,51单片机 定时器 中断程序 (C语言)
EA 是 中断总开关, 不管是定时器,串口还是外部中断,都需要打开 EA 才能触发中断; ET0 是 定时器0 的专用中断开关, 也就是说: 打开了EA.而不打开ET0,定时器0是无法触发 ...
- 单片机原理及其应用——单片机定时器中断实验(八段数码管依次显示0~9数字)
目录 一.实验要求 二.知识要点 (一)单片机定时器/计数器 (二)相关的特殊功能寄存器 1.工作方式寄存器TMOD 2.定时器/计数器控制寄存器TCON (三)定时器/计数器的工作方式 1.工作方式 ...
- 单片机中断程序实例_单片机定时器中断实现长时间定时程序
单片机定时器中断实现长时间定时程序 #include // 包含51单片机寄存器定义的头文件 sbit D1=P2^0; //将D1位定义为P2.0引脚 unsigned char Countor; ...
- 串口中断和定时器中断_启士 | 蓝桥杯单片机教程12 中断与定时器 (上)
这是 北航士谔书院 的第 949 篇推送 本文介绍中断(interrupt)的基本概念,并演示定时器中断.外部中断的使用方法.如果同学们对文章内容有疑问,或发现文中有任何不妥之处,请点击"阅 ...
- 51单片机学习笔记(郭天祥版)(3)——引脚讲解、数码管静态显示、中断系统(外部中断,定时器中断)...
学习引脚的功能 9引脚 复位管脚,当给2个机器周期(24个时钟振荡周期)的高电平时会复位,单片机正常工作时会给0.5v的低电平 VPD备用电源的输入端,当主电源VCC发生故障降低到某一规定的低电平时, ...
最新文章
- clevo风扇调速软件_YVP变频调速电机
- 如何用php采集照片,使用PHP采集远程图片
- GNU C中的零长度数组
- 通过制定编码规范的过程来说明《学会放弃、妥协也是个大进步,也是相当的提高工作效率》...
- JEPaas代码_((列表)输入字段值而改变值
- java utf8转iso8859-1_在Java中将UTF-8转换为ISO-8859-1
- 在Jupyter Notebook中实现图像检测服务的调用
- iOS多线程编程技术之NSThread、Cocoa NSOperation、GCD
- 【黑客】利用VBS脚本让QQ永远在线,等级速升
- CAD二次开发 C# .net dwg批量转dxf
- 解决旅游行业营销人员痛点的作品策划
- NVIDIA卡和ATI卡的对比,以及如何判断 N卡 和 A卡 每个型号的含义:
- 配置聚合连接 和 配置firewalld防火墙
- 星巴克季节限定星怡杯樱花味拿铁升级回归
- Maxwell 转矩出现正负值情况解决措施
- $().each()与$.each()的区别
- savour 钱包开发者招募
- 云服务器同账号不同地域数据迁移的方法
- iowait 过高问题的查找及解决linux
- python3学习笔记01
热门文章
- (android 源码下开发应用程序) 如何在 Android 各 level ( 包含 user space 與 kernel space ) 使用dump call stack的方法...
- Android Studio 使用笔记:快捷键
- Android开发视频教学第一季(17-34集)视频源码下载
- 我的春Phone之行
- 关于Android RenderScript 的详细说明和一些实用文档
- 七个顶级的心理寓言(转载)
- 洛谷2661 信息传递 三倍经验?
- intellij jsp 中文乱码
- php随笔11-Thinkphp常用系统配置大全
- air写文件 SecurityError: fileWriteResource 时报错的解决方法