关于单片机中断

中断:CPU停止当前任务,去处理中断内容,处理完后自动恢复以前任务。

  单片机有5个中断源,2个中断优先级,中断受两级控制:

    1、CPU开总中断;

    2、中断源开中断。

中断源:引起中断事件的类型。

   5个中断源:

    1、外部中断请求0,由INT0(P3.2)输入;

    2、外部中断请求1,由INT1(P3.3)输入;

    3、片内定时器/计数器0溢出中断请求;

    4、片内定时器/计数器1溢出中断请求;

    5、片内串行口发送/接收中断请求。//很重要,单片机应用中用了很多

 

      定时器/计数器控制寄存器(Timer/counter Control Register):用来查看是否产生了外部中断

      

      IT0,IT1(Interrupt Type):外部中断0、1触发方式选择位,由软件设置。

        0-->下降沿触发方式,INT0/INT1引脚上从高到低的复跳变可引起中断;

        1-->电平触发方式,INT0/INT1引脚上低电平可引起中断。

      IE0,IE1(Interrupt Edge):外部中断0、1请求标志位。

        当外部中断0、1依据触发方式满足条件产生中断请求时,由硬件置位(IE0/IE1=1);

        当CPU响应中断时,由硬件清楚(IE0/IE1=0).

      TF0,TF1(Timer Overflow):定时器/计数器0、1(T/C0、T/C1)溢出中断请求标志。

        当T/C0、1计数溢出时,由硬件置位(TF0/TF1);

        当CPU相应中断时,由硬件清除(TF0/TF1=0)。

 

      串行口控制寄存器SCON(Serial Port Control Register):用来查看是否产生了串口中断

      

      RI:串行口接收中断请求标志位。

        当串行口接收完一帧数据后请求中断时,由硬件置位(RI=1).

        RI必须由软件置0.

      TI:串行口发送中断请求标志位。

        当串口发送完一帧数据后请求中断时,由硬件置位(TI=1).

        TI必须由软件置0。

中断的控制:由中断允许寄存器IE和中断优先寄存器IP控制

    中断允许寄存器IE(Interrput Enable Register):实现中断的开关管理。

    

    EX0,EX1:外部中断0、1的中断允许位。

      1-->外部中断0、1开中断。

      0-->外部中断0、1关中断。

    ET0,ET1:定时器/计数器0、1(T/C0,T/C1)溢出中断允许位。

      1-->开中断

      0-->关中断

    ES:串行口中断允许位

      1-->串行口开中断

      0-->串行口关中断

    ET2:定时器/计数器2(T/C2)溢出中断允许位

      1-->T/C2开中断

      0-->T/C2关中断

    EA:CPU开关中断寄存器

      1-->CPU开中断

      0-->CPU关中断

    中断优先级寄存器IP(Interrput priority Register):设置中断源优先级

    

     不做介绍了,书上有

中断响应

    void function() interrupt 4

    {}

      0:外部中断0;

      1:定时器/计数器0;

      2:外部中断1;

      3:定时器/计数器1;

      4:串行口中断。

转载于:https://www.cnblogs.com/judes/p/5681576.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

转:探索 AIX 6:在 AIX 6 上配置 iSCSI Target

引言iSCSI(Internet Small Computer System Interface)被业界认为是非常廉价的 SAN 解决方案,一直在中低端应用领域被市场所看好。 iSCSI 客户端和服务端都既可以通过硬件方式实现,也能通过软件方式的,其优劣区别就是在…

uni-app微信小程序生成自定义参数二维码,跳转小程序指定页面,获取参数;uni-app微信小程序获取二维码自定义参数;微信小程序生成动态参数二维码;uni-app微信小程序获取动态参数二维码;

一、场景需求: 在小程序个人名片页面A页面,生成用户的个人名片二维码(该二维码携带用户的唯一标识id);微信扫一扫或长按图片识别这个二维码,可以跳转到小程序的B页面,并且在B页面拿到二维码上的…

【view桌面虚拟化系列】1-vSphere搭建

