文档介绍:实验三:外部中断实验【实验目的】 掌握lpc系列arm处理器的中断处理工作原理 掌握外部中断的寄存器设置 掌握中断服务程序的在Keil下的编程方法【实验内容】 借助于外部中断,将按键动作进行累加计数,用4个led指示当前按键的次数。【实验原理】 LPC系列能够管理最多32个外部中断,并将这些中断源最终经过irq或者fiq提交给ARM核进行处理。外部中断也在管理之中,经过设置相应的外部中断寄存器,能够对外部按键的输入进行中断处理。tl15向量地址15寄存器VICVectAddr15DefIRQIRQ0IRQ15VectAddr0VectAddr15DefVectAddr硬件优先级选择向量地址选择向量地址寄存器VICVectAddrIRQ0IRQ15DefIRQIRQ中断信号向量IRQ0向量IRQ15非向量IRQ高低优先级IRQ中断状态寄存器VICIRQStatusFIQ中断信号中断选择寄存器VICIntSelect中断使能寄存器VICIntEnable中断使能清零寄存器VICIntEnClr中断源[31:0]软件中断使能寄存器VICSoftInt软件中断清零寄存器VICSoftIntClearFIQ中断状态寄存器VICFIQStatus中断状态寄存器VICRawIntrIRQFIQ+具体的寄存器功能请参照教材,VIC一章节。外部中断寄存器见下图根据需要能够设置外部中断的方式和极性,寄存器的具体描述参照教材。【实验步骤】按照下图设计一个能够进行外部中断实验的电路。按键要接到EINT0~3的任一引脚上。:用Keil建立一个工程,命名为eintled,。具体步骤参照实验一和实验二。主要函数功能如下:harled=0;void eint0_isr()__irq{ IOCLR=0xff; IOSET=led; led++; while(EXTINT&0x01){// EXTINT=0x01; /*清除EINT0中断标志*/} VICVectAddr=0; /*通知VIC中断处理结束 */}intmain(){ //设定相应的引脚,~; PINSEL0=0; IODIR|=0xf; PINSEL1|=1; //设置外部中断触发方式 EXTMODE=EXTMODE|0x01; // 初始化EINT0为下降沿中断 EXTPOLAR= EXTPOLAR&0x0E;// EXTINT=0x0F; //清除所有外部中断标志 //设置VI