51单片机汇编学习笔记8——中断
这一小节写一些有关中断的知识。
51的中断其实相对简单,优先级的设置也没那么灵活。主要是要搞懂那几个寄存器的作用以及怎么去配置它们。
中断
先讲一下什么是中断。所谓的中断就是 打断现在正在做的A事件去做B事件,干完B事件回到A事件继续执行。
打断 ----标记-----响应------回去
打断 :打断现在正在做的A事件。
标记:记录当前位置,以便后面能回到这了继续执行。
响应:去做B事件。
回去:做完B事件回到标记处继续执行A。
中断优先级
然后讲一下一个特殊情况,万一当我打断A去执行B事件的时候有一个更高优先级的C事件要响应怎么办呢?
这就是中断的嵌套了。
只有高优先级的中断才能打断低优先级的中断。
从上面的例子可以看出配置中断的其中一步就是配置中断优先级。
在讲优先级之前先讲一下51单片机的5个中断源。
INT0(P3.2)外部中断0
INT1(P3.3)外部中断1
T0 (计数器0溢出) 定时器中断0
T1(计数器1溢出) 定时器中断1
串口中断(发送接收)
配置中断优先级主要是配置IP中断优先级寄存器
51的优先级只有两种 ,高和低。
当在对应为置一的时候该中断则为高优先级。如在IP寄存器中的PT1=1,则将定时器1中断配置为高优先级。 在IP寄存器中的PT0=0,则将定时器0中断配置为低优先级。 那么这样就会出现一种情况,优先级一样的中断源如果同时来到怎么办 ?例如:PT1=1 同时 PX1=1 ,当定时器1中断和外部中断同时来到先执行谁?
对于相同优先级的中断要通过查询电路确定查询顺序。
也就是优先级相同的按默认的顺序来排高低。由高到低为INT0;----T0;---INT1;----T1-----;串行口
所以设置了PT1=1 PX1=1后按照查询顺序 外部中断1要高于定时器1。
中断源使能开关
即中断允许寄存器IE
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
EA | ES | ET1 | EX1 | ET0 | EX0 |
EA:总开关。(剩下的5个为分开关)
EX0:外部中断0开关
ET0:定时器0中断开关
EX1:外部中断1开关
ET1:定时器1中断开关
ES:串行口中断开关
中断源标志位
就是当某中断产生后该寄存器会在对应位置上置一,打上标志,记录状态。后面编程的时候就可以利用 这些标志位辅助实现动作。(总之一句话,这些标志位很有用,至于怎么用,到讲程序的时候再讲)。
提醒:在TCON寄存器的IT0 ,IT1并不是标志位。他是外部中断的方式选择位。=1 ----下降沿触发方式;=0 ----低电平触发方式;
------------------------------------基础部分结束---------------------------------------------------------------------------
接下来的就需要结合程序来讲。主要是编程时的框架是怎么样的。
ORG 0000H
JMP MAIN ;标准开头
/************************************************************/ORG 000BH ;定时器0中断服务程序入口地址
LJMP T0IT ;中断服务程序
ORG 0200H
/***********************************************************/
INIT_T0: ;(子函数)对定时器0的初始化 ,暂时不用看懂,下一小节讲定时器的时候再讲MOV TMOD, #01HMOV TL0,#0AFHMOV TH0,#3CHSETB EASETB ET0MOV R0,#20RET
/***************************************************************/MAIN :ACALL INIT_T0 ;初始化一下JMP $ ;主程序停在这,等待中断的发生。/**************************************************************/
T0IT: ;定时器0中断服务函数 暂时也不用看懂。MOV TL0,#0AFHMOV TH0,#3CHDEC R0MOV A,R0JZ ONE LJMP CHUONE:MOV R0,#20MOV R1,#01HDEC R4MOV A,R4JZ STOPLJMP CHUSTOP: CLR TR0CHU: RETI ;注意中断函数的返回是用RETI 不是RET
讲一下中断实现的过程。首先先对要开启的中断源进行初始化,当中断产生后主函数会被打断,去响应中断,体现为程序会跳到中断服务程序入口地址去执行中断函数。
外部中断0:入口:0003H
定时器0: 入口:000BH
外中断1: 入口:0013H
定时器1: 入口:001BH
串口中断:入口:0023H
这些地址是固定的。但你会发现单片机分配给每一种中断程序的空间很小。(000B-0003=8)
所以可以通过LJMP跳转指令,让中断函数的大小不受这个空间的限制。
执行完中断函数后,返回。记住是用RETI 伪指令进行返回,而不是RET .
这一小节只是要了解中断的写法,框架,整体流程以及那4个寄存器即可。具体初始化的写法和中断服务函数的写法下节讲。
------------------------------结束------------------------------------------------------------------------------------------
51单片机汇编学习笔记8——中断相关推荐
- 51单片机汇编学习笔记9——定时计数器
这一小节介绍一下51单片机的一个重要外设定时计数器. 顾名思义定时计数器主要是两种功能:定时.计数. 定时:就是当你开启定时器后到了设定的时间他会触发中断,然后去执行中断服务函数里面的程序. 计数:主 ...
- 51单片机汇编学习笔记4——子函数
这一小节讲一下子函数的编写格式和调用. 子函数的调用 先讲一下子函数的格式 以之前讲到的延时函数为例 :延时函数 DELAYS :MOV R1,#0FFH ;往R1寄存器中放入一个数(立即寻址)0ff ...
- 51单片机汇编学习笔记6——IO口输入
这一小节讲一下IO口的输入. 输出是 直接对P1口赋值. 输入本质上是读取引脚的状态,被拉高还是被拉低.(这里暂不涉及模拟量的输入) IO口的输入 核心指令 JB JNB JB bit rel 例如: ...
- 51单片机汇编学习(一)点亮你的LED灯
本帖为使用汇编编写51单片机的学习笔记,本帖使用软件为keil5,因为没有实际硬件,所以选择porteus仿真软件,因为是第一篇,所以内容多有赘述,详细说明了工程建立等,因为文章太长所以编程和仿真分开 ...
- 51单片机汇编学习例程(9)——ADC0809篇
ASM9_ADC0808: ADC0808采集ADC参数,数码管显示 (注意代码显示不全,最下面有Keil源码和Proteus工程) /** ************************** ...
- 江科大51单片机入门学习笔记合集
文章目录 软件下载 介绍 STC89C52RC 命名规则 芯片介绍 开发板介绍 逻辑运算 C语言语法 函数在C语言基础上做的拓展 重入函数 中断函数 外部函数 sfr sbit 51单片机最小系统组成 ...
- 51单片机入门学习笔记(上)
笔记整理自B站UP主江科大自化协教程<51单片机入门教程-2020版 程序全程纯手打 从零开始入门> 所用单片机为普中51 STC89C52单片机2022新款,文中所提到的调试现象及结果也 ...
- 51单片机汇编学习10——串口通讯
这一小节写一下串口通讯. 建议先去了解一下什么串行通讯. 推荐一个视频3分钟理解通信协议之串口UART到底是个啥?_哔哩哔哩_bilibili 因为串口通讯涉及的寄存器相对较多.所以尽量要自己去看看S ...
- 51单片机汇编学习11——扩展原理与接口技术
终于到这一小节了.这一节讲扩展原理与接口技术. 那么什么是扩展原理&接口技术呢?其实主要是3种. 1.扩展一个程序存储器 2.扩展一个数据存储器 3.扩展IO口 1.扩展程序存储器 其实这个扩 ...
- 51单片机汇编学习例程(7)——74HC595数码管篇
7.ASM7_Seg_595: 74HC595控制数码管静态显示 (注意代码显示不全,最下面有Keil源码和Proteus工程) /** **************************** ...
最新文章
- android 牛人必修 ant 编译android工程
- R语言文本挖掘NASA数据网络分析,tf-idf和主题建模
- Cannot load onnxruntime.capi. Error: DLL load failed: 找不到指定的模块
- 缓冲区 cin() getline() getchar()
- 产品生涯,十大好用但不为人知的APP
- Android:如何生成自己的keystore(zz)
- 为自己配置YUM服务器
- dnn神经网络_机器学习-浅谈神经网络和Keras的应用
- redhat enterprise linux 5 上安装openoffice3.0 1
- 中海达数据怎么转rinex_hds2003下载-中海达HDS2003数据处理软件下载20120530 官方版-中海达GPS数据转RINEX格式西西软件下载...
- Java虚拟机专题之类加载机制
- SharpGL学习笔记(十二) 光源例子:解决光源场景中的常见问题
- 企业管理培训PPT模板
- 【裴礼文数学分析】例1.1.4
- 手把手带你爬天猫,获取杜蕾斯评论数据
- CV7 颜色追踪和图像阈值
- “智数据,创未来”——2018中国存储与数据峰会在京盛大举行
- React的Render的简单实现
- HDU2066:一个人的旅行(spfa)
- English Learning - Day23 作业打卡 2022.12.29 周四