- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五讲中断概念讲述
中 断;中断是为了使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,在很大程度上提高了单片机处理外部或内部事件的能力。它也是单片机最重要的功能之一,我吗学习单片机必须要掌握的。
51单片机内部有5个中断源,也就是有5种情况发生时,会使单片机去处理中断程序。
本节以定时器中断为例进行讲解。;举一个生活例子:
开火烧开水,然后去洗衣服,在洗衣服过程中,突然听到水壶报警,这时,你停止洗衣服,去关火灌水,等灌水完毕后,继续洗衣服。这个过程,实际上就是发生了一次中断。
对应单片机,中断是指CPU在处理某一事件A时,发生了另一事件B,请求CPU迅速去处理(中断发生),CPU暂时停止当前工作(中断响应),转去处理事件B(中断服务),待CPU将实践B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回???,这一过程称为中断,其流程图如图1。;图1 中断结构;再回到生活中的例子,与单片机中断结合分析。你主要任务是洗衣服,开会报警是一个中断请求,这一时刻相当于断电处,你做出响应去关火、灌水,这一系列动作相当于处理中断程序,灌完水后你继续去洗衣服,相当于处理完中断程序再返回主程序继续执行主程序。
注意:水开是随时可能发生的,无论什么时候水开报警,你都要立即去处理它,处理完毕后再继续洗衣服。单片机执行主程序时也一样,一旦有中断发生,单片机立即停止当前程序,赶去处理中断程序,处理完再回到原来程序,这也是中断的实时性要求。;引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。;在中断的基础上,还有中断嵌套的概念,也就是如果单片机正在处理一个中断程序,此时,又有一个中断现象发生,单片机将会停止定期的中断程序,而转去执行新的中断程序,新中断程序处理完毕后再回到刚才停止的中断程序继续执行,执行完整个中断程序再回到主程序继续执行主程序。;涉及中断,还有一个中断优先级的概念。单片机在执行程序的过程中,遇到两个中断发生,先处理哪一个呢?这取决于两个中断的优先级高低的设置情况,通过设置中断优先级寄存器,可以告诉单片机,当两个中断同时出现时,先去执行哪一个中断程序,若没有人为操作设置,单片机会按照默认的一套优先级知道处理。;51单片机内共有2个16位定时器/计数器,即定时器T0和定时器T1。52单片机内多一个定时器/计数器T2。它既有定时功能,也有计数功能。
注意:定时器系统是单片机内部一个独立的硬件部分,它与CPU和晶振通过内部某些控制线连接并相互作用,CPU一旦设置开启定时功能后,定时器便在晶振的作用下自动开始计时,当定时器的计数器计满后,会产生中断,即通知CPU该如何处理。;定时器/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。
加1计数器输入的计数脉冲有两个来源,一个是系统的时钟振荡器输出脉冲经12分频后送来;一个是T0和T1的引脚输入的外部脉冲源,每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器清0,且计数器的溢出使TCON寄存器中的TF0或TF1置1,向CPU发出中断请求。
如果定时器/计数器工作在定时模式,则表示定时时间已到,如果工作在计数模式,则表示计数值已满。;由此,由溢出时计数器的值减去计数初值,才是加1计数器的计数值。
TMOD是定时器/计数器的工作方式寄存器。单片机复位时全部清0。
定时器1 定时器0
C/T为定时器模式和计数器模选择(1/0)
M1M0提供4种工作方式,01时,16位定时器/计数器;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
TF1-定时器1溢出标志位,当定时器1计满溢出时,由硬件使TF1置1,并申请中断。
TR1-定时器1运行控制位,TR1置1时,启动定时器1。
;以定时器0的方式1:16位计数器简介。
方式1的计数位数是16位,TL0为其低8位,TH0为其高8位,共同组成16位的加1计数器。
TL0满后,向TH0进一位,TH0满后,计数器溢出,向CPU申请中断,接下来CPU对中断进行处理,此时,如果TR0为1,计数就不停止。
计数原理同十进制数数!;计数器从初值计满,需要一定时间。定时器一旦启动,它在原来数值的基础上开始加1计数,如果在程序初始,未设置TH0和TL0,它们默认都是0,假设时钟频率为12MHz,12个时钟周期为一个机器周期(此时机器周期为1us,即计一个数耗时1一个机器周期1us),计满TH0和TL0需要216-1个数,再来一个脉冲,计时器溢出,随即向CPU申请中断。
文档评论(0)