中断概念 : 计算机执行某程序时,发生了紧急事件或有特殊请求,CPU暂停某程序的执行, 转而去处理上述事件或请求,处理完毕后再重新执行某程序的过程叫做中断。

数据的输入/输出传送方式:

(1)无条件传送方式: 一方对另一方来说总是准备好的。

(2)查询传送方式(LOOK UP): 传送前一方先查询另一方的状态,若已经准备好就传送,否则就继续查询/等待。

(3)中断传送方式(IRQ): 一方通过申请中断的方式与另一方进行数据传送。

(4)直接存储器存取方式(DMA): 双方直接通过总线传送数据, 不经CPU中转。适用于数据量大高速通讯的设备不占用CPU时间。

中断传送方式特点:

数据传送的双方平时各自做自己的工作,一旦甲方要求与乙方进行数据传送,就主动发出信号提出申请,乙方接到申请后若同意传送,安排好当前的工作,再响应与甲方发生数据传送。完事后,回去继续做打断前的工作。

引起CPU中断的根源,称为中断源。

中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。

对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。

实现上述中断功能的部件称为中断系统(中断机构)。

中断功能强弱是计算机性能优劣的重要标志

提高CPU效率

解决速度矛盾

实现并行工作

应付突发事件……

51子系列允许5个中断源:

外部中断源(2个):

INT0——由P3.2端口线引入,低电平或下降沿引起。

INT1——由P3.3端口线引入,低电平或下降沿引起。

这两个外部中断源标志和它们的触发方式控制位由特殊功能寄存器TCON的低4位控制。

内部中断源(3个):

T0——定时器/计数器0中断,由T0回零溢出引起。

T1——定时器/计数器1中断,由T1回零溢出引起。

TI/RI——串行I/O中断,串行端口完成一帧字符发送/接收后引起。

这3个内部中断源的控制位分别锁存在特殊功能寄存器TCON和SCON中。

1、中断请求标志TCON(88H)可位寻址 TCON:Timer控制寄存器,低4位管理外部中断 作用:设置外部中断触发方式,标注外部中断请求。

IE0/IE1:外部中断申请标志位: =0:没有外部中断申请; =1:有外部中断申请。 IT0/IT1:外部中断请求的触发方式选择位: =0:在INT0/INT1端申请中断的信号低电平有效; =1:在INT0/INT1端申请中断的信号负跳变有效。

外部中断及中断请求的撤除

低电平/负脉冲→INT0/INT1引脚可触发中断

IT0/IT1:INT0/1的触发方式选择位: IT0/IT1 =0 时,INT0/INT1是低电平有效; IT0/IT1 =1 时,INT0/INT1是负跳变有效。

低电平触发 引脚上的低电平须持续到中断发生。若中断返回前仍未及时撤除低电平,将再次中断。

负脉冲触发 CPU在前一机器周期采到INT0/INT1引脚为高,后一机器周期采到为低才认为是一次中断请求。CPU 可记忆申请、可自动撤除中断申请。

#include <reg52.h>

#define uchar unsigned char
#define uint unsigned int uint count;
void delay(uint z)
{
uint x,y;
for(x = z; x > ; x--)
for(y = ; y > ; y--);
} /*中断服务特殊功能寄存器配置*/
void init()
{ TMOD = 0x01; //定时器16为计数工作模式
TH0 =0x4b;
TL0 =0xfd; //50ms
ET0 = ; //开定时器0中断
TR0 = ;//启动定时器0
EA = ; //开总中断
} void main()
{
init();
while()
{
P1 = 0xff;
}
} /*中断服务程序*/
void timer0() interrupt
{
TH0 =0x4b;
TL0 =0xfd; //50ms
count++;
if (count == )
{
P1 = ;
delay();
count = ;
}
}

MCU 51-5中断的更多相关文章

  1. 51单片机中断interrupt……using……

    51单片机中断细节的一些问题. interrupt0:外部中断0interrupt1:定时器中断0interrupt2:外部中断interrupt3:定时器中断1interrupt4:串口 using ...

  2. c语言编写51单片机中断程序,执行过程是怎样的?

    Q:c语言编写51单片机中断程序,执行过程是怎样的? 例如程序:#include<reg52.h>  void main(void)  {   EA=1;      //开放总中断   E ...

  3. ET 与RETI 基于51单片机中断跳出指令“RETI”浅议

    最近在基于51单片机编程的过程中出现了个很奇怪的问题“程序执行中在寄存器EA=1,ET0=1,TR0=1条件下,单TF0=1时并没有执行中断”.在有过单片机中断编程经历者都知道当EA=1,ET0=1的 ...

  4. MCU & 51单片机

  5. [IC]浅谈嵌入式MCU软件开发之中断优先级与中断嵌套

    转自:https://mp.weixin.qq.com/s?__biz=MzI0MDk0ODcxMw==&mid=2247483680&idx=1&sn=c5fd069ab3f ...

  6. 痞子衡嵌入式:嵌入式MCU中通用的三重中断控制设计

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是嵌入式MCU中通用的三重中断控制设计. 我们知道在 MCU 裸机中程序代码之所以能完成多任务并行实时处理功能,其实主要是靠中断来调度的, ...

  7. AVR 嵌入式单片机芯片的中断系统介绍

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  8. GD32 ------ 使用外部中断,中断函数需要延时才能读到真正电平

    MCU:GD32F103RCT6 中断引脚没有外界上拉电阻 中断配置如下: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFI ...

  9. RT-thread内核之异常与中断

    一.什么是中断? 中断有两种,一种是CPU本身在执行程序的过程中产生的,一种是由CPU外部产生的. cpu外部中断,就是通常所讲的“中断”(interrupt).对于执行程序来说,这种“中断”的发生完 ...

  10. 【STM32H7教程】第21章 STM32H7的NVIC中断分组和配置(重要)

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第21章       STM32H7的NVIC中断分组和配置( ...

随机推荐

  1. jQuery - Ajax ajax方法详解

    $.ajax()方法详解 jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为Strin ...

  2. ecshop php商城系统数据库结构及表的介绍分析

      ecshop共86张表,确实比较多,不过功能确实最完善的. 表结构分析 ecs_account_log // 用户账目日志表 ecs_activity // 活动表(代码,名称,开始,结束,描述) ...

  3. Python多线程 - threading

    目录 1. GIL 2. API 3. 创建子线程 4. 线程同步 4.1. 有了GIL,是否还需要同步? 4.1.1. 死锁 4.1.2. 竞争条件 4.1.3. GIL去哪儿了 4.2. Lock ...

  4. Mini Linux的制作过程

  5. linux使用组ID(SGID)共享文件

    假如你有这样一个需求,一个小组内很多成员共同研究一个项目,为了这个项目我们需要分配一个具体的目录. 所有成员都拥有该目录的使用权限,可以互相操作成员的文件及内容.而且不允许其他人查看. 现在开始操作: ...

  6. (一)JavaMail发送简单邮件

    1,导入依赖 <dependency> <groupId>com.sun.mail</groupId> <artifactId>jakarta.mail ...

  7. (一)maven搭建和idea的配置

    一.下载安装 前往 https://maven.apache.org/download.cgi 下载最新版的Maven程序.解压到任意目录 (要养成不起中文路径的好习惯,否则有时间出问题真的很难找) ...

  8. 容器技术之Docker资源限制

    上一篇我们聊到了docker容器的单机编排工具docker-compose的简单使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13121678.html: ...

  9. css3动画的实例讲解

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. Web前端 -- Webpack

    一.Webpack Webpack 是一个前端资源加载/打包工具.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源. 二.Webpack安装 1.全局安装 npm i ...