单片机原理课程中程序调用与中断两种过程的比较教学法

来源 :中国电力教育 | 被引量 : 0次 | 上传用户:bosslon
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:中断过程和调用子程序过程是微机原理课程教学的重点和难点,文章提出把两者结合起来,采用比较的教学方法,详细地讨论两者的异同点,教学实践证明这种方法具有明显的教学效果。
  关键词:单片机原理;中断过程;调用子程序过程;比较教学法
  作者简介:黄云峰(1971-),男,浙江绍兴人,上海电力学院电力与自动化学院,讲师;程启明(1965-),男,江苏盐城人,上海电力学院电力与自动化学院,教授。(上海 200090)
  基金项目:本文系2010年上海市教委重点课程资助项目(项目文件编号:沪教委高[2010]35号)的研究成果。
  中图分类号:G642.3     文献标识码:A     文章编号:1007-0079(2011)22-0071-02
  
  在“MCS-51单片机原理”课程[1-8]教学中,中断过程既是教学难点又是教学重点,它与主程序调用子程序过程有一定相似性,但又有很大区别,调用子程序过程相对比较容易掌握,通过把两过程结合起来,采用比较教学方法,能收到很好的教学效果。
  一、两过程定义与作用
  子程序是微机基本程序结构中的1种,基本程序结构包括顺序(简单)、分支(判断)、循环、子程序和查表等5种。
  子程序是一组可以公用的指令序列,只要给出子程序的入口地址就能从主程序转入子程序。子程序在功能上具有相对的独立性,在执行主程序的过程中往往被多次调用,甚至被不同的程序所调用。一般微机首先执行主程序,碰到调用指令就转去执行子程序,子程序执行完后,返回指令就返回主程序断点(即调用指令的下一条指令),继续执行没有处理完的主程序,这一过程叫做(主程序)调用子程序过程。子程序结构可简化程序,防止重复书写错误,并可节省内存空间。计算机中经常把常用的各种通用的程序段编成子程序,提供给用户使用。用户在自己编写的程序中,只要会调用这些子程序,就可大大简化用户编程的困难。
  中断是计算机中央处理单元CPU与外设I/O交换数据的一种方式,除此方式外,还有无条件、条件(查询)、存贮器直接存取DMA和I/O通道等四种方式。由于无条件不可靠,条件效率低,DMA和I/O通道两方式硬件复杂,而中断方式CPU效率高,因此一般大多采用中断方式。
  中断概念是当计算机正在执行某一(主)程序时,收到一中断请求,如果中断响应条件成立,计算机就把正在执行的程序暂停一下,去响应处理这一请求,执行中断服务程序,处理完服务程序后,中断返回指令使计算机返回原来还没有执行完的程序断点处继续执行,这一过程称为中断过程。有了中断,计算机才可能具有并行处理、实时处理和故障处理等重要功能。
  二、两过程的联系与区别
  1.联系
  中断与调用子程序两过程属于完全不同的概念,但它们也有不少相似之处。两者都需要保护断点(即下一条指令地址)、跳至子程序或中断服务程序、保护现场、子程序或中断处理、恢复现场、恢复断点(即返回主程序)。两者都可实现嵌套,即正在执行的子程序再调另一子程序或正在处理的中断程序又被另一新中断请求所中断,嵌套可为多级。
  正是由于这些表面上的相似处,很容易使学生把两者混淆起来,特别是把中断也看为子程序,这就大错特错了。
  2.区别
  中断过程与调用子程序过程相似点是表面的,从本质上讲两者是完全不一样的。
  两者的根本区别主要表现在服务时间与服务对象不一样上。首先,调用子程序过程发生的时间是已知和固定的,即在主程序中的调用指令(CALL)执行时发生主程序调用子程序,调用指令所在位置是已知和固定的。而中断过程发生的时间一般是随机的,CPU在执行某一主程序时收到中断源提出的中断申请时,就发生中断过程,而中断申请一般由硬件电路产生,申请提出时间是随机的(软中断发生时间是固定的),也可以说,调用子程序是程序设计者事先安排的,而执行中断服务程序是由系统工作环境随机决定的。其次,子程序完全是为主程序服务的,两者属于主从关系,主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。而中断服务程序与主程序两者一般是无关的,不存在谁为谁服务的问题,两者是平行关系。第三,主程序调用子程序过程完全属于软件处理过程,不需要专门的硬件电路,而中断处理系统是一个软、硬件结合系统,需要专门的硬件电路才能完全中断处理的过程。第四,子程序嵌套可实现若干级,嵌套的最多级数由计算机内存开辟的堆栈大小限制,而中断嵌套级数主要由中断优先级数来决定,一般优先级数不会很大。
  三、MCS-51单片机两过程详细比较
  1.调用子程序过程
  主程序调用子程序过程应包括保护断点、跳至子程序首址、保护现场、子程序处理、恢复现场、恢复断点(子程序返回)6步。这6步都是用软件指令完成的。其中前两步保护断点和跳至子程序首址由调用指令CALL完成。保护断点其实就是把断点地址推入堆栈中保护起来,要注意的是保护的断点应紧跟着调用指令的下一条指令地址,而不是调用指令本身地址,否则会引起重复调用“死循环”,这点必须提醒学生注意。LCALL与ACALL是MCS-51单片机的两条调用指令,分别称为长调用和绝对调用,两指令主要区别在于LCALL后面操作数直接就是16位二进制的子程序入口地址;而ACALL后面操作数只是11位二进制数,子程序入口地址是把这11位数作为低位地址,再加上ACALL的下一条指令地址(即断点地址)的高5位作为高位地址,从而形成16位的子程序入口地址。由此可知,两条调用指令的调用范围是不一样的,LCALL为64KB程序存贮器任何范围,而ACALL在高5位地址不变的同一页2KB范围内。
  由于主程序与子程序可能会使用相同的寄存器和存贮单元存放数据,如果两者这些数据无关,那么子程序在使用这些相同寄存器和存贮单元之前,就必须先把主程序存放在这些区间里的数据现场保护起来,子程序在使用这些区间结束后,再把主程序现场恢复出来,以便子程序返回主程序后,主程序继续使用这些区间。现场保护与恢复一般采用堆栈推入PUSH指令与堆栈弹出POP指令实现,当然也可采用改变工作寄存器R0~R7区间指针等方法实现。子程序返回只需用RET指令就可把保护在堆栈中的断点恢复出来,继续执行主程序。
  此外,主程序与子程序密切联系,它们之间存在着入口参数与出口参数传递问题,也就是主程序如何把输入参数传给子程序,子程序又如何把处理结果的输出参数带回给主程序,两者参数传递一般可采用寄存器或存贮单元、堆栈、数据指针等方法实现。
  子程序再调用子程序叫做子程序嵌套,由于MCS-51单片机只能把内部RAM 00~7FH 128字节单元作为堆栈使用,断点地址保护到堆栈中需占2字节单元,所以子程序最多可能嵌套64级,当然实际使用中子程序嵌套一般2~3级,否则程序结构就显得太复杂了。
  2.中断过程
  中断过程远比调用子程序过程要复杂,它包括中断请求(或申请)、中断排队、中断响应、中断服务(或处理)和中断返回5大步。这5大步是由硬件和软件结合完成的。
  中断请求由中断源向CPU提出。MCS-51单片机只有T/C0定时/计数器0溢出、T/C1定时/计数器1溢出、TXD/RXD串行口发送与接收一帧完、INT0外部中断0和INT1外部中断1等5个硬件中断源,其中前三个为内部中断源,后两个为外部中断源。
  由于CPU在某一时刻只能响应一个中断请求,为处理执行主程序时同时来了多个中断请求和正在处理某一中断时又来了新的中断请求这两种情况,计算机采用硬件或软件给各个中断源按优先权大小进行中断排队,从多个中断申请中选出一个级别最高中断请求而响应之,这一过程称为中断排队。MCS-51单片机用户可用指令设置高、低两个优先级,而且同级中还有5个固定的隐含优先级,从高到低的优先级顺序分别是INT0、T/C0、INT1、T/C1、TXD/RXD。这样,在执行主程序时,同时来了两个以上中断请求,则先按高低两级选择高优先级,如只有一个高级就直接选之,如有两个以上都是同级,则按同级隐含优先级,选择其中一个高级别。如正在执行一个低优先级,又来了一个高优先级(即正在执行的中断级别低于新来的中断级别),则高优先级中断低优先级,这就形成了两级中断嵌套。如正在执行低的又来了另一低的或者正在执行高的又来了一个低的或高的(即正在执行的中断級别高于或等于新来的中断级别),则不予理睬,不会引起中断嵌套,也就是说同级隐含原则在不同时来了同级中断时无效。可见,MCS-51单片机最多形成两级中断嵌套。
  CPU在执行任何机器指令时,在每一个机器周期TCY都要抽点时间(MCS-51单片机为S5P2状态节拍)来采集查询有无中断请求,如没有,则继续执行原程序机器指令,如有中断请求,则先从中选出级别最高者,在中断响应条件成立时去处理响应此中断请求。MCS-51单片机的中断响应必要条件是中断屏蔽总开关EA和中断请求相应的屏蔽分开关都必须闭合,只有这样,中断请求信号才能送到CPU。此外,还不能碰到以下3种情况,即有优先级更高的中断请求同时提出或者正在执行同级或高级中断,正在执行的指令还没有执行完、正在执行RETI或访问中断屏蔽寄存器IE和中断排队寄存器IP,这3种情况是中断响应的充分条件。第1种情况中断排队轮不到它响应。第2种情况必须等到现行指令执行完,再响应中断,指令周期分为1、2、4TCY三种机器周期,计算机每个TCY出现仅查看一次中断请求,因此,2TCY和4TCY机器指令有可能没有执行完。如果执行指令没执行完就去响应中断,则中断处理返回后,计算机很难把分断开执行的同一条指令连贯起来。第3种情况处理与第2种情况类似,但它除了要把现行的RETI指令或访问IE、IP指令执行完,还需再执行下一条指令,方能响应中断。利用这个原理,很容易实现单步STEP操作(调试程序时使用)。
  中断服务和中断返回又由关(禁止)同级和低级中断、中断请求撤除、保護断点、跳至中断服务程序入口、保护现场、中断处理、恢复现场、开(允许)同级和低级中断、恢复断点(中断返回)等9小步组成。这9步中断服务过程与前面介绍的6步调用子程序过程类似,只是增加了开、关同级和低级中断请求以及中断请求撤除3步,其余6步完全一致。开、关同级和低级中断目的是使不同时来中断请求的同级隐含排队原则无效,此时只能实现高级嵌套低级的两级中断嵌套。在中断处理的返回前清除原中断请求原因是防止同一次中断申请被重复响应。
  中断服务过程的前4步是由硬件自动实现的,这点完全不同于调用子程序过程。当然TXD/RXD中断请求与INT0、INT1电平触发中断请求还需用户分别用软件和硬件清除中断请求。MCS-51单片机的中断服务程序入口地址是固定的,它们分别是INT0 为0003H、T/C0为000BH、INT1为0013H、T/C1为001BH、TXD/RXD为0023H。断点现场保护与恢复也是通过堆栈推入与弹出或改变工作寄存器区来实现的。
  中断处理完后,就应返回断点继续执行主程序,开同级和低级中断、恢复断点2步可用中断返回指令RETI实现,注意子程序返回指令RET只能实现恢复断点,而不能开同级和低级中断。
  四、结束语
  中断过程与调用子程序过程是微机原理教学中重点和难点内容之一。两过程之间既有联系,又有区别。本文从多个不同角度详细地对比了它们的异同。对于培养学生编制软件及开展计算机应用方面的能力,具有积极的指导意义,采用这种比较教学法,有利于教学质量的提高。
  
  参考文献:
  [1]周明德.微型计算机系统原理及应用(第4版)[M].北京:清华大学出版社,2002.
  [2]王爱英.计算机组成与结构(第3版)[M].北京:清华大学出版社,2001.
  [3]薛钧义.微型计算机原理及应用Intel 80X86系统[M].北京:机械工业出版社,2002.
  [4]余永权.ATMEL89系列单片机应用技术[M].北京:北京航空航天大学出版社,2002.
  [5]孙涵芳,徐爱卿.MCS-51/96系列单片机原理及应用(修订版)[M].北京:北京航空航天大学出版社,1996.
  [6]丁元杰.单片微机原理及应用[M].北京:机械工业出版社,1994.
  [7]何立民.MCS-51系列单片机应用系统设计——系统配置与接口技术[M].北京:机械工业出版社,1990.
  [8]张友德,赵志英,涂时亮.单片微型机原理、应用与实验[M].上海:复旦大学出版社,1992.
  (责任编辑:刘辉)
