中断的优先级外部中断21.PPTVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

*/76(2)中断的优先级外部中断2、外部中断3、定时器T2和外部中断4,不能设置为高优先级,其他中断源通过特殊功能寄存器(IP和IP2)中的相应位,可设为高、低二级优先级,实现二级中断嵌套,与传统8051单片机两级中断优先级完全兼容。*/76STC15F2K60S2单片机对中断优先级的处理原则低优先级中断可被高优先级中断所中断,反之不能。任何一种中断(不管是高优先级还是低优先级),一旦得到响应,不会再被它的同级中断所中断。*/76同一优先级的中断源同时申请中断时,按照事先约定的硬件查询顺序响应中断。这相当于在每个优先级内,还同时存在另一个辅助优先级结构(称为默认的优先级)STC15F2K60S2单片机各中断默认的优先级如表6-2所示。其中,默认中断优先级次序号越小,优先级越高。*/761)中断优先级寄存器IP中断优先级寄存器IP(地址为B8H,复位值为00H)各位的定义如下:位号D7D6D5D4D3D2D1D0位名称PPCAPLVDPADCPSPT1PX1PT0PX0每一位对应其相应的中断源的优先级控制位。1:高优先级;0:低优先级。*/762)第二中断优先级低字节寄存器IP2第二中断优先级低字节寄存器IP2(地址为B5H,复位值为XXXXXX00B):位号D7D6D5D4D3D2D1D0位名称PSPIPS21)PSPI:SPI中断优先级控制位。1:SPI中断为高优先级;0:SPI中断为低优先级。2)PS2:串口2中断优先级控制位。1:串口2中断为高优先级;0:串口2中断为低优先级。*/76IP、IP2一起确定STC15F2K60S2单片机的二个中断优先级。*/76例如,如果要允许外部中断0中断,需要将EX0和EA都置1。如果要允许A/D转换中断,则需要将EADC和EA都置1。*/76二、单片机中断处理过程1、单片机响应中断的条件和过程当中断源向CPU发出中断请求时,如果中断的条件满足,CPU将进入中断响应周期。单片机响应中断的条件是:中断源有请求。相应的中断允许位设置为1。无同级或高级中断正在处理;CPU中断开放(EA=1)。*/76在每个指令周期的最后一个时钟周期,CPU对各中断源采样,并设置相应的中断标志位。CPU在下一个指令周期的最后一个时钟周期按优先级顺序查询各中断标志,如查到某个中断标志为1,将在下一个指令周期按优先级的高低顺序响应中断并进行处理。*/76CPU响应中断时,将执行如下操作:当前正被执行的指令执行完毕;PC值被压入堆栈;现场保护;阻止同级别其他中断;将中断服务程序的入口地址(中断向量地址)装载到程序计数器PC;执行相应的中断服务程序。*/76每个中断服务程序的入口地址之间只相隔8个单元,一般中断服务程序的长度都超过8个字节,这时可以将中断服务程序存放到存储器的其他区域,然后在中断入口处安排一条转移指令LJMP,转向中断服务程序。例如:ORG 0003H ;外部中断0入口地址LJMP X0_ISR ··· ;其他程序代码X0_ISR: ;外部中断0服务程序 ··· RETI*/76使用C语言编写单片机中断应用程序时,用中断号区分每一个中断。例如,voidX0_ISR(void)interrupt0{}//外部中断0中断函数voidT0_ISR(void)interrupt1{}//定时器T0中断函数voidX1_ISR(void)interrupt2{}//外部中断1中断函数voidT1_ISR(void)interrupt3{}//定时器T1中断函数voidUART1_ISR(void)interrupt4{}//串行口1中断函数voidADC_ISR(void)interrupt5{}//ADC中断函数voidLVD_ISR(void)interrupt6{}//低电压检测LVD中断函数*/76voidPCA_ISR(void)interrupt7{}//PCA中断函数voidUART2_ISR(void)interru

文档评论(0)

137****8314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档