《第十三次课共2学时.docx》由会员分享,可在线阅读,更多相关《第十三次课共2学时.docx(11页珍藏版)》请在第一文库网上搜索。
1、第十三次课(共2学时)一、授课题目:STC15F2K60S2的中断系统(下)二、教学目标和任务:1 .掌握STC15F2K60S2的中断系统中断标志位管理、中断允许管理、中断优先级的管理;2 .掌握中断函数编写方法;3 .充分掌握外部中断0、外部中断1的触发条件,能利用外部中断0、外部中断1编写程序实现简单的现象。三、教学重难点:重点:掌握STCI5F2K60S2的中断系统中断标志位管理、中断允许管理、中断优先级的管理;利用外部中断0、外部中断1编写程序实现简单的现象。难点:利用外部中断0、外部中断1编写程序实现简单的现象。四、授课过程:回顾:中断相关定义;中断系统技术要求;STC15F2K6
2、0S2的中断系统结构;外部中断0、定时/计数器中断0、外部中断1、定时/计数器中断1、串口中断、AD转换中断的中断触发条件、中断标志;中断的优先级、自然优先级;中断响应过程。0.引入本节课我们将学习中断的管理以及外部中断0、外部中断1的编程方法。1 .中断标志的记录外部中断和定时计数器中断的中断标志存在特殊功能寄存器TeON(88H)中,如表所示。TF1TR1TFOTROIE1IT1TEOTTOT1溢T1启/TO溢To启/INT1INT1INT1INT1出标志停出标志停请求触发请求触发从低到高两位一组,分别控制INT0、INTKTO、T1,可位寻址1) ITO和IT1为外中断INTO和INT1
3、中断触发方式选择,若选下降沿触发则相应位置1;若选双边沿触发,IT相应位置0。2) IEi为外部中断标志,复位后IEi=O,若双边沿(ITi=O)或下降沿(ITi)来时,IEi自动置位为1。3) TRO和TR1为定时器TO和口工作启动和停止控制。4)当定时/计数器溢出时置位TFO、TF10串口1中断控制寄存SCoN(98H)-TIIR-发送完一帧接收完一帧A/D转换中断中断控制寄存器ADC_CONTR(BCH)ADC_POWERSPEED1SPEEDOADC.F1AGADCSTRATCHS1CHS1CHSOAD转换完2.中断允许控制位当中断触发后,中断允许位自动置位,STC15F2K60S2的
4、十四个中断源的中断允许标志位分别位于三个SFR,如下表所示:B7B6B5B4B3B2B1BOIEA8IIEAE1VDEADCESET1EX1ETOETOIE2AFH-ET2ESPIES2INT_C1KO8FH-EX4EX3EX2-一-1)值为1表示允许响应相应中断,为O表示不允许响应相应中断;2)复位后所有中断允许位均为0;4) EA为总中断,只有EA=I,才可以响应中断;5) 一个中断要处于允许状态,需要总中断为1,且响应中断允许位为1。注意:需要掌握的中断允许位有EA、EADC、ES、EThEX1、ETO、EXO。例题1:打开外部中断0,并将其设置为下降沿触发。EA=1;EXO=1;IT1
5、=13.中断优先级管理B7B6B5B4B3B2B1BOIPB8HPCCAP1VDPADCPSPT1PX1PTOPXOIP2B5H-PSPIPS21)2个中断优先级0和1,0为低优先级,1为高优先级2)可实现二级嵌套3)优先级为1的中断源高于优先级为O的中断源,当中断源级别相同时,按照自然优先级判别,从高到低依次为INTO、TO、INTKTK串口1中断、A/D转换中断4)自然优先级是硬件决定的。注意:需要掌握的中断优先级位有PADC、PS、PT1、PX1、PTO、PXO。例题2:打开串口1中断,优先级设置为1,打开TO中断,优先级设置为0。EA=1ES=1ETO=1PS=1PTO=O;3 .中断
6、函数的编写中断服务函数的一般形式为:函数类型函数名(形式参数表)in1erup1n(USingn1)函数类型需要时void,不返回值。参数列表Void,不传递参数。关键字in1errup1后面的n是中断号,单片机,n的取值为0-16,编译器将程序放在8Xn+3处,以便中断触发后从该处调用相应函数。关键字USing后面的m用来选择4个工作寄存器区。USing是一可选项。4 .外部中断的应用例题3:如图所示,在单片机P1口上接有8只1EDo在外部中断0输入引脚(P3.2)接一只按钮开关Kh要求将外部中断0设置为下降沿触发。程序启动时,P1口上的8只1ED全亮。每按一次按钮开关K1,让低4位的1ED
7、与高4位的1ED交替闪烁5次。然后从中断返回,控制8只1ED再次全亮。分析:P3.2引脚上按键按下,会有一个下降沿,将触发外部中断0,因此我们在主函数中打开外部中断0,将其设置为下降沿触发,再点亮8只1ED灯,中断函数中高低四位交替闪烁五次。程序如下:inc1ude#defineucharunsignedchar#defineuintunsignedintvoidDe1ay(uinti)延时函数DeIay(),i形式参数(uintj;for(:i0;i-)for(j=0;j333;j+)voidmain()主函数(EA=I;总中断允许EXO=I;允许外部中断0中断ITO=I;选择外部中断0为跳
8、沿触发方式whi1e(1)循环P1=O;)/PI口的8只1ED全亮)Voidin1()interrupt0/外中断0的中断服务函数ucharm;for(m-0;m5;m+)交替闪烁5次(P1=OxOf;低4位1ED灭,高4位1ED亮De1ay(400);延时P1=OxfO;高4位1ED灭,低4位1ED亮De1ay(400);延时)例题4:如图,在单片机P1口上接有8只1EDo在外部中断0输入引脚(P3.2)接有一只按钮开关K1o在外部中断1输入引脚(P3.3)接有一只按钮开关K2o要求K1和K2都未按下时,P1口的8只1ED呈流水灯显示,仅K1(P3.2)按下再松开时,上下各4只1ED交替闪烁
9、10次,然后再回到流水灯显示。如果按下再松开K2(P3.3)时,P1口的8只1ED全部闪烁10次,然后再回到流水灯显示。设置两个外中断的优先级相同。分析:主程序中开外部中断0、外部中断1设置为下降沿触发,再实现流水灯,外部中断0函数中,交替闪烁10次,外部中断1函数中,全部闪烁10次。参考程序如下:inc1udedefineucharunsignedchar#defineuintunsignedintvoidDe1ay(uinti)(ucharj:for(;i0;i一)for(j=0;j125;j+)voidmain()主函数(ucharcodedisp1ay9-0xff,Oxfe,Oxfd,
10、Oxfb,0xf7,Oxef,Oxdf,Oxbf,0x7f);流水灯显示数据数组unsignedinta;EA=I;/总中断允许EXO=I;允许外部中断。中断EX1=I;允许外部中断1中断ITO=1;选择外部中断0为跳沿触发方式IT1=I;选择外部中断1为跳沿触发方式PXO=O;PX1=O;for(;)(for(a=0;a9;a+)De1ay(500);PFdisp1aya;)Voidin1isr(void)interrup10外中断。的中断服务函数ucharn;for(n=0jn10;n+)高、低4位显示10次P1=OxOf;低4位1ED灭,高4位1ED亮De1ay(500);延时P1=Ox
11、fO;高4位1ED灭,低4位1ED亮De1ay(500);延时Voidin11isr(VOid)in1errup12/夕卜中断1中断月艮务函数ucharm;闪烁显示10次全灭延时全亮延时P1=Oxff;De1ay(500);P1=O;De1ay(500);)五、作业1、P3.2P3.3上接有按键,请用外部中断及按键消抖防误触发程序分别编程实现可加减循环计数器。要求用数码管显示,并画出整个电路图。2、P3.2P3.3上接有按键,请用外部中断及按键消抖防误触发程序分别编程实现按键控制不同花色1ED显示。要求画出整个电路图。3、P3.2P3.3上接有按键,请用中断程序实现VaIUe初值100.00,
12、按下按键分别加减0.25。数码管显示。六、参考文献1 .丁向荣编,单片机微机原理与接口技术(第2版),北京:电子工业出版社,2018.2 .张毅刚编,单片机原理及应用:C51编程+Proieus仿真(第2版),北京:高等教育出版社,2016.3 .丁元杰编,单片微机原理及应用(第三版),北京:机械工业出版社,2011.4 .郭文川编,MCS-51单片机原理接口及应用,北京:电子工业出版社,2013.5 .周航慈编,单片机应用程序设计技术(修订版),北京:北京航天航空大学出版社,2002.6 .严洁编,单片机原理及其接口技术,北京,机械工业出版社,2010.七、课后记1本节课介绍了外部中断编程方法,从硬件结构出发,使同学们在掌握中断原理的基础上,理解编程语句。7 .将编程语句总结为固定套路,方便同学们使用。8 .通过分组讨论作答,加深理解,巩固知识。