其他文献
摘要:以优势学科、专业建设、实验室平台等为基础,以人才培养为主线,通过分析山东科技大学采矿工程专业近年来在人才培养模式改革方面的建设成效,提出了采矿工程专业“励志创新型”、“3+1定单工程卓越型”、“双专业双学位复合型”和“国际交流型”四种人才培养模式,并创新性地构建了采矿工程专业“多目标、立体化”教学模式,为工程类专业人才培养指明了新的方向。  关键词:采矿工程;人才培养模式;多目标;立体化;创
期刊
摘要:笔者随团飞赴我国台湾,对台湾科技大学、龙华科技大学、耕莘健康管理专科学校和中州技术学院等四所高等职业教育院校进行了详细考察,切身感受台湾高等职业教育的发展现状和先进理念,收获颇丰,对高等职业院校的发展定位、创新变革有了更加清楚的认识。  关键词:台湾;高等教育;职业技术教育;考察  作者简介:辛志杰(1966-),男,福建惠安人,福建電力职业技术学院副院长,副教授;李丽娇(1965-),女,
期刊
摘要:高职自主招生最核心的问题就是招生的考核方式,本文通过对美国社区学院的招生考核方式、我国本科院校自主招生的考核方式进行比较分析,认为高职的自主招生应从选拔性考试向服务性考试转变,需要建立完备的、自成一体的高职院校招生考核模式,采取统一的、区域性的第三方招生组织联合招生等措施。  关键词:高职;自主招生;考核方式  作者简介:代绍庆(1973-),男,浙江嘉兴人,嘉兴职业技术学院教务处副处长,招
期刊
摘要:主要针对我国风景园林教育中“设计初步”课程教学进行了研究。通过在浙江农林大学天目学院的实践,参考国内外相关院校的课程模式以及学生就业现状,就目前教学存在的问题,分别在教学内容和方法上进行探索,希望能供相关院校的课程教学参考。  关键词:园林艺术设计;设计初步;教学研究  作者简介:叶文艳(1980-),女,浙江临安人,浙江农林大学天目学院,助理研究员;袁剑华(1979-),男,江苏无锡人,浙
期刊
摘要:如何解除大学生心理危机,引导大学生健康成长,为大学生提供更好的心理健康辅导已经引起了我国各大高校的高度关注。为此,在对大学生心理问题进行现状分析的基础上,文章对高校大学生心理问题的原因进行了初步探讨,并就如何构建高校大学生心理危机干预机制提出了初步的设想。  关键词:大学生;心理危机;干预机制  作者简介:李庆(1970-),男,天津人,南华大学船山学院,讲师;罗筑华(1975-),男,湖南
期刊
摘要:在高等职业教育规模已占据高等教育总规模“半壁江山”的形势下,分析了高职教育存在已久的生源问题及其产生原因,提出了改善高职教育生源质量的对策及其引发的相关思考,以期对提高高职院校办学质量,更好地发展高职教育有所帮助。  关键词:高职教育;生源质量;发展  作者简介:张熳(1968-),女,上海人,大连交通大学轨道交通技术学院,副教授;朱宝春(1968-),女,辽宁清原人,大连交通大学轨道交通技
期刊
摘要:近年来,“生命教育”、“生涯规划教育”和“情商教育”等思政工作主要创新模式的实施,在广大教育对象中引起了良好的受众反应。本文通过简述几种思政工作新模式的兴起与发展历程,分析了当前思政工作的依托研究更注重多学科交融、目标更坚持弘扬“社会主义核心价值观”、德育价值取向开始回归“本真德育”、落脚点从“注重宏观”发展向“着眼微观”、实施模式更强调可操作性等时代特征,并进一步指出思政工作应视野更宽广、
期刊
摘要:毕业设计质量是衡量高校教学水平的重要依据。毕业设计管理是高校教学管理工作的重要方面。在分析现有毕业设计管理工作困境的基础上,借鉴工程管理的思想,提出了以网络管理系统为平台的工程化管理模式。  關键词:毕业设计;工程管理;管理模式  作者简介:蒋鼎国(1963-),男,江苏淮安人,淮阴工学院科技处处长,副研究员;张有东(1967-),男,江苏淮安人,淮阴工学院学科建设办公室,教授。(江苏淮安2
期刊
摘要:学风建设对于提高学校教育质量,促进学生成才具有重要意义。职业生涯规划教育对于推动高校学风建设具有不可替代的作用。高校應构建全员化、全程化的职业生涯规划教育体系,通过职业生涯规划教育,帮助学生明确学习目标,激发学习热情,检验学习效果,从而更好地推动高校学风建设。  关键词:高校;学风建设;职业生涯规划  作者简介:李瑶(1983-),女,天津人,天津科技大学机械学院,助教;崔永根(1975-)
期刊
摘要:为了更好地发挥思想政治理论课在培养大学生创新创业能力中的独特优势,把它建设成为大学生真心喜爱、终身受益的优秀课程,就必须从独立学院教育教学的应用性和实践性特色以及大学生的个性特点出发,以引导学生思考现实问题为中心创新课堂教学内容,以激励学生主动参与为手段创新课堂教学方法,以考核学生素质和能力为重点创新课程考试方式。  关键词:思想政治理论课;创新创业能力;教学改革  作者简介:彭金玉(196
期刊