1SunplusSPCE061A微控制器第五讲SPCE061A中断系统2概述中断是为处理器对外界异步事件具有处理能力而设置的,中断技术的引入把计算机的发展和应用大大地推进一步。因此中断功能的强弱已成为衡量一台计算机性能的重要指标。3一、中断系统概念1中断中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因,而必须终止原程序的执行,转去执行相应的处理程序,待处理结束之后,再回来继续执行被中止的原程序过程。中断源中断源是指在计算机系统中向CPU发出中断请求的来源。4一、中断系统概念2中断优先级给众多中断源定义一个优先顺序,即所谓的优先级排队。中断优先级越高,则响应优先权就越高。中断嵌套当CPU正执行中断服务程序时,又有中断优先级更高的中断申请产生,如果CPU能够暂停对原来的中断处理程序,转而去处理优先级更高的中断请求,处理完毕后,再回到原低级中断处理程序。5中断嵌套示意图一、中断系统概念26中断响应过程中断响应的过程中断请求现场保护中断服务清中断请求标志位恢复现场返回一、中断系统概念27二、SCPE061A中断系统SPCE061A系列单片机中断系统,是凌阳16位单片机中中断功能较强的一种十四个中断源两级中断优先级,两级嵌套每个中断源单独设置开或关81、SPCE061A中断类型软件中断由break产生(中断向量地址为FFF5H)异常中断在SPCE061A中只有复位(上电、看门狗计数器溢出以及系统电源低于电压低限,中断向量地址为FFF7H)事件中断IRQ、FIQ中断二、SCPE061A中断系统92、中断向量中断源9个中断向量FIQ、IRQ0~6、UARTIRQ;14个中断源3个中断源可安置在FIQ或IRQ0~IRQ2中10个中断源则可安置在IRQ3~IRQ6中UART中断在UARTIRQ中二、SCPE061A中断系统103、SPCE061A中断源1中断源中断优先级中断向量保留字Fosc/1024中断PWMINTFIQ/IRQ0FFF6H/FFF8H_FIQ/_IRQ0TimerA中断FIQ/IRQ1FFF6H/FFF9H_FIQ/_IRQ1TimerB中断FIQ/IRQ2FFF6H/FFFAH_FIQ/_IRQ2外部中断EXT2IRQ3FFFBH_IRQ3外部中断EXT1触键唤醒中断4096Hz时基IRQ4FFFCH_IRQ42048Hz时基1024Hz时基二、SCPE061A中断系统113、SPCE061A中断源2中断源中断优先级中断向量保留字4Hz时基IRQ5FFFDH_IRQ52Hz时基选频信号TMB1IRQ6FFFEH_IRQ6选频信号TMB2UART中断IRQ7FFFFH_IRQ7break软中断二、SCPE061A中断系统12(1)、外部中断EXTSPCE061A外部中断结构二、SCPE061A中断系统13(1)外部中断FeedBackIOB2&4,或IOB3&5之间的反馈结构14(2)、UART中断内部事件中断;发送中断和串行口接收中断;在串行口设置寄存器中设置中断;占用IOB7、IOB10;读取或写相应数据寄存器自动清中断;二、SCPE061A中断系统15(3)、触键唤醒中断给出睡眠命令关闭PLL停止CPU进入睡眠键唤醒信号接通PLL启动CPU进入IRQ3中断服务退出中断在睡眠指令的下一条指令开始执行二、SCPE061A中断系统16(4)、其它中断定时器中断参考定时器/计数器的设置,设置好相应中断即可。支持FIQ/IRQ1/2。时基中断设置好相关选频寄存器,设置好中断即可使用多种频率中断。二、SCPE061A中断系统174、中断控制相关寄存器中断控制单元P_INT_Ctrl(读/写)(7010H)清除中断标志控制单元P_INT_Clear(写)(7011H)激活和屏蔽中断控制单元P_INT_Ctrl_New(读/写)(702DH)二、SCPE061A中断系统18P_INT_Ctrl设置对照表P_INT_Ctrl(读/写)(7010H)其读写时的意义是不同的4、中断控制相关寄存器19P_INT_Clear写P_INT_Clear(写)(7011H)要用于清除中断控制标志位4、中断控制相关寄存器20P_INT_Ctrl_New设置对照表P_INT_Ctrl_New(读/写)(702DH)该单元用于激活和屏蔽中断4、中断控制相关寄存器当写该控制单元时,与P_INT_Ctrl功能相似。读该控制单元时,只作为了解激活那一中断的功能使用,与其写入值是一致的。21各种设置对照配置中断控制配置端口4、中断控制相关寄存器225、中断控制指令中断控制指令二、SCPE061A中断系统236、中断响应时间中断请求信号出现等待下一条指令结束进入中断响应保护现场进入中断服务程序最短10个cycle最长190个cycle或更长二、SCPE061A中断系统247、中断服务流程二、SCPE061A中断系统258、应该注意的地方P_INT_Ctrl_New与P_INT_CtrlP_INT_Ctrl读与写的含意不同清中断标志位除UART中断外,中断服务程序要对中断标志位进行清中断。二、SCPE061A中断系统261、中断控制例:FIQON指令举例三、中断系统举例272、定时器中断三、中断系统举例28举例:利用定时器A定时10ms,在A口的IOA0脚输出周期20ms的方波。2、定时器中断三、中断系统举例29开始初始化IOA0为输出端设置计数器TimerA初值时钟源频率设定开定时器A中断空操作程序流程图:中断入口清中断标志位IOA0置高位IOA0置低位恢复现场开中断保护现场关中断判断IOA0置高位?YN中断流程图:2、定时器中断三、中断系统举例30程序:2、定时器中断三、中断系统举例312、定时器中断三、中断系统举例323、时基中断:三、中断系统举例33例:时基信号中断,使A口低8位发光二极管0.5秒闪烁,IOA0-IOA7分别接8个发光二极管。开始初始化A口低8位为输出端开2Hz中断空操作主程序流程图:3、时基中断:三、中断系统举例34中断服务程序流程图:中断入口判断LED点亮?关中断现场保护点亮LED清中断标志位熄灭LED恢复现场开中断中断返回NY3、时基中断:三、中断系统举例353、时基中断:三、中断系统举例363、时基中断:三、中断系统举例374、触键唤醒中断三、中断系统举例38例:使系统进入睡眠状态,通过触键唤醒开始初始化A口低8位为输出端开触键唤醒中断使系统进入睡眠状态点亮8个LED中断入口清中断标志位现场保护现场恢复关中断开中断中断返回主程序流程图:中断服务程序流程图:4、触键唤醒中断三、中断系统举例39程序:4、触键唤醒中断三、中断系统举例40中断服务程序:4、触键唤醒中断三、中断系统举例415、外部中断三、中断系统举例42主程序流程图:开始初始化A口低8位为输出端开外部中断1初始化IOB2为带上拉电阻输入空操作中断入口关中断保护现场LED灯亮是IRQ3_EXT1中断?清中断标志恢复现场开中断中断返回5、外部中断三、中断系统举例中断程序流程图:43例:通过外部中断点亮A口低8位的8个LED5、外部中断三、中断系统举例445、外部中断三、中断系统举例45SPCE061A的中断Unsp中断系统的风格;提供了定时、时基、外部、UART以及软件中断等的十四个中断源;为用户编写复杂的系统打下硬件基础;46从单片机的基础到特殊在单片机中,时钟电路、I/O口、定时器、中断是最基础的部分,要学好一颗单片机,这些基础部分是必学的;而要用好一颗单片机,其特殊部分的功能模块更是应该学的,SPCE061A中集成的ADC、DAC是非常有特色的地方。