本系列一共三章,具体如下: 【view桌面虚拟化系列】1-vSphere搭建 【view桌面虚拟化系列】2-View搭建 【view桌面虚拟化系列】3-VDI实现 实验的目的:测试vsphere5.1a、view5.1测试整体运行状况。 首先介绍下环境(所使用域名:vmc.co…

uni-app微信小程序保存页面到相册;canvas保存小程序页面;微信小程序保存二维码活动页面到相册;微信小程序canvas 生成海报保存到相册;canvas绘制小程序页面保存及分享;

文末代码可以直接复制运行(只需要将中间的二维码图片、底部的微信和相册图片和微信头像配置白名单 改成你项目内的img图片即可成功运行) 一、场景:在微信小程序 个人名片页面 含有微信头像和个人信息二维码(识别可跳转小程序指定页…

面试经验谈架构

##################################################### #本文内容来自《老男孩linux运维实战培训》学生—郑东旭 #如有转载,请务必保留本文链接及本版权信息。 #欢迎广大运维同仁一起交流linux/unix网站运维技术! #QQ:919953500#E-mail:weilandeshanhuhai126.com …

微信小程序uni.switchTab传参获取不到;小程序跳转到tabBar页并传参;uni-app微信小程序获取tabBar页面参数失败;uni-app微信小程序tabBar页面onLoad不执行

需求场景:从非tabBar页面B跳转到tabBar页面A,并想要携带参数。 如果使用uni.switchTab传参,会导致tabBAE页面获取不到参数; 原因: 官方文档有说,uni.switchTab路径后不能带参数; uni.navigateT…

UIView的旋转iOS开发

更多阅读请访问http://www.hopean.com 有关UIView坐标变换的,但是经常不能得到自己想要的效果,今天就把它仔细研究了下。记下来等以后忘记的时候再复习 重写shouldAutorateToInterfaceOrientation:,限制某个方向会改变原点的位置,…

uni-app微信小程序uni.navigateTo跳转无效问题;记录一次uni-app页面跳转无效,来回跳转问题;wx.navigateTo ,跳转超过10次怎么点不动的解决办法。

场景需求:从小程序A页面跳转到小程序B页面,然后B页面还可以跳到A页面。 跳转失效原因: –1.uni.navigateTo只能跳转到非tabBar页面,tabBar导航栏页面只能用uni.switchTab方法跳转; –2.uni.navigateTo跳转的页面栈太多…

20160512关于mac安装caffe的记录

记得2015年在mac系统上安装过一次caffe,非常顺利,但是最近群里许多同学反映mac安装caffe出现了各种问题,同时我也在帮助别人安装caffe的时候也遇到了一些坑,不再像以前这么顺利了。估计与操作系统,caffe升级有关。 今晚…

Python学习笔记(二)

2019独角兽企业重金招聘Python工程师标准>>> pickle #腌制 pickle.dump() #保存数据 pickle.load() #恢复数据 locals() # 返回当前作用域中的变量集合 with语句会自动处理所有已打开文件的关闭工作,类似C#中的using() >>> data[5,78,3,45,7,1]…

mac:在当前文件夹打开terminal终端

From: http://www.cnblogs.com/yjmyzz/p/3662507.html System Preferences -> Keyboard -> Shortcuts -> Services -> New Terminal at Folders/New Terminal Tab at Folder 这二项都勾上 然后在Finder中,在任何目录上右击->service就能看到进入terminal的选项

自定义控件(视图)2期笔记13:View的滑动冲突之 内部拦截法

1. 内部拦截法: 父容器不拦截事件,所有的事件全部都传递给子元素,如果子元素需要此事件就直接消耗掉,否则就交给父容器进行处理。 这种方法和Android中的事件分发机制不一样,需要配合requestDisallowInterceptTouchEve…

微信小程序图片加载太慢;uni-app微信小程序加载图片优化;微信小程序图片image加载成功事件@load;图片加载成功触发@load事件

场景: 微信小程序,对于以下较大的图片(例如几M),在真机运行时候加载比较慢,此时会有一个比较长时间的白屏,体验很差。 解决方案:图片未加载成功前,进行loading…;图片加载…

循环队列及C语言实现一

循环队列是为了充分利用内存,进行数据操作的一种基本算法。具体实现方式可划分为:链式队列和静态队列,这里所谓的静态是指在一片连续的内存区域进行数据操作。本文只讲述静态队列,也是最简单的实现方式,链式队列以及链…

微信小程序自定义导航栏;uni-app微信小程序自定义顶部导航栏;微信小程序顶部导航栏高度;微信小程序左上角胶囊按钮;uni-app微信小程序左上角胶囊设置

本文是自定义微信小程序的顶部导航栏;自定义微信小程序底部导航栏tabBar看另外这篇 文末的两个文件代码可以直接复制使用 自定义导航栏页图 一、场景: 有些时候,微信小程序需要我们在导航栏做更多的操作样式(例如高度、颜色、加…

HTML5与HTML4的比较

HHTML5封装一些标签和属性&#xff0c;方便了开发。 1 <form> 2 <p> 3 <label>Username:<input name"search" type"text" id"search" autofocus></label> 4 </p> 5 &l…

[iOS]Unable to run app in Simulator

From: http://blog.csdn.net/snowwind/article/details/41099575 今天在试Admob的时候&#xff0c;发现在simulator上&#xff0c;程序突然不能运行了&#xff0c; 提示 [plain] view plaincopy Unable to run app in Simulator An error was encountered while running (…

uni-app微信小程序动态样式设置;微信小程序style行内式无效;微信小程序style行内式编译报错;微信小程序:style设置样式

场景&#xff1a;微信小程序设置动态样式&#xff0c;有些时候是需要用到变量来书写的&#xff1b;但是实际使用发现&#xff0c;行内式书写虽然有效&#xff0c;但是会使得微信小程序的编辑失败&#xff1b;故需要使用动态的v-bind来写动态变量行内式样式&#xff08;既使用:s…

循环队列及C语言实现二

在我的上一篇博文中已经讲到循环队列的特点作用以及C语言实现&#xff0c;当然实现和操作的方式比较简单&#xff0c;在实际项目应用中略显粗糙。因此&#xff0c;这一篇提供一个进阶篇的实现与操作接口。具体函数作用可以参见我的注释部分&#xff0c;使用的时候直接把里面的接…