精华内容
下载资源
问答
  • 本文主要讲了PIC单片机中断程序实例,希望对你的学习有所帮助。
  • PIC单片机中断总结

    2020-07-14 19:31:19
    PIC单片机有多个中断源,16系列只有一个中断入口,18系列有两个中断入口,不同编译器下书写格式又不大一样。网上资源千篇一律,也不够系统,只是简单的罗列程序,代码生存的环境不一样也少有说明。在此做个简单的...
  • 文章介绍了PIC单片机中断程序的设计技巧。
  • 所有的中档系列PIC单片机,PORTB端口最高的4个引脚(RB7~RB4)在设为输入模式时,当输入电平由高到低或由低到高发生变化时,可以让单片机产生中断。这就是通常所说的引脚状态变化中断
  • PIC16F87X系列单片机可以接收多达14个中断源。中断控制器寄存器INTCON标记着各个中断源的请求,对各个中断设置屏蔽位,对全部中断设置全局屏蔽位。  PIC16F87X系列的中断包含:TMR0溢出中断(TOIF)、外部中断...
  • 本文列举几点PIC16F87X单片机中断系统应用须关注的问题。
  • 本韩淑伟PIC单片机中断处理的子函数,高级终端地址为0x08H
  • 本文针对PIC16F87X系列单片机中断的特点,及其在应用过程中应该注意的几个问题进行必要的说明。内容包括中断源、中断逻辑、中断相关的寄存器、中断的延时、中断的现场保护以及注意事项等。  目前在世界一些着名的...
  • PIC单片机中断子程序

    2010-05-24 10:42:54
    基于pic单片机中断子程序,主控芯片是pic16f873,已经调调试成功了,一定好用。
  • PIC单片机中断问答

    2020-08-28 19:56:15
    与51或者其他系列的单片机相比,PIC单片机中断机制有其特殊之处,针对我们一些初学者存在的一些问题和疑惑,我在此做一个个人总结,不当的地方,请站友们指正。 先摘引三个对PIC中断理解的回帖,然后我再对中断...
  • PIC单片机中断服务程序

    千次阅读 2017-08-03 20:48:55
    中断服务程序有一个特殊的定义方法: void interrupt ISR(void);其中的函数名“ISR”可以改成任意合法的字母或数字组合,但其入口参数和返回参数类型必须是“void”型,亦即没有入口参数和返回参数,且中间必须有一...
    中断服务程序有一个特殊的定义方法: void interrupt ISR(void);其中的函数名“ISR”可以改成任意合法的字母或数字组合,但其入口参数和返回参数类型必须是“void”型,亦即没有入口参数和返回参数,且中间必须有一个关键词“interrupt”。
           中断函数可以被放置在原程序的任意位置。因为已有关键词“interrupt”声明,PICC 在最后进行代码连接时会自动将其定位到0x0004 中断入口处,实现中断服务响应。编译器也会实现中断函数的返回指令“retfie”。
     
            一个简单的中断服务示范函数如下:

    void interrupt ISR(void) //中断服务程序

    if (T0IE && T0IF)//判TMR0 中断

    {  

    T0IF = 0; //清除TMR0 中断标志 //在此加入TMR0 中断服务
      }

    if (TMR1IE && TMR1IF)//判TMR1 中断  T

    MR1IF = 0; //清除TMR1 中断标志
                     //在此加入TMR1 中断服务
            }
    } //中断结束并返回
     
    PICC 会自动加入代码实现中断现场的保护,并在中断结束时自动恢复现场,所以编程员无需像编写汇编程序那样加入中断现场保护和恢复的额外指令语句。
    但如果在中断服务程序中需要修改某些全局变量时,是否需要保护这些变量的初值将由编程员自己决定和实施。
    用C 语言编写中断服务程序必须遵循高效的原则:
    1. 代码尽量简短,中断服务强调的是一个“快”字。
    2.避免在中断内使用函数调用。虽然PICC 允许在中断里调用其它函数,但为了解决递归调用的问题,此函数必须为中断服务独家专用。既如此,不妨把原本要写在其它函数内的代码直接写在中断服务程序中。
    3.避免在中断内进行数学运算。数学运算将很有可能用到库函数和许多中间变量,就算不出现递归调用的问题,光在中断入口和出口处为了保护和恢复这些中间临时变量就需要大量的开销,严重影响中断服务的效率。
     
    中档系列PIC 单片机的中断入口只有一个,因此整个程序中只能有一个中断服务函数。
    展开全文
  • PIC单片机中断入口MicroChip没有在其编程手册中明确中断入口函数编辑器中提供各MCU的模块中断入口如何插入一段漂亮的代码片 MicroChip没有在其编程手册中明确中断入口函数 在Microchip官网上提供的数据手册并没有...

    MicroChip没有在其编程手册中明确中断入口函数

    在Microchip官网上提供的数据手册并没有提供各个模块的中断函数入口,但是提供了统一的中断入口函数ISR,但不能满足对中断等级的需求。

    编辑器中提供各MCU的模块中断入口

    其路径如下:找到编译器的安装位置,并打开对应MCU的编译器文件目录
    找到docs文档支持
    找到向量文档
    找到对应芯片的html文档
    打开对应MCU的html文档

    如何插入一段漂亮的代码片

    博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

    // An highlighted block
    void __attribute__((__interrupt__,no_auto_psv)) _T1Interrupt(void)
    //Changing _T1Interrupt with new interrupt vector which you need.
    
    展开全文
  • PIC单片机中断总结

    2020-08-04 04:06:01
    与51或者其他系列的单片机相比,PIC 单片机中断机制有其特殊之处,针对我们一些初学者存在的一些问题和疑惑,我在此做一个个人总结,不当的地方,请站友们指正。
  • PIC单片机入门_中断系统详解

    万次阅读 多人点赞 2016-11-10 17:05:31
    1.中断的基本概念 当单片机正在执行程序时,出现了...“中断”加强了单片机处理突发事件的能力,如果没有中断功能,对可能发生的特殊状况的处理就必须采用定时查询,这样就会浪费大量的CPU时间。 因此,中断

    1.中断的基本概念

    当单片机正在执行程序时,出现了某些特殊状况,例如定时时间到、有键盘信号输入等,此时CPU须要暂时停止当前的程序,而转去执行处理这些事件的程序,待执行完这些特定的程序之后,再返回到原先的程序去执行,这就形成了一次“中断”。“中断”加强了单片机处理突发事件的能力,如果没有中断功能,对可能发生的特殊状况的处理就必须采用定时查询,这样就会浪费大量的CPU时间。
    因此,中断是单片机中很重要的一个概念,是提高工作效率的重要功能,中断系统功能的好坏是衡量单片机功能的重要指标。单片机的“中断源”与单片机包含的外围设备有很大的关系,所谓“中断源”就是引起中断的原因或根源,就是中断请求的来源。16F873/876内部集成了12个外围设备。
    外围设备在工作过程中,都需要CPU参与控制、协调或交换数据等服务,而CPU正是通过中断技术使得这些外围设备协调工作的。PIC单片机作一次中断处理的过程如下,当某一中断源发出中断请求时:
    ①假如CPU正在执行更重要的任务,则可采用屏蔽的方法暂时不响应该中断请求
    ②如果可以响应该中断请求,则CPU执行完当前指令后,必须把断点处的程序计数器PC的值(即下一条指令的地址)压入堆栈保存起来(断点保护),也可以把一些的重要寄存器内容也保护起来(现场保护)。然后再转移到相应的中断服务子程序中执行。
    ③在中断服务子程序中,首先必须确定发出中断请求的中断源,然后再跳转到与该中断源相对应的程序分支中去执行中断服务程序。
    ④当中断服务程序执行毕后,必须先恢复被保护的寄存器的值(现场恢复),再将程序计数器PC的值从堆栈中恢复(断点恢复) ,使CPU返回断点处继续执行被中断的程序。

    2.PIC16F876的中断源

    PIC16F876单片机具备的中断源如下表所示:

    从上表可看出,各中断源基本上都与各个外围设备模块相对应的:多数的外围设备对应着一个中断源(如定时/计数器TMR0),也有的外围设备对应二个中断源(如SCI同步/异步接收/发送器USART);有的外围设备没有中断源与之对应(如输入/输出端口 RA和RC);也有的中断源没有外围设备与之对应(例如外部中断源INT)。
    每一种中断源对应了一个中断标志位,记为XXXF,以及一个中断屏蔽位或叫中断使能位,记为XXXE。中断源产生的中断信号能否到达CPU,都受控于相应的中断屏蔽位 每个中断源申请中断时,其中断标志位会自动置位,中断标志位的清0是由用户程序完成的;而每个中断屏蔽位的置位和清位均由用户程序完成。
    PIC16F876单片机的中断系统的逻辑电路如图

    图中全部的的14个中断源按两个梯队并列排开,第一梯队中只安排了3个中断源,其余的中断源全部安排到第二梯队中。所有的中断源都受“全局中断屏蔽位”(也称总屏蔽位)GIE的控制第一梯队的中断源不仅受GIE的控制,还要受各自中断屏蔽位的控制第二梯队的中断源不仅受到GIE和各自中断屏蔽位的控制,还要受到一个外设中断屏蔽位PEIE的控制

    3.与中断相关的寄存器

    与中断有关的特殊功能寄存器SFR共有6个,分别是:
    选项寄存器OPTION_REG中断控制寄存器INTCON第一外围设备中断标志寄存器PIR1第一外围设备中断屏蔽寄存器PIE1(也称中断使能寄存器)第二外围设备中断标志寄存器PIR2第二外围设备中断屏蔽寄存器PIE2
    后5个SFR,共有40位,但仅使用了30位来控制中断,分别与图中的中断逻辑电路输入信号成严格的对应关系。

    3.1 选项寄存器OPTION _REG


    该寄存器包含了与定时/计数器TMR0、分频器和端口RB有关的控制位。RB端口引脚RB0和外部中断INT复用一脚,与该脚有关的一个控制位含义如下:
    INTEDG:外部中断INT触发信号边沿选择位:1=选择RB0/INT上升沿触发;0=选择RB0/INT下降沿触发。

    3.2 中断控制寄存器INTCON


    它将第一梯队中的3个中断源的标志位和屏蔽位,以及PEIE和GIE包含在其中:
    RBIF:端口RB的引脚RB4~RB7电平变化中断标志位。 1=RB4~RB7已经发生了电平变化; 0=RB4~RB7尚未发生电平变化。
    RBIE:端口RB的引脚RB4~RB7电平变化中断屏蔽位。1=允许RB产生的中断;0=屏蔽端口RB产生的中断。
    INTF:外部INT引脚中断标志位。1=外部INT引脚有中断触发信号; 0=外部INT引脚无中断触发信号。
    INTE:外部INT引脚中断屏蔽位。 l=允许外部INT引脚产生的中断;0=屏蔽外部INT引脚产生的中断。
    T0IF:TMR0溢出中断标志位。1=TMR0已经发生了溢出;0=TMR0尚未发生溢出。
    T0IE:TMR0溢出中断屏蔽位。1=允许TMR0溢出后产生的中断; 0=屏蔽TMR0溢出后产生的中断。
    PEIE:外设中断屏蔽位。1=允许CPU响应来自第二梯队中断请求0=禁止CPU响应来自第二梯队中断请求。 
    GIE:全局中断屏蔽位(总屏蔽位)。1=允许CPU响应所有中断源产生的中断请求;0=禁止CPU响应所有中断源产生的中断请求。 

    3.3 第一外围设备中断标志寄存器PIR1


    该寄存器中各中断标志位的含义如下:
    TMR1IF:定时/计数器TMR1模块溢出中断标志位。1=发生了TMR1溢出; 0=未发生TMR1溢出。
    TMR2IF:定时/计数器TMR2模块溢出中断标志位。1=发生了TMR2溢出; 0=未发生TMR2溢出。
    CCP1IF:输入捕捉/输出比较/脉宽调制CCP1模块中断标志位。 输入捕捉模式下:1=发生了捕捉中断请求;0=未发生捕捉中断请求。
    输出比较模式下 1=发生了比较输出中断请求; 0=未发生比较输出中断请求。 脉宽调制模式下: 无用。
    SSPIF同步串行端口(SSP)中断标志位。1=发送/接收完毕产生的中断请求;0=等待发送/接收。
    TXIF串行通信接口(SCI)发送中断标志位。1=发送完成,即发送缓冲区空 0=正在发送,即发送缓冲区未空。
    RCIF串行通信接口(SCI)接收中断标志位。1=接收完成,即接收缓冲区满0=正在接收,即接收缓冲区空。
    ADIF模拟/数字(A/D)转换中断标志位。1=发生了A/D转换中断;0=未发生A/D转换中断。
    PSPIF:并行端口中断标志位,只有40脚封装型号具备,对于28脚封装型号总保持0。1=并行端口发生了读/写中断请求;0=并行端口未发生读/写中断请求。

    3.4 第一外围设备中断屏蔽寄存器PIE1



    该寄存器中包含的中断屏蔽位(使能位)的含义如下:
    TMR1IE:定时器/计数器TMRl模块溢出中断屏蔽位。l=开放TMRl溢出发生中断;0=屏蔽TMRl溢出发生中断。
    TMR2IE:定时/计数器TMR2溢出中断屏蔽位。1=开放TMR2溢出发生的中断;0=屏蔽TMR2溢出发生的中断。
    CCP1IE:输入捕捉/输出比较/脉宽调制CCP1模块中断屏蔽位。1=开放CCP1模块产生的中断请求;0=屏蔽CCP1模块产生的中断请求。 
    SSPIE同步串行端口(SSP)中断屏蔽位。1=开放SSP模块产生的中断请求0=屏蔽SSP模块产生的中断请求。
    TXIE串行通信接口(SCI)发送中断屏蔽位。1=开放SCI发送中断请求;0=屏蔽SCI发送中断请求。
    RCIE串行通信接口(SCI)接收中断屏蔽位。1=开放SCI接收中断请求;0=屏蔽SCI接收中断请求。
    ADIE模拟/数字(A/D)转换中断屏蔽位。1=开放A/D转换器的中断请求;0=屏蔽A/D转换器的中断请求。 
    PSPIE:并行端口中断屏蔽位,只有40脚封装型号具备,对于28脚封装型号总保持0。
    1=开放并行端口读/写发生的中断请求; 0=屏蔽并行端口读/写发生的中断请求。

    3.5 第二外围设备中断标志寄存器PIR2



    CCP2IF:输入捕捉/输出比较/脉宽调制CCP2模块中断标志位。 输入捕捉模式下: 1=发生了捕捉中断请求(必须用软件清0); 0=未发生捕捉中断请求。 输出比较模式下: 1=发生了比较输出中断请求(必须用软件清0); 0=未发生比较输出中断请求。 脉宽调制模式下:无用
    BCLIF:I2C总线冲突中断标志。当同步串行端口MSSP被配置成I2C总线的主控器模式时:1=发生了总线冲突;0=未发生总线冲突。
    EEIF:EEPROM写操作中断标志位。1=写操作已经完成(必须用软件清0);0=写操作未完成或尚未开始进行。 

    3.6 第二外围设备中断屏蔽寄存器PIE2


    CCP2IE:输入捕捉/输出比较/脉宽调制CCP2模块中断屏蔽位。1=开放CCP2模块产生的中断请求;
    0=屏蔽CCP2模块产生的中断请求。
    EEIE:EEPROM写操作中断屏蔽位。1=开放EEPROM写操作产生的中断请求;0=屏蔽EEPROM写操作产生的中断请求。

    4.中断的处理

    单片机复位后,硬件会自动设置GIE=0,屏蔽所有的中断源,假如要求单片机能响应所有中断,必须设置GIE=1。其实无论GIE或着其他中断屏蔽位是否为1,当某中断源的中断条件满足时,都会发出中断请求,即相应的中断标志位都会置1。但是否能够得到CPU的响应,则由该中断源的中断屏蔽位决定。
    CPU响应中断后,自动设置GIE=0,屏蔽所有中断,以免发生重复中断响应,然后自动把PC寄存器当前值压入堆栈,并把PC值赋予地址0004H,从而转向执行中断服务子程序。 
    进入中断服务程序后,程序必须要确定发出请求的中断源,这可以通过检查各中断源的标志位来实现。确定了中断源后,就用软件把该中断源的标志位清0,否则,执行中断返回指令重开中断后,假如中断标志位仍然为1,则会引起CPU重复响应同一个中断请求。
    执行中断返回指令RETFIE后,不仅会将保留在堆栈中的断点地址弹回到PC寄存器中,使程序能返回到被中断的程序处;而且还会自动设置GIE=1,重新开放所有的中断源。

    5.关于中断部分的总结

    ⑴单片机在任何情况下的复位,均会导致总屏蔽位和其他的中断屏蔽位清0,即在默认状态下,禁止CPU响应所有中断。
    ⑵中断标志位的状态与该所有的中断屏蔽位无关,即不管是否允许CPU响应中断源的中断请求,只要满足了中断的条件,中断标志位就会被置成1。
    ⑶当系统开放某一中断源时,中断源就通过中断标志位向CPU申请中断,只要将中断标志位置1,就会产生中断响应。
    ⑷当CPU响应任一个中断后,全局中断屏蔽位GIE将会自动清0;当中断返回时它又会自动恢复为1。 
    (5)如果在中断服务期间若用软件将自动清0的GIE重新置1,这时若再出现中断请求,就会形成中断的嵌套:即在响应某一中断期间又响应了其他中断。不过嵌套的级数不能超过堆栈的深度(8级),以免造成堆栈溢出。
    ⑹如果同时发生多个中断请求,到底哪个中断会优先得到处理,完全取决于在中断服务子程序中检查中断源的顺序,原因是各个中断源之间不存在优先级别之分。 
    ⑺每一种中断源受屏蔽的次数不完全相同,第一梯队的中断源受到二次屏蔽,而第二梯队的中断源受到三次屏蔽。
    ⑻ PIC系列单片机的型号不同,数据存储器RAM的布局不完全相同,为工作寄存器W安排备份寄存器W_TEMP的方法也就不完全相同。
    展开全文
  • PIC单片机引脚中断程序的设计技巧 PIC单片机引脚中断程序的设计技巧 PIC单片机引脚中断程序的设计技巧
  • 主要介绍PIC 单片机引脚中断程序的设计技巧, 这样设计的引脚变化程序,CPU开销小,效率高,不会出现堆浅溢出的问题,提高了系统的实时性。
  • PIC定时器定时中断应用,告诉你用PIC单片机做定时中断原理。
  • 本文介绍的是PIC单片机端口RB中断的程序设计
  • 1 简 述 所有的中档系列PIC单片机,PORTB端口最高的4个引脚(RB7~RB4)在设为输入模式时,当输入电平由高到低或由低到高发生变化时,可以让单片机产生中断。这就是通常所说的引脚状态变化中断。 在设计引脚中断程序...
  • PIC16F87X系列单片机的复位功能设计得比较完善,根据引起单片机内部复位的条件和原因,可以将PIC单片机复位系统分为五个模块进行介绍。
  • PIC单片机按键中断程序的设计技巧,内含按键 长按键代码及注释!
  • 本文介绍的是PIC单片机的INT中断设计思路及程序设计
  • 单片机中的中断系统对电子工程师来说是解决突发事件和多任务实时处理的方法,熟练掌握中断技术的应用是一个合格电子工程师必备的能力。  PIC与51系列单片机一个显著的区别就是:PIC只有一个中断入口地址(为04H)...
  • 什么是中断程序呢?形象的生活比喻就比如你现在这在看我的文章,突然你的朋友喊你一起去烤地瓜,这时候你就中断了看文章和朋友烤地瓜去了,烤完地瓜之后你又回来看文章。烤地瓜这件事就好比中断...对于单片机来说这...

    什么是中断程序呢?

    形象的生活比喻就比如你现在这在看我的文章,突然你的朋友喊你一起去烤地瓜,这时候你就中断了看文章和朋友烤地瓜去了,烤完地瓜之后你又回来看文章。烤地瓜这件事就好比中断程序,他中断了你看文章这件事。在程序方面来说 当CPU在执行一个程序的时候,突然产生了中断事件CPU就去执行中断程序了,当执行完成后CPU又回来执行原先的程序。

    中断事件

    什么是中断事件,就是引起中断的事件。对于单片机来说这些事件是多种多样的。比如 说一个按键按下,一定的时间到了,一串数据发送完毕,或接收完一个数据。

    讲到中断不得不讲讲和中断相对的 查询。其实不管是按键按下 还是 时间到,还是数据发送完毕,这些事实上都可以用查询的方式办到。比如 你是经理 如果你想知道属下任务完成了没有 一种方式就是去询问属下,任务完成没有。早上没完成,下午在问。下午没完成第二天再问。。。。一直到完成为止 这种方式就相当于查询的方式,另一种就是然属下完成任务好直接汇报,在下属执行任务的期间你无需去打挠下属,当下属任务完成后就第一时间向你汇报,这种方式就好像中断。

    查询方式:缺点就是可能会大量浪费CPU的时间,不断去查询。如果事情不多还好,可是一旦事情多了会明显感到运行速度变慢。

    中断方式:可以用在对时间和响应速度有要求的场合。

    具体有哪些事件会引起中断 可以看

    d478b6fe4ccf439d86f0b6e886b5c529.png

    1,中断控制寄存器INTCON

    2,外设中断允许寄存器 PIEX 注 : X可以是1 2 3 4.。。。不同型号的单片机数目不同

    3,外设中断标志寄存器 PIRX 注: X可以是1 2 3 4.。。。不同型号的单片机数目不同

    INTCON 中断控制寄存器讲解:

    1开启或关闭 全体的中断功能(GIE)

    2开启或关闭全体外设的中断功能(PEIE)外设就是在外设中断允许/标志寄存器里面所写的设备。

    3开启一些中断事件。

    PIEX 与 PIRX 是相互对应的如:当把PIE1的TMR1IE设置为1 定时器timr1将开启中断。等到TMR1定时器溢出后,则会在PIR1的TMRIF将为1,并且执行中断程序。

    实例讲解:

    我们把上一讲的《PIC单片机之定时器》中的实例修改成中断方式 实现 每隔 50MS亮起LED,每隔50MS灭掉LED。

    /*开发环境MPLAB X IDE 芯片型号PIC16LF1823*/

    #include

    __CONFIG(FOSC_INTOSCWDTE_OFFPWRTE_ONMCLRE_OFFCP_ONCPD_OFFBOREN_ON

    CLKOUTEN_OFFIESO_ONFCMEN_ON);//这个要放到上一行去

    __CONFIG(PLLEN_OFFLVP_OFF) ;

    #define LED LATA5

    void init_fosc(void)

    {

    OSCCON= 0x68;

    }

    void init_gpio(void)

    {

    PORTA = 0;

    LATA = 0;

    ANSELA = 0;

    TRISAbits.TRISA5=0;

    }

    void init_timer0(void)

    {

    OPTION_REG=0x87;

    }

    void interrupt isr(void)//中断程序,interrupt是个关键字说明该函数,是中断函数。

    {

    LED = ~LED;//改变LED的状态

    INTCONbits.TMR0IF=0;//清零中断标志位 如果在离开中断程序前没有清零,程序将不停的中断。

    TMR0=61;//给TMR0付初始值61 ,开始下一个50ms计时做准备。

    //中断函数结束 返回主函数。哪里来回 回那里去,也就是回到主函数的while(1);处

    }

    int main(int argc, char** argv)

    {

    init_fosc();

    init_gpio();

    init_timer0();

    INTCONbits.GIE=1; //开启总中断

    INTCONbits.TMR0IF=0;//清零TMR0溢出中断标志位

    INTCONbits.TMR0IE=1;//开启TMR0溢出中断

    TMR0=61;

    while(1);//主函数 在此什么都没做一直在死循环。但等到50ms时间到了TMR0将会溢出,程序就会跳到void interrupt isr(void)处执行。

    }

    我帮大家理清下中断初始设置大致的步骤

    1 ,开启总中断,开启外设中断。INTCONbits.GIE=1; INTCONbits.PEIE=1;其实即使没用到外设开启也无妨。

    2 ,清楚相应中断的标志位。如INTCONbits.TMR0IF=0;

    3 ,开启相应中断。如INTCONbits.TMR0IE=1;

    中断函数/程序 中要注意的就是 清零相应的中断标志位 如INTCONbits.TMR0IF=0; 否则单片机会认为中断未被执行 则一直中断。

    5ec08e73b90b3c4c44d4c41c1f6a56bb.png

    76519c7070df04e746c3ce7a00cdf0c1.png

    举报/反馈

    展开全文
  • 其中一个中断源在上半部分和下半部分都有的,表示它既可以设为高优先级,也可以设为低优先级。如TMR0(定时器0)在上半部分和下半部分都有;而INT0(外部中断0)只在上半部分有,在下半部分没有,表示它只能设置为高...
  • 中断服务程序有一个特殊的定义方法: void interrupt ISR(void)其中的函数名“ISR”可以改成任意合法的字母或数字组合,但其入口参数和返回参数类型必须是“void”型,亦即没有入口参数和返回参数,且中间必须有一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,802
精华内容 720
关键字:

pic单片机中断系统