51单片机用内部中断 1s一个中断C程序怎么写

51单片机用内部中断 1s一个中断C程序怎么写,第1张

假设你的外部晶振为12M(时钟频率为1M),用复合定时法,即把小值定时叠起来void t0() interrupt 1{中断服务程序;}主函数:TMOD=0x01 //设置为定时器0工作方式1for(t=20t>0t--){ TH0=(65536-50000)/256 TL0=(65536-50000)%256//赋初值使一次定时为50ms TR0=1 //开定时器t0 while(!TF0) //等待置位 TR0=0 //关定时 TF0=0 //清标志位}TF0=1 //亲自置位TF0,是打开中断前提IE=0x82 //开允许位EA,ET0若想精确一些,由于中断置位的 *** 作会花3~8个时钟周期;所以可把初值增大3~8,即TH0=(65536-49997)/256TL0=(65536-49997)%256还可用编译软件调试(先设置外部晶振值为12M)测量延时时间

当CPU(中央处理器)执行一条现行指令的时候,如果外设向CPU发出中断请求,那么CPU在满足响应的情况下,将发出中断响应信号,与此同时关闭中断,表示CPU不在受理另外一个设备的中断。这时,CPU将寻找中断请求源是哪一个设备,并保存CPU自己的程序计数器(PC)的内容。然后,他将转移到处理该中断源的中断服务程序。CPU在保存现场信息,设备服务(如交换数据)以后,将恢复现场信息。在这些动作完成以后,开放中断,并返回到原来被中断的主程序的下一条指令。

在微机系统中,对于外部中断,中断请求信号是由外部设备产生,并施加到CPU的NMI或INTR引脚上,CPU通过不断地检测NMI和INTR引脚信号来识 别是否有中断请求发生。对于内部中断,中断请求方式不需要外部施加信号激发,而是通过内部中断控制逻辑去调用。无论是外部中断还是内部中断,中断处理过程 都要经历以下步骤: 请求中断→响应中断→关闭中断→保留断点→中断源识别→保护现场→中断服务子程序→恢复现场→中断返回。

一、主体不同

1、内部中断:断是一个算法指令,是由软中断指令启动的中断。

2、外部中断:是单片机实时地处理外部事件的一种内部机制。

二、机制不同

1、内部中断:执行除法指令时,出现除数为0或商超过寄存器所能表达的范围,则产生类型为0 的内部中断。是优先级最高的内部中断。

2、外部中断:当某种外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后.又返回被中断的程序处,继续执行下去。

三、特点不同

1、内部中断:由一条指令INT n产生中断类型码或者由指令规定,或者是预定的。不执行INTA总线周期,CPU也不发出响应信号INTA。

2、外部中断:在实时控制中,现场的各种参数、信息均随时问和现场而变化。这些外界变量可根据要求随时向CPU发出中断申请。请求CPU及时处珲中断请求,如中断条件。

参考资料来源:百度百科-外部中断

参考资料来源:百度百科-内部中断


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11109975.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存