实验二 外部中断实验(南大)
- 格式:doc
- 大小:66.00 KB
- 文档页数:3
桂林电子科技大学一、实验目的1 学习外部中断指令的基本使用方法;2 学习外部中断处理程序的编程方法。
二、实验内容1在实验一内容的基础上增加允许急救车优先通过的要求;2 急救车到达时(产生外部中断),交通信号为全红,以便让急救车通过3 急救车通过路口时间为10秒(四个红灯亮10秒)。
急救车通过后,交通灯恢复原状态(中断前的状态);4 中断申请信号为单脉冲“”。
三、实验原理图四、实验程序框五、实验步骤1、检查试验仪,确认相应单片机放置位置,确认无误后将试验仪的USB 数据线连接电脑;2、打开单片机电源开关,运行MEFlash 软件,确认电脑与试验仪连接成功;3、将A T89S52的P0和P2口用短接线LED 灯的端口相连;4、运行KC 编辑软件,调整好程序,并生成相应的.HEX 文件;5、使用MEFlash 软件,将生成的.HEX 文件烧录到单片机中,运行成功;6、测试中断是否运行正常,进行调试,确保程序正常运行。
六、实验程序清单#include<reg51.h>//*******延时1ms 秒********void delay(unsigned int i){unsigned int j;while(i--)交通灯程序的流程图{//对于11.0592M晶振延时越是1msfor(j=0;j<125;j++){{;}}}}//*****延时结束*******// k 代表黄灯闪烁的次数void blink(unsigned int k){for(;k>0;k--) //黄灯闪烁5次{P2=0xF0;delay(300);P2=0xFF;delay(300);}}//******主函数******//******主函数******void main(){P0=0x0F; //初始状态东西南北红灯全亮P2=0xFF;delay(2000) ;EA=1; //开启中断IT0=0 ;EX0=1;//D27到D24分别代表东西南北绿灯//D07到D04分别代表东西南北红灯// D23到D20四灯代表黄灯while(1){P0=0xCF; //南北红灯亮P2=0x3F; //东西绿灯亮delay(2000) ;P2=0xFF; //东西绿灯灭,黄灯闪烁5次blink(5);P0=0x3F; //东西红灯亮P2=0xCF; //南北绿灯亮delay(2000) ;P0=0x3F; //东西红灯亮,黄灯闪烁5次blink(5);}}void int0(void)interrupt 0{unsigned int Temp0;unsigned int Temp2;EA=0;Temp0=P0; //储存初始端口状态Temp2=P2;P0=0x0F; //东西红灯亮P2=0xFF; //南北绿灯亮delay(2000) ;P0=Temp0; //返回中断前端口状态P2=Temp2;EA=1;}七、实验分析该实验主要是检查外部中断的用法及其注意的事项(比如中断时要保护现场和恢复现场)。
“SOPC技术综合设计实践”实验报告实验题号: 实验五项目名称:PIO外部中断实验系班: 计科师范系11(1)学号:姓名:实验日期: 2014年4月2日指导老师:一、实验目的(1)熟悉中断服务程序的编写和注册方法。
(2)熟悉程序的调试方法,重点熟悉中断服务程序的调试方法。
(3)熟悉NiosII处理外部中断的方法。
二、实验内容1.外部中断信号由按键提供,然后将中断事件反映到对应的LED。
2.利用边沿捕获寄存器读取按键值,编写中断服务程序将读到的键值输出到LED。
即:按键F1按下,对应的LED0点亮。
三、实验原理当跳转到异常处理地址后,处理器开始执行一段由HAL插入的代码,判断中断源和中断优先级,然后再转跳到用户的中断服务子程序(ISR)中。
即发生异常后,异常处理除ISR 外的所有工作都由HAL系统库代码替换用户完成。
为了将中断服务子程序的信息告知HAL,用户需要完成ISR的登记工作。
向HAL登记ISR的工作可以分为以下两步:(1)编写void isr_name(void *context,alt_u32 id)函数(2)调用alt_irq_register(alt_u32 id,void *context,void(*isr)(void*,alt_u32))函数,向HAL登记ISR。
四、SOPC的整个设计流程(附:截取主要的设计图)1.基于实验3硬件系统(注意:将button_pio改为8位, input),修改后,重新generate。
设计端口芯片引脚开发平台模块设计端口芯片引脚开发平台模块clk_in PIN_B13 时钟button_pio[0] PIN_Y11 F1 led_pio[0] PIN_AC10 LED0button_pio[1] PIN_AA10 F2 led_pio[1] PIN_W11 LED1button_pio[2] PIN_AB10 F3 led_pio[2] PIN_W12 LED2button_pio[3] PIN_AE6 F4 led_pio[7] PIN_AA11 LED3button_pio[4] PIN_V22 F5 led_pio[3] PIN_AE8 LED4button_pio[5] PIN_AF23 F6 led_pio[4] PIN_AF8 LED5button_pio[6] PIN_AE23 F7 led_pio[5] PIN_AE7 LED6button_pio[7] PIN_AC22 F8 led_pio[6] PIN_AF7 LED73.编译后,下载.SOF文件4.在IDE平台上,新建一个.C文件,写入程序#include <stdio.h>#include"system.h"#include"altera_avalon_pio_regs.h"#include"alt_types.h"#include"sys/alt_irq.h"#include"priv/alt_busy_sleep.h"#define LEDCON 0xff //#define KEYCON 0xff //alt_u32 done = 0; // 信号量:通知外部中断事件发生/******************************************************************** * 功能:键按下事件中断服务子程序,当键按下时,通过done标志* 告知外界********************************************************************/ static void KeyDown_interrupts(void* context, alt_u32 id){/* 清中断捕获寄存器 */IOWR_ALTERA_AVALON_PIO_EDGE_CAP(BUTTON_PIO_BASE, 0);/* 通知外部有中断事件发生 */done++;}/******************************************************************** * 功能:初始化LED_PIO为输出,KEY为输入,开中断,清边沿捕获寄存器********************************************************************/ void InitPIO(void){/* 初始化LED_PIO为输出,KEY为输入 */IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_BASE, LEDCON);IOWR_ALTERA_AVALON_PIO_DIRECTION(BUTTON_PIO_BASE, 0x00);IOWR_ALTERA_AVALON_PIO_IRQ_MASK(BUTTON_PIO_BASE, 0xff);/* 开KEY的中断*//*请同学们自己完成*/IOWR_ALTERA_AVALON_PIO_EDGE_CAP(BUTTON_PIO_BASE, 0x00);/* 清边沿捕获寄存器 */alt_irq_register(BUTTON_PIO_IRQ,NULL,KeyDown_interrupts);/* 注册中断服务子程序 *//*请同学们自己完成*/}/******************************************************************** * 功能:等待按键中断,并输出控制相应的LED。
实验一I/O口输入输出实验一、实验目的掌握单片机P1口、P3口的使用方法。
二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。
以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。
三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验步骤1)系统各跳线器处在初始设置状态。
用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口);用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块JD8(P1 口)。
2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。
编译无误后,下载程序运行。
3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。
五、实验参考程序;//******************************************************************;文件名: Port for MCU51;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);; 用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。
;//******************************************************************DIR BIT P3.0ORG 0000HLJMP STARTORG 0100HSTART:OUTPUT1:MOV A, #0FEHMOV R5, #8LOOP1: CLR CMOV C,DIRJC OUTPUT2MOV P1, ARL AACALL DELAYDJNZ R5, LOOP1SJMP OUTPUT1OUTPUT2:MOV A, #07FHMOV R5, #8LOOP2:CLR CMOV C,DIRJNC OUTPUT1MOV P1, ARR AACALL DELAYDJNZ R5,LOOP2SJMP OUTPUT2DELAY:MOV R6,#0DELAYLOOP1:MOV R7,#0DELAYLOOP2:NOPNOPDJNZ R7,DELAYLOOP2DJNZ R6,DELAYLOOP1RETEND六、实验结果当八位逻辑电平的K0拨到上方,即输出高电平时,实验箱B5区的八个LED灯从左至右循环点亮,当K0拨到下方,即输出低电平时,八个LED灯从右至左循环点亮。
单片机实验报告(二)实验名称:定时器及外部中断姓名:张昊学号:110404247班级:通信2班时间:2013.11南京理工大学紫金学院电光系一、实验目的1、学习定时/计数器的应用;2、学习外部中断技术的基本使用方法;3、学习中断处理程序的编程方法。
二、实验原理(1)以P1口作为输出口,定时器实现1s定时,实现显示数的1s加1,外部中断0键盘外接BUTTON,实现对显示数快速加1的控制。
(2)系统板上硬件连线把“单片机系统”A2区的J61接口的P1.0~P1.6端口与D1区的J52接口相连。
把“单片机系统”A2区的INT0端口用导线连接到D1区的KEY1端口上;三、实验内容利用定时器中断控制1s的输出,使用外部中断0使得显示的数加1. 程序如下:#include<reg51.h>#define uchar unsigned char#define uint unsigned intvoid delay(){uint x,y;for(x=100;x>0;x--)for(y=110;y>0;y--);}uchar m,flag;void main(){uchar a,b;TMOD=0x01;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EX0=1; EX1=1; PX1=1; ET0=1; EA=1; 中断开启TR0=1;m=0; P1=0;while(1){while(flag==0); flag=0;if(m==100) m=0;m++;a=m/10;b=m+a*6;P1=b;}}void timer0() interrupt 1 using 0{uchar t;TH1=(65536-50000)/256;TL1=(65536-50000)%256;if(t<20) t++;else { flag=1; t=0; }}void exter0() interrupt 0 using 1{if(INT0==0) delay();if(INT0==0) flag=1;}void exter1() interrupt 2 using 2{if(INT1==0) delay();if(INT1==0) m=0;}将编译好的程序下载到仿真电路中四、小结与体会通过本次定时器中断实验,我对定时器的工作原理有了更加深入的理解,这也是建立在向同学请教的基础上。
实验三外部中断实验报告班级:学号:姓名:教师:一、实验目的1、掌握单片机外部中断的原理及过程。
2、掌握单片机外部中断程序的设计方法。
3、掌握单片机外部中断时中断方式的选择方法。
二、实验内容如下图所示,P3.2设为输入,P2设为输出位,连有8个发光二极管D1~D8。
每当发生外部中断时,发光二极管以向下流水灯的方式点亮。
分别选择边沿触发外部中断放是和电平触发外部中断方式两种。
三、编程提示1、P3口是8位准双向口,具有双重功能:第一功能和P1口一样,作为输入输出口,也有字节操作和位操作两种方式,每一位可分别定义为输入或输出;第二功能定义如下:P3.0 RXD 串行输入口P3.1 TXD 串行输出口P3.2 INT0 外部中断0请求输入线P3.3 INT1 外部中断1请求输入线P3.4 T0定时器/计数器T0外部计数器脉冲输入线P3.5 T1定时器/计数器T1外部计数器脉冲输入线P3.6 WR外部数据存贮器写脉冲输出线P3.7 RD外部数据存贮器读脉冲输出线2、各中断服务程序入口地址:外部中断0 03H定时器/计数器T1溢出中断0BH外部中断1 13H定时器/计数器1BH串行口中断23H3、外部中断的产生条件中断允许寄存器IE:EA ES ET1 EX1 ET0 EX0(1)外部中断源允许中断(中断0:EX0=1;中断1:EX1=1)。
(2)CPU开中断(EA=1)。
(3)外部中断方式CPU发出中断申请。
4、外部中断方式的选择控制TCON:TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0IT0是选择文字则外部中断0请求(INT0)边沿触发方式或电平触发方式的控制位。
前一方式IT0=1,后一方式IT0=0。
IT1是选择外部中断1请求(INT1)为边沿触发方式或电平触发方式的控制位。
前一方式IT1=1,后一方式IT1=0。
当8031复位后,TCON被清0。
5、外部中断电路负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或者去抖动延时程序,保证每次只产生单脉冲,构成边沿触发方式外部中断电路。
一、实验实训名称中断实验实训二、实验实训目的1. 理解中断的概念和作用。
2. 掌握中断系统的基本组成和原理。
3. 学会中断程序的编写和调试。
4. 提高编程能力和问题解决能力。
三、实验实训内容1. 中断系统概述介绍中断的概念、作用、分类及中断系统的基本组成。
2. 中断处理过程分析中断处理过程,包括中断请求、中断响应、中断处理和中断返回等步骤。
3. 中断程序的编写学习编写中断服务程序,掌握中断程序的编写方法和技巧。
4. 中断程序的调试利用调试工具对中断程序进行调试,找出并解决程序中的错误。
四、实验实训步骤1. 熟悉实验环境,了解实验设备。
2. 阅读实验指导书,明确实验目的、内容和步骤。
3. 编写中断服务程序,实现中断功能。
4. 编写主程序,调用中断服务程序。
5. 使用调试工具对程序进行调试,确保程序正常运行。
6. 分析实验结果,总结实验经验。
五、实验实训结果与分析1. 实验结果实验成功实现了中断功能,主程序在调用中断服务程序后,程序运行正常。
2. 实验分析(1)通过编写中断服务程序,掌握了中断程序的编写方法和技巧。
(2)通过调试工具对程序进行调试,提高了问题解决能力。
(3)实验过程中,了解了中断系统的基本组成和原理,为后续深入学习打下了基础。
六、实验实训总结1. 通过本次实验实训,掌握了中断系统的基本组成和原理,了解了中断处理过程。
2. 学会了中断程序的编写和调试,提高了编程能力和问题解决能力。
3. 实验过程中,遇到了一些问题,通过查阅资料和请教老师,成功解决了这些问题,锻炼了自己的自学能力和团队协作能力。
4. 在今后的学习和工作中,将继续深入研究中断技术,为我国信息技术发展贡献自己的力量。
七、实验实训报告撰写人(姓名)(日期)。
计算机原理与应用实验实验名称:外部中断实验学院:信息与通信工程学院班级:2017211113姓名:***学号:**********同组成员姓名:李凝同组成员学号:**********一、实验目的1. 掌握NVIC 中断优先级配置。
2. 学会外部中断配置。
二、实验原理及内容(一)实验原理电路结构如图3.1 所示1. NVIC 中断优先级NVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。
但是各个芯片厂商在设计芯片的时候会对Cortex-M4 内核里面的NVIC 进行裁剪,把不需要的部分去掉,所以说STM32 的NVIC 是Cortex-M4 的NVIC 的一个子集。
CM4 内核可以支持256个中断,包括16个内核中断和240个外部中断,256 级的可编程中断设置。
对于STM32F4 没有用到CM4 内核的所有东西,只是用到了一部分,对于STM32F40 和41 系列共有92个中断,其中有10个内核中断和82个可屏蔽中断,常用的为82个可屏蔽中断。
ISER[8]—中断使能寄存器组,用来使能中断,每一位控制一个中断,由于上面已经说明了控制82 个可屏蔽的中断,因此利用ISER[0~2]这三个32 位寄存器就够了。
一下的几个寄存器同理。
ICER[8]—中断除能寄存器组,用来消除中断。
ISPR[8]—中断挂起控制寄存器组,用来挂起中断。
ICPR[8]—中断解挂控制寄存器组,用来解除挂起。
IABR[8]—中断激活标志寄存器组,对应位如果为1 则表示中断正在被执行。
IP[240]—中断优先级控制寄存器组,它是用来设置中断优先级的。
我们只用到了IP[0]~IP[81],每个寄存器只用到了高4 位,这4 位又用来设置抢占优先级和响应优先级(有关抢占优先级和响应优先级后面会介绍到),而对于抢占优先级和响应优先级各占多少位则由AIRCR 寄存器控制,相关设置如表 3.1 所示。
南昌大学实验报告学生姓名:学号:专业班级:卓越通信班实验类型:□验证□综合□√设计□创新实验日期:201303 实验成绩:实验二外部中断实验一.实验目的掌握S3C2410A处理器外部中断的引脚功能设置;掌握中断初始化以及中断服务函数的编写。
二.实验设备硬件:PC机1台MagicARM2410教学实验开发平台1台软件:Windows 98/2000/XP操作系统ADS 1.2集成开发环境三.实验内容设置GPF4引脚为外部中断EINT4功能,下降沿触发模式。
初始化S3C2410A 中断控制器,设置EINT4为IRQ中断,并使能中断允许。
初始化完成后,等待外部中断产生。
中断服务程序里负责把LED1控制口输出信号取反,清除中断标志后退出中断。
四.实验原理a 独立按键KEY1电路使用了GPF4口,设置GPFCON寄存器可以选择GPF4引脚为外部中断EINT4功能,此时通过按下KEY1键即可触发外部中断;b 对于S3C2410A的众多中断源,通过设置INTMOD寄存器可将它们分为IRQ中断或FIQ中断,一般只设置一个中断源为FIQ中断。
对于多个IRQ 中断,通过PRIORITY寄存器可以设置中断的优先级,一般将其设置为0使用默认固定的优先级即可;c 设置INTMSK寄存器使能某个中断源的中断允许,有些中断源还需要设置SUBMASK寄存器使能(比如UART的发送中断和接收中断);d 对于外部中断EINT4~EINT23,由于它们在S3C2410A的中断控制器中不是独立中断源(EINT4~EINT7共用一个中断源,EINT8~EINT23共用另一个中断源),所以还需要设置EINTMASK寄存器来使能某一个外部中断;e 由于S3C2410A的中断控制器不是向量中断控制器,即处理器硬件不能自动获取对应于中断源的中断服务程序地址,所以在IRQ中断服务程序中要通过中断标志寄存器INTPND来获得对应的中断服务程序地址(参考ARM Executable Image for DeviceARM2410工程模板的Target.c文件,其中的IRQ_Exception函数)。
《单片机原理与应用》课程实验报告实验名称:外部中断----脉冲计数实验实验日期:班级:电技13-2班姓名:马倩南学号:02号指导老师:评分:一、实验目的:1.熟悉单片机外部中断的使用方法;2.熟悉数码管的工作原理和驱动方法;3.程序设计中数组的使用。
、实验内容: 连接最小系统板与脉冲开关、数码管模块电路,构成模拟计数器电路。
编程检测外部脉冲的输入,并通过数码管来指示脉冲个数1、设计出外部中断计数器的电路原理图,单片机选用AT89C51 P0 口接八位逻辑电平显示发光二极管,INTO或INT1接单次脉冲输出端。
2、打开Keil uVision2 仿真软件,首先建立本实验的项目文件,接着编写外部中断计数器.AS M源程序,进行编译,直到编译无误,生成HEX文件。
3、将HEX文件上载到Protues电路原理图的AT89C5仲,并仿真成功。
4、实验电路功能,连续按动单次脉冲产生电路的按键,对单次脉冲进行计数,八个发光二极管显示计数结果。
三、程序及其运行结果:1、外部中断的初始化设置共有三项内容:中断总允许即EA=1,外部中断允许即EXi=1 (i=0 或1),中断方式设置。
中断方式设置一般有两种方式:电平方式和脉冲方式,本实验选用后者,其前一次为高电平后一次为低电平时为有效中断请求。
因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚INT0(P3.2)或INT1(P3.3)引入。
2、中断服务的关键:a、保护进入中断时的状态。
堆栈有保护断点和保护现场的功能使用PUSH在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。
b、必须在中断服务程序中设定是否允许中断重入,即设置EX0位。
c、用POP指令恢复中断时的现场。
3、中断控制原理:中断控制是提供给用户使用的中断控制手段。
实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:TCON、IE、SCON及IP。
4、中断响应的过程:首先中断采样然后中断查询最后中断响应。
南昌大学实验报告
学生姓名:学号:专业班级:卓越通信班
实验类型:□验证□综合□√设计□创新实验日期:201303 实验成绩:
实验二外部中断实验
一.实验目的
掌握S3C2410A处理器外部中断的引脚功能设置;
掌握中断初始化以及中断服务函数的编写。
二.实验设备
硬件:
PC机1台
MagicARM2410教学实验开发平台1台
软件:
Windows 98/2000/XP操作系统
ADS 1.2集成开发环境
三.实验内容
设置GPF4引脚为外部中断EINT4功能,下降沿触发模式。
初始化S3C2410A 中断控制器,设置EINT4为IRQ中断,并使能中断允许。
初始化完成后,等待外部中断产生。
中断服务程序里负责把LED1控制口输出信号取反,清除中断标志后退出中断。
四.实验原理
a 独立按键KEY1电路使用了GPF4口,设置GPFCON寄存器可以选择GPF4
引脚为外部中断EINT4功能,此时通过按下KEY1键即可触发外部中断;
b 对于S3C2410A的众多中断源,通过设置INTMOD寄存器可将它们分为
IRQ中断或FIQ中断,一般只设置一个中断源为FIQ中断。
对于多个IRQ 中断,通过PRIORITY寄存器可以设置中断的优先级,一般将其设置为0使用默认固定的优先级即可;
c 设置INTMSK寄存器使能某个中断源的中断允许,有些中断源还需要设置SUBMASK寄存器使能(比如UART的发送中断和接收中断);
d 对于外部中断EINT4~EINT23,由于它们在S3C2410A的中断控制器中不
是独立中断源(EINT4~EINT7共用一个中断源,EINT8~EINT23共用另一个中断源),所以还需要设置EINTMASK寄存器来使能某一个外部中断;
e 由于S3C2410A的中断控制器不是向量中断控制器,即处理器硬件不能自
动获取对应于中断源的中断服务程序地址,所以在IRQ中断服务程序中要通过中断标志寄存器INTPND来获得对应的中断服务程序地址(参考ARM Executable Image for DeviceARM2410工程模板的Target.c文件,其中的IRQ_Exception函数)。
f在中断服务程序中,退出中断之前要清除中断标志,即对SRCPND和INTPND寄存器相应位写1,先清除SRCPND寄存器,再清除INTPND寄存器。
对于外部中断EINT4~EINT23中断,要最先清除EINTPEND寄存器中的中断标志。
实验电路图
五.实验步骤
(1) 启动ADS 1.2,使用ARM Executable Image for DeviceARM2410工程模板建立一个工程EINT。
(2) 在工程src组中的main.c中编写实验代码。
(3) 选用DebugRel生成目标,然后编译链接工程。
(4) 将MagicARM2410实验箱上的启动方式选择跳线JP8短接,然后按RST键复位系统。
(5) 选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。
(6) 在中断服务程序中设置断点,全速运行程序,按下/释放KEY1按键,使EINT4为低/高电平(产生中断)。
(7) 取消中断服务程序中有断点,全速运行程序,按下/释放KEY1按键,观察LED1灯的变化。
六.实验参考程序(略)
七.实验现象
通过中断程序设置可以控制LED灯的亮灭。
按下/释放KEY1按键,使EINT4为低/高电平(产生中断) ,按下/释放KEY1按键,LED1灯的灭了
八.思考题:
EINT4与EINT0的中断设置和中断标志清除有什么异同?
答:对于外部中断EINT0,它在S3C2410A的中断控制器中是独立中断源,为了使中断控制器能够接收中断请求,只需在在启动代码中将PSR的F位或I位设置为0,同时将中断屏蔽寄存器(INTMASK)中的相应位设置为0;但对于外部中断EINT4,由于它在S3C2410A的中断控制器中不是独立中断源(EINT4~EINT7共用一个中断源),满足上述设置外还需要设置EINTMASK寄存器来使能某一个外部中断(这里是EINT4)。
而在中断标志清除中,二者都要在退出中断之前要清除中断标志,即对SRCPND和INTPND寄存器相应位写1,先清除SRCPND寄存器,再清除INTPND 寄存器。
对于外部中断EINT4中断,要最先清除EINTPEND寄存器中的中断标志。