1、单片机中断:
找了一张 80c51 单片机的图如下:
其中,在 p3.2、p3.3 的位置,即 12 ,13 引脚处,标有 int0 和 int1,那两个引脚就是外部中断的输入。上面一个横杠代表低电平有效,给 p3.2、p3.3 赋值 0,就可以运行已经写好的中断服务程序。具体怎么用,还要熟悉一些中断寄存器的使用。
2、中断寄存器:
(1)、ie (interrupt enable):中断允许控制寄存器
ea (ie.7):ea=0 时,所有中断禁止(即不允许中断)
ea=1 时,各中断的产生由个别的允许位决定
et2 (ie.5):定时器 2 溢出中断允许(8052 用,博主用的 stc89c54rd+ 也有)
es (ie.4):串口中断允许(es=1 允许,es=0 禁止,下同)
et1 (ie.3):定时器 1 中断允许
ex1 (ie.2):外部中断 int1 中断允许
et0 (ie.1):定时器 0 中断允许
ex0 (ie.0):外部中断 int0 中断允许
(2)、ip (interrupt priority):中断优先级控制寄存器
px0:外部中断 0 的中断优先级控制位,px0=1,外部中断 0 被定义为高优先级中断;px0=0,外部中断 0 定义为低优先级中断
pt0:定时器 t0 的中断优先级控制位,pt0=1,定时器 t0 被定义为高优先级中断;pt0=0,定时器 t0 定义为低优先级中断
px1:外部中断 1 的中断优先级控制位,px1=1,外部中断 1 被定义为高优先级中断;px1=0,外部中断 1 定义为低优先级中断
pt1:定时器 t1 的中断优先级控制位,pt1=1,定时器 t1 被定义为高优先级中断;pt1=0,定时器 t1 定义为低优先级中断
ps:串口中断优先级控制位,ps=1,串口中断被定义为高优先级中断;ps=0,串口中断定义为低优先级中断
(暂时没用过,后续使用再更新)
(3)、tcon (timer control register):定时器/计数器控制寄存器
这个寄存器在前面定时器里遇到过,再备份一下:
tf:定时器溢出标志,计数器溢出时硬件自动置位,即 tf=1,进入中断后再由硬件自动清除(tf=0)
tr:计数器的控制位
tr=1:计数器开始工作
tr=0:计数器停止计数
ie:外部中断 int 的请求标志
当单片机检测到 int 引脚上有下降沿时,ie=1 申请中断,进入中断服务程序时,硬件自动清除 ie 标志
it:外中断触发类型控制
it=1 时,外中断信号的下降沿触发 ie 标志
it=0 时,外中断信号的低电平触发 ie 标志
3、中断的编程使用:
使用中断,就是说当发生某些事件的时候,运行“中断服务程序”,使用方法如下:
void timer0_isr(void) interrupt 1 using 1
{
/* 此处编写中断服务的具体内容 */
}
语句 interrupt x using y 是指:此函数作为“x 号中断”的“中断服务程序”,并且使用“y 号寄存器组”“传递参数”。
首先要清楚:80c51 单片机有 5 个中断源:2 个外部中断、2 个定时器中断(定时器 0 和 定时器 1)、1 个串口中断(8052 有 6 个中断源,多了一个定时器 2 中断),x 即为“中断号”:
上面的程序是定时器 0 的中断服务程序,因此是 interrupt 1;要是想按一个键进行中断,那么就是外部中断,因此是 interrupt 0 或者 interrupt 2。
关键字 using,用来指定中断服务程序使用的“寄存器组”。用法是:using 后跟一个 0 到 3 的数,对应着 4 组工作寄存器。一旦指定工作寄存器组,默认的工作寄存器组就不会被压栈,这将节省 32 个处理周期,因为入栈和出栈都需要 2 个处理周期。这一做法的缺点是所有调用中断的过程都必须使用指定的同一个寄存器组,否则参数传递会发生错误。顺便一提,默认使用 0 号寄存器组,即:不写 using y 就会默认 using 0,因为主程序使用 0 号寄存器组做参数传递。
补充:中断入口地址:
cbb22电容可以用什么代替
基于CTDS转换技术在医疗超声系统中的应用
荣耀9什么时候上市?荣耀9最新消息:荣耀9配置、外观、配色抢先看,玻璃机身+金属中框+麒麟960+双摄 2299元
RTX3080移动版显卡曝光:砍为6144个CUDA
什么是汽车远程CAN/LIN网络监控系统
80C51单片机中断的编程使用方法介绍
人工智能技术可以帮助零售商来缩小优势
三星Galaxy A51:搭载Exynos 980处理器,支持双模5G网络
基于单片机C8051F120和FPGA器件实现嵌入式显示系统的设计
后京微雅格时代 国产FPGA如何走好?
SafeRobot CRR模式设置
基于人工智能算法的换道超车功能开发
一种由运放组成的恒流源电路
ios10.3耗电相比ios10.2如何?
三星SDI未来将会寻求在中国市场进行扩张的机会
电压型变频器驱动电机时的一些寄生高频现象
商汤科技全新推出SenseNeo商汤智广“一站式”广告营销平台
SC3548数模转换器(DAC)可pin对pin兼容AD7547
电子信息产业布局_中电熊猫改写液晶面板产业的版图
坚果pro和乐视Pro3哪个好?教你如何由参数分析性价比