zoukankan      html  css  js  c++  java
  • 51内核单片机中断函数编号的理解与设定(eg: void int1(void)interrupt 2)

      N年不用51单片机之后,突然公司给了一个51内核的单片机让我改程序,顿时束手无策,本来是要写一个串口收发函数的,看了一眼51的的中断,竟然觉得无从下手,不知道串口对应的中断编号是多少x(void xx(void)interrupt x),感觉大学的51都白学了,看了一些资料以后终于重新理解,并写下这边文章供日后回忆。

      keil4的uVision Help里面其实有详细的解说这个void xx(void)interrupt x为什么要这么写的。

      里面写的意思其实就是根据芯片手册提供的中断向量表来计算我们void xx(void)interrupt x中x的数字是多少,比如51单片机的数据手册图下图,外部中断INT0的中断向量地址为0003H,所以他的中断编号就是0,Timer0的地址为0003H+8=000BH,他的编号就是2,以此类推

        

      然后在看一下我现在用的单片机的中断向量表,就和上面的8051单片机不一样了,多了好几个中断,但是他的中断号的定义规则还是一样的,比如我现在的串口2中断向量地址是0x0063,那我的中断号码就是12((0x0063-0x0003)/0x0008)

      附上一张keil Help里对interrupt x的解释

          

  • 相关阅读:
    软考之操作系统
    牛腩javascript(二)之正则表达式
    牛腩javascript(一)
    软考之算法
    软考之数据结构
    软考之路之刷屏开始
    XML中的几种比较
    北大青鸟ASP.NET之总结篇
    Webassembly 学习2 -- Js 与C 数据交互
    nginx-proxy_redirect
  • 原文地址:https://www.cnblogs.com/isyefeng/p/13158747.html
Copyright © 2011-2022 走看看