版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章第六章 中断系统中断系统第一节第一节 中断概述中断概述第四节第四节 扩充外部中断源扩充外部中断源第二节第二节 80C5180C51中断系统中断系统第三节第三节 中断处理过程中断处理过程第五节第五节 中断系统的应用中断系统的应用返回总返回总目录目录第一节第一节 中断概述中断概述已知已知80C5180C51单片机主频为单片机主频为6MHz6MHz,请利用定时器,请利用定时器T0T0和和P1.2P1.2输出矩形脉输出矩形脉冲,其波形如下:冲,其波形如下:5 5 0 0 u u s s3 3 5 5 0 0 u u s s一、中断的概念一、中断的概念GATEGATEC/TC/TC/TC/TM1M
2、1M0M0GATEGATEM1M1M0M0定时器1定时器1定时器0定时器0TMODTMOD(89H)(89H)D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D002H控制字控制字0 00 01 10 00 00 00 00 0MOV TMOD , #02HMOV TH0 , #E7HMOV TL0 , #E7HSETB TR0SETB P1.2MOV R0 , #7JBC TF0 , REPAJMP DELCLR P1.2DJNZ R0 , DELAJMP L1L1:DEL:REP:开开始始5 50 0u us s定定时时初初始始化化定定时时开开始始P P1.21.2 - -1
3、1循循环环次次数数装装入入R R0 0Y YE ES SN NO O T TF F0 0= =1 1? ?P P1.21.2 - -0 0R R0 0 - -R R0 0- -1 1R R0 0= =0 0 ? ?N NO OY YE ES S效效率率低低计算机在执行程序的过程中,由于计算机在执行程序的过程中,由于CPU以外的某种原因,中止当前程以外的某种原因,中止当前程序的执行,而去执行相应的处理程序,待处理结束后在回来执行被中序的执行,而去执行相应的处理程序,待处理结束后在回来执行被中止的原程序,这中情况我们称之为止的原程序,这中情况我们称之为“中断中断”。所执行的处理程序称为所执行的处理
4、程序称为“中断服务程序中断服务程序”;原来运行的程序称为;原来运行的程序称为“主主程序程序”;主程序被断开的点称为;主程序被断开的点称为“断点断点”;引起中断的原因,或能发;引起中断的原因,或能发出中断申请的来源称为出中断申请的来源称为“中断源中断源”。与子程序调用的区别:调用子程序指令是事先安排好的;而何时调用与子程序调用的区别:调用子程序指令是事先安排好的;而何时调用中断服务程序事先无法确知,因而调用中断服务程序的过程是由中断服务程序事先无法确知,因而调用中断服务程序的过程是由硬件硬件自动完成自动完成。二、中断系统的功能二、中断系统的功能1.1.能实现中断及返回能实现中断及返回响应响应中断
5、中断保护保护现场现场将断点处的将断点处的PCPC值压入堆栈值压入堆栈将相关寄存器内容压入堆栈将相关寄存器内容压入堆栈返回返回断点断点恢复恢复现场现场将断点处的将断点处的PCPC值弹回值弹回RETIRETI将相关寄存器的值弹回将相关寄存器的值弹回软件软件2.2.能实现中断优先级能实现中断优先级3.3.能实现中断嵌套能实现中断嵌套主主程程序序断点断点中中断断服服务务程程序序继继续续执执行行主主程程序序主主程程序序断断点点继继续续执执行行主主程程序序断断点点高高级级中中断断服服务务程程序序R RE EI IR RE EI I中断流程图中断流程图中断嵌套流程图中断嵌套流程图第二节第二节 80C5180
6、C51中断系统中断系统一、中断源及入口地址一、中断源及入口地址1.1.中断源中断源)3 . 3( 1)2 . 3(0PINTPINT和两个片外中断源:三个片内中断源:三个片内中断源:T0 、 T1 和和 串行通信串行通信2.2.入口地址入口地址中断源中断源中断服务程序入口地址中断服务程序入口地址外部中断外部中断0 00003H0003H定时器定时器0 0000BH000BH外部中断外部中断1 10013H0013H定时器定时器1 1001BH001BH串行口中断串行口中断0023H0023H二、中断请求标志二、中断请求标志TF1TF1IT1IT1TF0TF0IE1IE1IE0IE0IT0IT0
7、TCONTCON(88H)(88H)D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0外部中断标志位标志位11INTIEIE1=1(IE1=1(有有) )IE1=0(IE1=0(无无) )外部中断控制位控制位11INTITIT1=0(IT1=0(电平电平) )IT1=1(IT1=1(边沿边沿) ) 01IT申请中断01INT不申请中断11INT111INTIT外部中断申外部中断申请方式控制请方式控制S SP PP P0 0D DP PH HD DP PL LT TC CO ON NP PC CO ON NT TL L0 0T TM MO OD D8 80 0H H8 81 1H
8、H8 82 2H H8 83 3H H8 87 7H H8 88 8H H8 89 9H H8 8A AH H8 8B BH H8 8C CH H8 8D DH HF FF FH HT TL L1 1T TH H0 0T TH H1 1P P1 1S SC CO ON NS SB BU UF FP P2 2I IE EP P3 3I IP PP PS SW WA AC CC CB B9 90 0H H9 98 8H H9 99 9H HA A0 0H HA A8 8H HB B0 0H HB B8 8H HD D0 0H HE E0 0H HF F0 0H H专专用用寄寄存存器器区区S SF
9、FR R三、中断允许控制三、中断允许控制EAEA-ESESET1ET1EX1EX1ET0ET0 EX0EX0IEIE 所有中断的总开关EAEA=1EA=1开放中断开放中断EA=0EA=0屏蔽中断屏蔽中断串行中断允许位ESES=1ES=1允许串行中断允许串行中断ES=0ES=0屏蔽串行中断屏蔽串行中断中断允许控制寄存器中断允许控制寄存器IEIE可以位寻址可以位寻址EAEA-ESESET1ET1EX1EX1ET0ET0 EX0EX0IEIE的中断允许位11TETET1=1ET1=1允许允许T1T1中断中断ET1=0ET1=0屏蔽屏蔽T1T1中断中断允许位外部中断11EXEX1=1EX1=1允许外部
10、中断允许外部中断1 1申请中断申请中断EX1=0EX1=0屏蔽外部中断屏蔽外部中断1 1申请中断申请中断注意:单片机复位后注意:单片机复位后IEIE被清零被清零四、中断优先级四、中断优先级-PSPSPT1PT1PX1PX1PT0PT0 PX0PX0IPIP串行口优先级控制位1PSPS1=1PS1=1高优先级高优先级(SETB PS)(SETB PS)PS1=0PS1=0低优先级低优先级(CLR PS)(CLR PS)优先级控制位11TPTPT1=1PT1=1高优先级高优先级PT1=0PT1=0低优先级低优先级注意:单片机复位后注意:单片机复位后IP IP 被清零被清零, ,以下为自然优先级以下
11、为自然优先级 在人为设置的优先级相同的情形下,在人为设置的优先级相同的情形下,CPUCPU按照按照 自然优先级进行响应。自然优先级进行响应。 中断源中断源高高外部中断外部中断0 0定时器定时器0 0外部中断外部中断1 1定时器定时器1 1串行口中断串行口中断低低例:利用定时器例:利用定时器T0T0定时,在定时,在P1.0P1.0端输出一方波,周期为端输出一方波,周期为20ms20ms。 f=12MZf=12MZ。(先用软件查询的方式编程)。(先用软件查询的方式编程)ORG 0000HORG 0000HLJMP 2000H LJMP 2000H 中断服务程序为:中断服务程序为:ORG 000BH
12、ORG 000BHAJMP 0070H AJMP 0070H ORG 0070HORG 0070HMOV TL0,#0F0HMOV TL0,#0F0HMOV TH0,#0D8HMOV TH0,#0D8HCPL P1.0CPL P1.0RETI RETI ORG 2000HORG 2000HMOV TMOD,#01HMOV TMOD,#01HMOV TH0,#0D8HMOV TH0,#0D8HMOV TL0,#0F0HMOV TL0,#0F0HMOV IE , #82HMOV IE , #82HSETB TR0SETB TR0O OR RG G 0 00 00 00 0H HL LJ JM MP
13、 P 2 20 00 00 0H H 中中断断服服务务程程序序为为:O OR RG G 0 00 00 0B BH HA AJ JM MP P 0 00 07 70 0H H O OR RG G 0 00 07 70 0H HM MO OV V T TL L0 0, ,# #0 0F F0 0H HM MO OV V T TH H0 0, ,# #0 0D D8 8H HC CP PL L P P1 1. .0 0R RE ET TI I O OR RG G 2 20 00 00 0H HM MO OV V T TM MO OD D, ,# #0 01 1H HM MO OV V T TH H
14、0 0, ,# #0 0D D8 8H HM MO OV V T TL L0 0, ,# #0 0F F0 0H HM MO OV V I IE E , , # #8 82 2H HS SE ET TB B T TR R0 0JMP $JMP $ORG 0000HORG 0000HLJMP 2000H LJMP 2000H 中断服务程序为:中断服务程序为:ORG 000BHORG 000BHAJMP 0070H AJMP 0070H ORG 0070HORG 0070HMOV TL0,#0F0HMOV TL0,#0F0HMOV TH0,#0D8HMOV TH0,#0D8HCPL P1.0CPL
15、 P1.0RETI RETI ORG 2000HORG 2000HMOV TMOD,#01HMOV TMOD,#01HMOV TH0,#0D8HMOV TH0,#0D8HMOV TL0,#0F0HMOV TL0,#0F0HMOV IE , #82HMOV IE , #82HSETB TR0SETB TR0ORG 0000HORG 0000HLJMP 2000H LJMP 2000H 中断服务程序为:中断服务程序为:ORG 000BHORG 000BHAJMP 0070H AJMP 0070H ORG 0070HORG 0070HMOV TL0,#0F0HMOV TL0,#0F0HMOV TH0
16、,#0D8HMOV TH0,#0D8HCPL P1.0CPL P1.0RETI RETI ORG 2000HORG 2000HMOV TMOD,#01HMOV TMOD,#01HMOV TH0,#0D8HMOV TH0,#0D8HMOV TL0,#0F0HMOV TL0,#0F0HMOV IE , #82HMOV IE , #82HSETB TR0SETB TR0ORG 0000HORG 0000HLJMP 2000H LJMP 2000H 中断服务程序为:中断服务程序为:ORG 000BHORG 000BHAJMP 0070H AJMP 0070H ORG 0070HORG 0070HMOV
17、 TL0,#0F0HMOV TL0,#0F0HMOV TH0,#0D8HMOV TH0,#0D8HCPL P1.0CPL P1.0RETI RETI ORG 2000HORG 2000HMOV TMOD,#01HMOV TMOD,#01HMOV TH0,#0D8HMOV TH0,#0D8HMOV TL0,#0F0HMOV TL0,#0F0HMOV IE , #82HMOV IE , #82HSETB TR0SETB TR0ORG 0000HORG 0000HLJMP 2000H LJMP 2000H 中断服务程序为:中断服务程序为:ORG 000BHORG 000BHAJMP 0070H AJ
18、MP 0070H ORG 0070HORG 0070HMOV TL0,#0F0HMOV TL0,#0F0HMOV TH0,#0D8HMOV TH0,#0D8HCPL P1.0CPL P1.0RETI RETI ORG 2000HORG 2000HMOV TMOD,#01HMOV TMOD,#01HMOV TH0,#0D8HMOV TH0,#0D8HMOV TL0,#0F0HMOV TL0,#0F0HMOV IE , #82HMOV IE , #82HSETB TR0SETB TR0第三节第三节 中断处理过程中断处理过程中断处理过程可分三个阶段:中断响应、中断处理、中断返回中断处理过程可分三个阶
19、段:中断响应、中断处理、中断返回一、中断响应一、中断响应响应条件有中断源发出中断申请有中断源发出中断申请中断总允许位中断总允许位EA=1EA=1中断源的中断允许位为中断源的中断允许位为1 1响应受阻CPUCPU正在执行一个同级或高级的中断服务正在执行一个同级或高级的中断服务不是正在执行的指令的最后一个周期不是正在执行的指令的最后一个周期正在执行正在执行RETIRETI或对或对IEIE、IPIP进行读进行读/ /写写二、中断处理二、中断处理中断处理中断处理(中断服务中断服务)程序从入口地址开始执行,直到返回程序从入口地址开始执行,直到返回指令指令“RETI”为止,这个过程称为为止,这个过程称为“
20、中断处理中断处理”。此过程。此过程一般包括两部分内容,一是保护现场,二是处理中断请求。一般包括两部分内容,一是保护现场,二是处理中断请求。三、中断返回三、中断返回中断返回是指中断服务完成后,计算机返回到断点(即原中断返回是指中断服务完成后,计算机返回到断点(即原来断开的位置),继续执行原来的程序。来断开的位置),继续执行原来的程序。中断返回由专门的中断指令中断返回由专门的中断指令“RETI”实现,该指令的功能实现,该指令的功能是把断点地址取出,送回到程序计数器是把断点地址取出,送回到程序计数器PC中去。中去。四、中断请求的撤除四、中断请求的撤除CPUCPU响应某中断请求后,在中断返回前,应撤销
21、该中断请求,响应某中断请求后,在中断返回前,应撤销该中断请求,否则会引起另一次中断。否则会引起另一次中断。外部中断:一旦输入信号有效,则向外部中断:一旦输入信号有效,则向CPU申请中断并且使申请中断并且使 IE0 (IE1) =1,在边沿触发申请中断方式下,由硬在边沿触发申请中断方式下,由硬 件复位;件复位;在电平触发申请中断方式下,软件与在电平触发申请中断方式下,软件与 硬件均不能清除中断标志,必须在中断返回前硬件均不能清除中断标志,必须在中断返回前 撤销引脚上的低电平。撤销引脚上的低电平。定时定时/计数器:计数器:TF0 (TF1)=1请求中断处理。请求中断处理。 使用中断时由硬件清零,在
22、查询方式可由软件清零。使用中断时由硬件清零,在查询方式可由软件清零。串行中断:串行中断:RI或或TI1请求中断,响应中断后必须软件清零。请求中断,响应中断后必须软件清零。例:用中断的方法编程使例:用中断的方法编程使P1.0P1.0和和P1.1P1.1分别输出周期为分别输出周期为2ms2ms和和 500us500us的方波。的方波。 O OR RG G 0 00 00 00 0H HL LJ JM MP P M MA AI IN NO OR RG G 0 00 00 0B BH HL LJ JM MP P T TT T1 1M MO OV V T TM MO OD D, , # #0 03 3H
23、 HM MO OV V T TL L0 0 , , # #0 06 6H HS SE ET TB B T TR R0 0M MO OV V R R0 0 , ,# #4 4M MO OV V I IE E , ,# #8 82 2H HS SJ JM MP P $ $P PU US SH H P PS SW WM MO OV V T TL L0 0 , , # #0 06 6H HC CP PL L P P1 1. .1 1D DJ JN NZ Z R R0 0, ,L L2 2M MO OV V R R0 0, ,# #4 4C CP PL L P P1 1. .0 0P PO OP P P
24、 PS SW WS SE ET TB B T TR R0 0R RE ET TI IM MA AI IN N: :T TT T1 1: :L L2 2: :O OR RG G 0 00 00 00 0H HL LJ JM MP P M MA AI IN NO OR RG G 0 00 00 0B BH HL LJ JM MP P T TT T1 1M MO OV V T TM MO OD D, , # #0 03 3H HM MO OV V T TL L0 0 , , # #0 06 6H HS SE ET TB B T TR R0 0M MO OV V R R0 0 , ,# #4 4M M
25、O OV V I IE E , ,# #8 82 2H HS SJ JM MP P $ $C CL LR R T TR R0 0P PU US SH H P PS SW WM MO OV V T TL L0 0 , , # #0 06 6H HC CP PL L P P1 1. .1 1D DJ JN NZ Z R R0 0, ,L L2 2M MO OV V R R0 0, ,# #4 4C CP PL L P P1 1. .0 0P PO OP P P PS SW WS SE ET TB B T TR R0 0R RE ET TI IM MA AI IN N: :T TT T1 1: :L
26、 L2 2: :例:用中断的方法编程设计一个秒闪电路,其功能是发光二极管例:用中断的方法编程设计一个秒闪电路,其功能是发光二极管LEDLED每每 次闪亮次闪亮1s1s,即亮,即亮600ms600ms、灭、灭400ms.400ms.主频为主频为12MHZ.12MHZ.设设P1.0P1.0接发光二极接发光二极 管管O OR RG G 0 00 00 00 0H HL LJ JM MP P E EX X8 8_ _9 9O OR RG G 0 00 00 0B BH HL LJ JM MP P T TI IM ME ER R0 0_ _S SU UB BO OR RG G 0 00 03 30 0H
27、 HM MO OV V T TM MO OD D , ,# #0 01 1H HM MO OV V T TH H0 0, ,# #3 3C CH HM MO OV V T TL L0 0, ,# #0 0B B0 0H HS SE ET TB B E ET T0 0S SE ET TB B E EA AM MO OV V R R2 2, , # #0 00 0H HS SE ET TB B T TR R0 0L LJ JM MP P $ $P PU US SH H P PS SW WI IN NC C R R2 2C CJ JN NE E R R2 2, , # #0 04 4H H, ,S
28、SU UB B1 1S SE ET TB B P P1 1. .0 0C CJ JN NE E R R2 2, ,# #1 10 0, ,T TE EN ND DC CL LR R P P1 1. .0 0M MO OV V R R2 2, ,# #0 0M MO OV V T TH H0 0, ,# #3 3C CH HM MO OV V T TL L0 0, ,# #0 0B B0 0H HS SE ET TB B T TR R0 0P PO OP P P PS SW WR RE ET TI I E EX X8 8_ _9 9: :T TI IM ME ER R0 0_ _S SU UB
29、B: :S SU UB B1 1: :T TE EN ND D: :TIMER0_SUB:CLR TROTIMER0_SUB:CLR TRO PUSH PSW PUSH PSW INC R2 INC R2 CJNE R2,#8H,SUB1 CJNE R2,#8H,SUB1 CLR P1.0 CLR P1.0 SUB1: CJNE R2,#14H,TEND SUB1: CJNE R2,#14H,TEND SETB P1.0 SETB P1.0 MOV R2 , #0 MOV R2 , #0 TEND: MOV TH0,#3CH TEND: MOV TH0,#3CH MOV TL0,#0B0H M
30、OV TL0,#0B0H SETB TR0 SETB TR0 POP PSW POP PSW RETI RETI1 12 23 34 45 56 67 78 89 91 10 01 11 11 12 21 13 31 14 41 15 51 16 61 17 71 18 81 19 92 20 02 21 12 22 22 23 32 24 42 25 52 26 62 27 72 28 82 29 93 30 03 31 13 32 23 33 33 34 43 35 53 36 63 37 73 38 83 39 94 40 0P P1 1. .0 0P P1 1. .1 1P P1 1.
31、 .2 2P P1 1. .3 3P P1 1. .4 4P P1 1. .5 5P P1 1. .6 6P P1 1. .7 7P P0 0. .0 0/ /A AD D0 0P P0 0. .1 1/ /A AD D1 1P P0 0. .2 2/ /A AD D2 2P P0 0. .3 3/ /A AD D3 3P P0 0. .4 4/ /A AD D4 4P P0 0. .5 5/ /A AD D5 5P P0 0. .6 6/ /A AD D6 6P P0 0. .7 7/ /A AD D7 7P P3 3. .0 0P P3 3. .1 1P P3 3. .2 2P P3 3.
32、 .3 3P P3 3. .4 4P P3 3. .5 5P P3 3. .6 6P P3 3. .7 7P P2 2. .7 7/ /A AD D1 15 5P P2 2. .6 6/ /A AD D1 14 4P P2 2. .5 5/ /A AD D1 13 3P P2 2. .4 4/ /A AD D1 12 2P P2 2. .3 3/ /A AD D1 11 1P P2 2. .2 2/ /A AD D1 10 0P P2 2. .1 1/ /A AD D9 9P P2 2. .0 0/ /A AD D8 8R RS ST TR RX XD D/ /T TX XD D/ /I IN
33、 NT T0 0/ /I IN NT T1 1/ /W WR R/ /R RD D/ /T T0 0/ /T T1 1/ /V Vc cc cX XT TA AL L1 1X XT TA AL L2 2V Vs ss sE EA A/ /V Vp pp pA AL LE E/ /P PR RO OG GP PS SE EN N8 80 0C C3 31 18 80 0C C5 51 18 87 7C C5 51 1第四节第四节 扩充外部中断源扩充外部中断源一、利用定时器扩充法一、利用定时器扩充法80C5180C51单片机有两个定时器,具有两个内部中断标志和外部计单片机有两个定时器,具有两个内部
34、中断标志和外部计数引脚。将其设置为计数方式,计数初值定为满量程,当从外数引脚。将其设置为计数方式,计数初值定为满量程,当从外部计数引脚输入一个下降沿,计数器加部计数引脚输入一个下降沿,计数器加1 1产生溢出中断。因而产生溢出中断。因而可把外部计数引脚可把外部计数引脚T0(P3.4)T0(P3.4)或或T1(P3.5)T1(P3.5)作为扩充中断输入,定作为扩充中断输入,定时器的溢出中断标志和服务程序作为扩充中断源的标志和服务时器的溢出中断标志和服务程序作为扩充中断源的标志和服务程序。程序。80C51单片机有两个外部中断请求输入端80C51单片机有两个外部中断请求输入端 INT0INT0INT1
35、INT1和和。 在实际使用中,在实际使用中,若外部中断源超过两个,就需要扩充外部中断源。以下介绍两种比若外部中断源超过两个,就需要扩充外部中断源。以下介绍两种比较简单可行的方法较简单可行的方法MOV TMOD , #06HMOV TL0 , #0FFHMOV TH0 , #0FFHSETB TR0SETB ET0SETB EA8 80 0C C5 51 11 12 21 13 31 14 41 15 5P P3 3. .2 2P P3 3. .3 3P P3 3. .4 4P P3 3. .5 5I IN NT T0 0I IN NT T1 1T T0 0T T1 1扩扩 充充中中 断断 源源
36、单单片片机机 将将T0T0(P3.4P3.4)扩充为外部中断源输入端)扩充为外部中断源输入端二、中断和查询结合法二、中断和查询结合法I IN NT T0 0I IN NT T1 15 5. .1 1k k+ +5 5V VP P1 1. .3 3P P1 1. .2 2P P1 1. .1 1P P1 1. .0 0X XI I0 0X XI I1 1X XI I2 2X XI I3 3X XI I4 48 80 0C C5 51 1线线与与O OC C门门通过外部中断通过外部中断1 1扩展出扩展出4 4个外个外部中断源引脚部中断源引脚, ,这样加上外这样加上外部中断部中断0 0,单片机共有,
37、单片机共有5 5个中个中断源断源XI0XI0XI4XI4,其中,其中XI0XI0的的优先级最高,至于优先级最高,至于XI1XI1XI4XI4的优先级则在外部中断的优先级则在外部中断1 1服服务程序中,由软件按人为设务程序中,由软件按人为设定的顺序(优先级)查询外定的顺序(优先级)查询外部中断哪位是高电平部中断哪位是高电平(XI1(XI1XI4XI4高电平表示申请中断高电平表示申请中断),),然后进入该中断处理。然后进入该中断处理。1 1的中断服务程序如下:(优先级XI1最高,其次是XI4)的中断服务程序如下:(优先级XI1最高,其次是XI4)INT1INT1SAV1: XI1中断服务程序中断服
38、务程序 AJMP DISUBSAV2: XI2中断服务程序中断服务程序 AJMP DISUBSAV3: XI3中断服务程序中断服务程序 AJMP DISUB SAV4: XI4中断服务程序中断服务程序 AJMP DISUBI IN NT T0 0I IN NT T1 15 5. .1 1k k+ +5 5V VP P1 1. .3 3P P1 1. .2 2P P1 1. .1 1P P1 1. .0 0X XI I0 0X XI I1 1X XI I2 2X XI I3 3X XI I4 48 80 0C C5 51 1线线与与O OC C门门的中断服务程序如下:(优先级XI1最高,其次是X
39、I4)的中断服务程序如下:(优先级XI1最高,其次是XI4)INT1INT1EXINT: PUSH PSW PUSH ACC JB P1.0 , SAV1 JB P1.1 , SAV2 JB P1.2 , SAV3 JB P1.3 , SAV4DISUB: POP ACC POP PSW RETISAV1: XI1中断服务程序中断服务程序 AJMP DISUBSAV2: XI2中断服务程序中断服务程序 AJMP DISUBSAV3: XI3中断服务程序中断服务程序 AJMP DISUB SAV4: XI4中断服务程序中断服务程序 AJMP DISUB第五节第五节 中断系统的应用中断系统的应用本
40、节将通过两机通信的实例,说明中断系统的应用。通过实例,可本节将通过两机通信的实例,说明中断系统的应用。通过实例,可以了解中断控制和中断服务程序的设计思想及注意的问题。以了解中断控制和中断服务程序的设计思想及注意的问题。例:已知甲、乙两台例:已知甲、乙两台80C5180C51单片机所使用的晶振均为单片机所使用的晶振均为11.0592MHZ.11.0592MHZ.现要现要 求两机之间进行串行通信求两机之间进行串行通信, ,甲机发送,乙机接收甲机发送,乙机接收. .传输波特率定为传输波特率定为 96009600波特波特. .甲机以甲机以78H,77H78H,77H中的内容为发送数据的起始地址中的内容
41、为发送数据的起始地址, ,以以76H76H 75H 75H中的内容为发送数据的末地址。甲机首先发送数据的起始地址中的内容为发送数据的末地址。甲机首先发送数据的起始地址 和末地址,然后再开始发送数据和末地址,然后再开始发送数据. .乙机接收到的第乙机接收到的第1 12 2字节作为存字节作为存 放接收数据的起始地址,第放接收数据的起始地址,第3 34 4字节作为存放接收数据的末地址字节作为存放接收数据的末地址 址,第址,第5 5字节为起始数据。(地址用查询方式发送,数据用中断发字节为起始数据。(地址用查询方式发送,数据用中断发 送)送) 甲机发送程序甲机发送程序ORG 2000HMOV TMOD
42、, 20H20H-定时定时/计数器计数器T1的工作方式为的工作方式为软件启动软件启动、定时定时、方式方式2MOV TH1 , #0FDH-波特率为波特率为9600波特,晶振为波特,晶振为11.0592查表可得查表可得T1初始值为初始值为FDHMOV TL1 , #0FDH-方式方式2为初始值自动重装的为初始值自动重装的8位定时位定时/计数器计数器SETB EA-打开总开关打开总开关CLR ES-关闭分开关。发送地址时用查询方式,因此禁止串行中断关闭分开关。发送地址时用查询方式,因此禁止串行中断SETB TRI串行通信的串行通信的“发动机设置发动机设置”及及“启动发动机(启动发动机(SETB T
43、R1)”MOV SCON , #40H-串行口置工作方式串行口置工作方式1(8位数据位位数据位,1位起始位位起始位,1位中止位位中止位,共共10位位)CLR TI-发送前,清除串行发送中断标志(每次发送前必做的工作)发送前,清除串行发送中断标志(每次发送前必做的工作)MOV SBUF , 78H-把数据块首地址的高把数据块首地址的高8位发送出去位发送出去JNB TI , $-等待发送完毕等待发送完毕CLR TIMOV SBUF , 77H-把数据块首地址的低把数据块首地址的低8位发送出去位发送出去JNB TI , $CLR TIMOV SBUF , 76H-把数据块末地址的高把数据块末地址的高
44、8位发送出去位发送出去JNB TI , $CLR TIMOV SBUF , 75H-把数据块末地址的低把数据块末地址的低8位发送出去,由于是最位发送出去,由于是最 后一个地址,发送完后就后一个地址,发送完后就 要发送数据,按照要发送数据,按照 题意数据用中断方式发送,因此发送最后一个题意数据用中断方式发送,因此发送最后一个 地址不用查询方式来判断是否发送完毕,而是地址不用查询方式来判断是否发送完毕,而是 等待发送完毕串行口自动申请中断,进入中断等待发送完毕串行口自动申请中断,进入中断 服务程序完成数据传送任务。另外,传送速率服务程序完成数据传送任务。另外,传送速率 为为9600波特率,也就是传
45、送一位所需的时间为波特率,也就是传送一位所需的时间为 约为约为104us(若晶振为若晶振为11.0592MHZ,执行一条指,执行一条指 令的时间最多为令的时间最多为4us)SETB ESSJMP $以上为甲机发送程序的主程序,完成发送数据块地址并进入中断服务程序的任务。以上为甲机发送程序的主程序,完成发送数据块地址并进入中断服务程序的任务。以下为承担发送数据的中断服务程序,串行口的中断服务程序的入口地址为以下为承担发送数据的中断服务程序,串行口的中断服务程序的入口地址为0023HORG 0023HLJMP 2000HORG 2000HESS: PUSH DPL PUSH DPH PUSH A
46、MOV DPH , 78H MOV DPL , 77H MOVX A , DPTR CLR TI MOV SBUF , A以上发送的是数据块的第一个数据,所需时间为以上发送的是数据块的第一个数据,所需时间为8 8104104832us832us,本程序不设问答机制,本程序不设问答机制,即乙机接收完毕后,给甲机发送一个接收完毕信号,然后甲机再启动发送第二个数据。即乙机接收完毕后,给甲机发送一个接收完毕信号,然后甲机再启动发送第二个数据。 MOV A , DPH CJNE A , 76H ,EN1-不相等则证明尚未传送完毕,应该重新修改地址指不相等则证明尚未传送完毕,应该重新修改地址指 针指向数据
47、块的下一个数据,因此针指向数据块的下一个数据,因此ENI程序块完成程序块完成 的是修改工作。的是修改工作。 MOV A , DPL CJNE A , 75H , EN1 CLR ES -A中的内容与中的内容与75H中的内容相等,证明数据全部传送完中的内容相等,证明数据全部传送完 毕毕,所以关闭串行中断所以关闭串行中断 ESC: POP A POP DPH POP DPL-注意出栈顺序注意出栈顺序 RETI EN1: INC 77H MOV A , 77H-77H单元中的内容加单元中的内容加1有可能等于有可能等于0,此时向高位进位此时向高位进位 JNZ EN2 INC 78HEN2: SJMP
48、ESC以上中断服务程序块中,以上中断服务程序块中,ESSESS部分完成的是数据的传送和地址的比部分完成的是数据的传送和地址的比较;较;EN1EN1完成的是地址的修改;完成的是地址的修改;ESCESC部分完成的是恢复现场退出中部分完成的是恢复现场退出中断服务程序。值得注意的是执行完以上中断服务程序的时间因该断服务程序。值得注意的是执行完以上中断服务程序的时间因该不足不足832us,832us,也就是说在中断服务程序中执行也就是说在中断服务程序中执行MOV SBUF , AMOV SBUF , A后,要后,要经过经过地址比较地址比较、修改地址修改地址、恢复现场恢复现场三项任务才能退出中断等待三项任务才能退出中断等待下一次的中断申请,也就是说执行三项任务的时间不能超过下一次的中断申请,也就是说执行三项任务的时间不能超过832us832us(这个要求很容易办到)(这个要求很容易办
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地球一小时日倡议书
- 孝为先的演讲稿
- 孝道的演讲稿
- 家长代表发言稿
- 投递员工作总结(合集10篇)
- 腹腔镜下胆囊切除护理查房
- 2026年房地产经纪人考前冲刺卷
- 山东2026年消防工程师《消防安全技术综合能力》真题解析版
- 2026年农贸市场经营户食品安全知识培训计划
- 公司信用风险管理办法
- 算电协同关键技术 (课件)
- 2026年甘肃兰州市初二学业水平地理生物会考考试试题及答案
- 2026年高考考前预测卷-化学02(上海卷)(考试版及全解全析)
- 2026年及未来5年市场数据中国实体书店行业市场发展现状及投资前景展望报告
- 2025-2030猪肉加工产业链行业市场现状供需分析及投资评估规划分析研究报告
- 车间员工计件薪酬方案范本
- 高炉煤气干法精脱硫技术规范
- 天平使用步骤课件
- 高原铁路隧道供氧系统管道施工
- 2026年材料员之材料员基础知识考试题库300道附参考答案【考试直接用】
- 雨课堂学堂在线学堂云《俄罗斯文化艺术赏析(北京联合大学 )》单元测试考核答案
评论
0/150
提交评论