(本科)V3第6章80C51的中断系统及定时计数器.ppt
《(本科)V3第6章80C51的中断系统及定时计数器.ppt》由会员分享,可在线阅读,更多相关《(本科)V3第6章80C51的中断系统及定时计数器.ppt(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、v课程主讲人:vV3V3第第6 6章章80C5180C51的中断系统及定时计数的中断系统及定时计数器器80C5180C51单片机的中断系统单片机的中断系统6.180C5180C51单片机的中断处理过程单片机的中断处理过程6.280C5180C51单片机的定时单片机的定时/ /计数器计数器6.380C52的定时的定时/计数器计数器26.4应用案例应用案例-简易秒表计时器简易秒表计时器6.5第第6 6章章 单片机的中断系统及定时单片机的中断系统及定时/ /计数器计数器2022-5-122022-5-1236.16.1 80C5180C51单片机的中断系统单片机的中断系统 中断的概念中断的概念6.1
2、.1 80C516.1.1 80C51中断系统的结构中断系统的结构v CPU进行工作A时发生了事件B,请求CPU马上处理v CPU暂时中断当前工作A,转去处理事件Bv 事件B处理完后,回到工作A被中断的地方继续处理A工作v 中断源中断源v 中断请求中断请求v 中断服务中断服务v 中断返回中断返回v 中断系统中断系统中断的优点中断的优点v 利用率高利用率高v 实时性强实时性强v 可靠性好可靠性好 2022-5-122022-5-124v 80C51 80C51中断系统的结构中断系统的结构5 5个中断源、个中断源、2 2个优先级个优先级2022-5-122022-5-125 中断源6.1.2 80
3、C516.1.2 80C51的中断源的中断源v外部中断外部中断0 0(INT0INT0)v外部中断外部中断1 1(INT1INT1)vT0T0溢出中断(溢出中断(TF0TF0)vT1T1溢出中断(溢出中断(TF1TF1)v串行口中断(串行口中断(RIRI或或TITI)2022-5-122022-5-126 触发方式设置及中断标志触发方式设置及中断标志 76543210TCONTF1TR1TF0TR0IE1IT1IE0IT0字节地址:字节地址:88H 电平方式(电平方式(ITx=0ITx=0),),INTxINTx引脚引脚低电平低电平时时IEx=1IEx=1,响应中响应中断后断后IExIEx不自
4、动清不自动清0 0(INTxINTx引脚状态)。引脚状态)。 边沿方式(边沿方式(ITx=1ITx=1),),INTxINTx引脚引脚负跳变负跳变时时IEx=1IEx=1,响应中响应中断后断后IExIEx自动清自动清0 0。v 外部中断标志外部中断标志IE1IE1、IE0IE0(用(用IExIEx表示)表示)2022-5-122022-5-127两种触发方式比较:两种触发方式比较:v 电平方式时,电平方式时, INTxINTx低电平必须保持到响应时,否则就会低电平必须保持到响应时,否则就会漏掉;在中断服务结束前,漏掉;在中断服务结束前,INTxINTx低电平必须撤除,否则中断低电平必须撤除,否
5、则中断返回之后将再次产生中断。返回之后将再次产生中断。 例,例,82558255的中断请求线在接受读或写操作后即被复位,因的中断请求线在接受读或写操作后即被复位,因此以其去请求电平触发方式的中断比较方便。此以其去请求电平触发方式的中断比较方便。v 边沿方式时,采样到有效下降沿后,在边沿方式时,采样到有效下降沿后,在IExIEx中将锁存一个中将锁存一个1 1。若。若CPUCPU暂时不能响应,申请标志也不会丢失,直到响应时暂时不能响应,申请标志也不会丢失,直到响应时才清才清0 0。 例,例,ADC0809ADC0809的转换结束信号的转换结束信号EOCEOC为正脉冲,经反相后就可为正脉冲,经反相后
6、就可以作为以作为80C5180C51的的INTxINTx信号信号 。2022-5-122022-5-128 SCONSCON的中断标志的中断标志v 溢出中断标志溢出中断标志TF1TF1、TF0TF0(用(用TFxTFx表示)表示) 溢出中断请求标志溢出中断请求标志TFxTFx ,TxTx启动后就开始由初值进行加启动后就开始由初值进行加1 1计数,直至最高位产生溢出使计数,直至最高位产生溢出使TFx=1TFx=1向向CPUCPU请求中断。请求中断。CPUCPU响应中断后响应中断后TFxTFx自动清自动清0 0。 76543210SCONTIRI字节地址:字节地址:98HRIRI:串口:串口接收接
7、收中断标志,响应中断时中断标志,响应中断时不能自动清除不能自动清除 TITI:串口:串口发送发送中断标志,响应中断时中断标志,响应中断时不能自动清除不能自动清除 2022-5-122022-5-129 中断允许控制中断允许控制6.1.3 80C516.1.3 80C51中断的控制中断的控制中断源的开放和屏蔽由中断源的开放和屏蔽由IEIE控制(控制(1 1,开放;,开放;0 0,禁止,禁止) 76543210IEEAESET1EX1ET0EX0字节地址:字节地址:A8Hv EX0:外中断外中断0允许允许 v ET0:T0中断允许中断允许 v EX1:外中断外中断1 1允许允许 v ET1:T1中
8、断允许中断允许v ES :串口中断允许串口中断允许v EA :CPU中断允许中断允许 2022-5-122022-5-1210 中断优先级控制中断优先级控制中断优先级由中断优先级由IPIP控制(控制(1 1,高级;,高级;0 0,低级,低级) 76543210IPPSPT1PX1PT0PX0字节地址:字节地址:B8Hv PX0:外中断外中断0优先级优先级 v PT0:T0中断中断优先级优先级v PX1:外外中断中断1 1优先级优先级v PT1:T1中断中断优先级优先级v PS :串口中断串口中断优先级优先级同一优先级的自然顺序:同一优先级的自然顺序:自高至低:自高至低:INT0INT0、TOT
9、O、INT1INT1、T1T1、串口。、串口。 2022-5-122022-5-1211 中断优先级遵循的原则中断优先级遵循的原则v几个中断同时申请,先响应高级的中断几个中断同时申请,先响应高级的中断 v正进行的中断服务,同级或低级中断不能对其正进行的中断服务,同级或低级中断不能对其中断,但可以被高级中断所中断。中断,但可以被高级中断所中断。 为此,中断系统内设有对应高、低为此,中断系统内设有对应高、低2 2个个优先级状优先级状态触发器态触发器(用户不能寻址)。(用户不能寻址)。 状态触发器的复位由中断返回指令状态触发器的复位由中断返回指令RETIRETI控制。控制。2022-5-122022
10、-5-12126.26.2 80C5180C51单片机中断处理过程单片机中断处理过程6.2.1 6.2.1 中断响应条件和时间中断响应条件和时间 v 中断响应条件中断响应条件v 有中断请求有中断请求 v 相应的中断允许位为相应的中断允许位为1 1v CPUCPU开中断(即开中断(即EA=1EA=1) 遇下面情况之一将不被响应(遇下面情况之一将不被响应(此间中断条件失效,中断丢失此间中断条件失效,中断丢失) v 正在处理同级或高级中断正在处理同级或高级中断 v 当前查询周期不是所执行指令的最后一个机器周期当前查询周期不是所执行指令的最后一个机器周期 v 正在执行正在执行RETIRETI或或访问访
11、问IEIE或或IPIP 的指令的指令 2022-5-122022-5-1213v 中断响应时间中断响应时间中断响应至少需要中断响应至少需要3 3个完整的机器周期个完整的机器周期(3 38 8个)!个)!受阻时要附加受阻时要附加3 3 5 5个机器周期(个机器周期(无同级或高级中断正进行无同级或高级中断正进行) v 查询周期不是当前指令的最后机器周期查询周期不是当前指令的最后机器周期( (如如MULMUL,+3+3) )v 查询周期恰逢查询周期恰逢RETIRETI类指令类指令( (且后跟且后跟MULMUL指令指令+5+5) )2022-5-122022-5-12146.2.2 6.2.2 中断响
12、应过程中断响应过程v CPUCPU响应中断过程响应中断过程v 将相应优先级状态触发器置将相应优先级状态触发器置1 1(阻断后来同级或低级中断阻断后来同级或低级中断 )v 执行硬件执行硬件LCALLLCALL指令(指令(PCPC入栈,中断服务程序入口址送入栈,中断服务程序入口址送PCPC )v 执行中断服务程序执行中断服务程序 v 编写中断服务程序注意编写中断服务程序注意v 中断服务程序入口存放指令中断服务程序入口存放指令LJMPLJMP或或AJMPAJMPv 现场保护与现场恢复现场保护与现场恢复2022-5-122022-5-12156.2.3 6.2.3 中断返回中断返回v 中断服务程序最后
13、指令必须是中断服务程序最后指令必须是RETIRETI,其功能:,其功能: v 将断点从堆栈弹送将断点从堆栈弹送PCPC,CPUCPU从原断点继续执行从原断点继续执行 v 将相应优先级状态触发器清将相应优先级状态触发器清0 0,恢复原来工作状态,恢复原来工作状态v 注意注意v 不能用不能用RETRET代替代替RETRETI I v 中断服务程序中中断服务程序中PUSHPUSH和和POPPOP必须成对使用必须成对使用2022-5-122022-5-12166.2.4 6.2.4 中断程序举例中断程序举例【例例6-16-1】单外部中断源示例单外部中断源示例2022-5-122022-5-1217#i
14、nclude#include#define uchar unsigned charsbit P3_0=P30;uchar xdata in_data30;uchar num;void main(void) IT0=0; EA=1; EX0=1; 主程序:主程序:2022-5-122022-5-1218中断服务程序中断服务程序: : void Ex0_Isr( ) interrupt 0 P3_0=0; /触发器清零,撤销 _nop_; _nop_; P3_0=1; P1=0 xFF; /置P1口为输入 in_datanum=P1; /数据存入外部RAM数组 num+;2022-5-122022
15、-5-1219【例例6-26-2】双外部中断源及中断嵌套双外部中断源及中断嵌套。v系统上电后,数码管循环显示09。当按一下AN1键时,系统进入INT0中断服务程序,暂停主程序的数码管循环显示,dp点亮500ms,然后dp熄灭,中断返回,数码管继续循环显示;当按一下AN2键时,进入INT1中断服务程序,dp闪亮3次,然后中断返回。v设置INT1中断优先级高于INT0,则可以实现中断嵌套,即在INT0中断服务期间,按一下AN2键,进入INT1中断服务程序。2022-5-122022-5-1220解:程序如下:解:程序如下:#include#define uchar unsigned char#de
16、fine uint unsigned intuchar code SegCode = 0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90 ; / 共阳极段码共阳极段码09void DelayMs(uint n) /延时函数延时函数uchar j;while (n-) for (j =125; j0; j-); /1ms12MHz 2022-5-122022-5-1221void main(void) uchar i; IE=0 x85; /开放外部中断和开放外部中断和CPU中断中断 TCON=0 x05; /外部中断设为边沿触
17、发方式外部中断设为边沿触发方式 PX1=1; /INT1设为高优先级设为高优先级 while(1) for(i=0;i10;i+) P2= SegCodei; DelayMs(1); 2022-5-122022-5-1222void EX0_Isr(void) interrupt 0 using 1 P2=P2&0 x7f; /数码管的数码管的dp点亮点亮 DelayMs(30); P2=P2|0 x80; /数码管的数码管的dp熄灭熄灭void EX1_Isr(void) interrupt 2 using 2 P2=P20 x80; /dp位取反,闪亮位取反,闪亮 DelayMs(3);
18、P2=P20 x80; DelayMs(3); P2=P20 x80; DelayMs(3);2022-5-122022-5-1223【例【例6-36-3】多外部中断源示例多外部中断源示例。 有5个外部中断源,中断优先级排队顺序为:XI0、XI1、XI2、XI3、XI4。v当XI1XI4中有一个或几个有效(高电平)时,都会通过 引脚向CPU发出中断请求。在 的中断服务程序中依次查询P1.0P1.3,就可以确定究竟是哪个中断源提出中断请求。 2022-5-122022-5-1224C51语言程序如下:语言程序如下:#include#define uchar unsigned charvoid I
19、NT1_XI1();void INT1_XI2();void INT1_XI3();void INT1_XI4();uchar code SegCode = 0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90 ; / 共阳极段码共阳极段码09sbit P10=P10;sbit P11=P11;sbit P12=P12;sbit P13=P13;2022-5-122022-5-1225void main( ) IT0=0; /外部中断外部中断0为电平触发方式为电平触发方式 IT1=0; /外部中断外部中断1为电平触发方式为电平触
20、发方式 IE=0 x85; /开放外部中断和开放外部中断和CPU中断中断 IP=0 x01; /外部中断外部中断0为高优先级,外部中断为高优先级,外部中断1为低优先级为低优先级 P2=0 x8c; /显示显示“P” while(1);void EX0_Isr(void) interrupt 0 using 1 P2= SegCode0; /显示显示“0”2022-5-122022-5-1226void EX1_Isr(void) interrupt 2 using 2 if(P10=1) INT1_XI1( ); else if(P11=1) INT1_XI2( ); else if(P12=
21、1) INT1_XI3( ); else if(P13=1) INT1_XI4( );void INT1_XI1( ) P2= SegCode1; /显示显示“1”void INT1_XI2( ) P2= SegCode2; /显示显示“2”void INT1_XI3( ) P2= SegCode3; /显示显示“3”void INT1_XI4( ) P2= SegCode4; /显示显示“4”2022-5-122022-5-12276.36.3 80C5180C51单片机的定时单片机的定时/ /计数器计数器v 定时定时/ /计数器的结构计数器的结构基本型:基本型:T0T0,定时、计数;,定时
22、、计数;T1T1,定时、计数、串口波特率发生器。,定时、计数、串口波特率发生器。增强型:增加了增强型:增加了T2T2。6.3.1 6.3.1 定时定时/ /计数器的结构和工作原理计数器的结构和工作原理 v TH1TH1、TL1TL1v TH0TH0、TL0TL0v TCONTCONv TMODTMODv相关寄存器相关寄存器2022-5-122022-5-1228v定时定时/ /计数器的工作原理计数器的工作原理u实质是实质是1616位加位加1 1计数器计数器v 定时器模式时,是对内部定时器模式时,是对内部机器周期机器周期计数。计数值乘以机计数。计数值乘以机器周期就是定时时间器周期就是定时时间 v
23、 计数器模式时,是对计数器模式时,是对外部事件外部事件计数。脉冲由计数。脉冲由T0T0(P3.4P3.4)或或T1T1( (P3.5P3.5) )引脚输入。引脚输入。 注意注意:(:(若若计数值为计数值为N,N,计数初值为计数初值为X)X)溢出信号使溢出信号使TF0TF0或或TF1TF1置置1 1,并发出中断请求,并发出中断请求,1616位时有:位时有: N=65536-X N=65536-X,或,或X=65536-NX=65536-N12MHz12MHz晶振时,计数频率低于晶振时,计数频率低于0.5MHz 0.5MHz 2022-5-122022-5-12296.3.2 6.3.2 定时定时
24、/ /计数器的控制计数器的控制v工作方式寄存器工作方式寄存器TMODTMOD 76543210TMODGATEC/TM1M0GATEC/TM1M0字节地址:字节地址:89Hv GATEGATE:门控位。:门控位。GATEGATE0 0时,只要时,只要TRxTRx为为1 1,就可启动计,就可启动计数器工作;数器工作;GATAGATA1 1时,定时器的启动还要加上时,定时器的启动还要加上INTxINTx引脚引脚为高电平这一条件。为高电平这一条件。 v C/TC/T:模式选择位。:模式选择位。 清清0 0为定时模式,置为定时模式,置1 1为计数方式。为计数方式。v M1M0M1M0:工作方式设置位。
25、可设置四种工作方式:工作方式设置位。可设置四种工作方式( (见下页见下页)。)。2022-5-122022-5-1230M1M0M1M0工作方式工作方式说说 明明0000方式方式0 01313位定时位定时/ /计数器计数器0101方式方式1 11616位定时位定时/ /计数器计数器1010方式方式2 28 8位自动重装定时位自动重装定时/ /计数器计数器1111方式方式3 3T0T0分成两个独立的分成两个独立的8 8位定时位定时/ /计数器;计数器;T1T1此方式此方式停止计数停止计数注意:注意:TMODTMOD不能进行位寻址不能进行位寻址 2022-5-122022-5-1231v控制寄存器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科 V3 80 C51 中断 系统 定时 计数器
限制150内