您的位置 首页 新能源

单片机常用功能模块的运用 Part6. 中止

1、单片机中断:用度娘找了一张80C51单片机的图如下:其中,在P3.2、P3.3的位置,即12,13引脚处,标有INT0和INT1,那…

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、中止的编程运用:

运用中止,便是说当产生某些事情的时分,运转“中止服务程序”,运用方法如下:

voidTimer0_ISR(void)interrupt1using1
{
/* 此处编写中止服务的详细内容 */
}

句子interruptxusingy是指:此函数作为“x 号中止”的“中止服务程序”,而且运用“y 号寄存器组”“传递参数”。

首先要清楚:80C51 单片机有 5 个中止源:2 个外部中止、2 个定时器中止(定时器 0 和 定时器 1)、1 个串口中止(8052 有 6 个中止源,多了一个定时器 2 中止),x 即为“中止号”:

上面的程序是定时器 0 的中止服务程序,因此是interrupt1;要是想按一个键进行中止,那么便是外部中止,因此是interrupt0或许interrupt2。

关键字using,用来指定中止服务程序运用的“寄存器组”。用法是:using 后跟一个 0 到 3 的数,对应着 4 组作业寄存器。一旦指定作业寄存器组,默许的作业寄存器组就不会被压栈,这将节约 32 个处理周期,由于入栈和出栈都需求 2 个处理周期。这一做法的缺陷是一切调用中止的进程都必须运用指定的同一个寄存器组,不然参数传递会产生过错。趁便一提,默许运用 0 号寄存器组,即:不写 using y 就会默许 using 0,由于主程序运用 0 号寄存器组做参数传递。

弥补:中止进口地址:

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/xinnengyuan/268112.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部