单片机C语言中断问题及解决办法

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:JSAQSZ
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:单片机的发展是计算机领域日益精细化的结果和产物。文章简明概述了单片机的概念、类型,着重提出了C语言中断中存在的部分问题及相关解决方案。本文试图将单片机的中断技术与实际工业生产相结合,运用的案例也是实际生活得来,以期更加深入地交流单片机中断技术的使用情况和问题解决方案。
  关键词:单片机;语言;中断
  中图分类号:TP311
  1 相关概念及分类
  单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器、计数器等功能集成到一块硅片上构成的一个小且完善的微型计算机系统。简而言之,一块芯片就是一台计算机,它虽然没有普通计算机的外观,但却具有了微型计算机包含的基本组成结构和特有的控制应用功能。同时,它在体积、结构和功能特点,在实际应用中能够完全融入应用系统中,也称为嵌入式微控制器。而且它应用在极其广泛的各个领域,帮助人类实现许多不可想象的功效,给生活和工作带来更多的便利。
  单片机是微型计算机领域发展的重要分支,是专门面向控制的微处理器件。从工作方式分为,硬件和软件两个组成部分。
  硬件根据电路的功能和配置分为三类:基本功能类,控制功能类,辅助功能类。
  软件根据其要实现的功能分为两类:管理程序和应用程序。
  从不同角度讲,它亦可以分为三个大的类型。
  第一类:通用型与专用型。按照单片机的适用范围划分。
  第二类:总线型与非总线型。按照单片机是否提供并行总线来区分。
  第三类:工控型与家电型。按照单片机应用的领域区分。
  2 C语言中断的各种问题及解决方案
  单片机程序设计语言是其在开发系统中使用的语言,在其开发系统中可以使用机器语言,汇编语言和高级语言三种。单片机的中断主要指CPU在正常运行时外部或内部发生了请求CPU迅速处理的事件,CPU暂时中止正在执行的程序,转去执行提出中断请求的服务程序,执行完毕后返回原程序继续执行的过程。
  引起CPU中断的设备或事件称为中断源。中断源向CPU发出的请求处理信号称为中断申请或中断请求。CPU暂时中断正在处理的事情,转去处理突发事件的过程称为中断响应。
  这种语言中断,看起来很普通,但在实际生产中应用却很广泛。在工业生产中,如果我们的机器需要在特定时段进行加水或是加药工作,而且数量固定,但操作之后又要恢复到原来的运行中就需要运用语言中断程序设计。我们就需要对单片机进行中断编程,实际应用中就可以实现机器的自动化生产,并且保证不出现人为原因的失误,减少损失和浪费。
  首先,关于如何运用语言中断对设备进行简单操作。中断服务的子程序的最后命令必然为中断返回指令RETI。在这一过程中,CPU响应中断请求后进入中断服务程序,在返回RETI前却要注意标志位的清除问题。使用C语言进行清除有以下几种方法:
  IE1=0;//清除外部中断INT1请求标志
  TF0=0;//清除定时器T0中断请求标志
  TF0=1;//清除定时器T1中断请求标志
  R1=0;//串行通讯接收中断请求标志
  T1=0;// 串行通讯发送中断请求标志
  下面是简单的一则语言中断例子,说明一部小型电动玩具在运行过程中如何运用C语言中断来完成其一种演示后继续原来的操作,也可以重复实施语言中断,这样电动玩具的演示种类也可以逐步增加。
  #include
  Void init(void)//声明中断初始
  {EA=1;//中断总开关
  {EXO=1;//开中断0开关。中断1为,EX1=1;
  IT1=1;//采用边沿触发,下降沿有效。IT1=0为低电平触发中断。
  }
  Main()
  {init(),调用中断初始化函数
  ==
  ===主程序;
  }
  Void in _0(void)interrupt0//中断服务函数
  {==
  ==要服务的程序
  }
  其次,如何处理好中断优先级的关系。不同类型的单片机有不同数量的中断源,但中断优先级一般只有高级和低级两种。CPU在处理不同优先级的中断时,又会出现中断嵌套。中断嵌套可能是两级甚至更多。越精密的仪器设备,多级嵌套出现的可能性越大,因为人们对高精尖的仪器有着更加苛刻的要求,希望通过对其发出指令,而实现自己对生活、工作的更高享受和更多用途。
  也可以通过程序设置中断的允许或屏蔽来设置中断的优先级。
  例如,设置定时器和串行口中断为高优先级,两个外部中断为低优先级,如何设置IP的值。
  IP=0x3a;
  汇编语言程序:
  (1)使用字节操作指令:
  MOV IP,#3AH
  (2)使用位操作指令:
  CLR PXO;设置外部中断0为低级中断
  CLR PX1;设置外部中断0为低级中断
  SETB PT0;置定时器/计数器0为高级中断
  SETB PT1;置定时器/计数器1为高级中断
  SETB PS;置串行口中断为高优先级
  SETB PT2;置定时器/计数器2为高级中断
  由于复位后IP=OOH,外部中断可不设置。
  最后,中断响应分为三个阶段:中断采样并置位,查询标志,响应中断。一般来说,中断响应的最短时间为3个机器周期,最长为8个机器周期。如果我们对有机器设备的特殊要求,就需要事先了解单片机的机器周期,能否在中断响应的机器周期内完成中断要求,是我们需要克服和研究的问题。
  如果人为的中断请求被机器接收并正在执行,但中断响应周期无法满足中断请求,就会造成程序的混乱和操作的失误。即使优先级被机器接收并合理安排,但中断响应的时间也必须考虑进去,我们可以致力于中断响应时间的机器周期缩短,延长中断请求时间,充分满足我们的生活和工作需要。
  中断响应结束就要执行中断服务,要保护现场,中断处理程序,恢复现场三个步骤完成。特别是要保护现场免受破坏,在中断返回时需要使用RETI指令,不能用RET来替代。
  综上所述,单片机的应用范围广泛,适用性强,且功能强大,发展前景看好。但在具体的操作和使用过程中,仍然存在一些技术性的难题和弊端,需要技术人员在实际应用不断完善和思考,推进单片机的深入广泛应用,为社会发展提供更先进更优厚的服务和技术。
  参考文献:
  [1]冯立杰,刘长泉.谈8031单片机中断系统的增强方法[J].武警工程学报,2000(02).
  [2]胡坤.单片机的中断技术[J].辽宁师专学报(自然科学版),2003(02).
  [3]陈静.单片机应用系统中的编程语言[J].淮北职业技术学院学报,2009(01).
  [4]刘益,邓祖明.单片机中断服务程序处理方法[J].宜宾学院学报,2009(06).
  作者单位:襄阳职业技术学院,湖北襄阳 441000
其他文献
《普通语文课程标准》(征求意见稿)中提出"文化的传承与理解是指学生在语文学习中,集成中华民族优秀传统文化,理解、借鉴不同民族和地区文化的能力,以及在语文学习过程中表现出
通常我们语文教师进行作文教学的时候,都会使用教材文本并采用读写相结合的方式。不过,在教学过程中教师一直被以下几个问题所困扰着:读些什么而又写些什么呢?在读和写之间,
从认知领域角度分析,“结构”具有独特的价值与意义,从“结构”的角度出发统领教学,有助于学生创新能力培养,而语文作为学生在小学阶段学习的一门重要学科,小学语文结构化教学的探索,无疑是深化语文教学改革的本质方法,对此在本文中笔者将对小学语文结构化教学提出以下意见,希望可以让语文教学从“碎片化”走向“结构化”。  “结构化”是围绕要实现的功能,将有关要素进行搭配,从而通过各种要素之间的相互联系、相互作用
高中语文教学改革对学生的语文学习能力提出了新的要求,学生不仅要在高中语文课堂之上开展阅读学习,而且还要在教师的指导之下增加课外阅读活动,要充分认识到课外阅读在高中语文教学中的重要性,使课外阅读成为丰富学生知识的重要窗口,更好地激发学生的高中语文阅读兴趣,掌握高中语文阅读方法,更好地培养学生的阅读情趣,全面提升学生的语文自主阅读和学习能力。  一、高中语文课外阅读的重要性分析  高中语文课外阅读的重
大专院校的软件应用教学近年来倍受青睐,教学方式也日趋完善,但仍然存在一些教学方面的问题,大专院校的软件应用教学改革应该在教学目标、教材、教学等内容上下功夫,把理论知
这本传记用科学哲学作为编史方法论。海森伯从慕尼里学到了物理,从哥丁根学到了数学,又从哥本哈根学到了哲学,他是三个科学共同联合培养的结构,因此能胜俐量子革命的先锋。