本章介绍的主要内容 ★ 中断的基本概念 ★ 中断的系统结构 ...

Click here to load reader

Upload: aldona

Post on 19-Mar-2016

192 views

Category:

Documents


18 download

DESCRIPTION

本章介绍的主要内容 ★ 中断的基本概念 ★ 中断的系统结构 ★ 中断的响应过程 ★ 中断的的应用编程. 在 CPU 和外设交换信息时,存在着快速 CPU 和慢速外设间的矛盾,机器内部有时也可能出现突发事件,为此,计算机中通常采用中断技术。 中断 CPU 和外设并行工作,当外设数据准备好 ( 或有某种突发事件发生 ) 时向 CPU 提出请求, CPU 暂停正在执行的程序转而为该外设服务 ( 或处 理紧急事件 ) ,处理完毕再回到原断点继续执行原程序。 中断源 - PowerPoint PPT Presentation

TRANSCRIPT

  • CPUCPU CPU( )CPUCPU( ) ,

  • I/O CPUCPU MCS51

  • 6.1

    8XX51532 CPU5 8XX5156.1

  • 6.1

    INT0 0 P3.2 0003HINT1 1P3.3 0013HT00 0 000BHT11 1 001BHTI/RI 0023H

  • (1)IE IE10

    EA - - ES ET1 EX1 ET0 EX0/ / T1/ INT1/ T0/ INT0/

  • EACPU EA=1CPU; EA=0 CPUES ES=1/ ES=0ET1T1 ET1=1T1 ET1=0T1

  • ET0 T0, ET0=1T1 ET0=0T0EX1 INT1 EX1=1INT1 EX1= 0INT1EX0 INT0 EX0=1INT0 EX0= 0INT0

  • IT0IT1INT0 INT11 IT0 10 TR0 TR1 T0T1 (2)TCON

    TF1 TR1TF0 TR0 IE1IT1 IE0IT0T1 / T1/ T0 / T0 / INT1 / INT1/ INT0/ INT0/

  • (3)IP IP10 T0INT0INT1T1 IP1CPU

    ------------PSPT1PX1PT0PX0 / T1/ INT1/ T0/ INT0/

  • MCS_516.1

  • 6.2 MCS51 6.2

  • NNYYYN 1?(?) T?EA=1? = 1?CPU , PC, PC , PC .

  • RETI PCRETI RETRETI

  • IEIPRETI 38 CPU

  • CPUCPUINT1INT0 T0T1CPUTF0TF1 INT1INT0CPUIE0IE1 CPUTIRI

  • 6.3 C 4IETCONIPSCON EAINT0INT1IP

  • CPU 0003H000BH 0013H001BH0023H

  • 1. 6.3P1.4P1.7P1.0P1.3 INT0CPUP1.0P1.3

  • ORG 0000H AJMP MAIN ORG 0003H INT0 AJMP WBI ORG 0030H MAIN: MOV P1#0FH SETB IT0 SETB EX0 0 SETB EA SJMP $ WBI MOV P1#0FH P11 MOV AP1 SWAP A MOV P1A P14 RETI END

  • 2. 89C51P1 (15)

  • ORG 0000H AJMP MAIN ORG 0013H INT1 AJMP INT1 ORG 0030H MAIN SETB IT1 SETB EX1 INT1 SETB EA MOV R0#0 0 MOV A#3FH 0AAL1 MOV P1A AL2 CJNE R0#0FHAL1 15 MOV R7#0FFH 15F

  • DJNZ R7 MOV P1#0 CLR EA SJMP INT1 INC R0 1 MOV AR0 MOV DPTRTAB DPTR MOVC A@A+DPTR POP DPH POP DPL MOV DPTR#AL1 PUSH DPL PUSH DPH AL1 RETI AL1PCAL

  • TAB DB 3FH06H5BH4FH66H6DH DB 7DH07H7FH6FH77H7CH DB 39H5EH79H71H () END INT1 AL1

  • AL1AL2AL1F DPTRDPTR RETIPC

  • MOV R0 #0 0 MOV P1 #3FH 0 MOV DPTR#TAB AGA SJMP INT1INC R0 1 MOV A R0 MOVC A @A+DPTR MOV P1 A CJNE R0 #0FH RE 15RE CLR EA 15RE RETI AGATAB DB 3FH06H5BH4FH66H6DH7DH,07H DB 7FH6FH77H7CH39H5EH79H71H

  • C51CPU interrupt n n 031 n ()interrupt nusing m

  • 0 0 1 /0 2 1 3 /1 4 Using m m03 m

  • : reentrantC51() SFRACCBDPHDPLPSW()RnRETI

  • 1C#includeint0() interrupt 0 /*INT0*/ P1=0x0f; /*1*/ P1
  • while(1)INT0P1.0P1.3P1.4P1.7LEDwhile(1) 2 2C

  • 1#includechar i;code char tab16= 0x3f,0x06,0x5b, 0x4F,0x660x6d,0x7d, 0x07, 0x7f,0x6f,0x77, 0x7c,0x39, 0x5e,0x79,0x71;int( ) interrupt 2i++ /**/ P1=tabi; /**/

  • main() EA=1; EX1=1; IT1=1; ap5: P1=0x3f; /*0*/ for(i=0;i16;); /*I
  • #includechar i;code char tab16= 0x3f,0x06, 0x5b,0x4F0x66, 0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e, 0x79,0x71;

  • int() interrupt 2 i++ if (i16)P1=tabi elsei=0;P1=0x3f;main() EA=1;EX1=1; IT1=1;P1=0x3f while(1); /**/

  • ()CPU 6.4 151

  • ()CInterrupt nn 2IEIP CPUEACPU 3

  • 4