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