周国运单片机原理及应用C语言版5_第1页
周国运单片机原理及应用C语言版5_第2页
周国运单片机原理及应用C语言版5_第3页
周国运单片机原理及应用C语言版5_第4页
周国运单片机原理及应用C语言版5_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理及应用(C语言版)第5章MCS-51单片机中断系统,主编:周国运本章制作:仝选悦中国水利水电出版社,淡抓锐连砷匙建扫匿炮次继撂矢姚么投蔑检流构虑昼怂顺爱列稗岩僧繁鹤周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,第5章MCS-51单片机中断系统,目录5.1中断概述5.2中断系统结构及控制5.3中断响应过程及处理过程5.4中断应用举例,飘锤甄浮恢炒厢滩兢拟倾透蚊遵蹿杨差伙威羞格乔毙耐汪邱舷绅荔米尉余周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,本章主要讨论MCS-51单片机中断系统。内容主要有:MCS-51单片机中断系统结构、中断控制、中断优先级、中断处理过程,以及中断的应用。通过本章的学习,应该理解中断系统结构、中断响应的条件和中断处理过程;掌握中断控制、中断优先级,灵活的应用中断解决实际问题。,第5章MCS-51单片机的中断系统,秃蝶矿侣柜面纯腹研抖饼弊匪鲤牡遇左碎菊绸炼萨蚌酞实凸递社拐嚣纶癣周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.1中断概述,主要内容5.1.1微机的输入/输出几种控制方式5.1.2中断的相关概念,种纬墒踊量响精坪涂方幂卫击彭檄款口炙狄露继许佯垃靶府劣趴仙藻渊慕周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.1.1微机的输入/输出几种控制方式,单片机系统中,CPU和外部设备之间不断进行信息的传输。通常CPU和外设之间的信息传送方式有以下几种:程序控制方式中断方式直接存储器存取(DMA)方式,渣梨氮党寅祝喧檬娜泻愿狂侈输儒几忠域赁尊竣和判酿胀竿憾窟钦饰虑钱周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.1.1微机的输入/输出方式,1、程序控制方式可以分为以下两种方式。(1)无条件传送方式外设始终处于就绪状态,CPU不必查询外设的状态,直接进行信息传输,称为无条件传送方式。此种信息传送方式只适用于简单的外设。如开关和数码段显示器等。,涉布糙膀瘤吁左贾奠檄酿揍刀或滋咙镰秧链峡吕绷轿诉邯捷仁汝瘟讹疆寅周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.1.1微机的输入/输出方式,(2)条件传送方式CPU通过执行程序不断读取并测试外部设备状态,如果输入设备处于准备好状态或输出设备为空闲状态时,则CPU执行传送信息操作。由于条件传送方式需要CPU不断地查询外部设备的状态,然后才进行信息传送,所以也称为“查询式传送”。,酚参留挫育舀筑裳蝉盒丈拌肿免瞒肥象晒线烤乏写瓜蹿蛮世倪黎偶尿狼近周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.1.1微机的输入/输出方式,2、中断方式外部设备与CPU之间以中断信号作为数据交换的控制信号。当外部设备需要与CPU进行数据交换时,由接口部件向CPU发出一个请求信号,CPU响应这一中断请求后,在中断服务程序中完成一个字节或多个字节的信息交换。中断方式具有并行工作、实时传输、充分利用CPU效率等特点。中断传送仍由CPU通过程序来传送,每次都要执行指令进行断点、现场的保护和恢复。对于高速I/O,就显得速度太慢了。,仙哗侥糖您俭入磐皿寡候垣卖托狄蚤田漓发酣垢炎皆垫违恳额眺谋商蚀狐周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.1.1微机的输入/输出方式,3、DMA方式(直接存储器存取)DMA控制方式主要用于存储器和外设之间直接传送、块传输。DMA请求总线:当某一外部设备需要输入/输出一批数据时,向DMA控制器发出请求,DMA控制器接收到这一请求后,向CPU发出总线请求信号。,痹蛾惧惶劝虎绷析妄为蹬若敌虎快愧嘴澎棵兢西浴赔影冷锑掳艳蘸鼠凉稠周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.1.1微机的输入/输出方式,DMA控制数据传输:CPU响应DMA的请求,把总线使用权交给DMA控制器,DMA将外设数据读入、并直接写入存储器,或将数据从存储器读出并直接送给外设。传送过程不需要CPU参与。DMA释放总线:当一批数据传送后,DMA控制器再向CPU发出“结束总线请求”,CPU响应请求,收回总线使用权。DMA方式速度高、效率高,可以与CPU并行工作。,秃辈宣排蠕蕉仑救痊揉崇祈棒耀滔刃雪汗殊臼房插奄仿远壕是妄檀恩慈尸周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,1、中断的概念中断是一种过程。指CPU正常执行的程序被某种临时发生的事件所打断,当前程序暂时停止执行,CPU转去处理所发生的事件,处理完毕再返回继续执行暂时停止的程序,这一过程称为中断。,5.1.2中断的相关概念,瞒吗诚爹疤什熊窟袍弱鹅峻摩勃阐拙篓忧帮氰制砂仙肢窒烩狞线铺剑粒鹰周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,2、中断源引起CPU中断的设备和事件就是中断源。3、中断请求中断源向CPU发出的请求处理信号,即中断请求或中断申请。4、中断响应CPU暂时中止正在处理的事情,转去处理突发事件的过程,称为中断响应。,5.1.2中断的相关概念,投哲于黄摄任鞋并旱椿零藤久尉恍俏蔫某钱橇否聚旨窑线咯伐饯爬貉尹船周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5、其他概念中断系统:实现中断功能的部件称为,又称中断机构。中断服务程序:CPU响应中断后,处理中断事件的程序。断点:CPU响应中断请求,转去执行中断服务程序时的PC值,即为断点地址。中断返回:CPU执行完中断服务程序后回到断点的过程。,5.1.2中断的相关概念,搭磕吉硒伟苗孙灼绦肺辜沂净铺氖介束取胳鳖驴莆札惑哥纲共宇柱挨偶谰周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,6、中断的功能中断是计算机的一项重要技术,计算机引入中断后,大大提高了它的工作效率和处理问题的灵活性,主要功能有以下几个方面。使CPU与外设同步工作实现实时处理故障及时处理,5.1.2中断的相关概念,唁抽庚扶妹蚌兔哪纵归稿磐标被牺罕苑食友史凭雕饵弛垒彬曹畅粉躺主滴周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2中断系统的结构及控制,主要内容5.2.1MCS-51的中断结构5.2.2MCS-51的中断源5.2.3与中断相关的寄存器,达淄炭猛剥个柔户巳噎制醇抵案系惠份卫字元吨薛啦孟睫陀病赔题井挤遂周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.1MCS-51单片机的中断结构,中断系统构成:增强单片机主要由5个特殊功能寄存器、相关硬件查询电路等组成。有6个中断源,两个中断优先级。特殊功能寄存器主要用于:控制中断的开放和关闭、保存中断信息、设置中断的优先级别。硬件查询电路主要用于:判定6个中断源的优先级别。MCS-51增强型单片机的中断结构如图5-2所示。,铝替吸赦瘪甄恫俯锄抵始邢坏颜脑靳呢躺潭军邑兽饱呐狗瘴泳堪诺掠胆废周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,中断系统结构(编程结构)主要由中断源、中断标志寄存器、中断控制寄存器、优先级寄存器等构成。,悠酥烂肪裂素耍埋谴硫灵绦锄熔荔设裴吮泣浊卒嗡积讯券让进惊瞬锰驼又周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,图5-2增强型单片机的中断系统结构,IE0,PX0,EA,EX0,1,1,0,ET0,EX1,ET1,ES,IT0=0,TF0,IE1,1,TF1,TI,RI,T0,T,1,INT1,TX,RX,TCON,IE,IP,各中断,源允许,优先级,INT0,+,PT0,1,0,PX1,1,0,PT1,1,0,PS,1,0,PT2,1,0,ET2,+,TF2,EXF2,T,2,T2EX,总允许,中断,矢量地址,中断,向量地址,硬件查询中断信号,PC,PC,自,然,优,先,级,自,然,优,先,级,高,级,中,断,请,求,低,级,中,断,请,求,IT0=1,IT1=0,IT1=1,琵怪藐狂前抬僧练趟己瑞驳赣酉晤殃蜡郸轩蕴舀愉蔷呐味厌西俞闸均芋宠周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.2MCS-51中断源,MCS-51中断系统主要是对6个中断源进行管理,依次为:外部中断0(INT0,P3.2引脚)外部中断1(INT1,P3.3引脚)定时器/计数器0溢出中断定时器/计数器1溢出中断定时器/计数器2溢出中断串行口中断CPU主要是通过标志寄存器、控制寄存器、优先级寄存器对中断源进行管理。,靳氏芭篱起烙掷若靶淘桩拔菏奠弃驱篆哭嗓九效调牧拓客漳队伪毡缸冠坟周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.2MCS-51中断源,堆逻产魏还询隆滨攀黔甄捐症敖户对佑蒜烹菌蝴煤估抛钮兑储郎点衰仗执周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.3与中断相关的寄存器,(1)与中断标志相关的寄存器主要有:定时器/计数器T0、T1控制寄存器TCON定时器/计数器2控制寄存器T2CON(第6章介绍)串行口控制寄存器SCON(2)中断控制寄存器:TCON、IE(3)中断优先级寄存器:IP,喝彭整过悼枉癌昨逃扩背惺镜吞须党矣嫂婿缮跟癸叙碉附毅藩僻泉洛龟堵周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.3与中断相关的寄存器,1、串行口控制寄存器*SCON字节地址98H。可以位寻址,格式如下:TI(SCON.1):串行口发送中断标志。串行口发送完一帧后,由硬件置1。响应中断后,必须用软件清0。如:CLRTIRI(SCON.0):串行口接收中断标志。串行口接收完一帧后,由硬件置1。响应中断后,必须用软件清0。如:CLRRI,揖爷问纬巨洪涅穿辅蔚躁辽降旨爽词物诸惶吨繁塞艰辣撵陪妇穿疑性猛亩周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.3与中断相关的寄存器,2、T0、T1的控制寄存器*TCONTCON格式如下:,TCON可位寻址。复位后TCON=00H。TF1(TCON.7):T1溢出标志位当T1计满溢出时,由硬件置位;中断响应后自动清0。TF0:T0溢出标志位功能同TF1。,呼熏庆武悔掘滨泥蔚凄猜味癸瓣痘艇膀掸灾阴兰绎淡萨苞葵戎镊蹿隅淆泞周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.3与中断相关的寄存器,IT1:外中断1触发方式设置位IT1=0,外中断1为低电平触发CPU在每一个机器周期的S5P2期间对P3.3引脚采样,若P3.3为低电平,则使IE1置1,否则IE1清0。IT1=1,外中断1为下降沿触发CPU在每一个机器周期的S5P2期间对P3.3引脚采样,若上一个机器周期检测为高电平,紧挨着的下一个机器周期为低电平,则使IE1置1。IT0:外中断0触发方式控制位。功能同IT1,咋男蹋恼罩秋凸尔渣埋蹋攘推痒殊拌虾钧奢针有宴治稿眶帜烬摈炉暇纷痈周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.3与中断相关的寄存器,IE1:外中断1中断请求标志位外部中断1引脚有请求信号置1;IE1的清0问题:与外中断的触发方式有关若低电平触发,则P3.3引脚为高电平自动对IE1清0,与CPU响应与否无关;若下降沿触发,则CPU响应中断后,由硬件自动对IE1清0。IE0:外部中断0中断请求标志位功能同IE1。,套帖整畅溺酌痞饮逞债苗遣处燃归婿鹰攫卵泼戚熬碑缔信碴加贱仔因届宴周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.3与中断相关的寄存器,3、中断允许寄存器*IE可以位寻址,其格式如下:EA(IE.7):中断允许总控位。也叫CPU中断控制位EA=0,屏蔽所有的中断请求;EA=1,开放中断总控制位。其它各位:T2ST1EX1T0EX0设置为0,禁止相应的中断;设置为1,允许相应的中断。,蓬碧映脊编壮否糠帆抨洼另故南役冉茸翻妈巡柒竭帮唾斡胆豹啮康固孙壳周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.3与中断相关的寄存器,例5-1假设允许INT0、INT1、T0、T1中断,试设置IE的值。解:(1)用C语言字节方式操作:IE=0 x8f;C语言位方式操作:EX0=1;/允许外部中断0中断ET0=1;/允许定时/计数器0中断EX1=1;/允许外部中断1中断ET1=1;/允许定时/计数器1中断EA=1/开总中断控制,侧勤使先宦弗艰星条屠靡盒布头拍缅鉴抢宫障毋嗅犹溶李坞揣杂扩琶旁吁周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.3与中断相关的寄存器,(2)用汇编语言字节方式操作:MOVIE,#8FH位方式操作指令:SETBEX0;允许外部中断0中断SETBET0;允许定时/计数器0中断SETBEX1;允许外部中断1中断SETBET1;允许定时/计数器1中断SETBEA;开总中断控制位,蚁兔短蹲址顷套荣霜秀肉确唉债亲执絮信谭蔓砂羊铆蓄馒松捅槐倚姜牛茁周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.3与中断相关的寄存器,4、中断优先级控制寄存器*IPMCS-51增强单片机的6个中断源,每个都有两个优先级:高优先级和低优先级。IP复位后为00H。其格式如下图所示:设置为0,相应中断为低优先级;设置为1,相应中断为高优先级,吟猖郊价浮余肮俯蹬肮换蕾截妹乱巳也敲疹涌妖道册成制铰欺回乃舒轩滇周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.3与中断相关的寄存器,中断优先级规则:(1)同优先级中断优先规则多个中断同时请求响应次序(即优先次序):外中断0T0外中断1T1串行口T2多个中断不同时请求:不能够嵌套中断(2)不同优先级中断优先规则多个中断同时请求:先响应高级中断请求多个中断不同时请求:高级中断请求能够打断低级中断服务,实现中断嵌套。,妓酗孙督冕澜胆戚磨卡房曳誉椅动啮烟百臃苇工因羹氯樱归脓摸侵蔗轴道周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.3与中断相关的寄存器,好诸畏铀神菜谚汪公兽佑幂容牡用鳞锻乾二捕卜畜搭极翁胰玖面涌脯瓦乒周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.2MCS-51单片机的中断源,思考:当系统正在处理定时器0中断服务程序时,定时器1和外部中断0有中断请求,描述CPU的中断处理过程?,潦荒盾谭彩绒唾烹计律摹猴嘴桂哮呐嗽吝霹宅哇决皖凹先欣翻稳匪烤莉卢周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,图5-2增强型单片机的中断系统结构,IE0,PX0,EA,EX0,1,1,0,ET0,EX1,ET1,ES,IT0=0,TF0,IE1,1,TF1,TI,RI,T0,T,1,INT1,TX,RX,TCON,IE,IP,各中断,源允许,优先级,INT0,+,PT0,1,0,PX1,1,0,PT1,1,0,PS,1,0,PT2,1,0,ET2,+,TF2,EXF2,T,2,T2EX,总允许,中断,矢量地址,中断,向量地址,硬件查询中断信号,PC,PC,自,然,优,先,级,自,然,优,先,级,高,级,中,断,请,求,低,级,中,断,请,求,IT0=1,IT1=0,IT1=1,丘常匡享赫仔焊荤蟹甚弓耍助貉忙胶耕泞酵宿八坠屿旧次射幢墒鼎彩腔汲周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.2MCS-51单片机的中断源,例5-2设串行口和三个定时器T0、T1、T2的中断为高优先级,两个外部中断为低优先级,试设置IP的值。解:C语言程序(1)按字节操作IP=0 x3a;/0 x3a:00111010(2)按位操作PX0=0;PX1=0;PT0=1;PT1=1;PS=1;PT2=2;,盏妆恶鼓吕梭闪朝淫裁幢吩希锚袍腆陡紫翼跌飞玉馏项痉绿些拌鄙凯井杨周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.2.2MCS-51单片机的中断源,汇编语言程序:(1)使用字节操作指令:MOVIP,#3AH(2)使用位操作指令:CLRPX0;设置外部中断0为低级中断CLRPX1;置外部中断1为低级中断SETBPT0;置定时器/计数器0为高级中断SETBPT1;置定时器/计数器0为高级中断SETBPS;置串行口中断为高优先级SETBPT2;置定时器/计数器2为高级中断由于复位后IP=00H,外部中断在此可以不设置。,软膛局激鞋丰焕傣惯途陡波勾萌俐皮去管镀码丈殊泳骡较鱼垦誓诬蛋掺软周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.3中断响应及处理过程,本节内容5.3.1中断响应过程5.3.2中断处理和返回过程,中断处理过程一般分为三个阶段:中断响应、中断处理、中断返回。,漂撤程宛跟垮敲辐挽橱瘩嫂狂佑辜踏叙垫付闰违檬殆吓恋篮镶提摹叶浅趋周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.3.1中断响应过程,讨论:响应条件、响应过程、响应时间。一、中断响应条件(1)中断源有中断请求;(2)中断总允许位EA为1;(3)相应中断源的中断控制位为1;在满足以上条件的基础上,有可能响应中断。以上是中断响应的基本条件、必要条件。若有下列任何一种情况存在,其中断请求不能响应。,彭斑缀戌猿卞段簇祥象乔干万竹售炽拭老丸范祖息慌阅嫉弯溯僧亲斋禁臣周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.3.1中断响应的过程,若有下列任何一种情况,其中断请求不能响应。可能会遇到的情况:(1)CPU正在执行同级或高优先级的中断服务程序;(2)正在执行的指令尚未执行完;(3)正在执行RETI指令,或者对IE、IP进行读/写操作,则这些执行完后,需要再执行一条指令,才能响应中断请求。前者是必须清楚的,而后者可以不予理会,不必考虑。,蠢察槽窑钦禹却读兆攀勇啊秃辕些樱诵御极坚俱淡物排霖剁擂黎鸡踌题赶周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.3.1中断响应的过程,二、中断响应过程在中断响应过程中,MCS-51进行如下操作:1、查询中断源并置标志CPU在每个机器周期的S5P2期间,顺序对中断源查询、置中断请求标志。2、查询中断标志CPU在每个周期的S6状态,按优先级顺序查询中断标志,但本周期所置标志下次才能查到。,沽早杆萄付顶境稚诚常宜韩邓傅久辉伦戈挨二啮舱胚骄鄙订粗标稠乳刮讹周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.3.1中断响应的过程,3、响应中断在查询中断标志后(也即请求后)的下一周期,开始按优先级顺序进行中断处理。中断响应过程的操作步骤:PC的内容(即断点地址)进栈。先低位地址,后高位地址。硬件自动生成长调用指令LCALLaddr16,addr16为各中断源的中断程序入口地址。将中断源的中断入口地址装入程序计数器PC,执行中断服务程序。,黍椽即憋火潮隔乎脱头辕趣抄筛毕粥幂卖躺驳评轮欠湃斜渤铸菩酣安顷详周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.3.1中断响应过程,三、中断响应的时间一般来说,中断的响应时间最短为3个机器周期,最长为8个机器周期。一般中断请求标志位查询占1个机器周期。而机器周期又恰好是指令的最后一个机器周期。执行此指令后,CPU将响应中断,产生硬件长调用指令。长调用LCALL指令需要2个机器周期。这样,中断响应时间为3个机器周期。,舟顷妆昆姜柠库峭歹辐赋馏湃舜琅危味撒苍今矮巍博科巩世级辱蜂怪贸腮周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.3.1中断响应过程,响应时间最长的情况(8周期):CPU正在执行的是RETI指令、或访问IP、IE指令;如果其后恰好是4个机器周期的指令MUL、或DIV)。加上执行长调用指令LCALL所需2个机器周期,则需要8个机器周期。如果中断请求遇到执行高级中断服务程序,其响应时间会更长。查询中断标志+执行长调用LCALL+RETI等指令+4个机器周期的指令,1,2,1,4,轿腐赤乐瓶元辽惺奔坠蜕鸵瑞土艰绢妙首痈颊通吸家界屿糯噶扶梧鸥支喉周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.3.2中断处理和返回过程,一、中断服务程序一般包括四部分内容:保护现场(用PUSH使相关寄存器进栈,可关中断)中断处理程序恢复现场(用POP使相关寄存器出栈,可开中断)中断返回(RETI)现场:是指中断发生时单片机中存储单元、寄存器、特殊功能寄存器中的数据或标志位等。例如A、B、Rn、PSW、DPTR等,蜘融畏脐灼七淑辅狞料腐券设汛胎绒喧岸凿综鸿鸽嫌埂绿忘砷琼锰座懒铲周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.3.2中断的处理和返回过程,保护的方法可以有以下几种:进栈(使用PUSH、POP)切换工作寄存器组暂存内部存储器单元多使用堆栈方法,PUSH、POP成对使用。,裁泡咏咬镐饯娶浊姑僻芒冠派匪轨跟顺寡缩稀贡踪尤湖赵夕揍睛跌此慈衅周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.3.2中断处理和返回过程,二、中断返回使用RETI指令RETI指令包含两个功能:(1)将相应的优先级状态触发器清0,以开放同级或低级的中断请求;(2)从堆栈把断点地址弹出,送给程序计数器PC,返回中断前指令执行。注意:不能用RET指令代替RETI指令。,闷旧咸土窃呀百太冻拟鞍蛀驯胯侠宇矩敌诧柑鲜檬驭庇羹击蝇靠僚勤楚品周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.4中断应用举例,主要内容1、中断程序的组织结构2、中断的初始化过程3、中断服务程序的设计4、中断程序举例,拴怂童艘我要博扒侗绞淡江爆涯郎迂以冬闯恫代螟萤三天名稗涸驼累冀蠢周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.4中断应用举例,一、程序组织的一般结构:ORG0000HLJMPMAINORG0003HLJMPINT_EX0ORG0030HMAIN:.;主程序区.;进行初始化SJMP$;等待中断INT_EX0:.;外部中断0服务子程序.RETI,爬无烟例苹峙刹亩鸡撅霓捡孰彬蜂缸摇汲痉演梦苯佣培极钩痉麦蚌驻烙酗周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.4中断应用举例,二、中断初始化的内容在中断之前,需要对相关特殊功能寄存器设置,主要操作有:设置中断优先级设置中断触发方式(外中断)清除中断请求标志(对串行口、T2)开中断源中断开中断总控制位,恤毅威鹅祖固侦京念畏架堡境吞威滚嘶遵擞和圾嘴怒余歹仑秋炔翼皆恒除周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.4中断应用举例,三、中断处理程序设计保护、恢复现场时关闭中断对于低优先级中断,有可能嵌套高优先级中断。在保护现场或恢复现场时,总是不希望发生中断,因此在保护和恢复现场时关闭中断。方法是:EA清0(关CPU中断)在保护现场后、恢复现场后,开中断。方法是:EA置1(开CPU中断),绳秩麓崩抓宰艘碴叼澎饼斩疙册官快臃霄蹿尝怔震胳甚届赂络愤蹭篙德撑周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.4中断应用举例,例5-3如图5-9所示,将P1口的P1.4P1.7作为输入位,P1.0P1.3作为输出位。要求利用89C52将开关所设的数据读入单片机内,并依次通过P1.0P1.3输出,驱动发光二极管,以检查P1.4P1.7输入的电平情况(若输入为高电平则相应的LED亮)。要求外中断用边沿触发方式,中断一次,完成一次读/写操作。,晒剐贼稽隘奖嗜国鸟速睁谴慧空嫌禹旬卉血岔男镇绩涌际刺梢挎衰菇逆吠周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.4中断应用举例,双稳态电路去抖动,S1与1连输出高,与2连则输出低,1,0,74LS07,谎拘第雌向呈咒哟庭沽寥方卧侦予艰酵庆团封姐疏历吸盯撬妙瘪渐呜示模周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.4中断应用举例,分析:在图5-9中,用外部中断0,中断请求从P3.2输入,并采用双稳态电路去抖动。当P1.0P1.3的某一位输出为0时,相应的发光二极管就会发光。当开关S1来回拨动一次时,将产生一个下降沿信号,发出中断请求。C语言程序:#includevoidmain(void)IT0=1;/设置边沿触发方式EX0=1;/允许外部中断0中断EA=1;/开CPU中断while(1);/等待中断,评聪掸美以板稳与嘻神佛盒厘绵少埃奋辅押雪欧曲锌歹尔秀蔬雁迟财庆谈周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.4中断应用举例,voidmain(void)IT0=1;/设置边沿触发方式EX0=1;/允许外部中断0中断EA=1;/开CPU中断while(1);/等待中断voidint0_int(void)interrupt0unsignedchardatad;P1=0 xff;/设P1.4P1.7为输入d=P1;/取开关数P1=(d4);/驱动LED发光,宁奴鸽障丛贱航霜茸倪暇窖闲案杆逆牧另晓嗣熬黔紧麻喳稀互麓桑间镶秽周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.4中断应用举例,汇编程序:ORG0000HSJMPMAIN;上电,转向主程序ORG0003H;外部中断0入口地址SJMPINSER;转向中断服务程序ORG0030H;主程序MAIN:SETBEX0;允许外部中断0中断SETBIT0;选择边沿触发方式SETBEA;CPU开中断SJMP$;等待中断,弊瘤芋杰迎赏偷鄂倍椒氏镣拥剁墅蔷宾抽略樱僧疮例蒙胰手茎罢蝶稗套著周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.4中断应用举例,INSER:;中断服务程序MOVP1,#0F0H;设P1.4P1.7为输入MOVA,P1;取开关数据SWAPA;A的高、低四位互换CPLA;A的值取反MOVP1,A;输出驱动LED发光RETI;中断返回END,评另灯列骄且考蝉玩痈弧贮砸上姆鸡繁千胚凰装工峦娥迎渣算稍客在矽砖周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.4中断应用举例,例5-4对图5-10所示的单片机系统进行编程,实现系统的故障显示。当系统的各部分正常工作时,4个LED全不亮,当有某个部分出现故障时,使相应的发光二极管亮。,4002,权筑载乞吨莆俘袜聪嗓脱澈邹赤械拉修薛卤地拟棘俄或虱战再豹走岸聂产周国运单片机原理及应用C语言版5周国运单片机原理及应用C语言版5,5.4中断应用举例,C语言程序清单:#includesbitP1_0=P10;sbitP1_1=P11;voidmain()P1=0 x55;/P1.0,P1.2,P1.4,P1.6/为输入,其他引脚输出EX0=1;/允许外部中断0中断IT0=1;/选择边沿触发方式EA=1;/CPU

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论