总架构图

IE寄存器

控制各个中断源的屏蔽与允许

TCON寄存器

各个中断源的请求标志位&有效信号的规定

中断源及其优先级

中断号写程序的时候要用



CPU处理中断三原则

1.CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。

2.正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。

3.正在进行的低优先级中断服务,能被高优先级中断请求所中断。

中断响应条件

  1. 中断源有中断请求;
  2. 此中断源的中断允许位为1;
  3. CPU开中断(即EA=1)。

代码写法

main函数中:

//以外部中断0为例
EA=1;//打开总中断开关
EX0=1;//允许外部中断0 (或其他中断源对应的允许位)
IT0=0/1;//设置外部中断的触发方式(或其他中断源)

中断服务函数

模板:

void 函数名 ()  interrupt 中断号
{
do anything that you want
}

例子:

void  int0  ()  interrupt  0
{
do anything that you want
}

外部中断0 控制led灯

#include <reg51.h>
#define u16 int
#define u8 unsigned char
#define delaytime 500000
sbit led = P0^0;
sbit k = P3^2; //p32 用导线连接一个独立按键,按下按键时led状态发生改变 void delay(u16 i)
{
while(i--);
}
void Int0Init()
{
IT0 = 1; //触发方式为下降沿有效
EX0 = 1; //中断0 允许
EA = 1; //总开关
}
void main(void)
{
Int0Init();
while(1);
}
//外部中断0的调用程序
void Int0() interrupt 0 // P3^2 下降沿调用
{
delay(1000);
if(k == 0) //延迟10ms仍然按下(防抖)
{
led = ~led;
}
}

最新文章

  1. 判断安卓和IOS
  2. Mac10.9用brew搭建Eclipse4.4+Maven3.2.3+JDK1.8运行环境
  3. springMVC: java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
  4. Atitit oodbms的查询,面向对象的sql查询jpa jpql hql
  5. 利用scp 远程上传下载文件/文件夹和ssh远程执行命令
  6. 细谈WEB标准
  7. react 评论列表插入评论数据 unshift
  8. 关于Nios II的启动分析(转载)
  9. Legends-ggplot2图例的一些操作
  10. RedHat linux配置yum本地资源
  11. 关于 mysql.test 数据库
  12. map/reduce实现 排序
  13. iOS 把图片从Mac本地添加到iOS Simulator中
  14. 插件化—配置xml的辅助测试
  15. POJ 3624 Charm Bracelet 简单01背包
  16. Jetty实战之 嵌入式Jetty运行Servlet
  17. Ionic集成ArcGIS JavaScript API.md
  18. 201521123092《java程序设计》第四周学习总结
  19. RabbitMQ框架构建系列(二)——RabbitMQ基础知识介绍
  20. css选择器+、~、&gt;

热门文章

  1. Django models模型
  2. IOS应用开发版本控制工具之Versions使用,iosversions
  3. Repeater 的使用
  4. Webform 内置对象 Session对象、Application全局对象,ViewState
  5. JS操作CSS
  6. 【My First Blog】评近期国产烂片-《何以笙箫默》
  7. (转)淘淘商城系列——分布式文件系统FastDFS
  8. jQuery 收缩展开效果
  9. scrapy增加爬取效率
  10. 20181019 记录 window.setTimeout(&#39;dofunction()&#39;,2000); - layui form 表单提交 事件 - F11全屏 事件 window.onresize