精华内容
下载资源
问答
  • 51单片机 外部中断的使用
    2022-03-23 20:25:47

    本文仅围绕51单片机中断的使用进行说明,并不详细说明中断的具体概念。

    外部中断的使用

    1. 外部中断的使用非常简单,只要知道某个引脚被设置了某个状态就会触发某个函数。
    2. 网上看的话会出现很多晦涩的名词,但是流程其实非常的简单和固定,总的来说就是。
      • 设定外部中断的触发方式(边沿触发和电平触发)
      • 开启对应的外部中断开关
      • 开启总中断
    3. 简单的代码示例
      // 外部中断服务函数
      void exint0() interrupt 0
      {
      	P0 = ~P0;
      }
      void main()
      {
      	IT0 = 1; 							// 外部中断模式设置(边沿触发)
      	EX0 = 1;							// 使能外部中断0
      	EA = 1;								// 使能总中断 
      	while (1);
      }
      
    4. 示例代码说明
      • IT0 = 1:外部中断0的触发方式选择位。令它为1,则对应引脚为下降沿触发中断;令它为0,则对应引脚为低电平触发方式。简单来说,就是如果对应的引脚的状态发生了对应变化,就触发中断,执行中断服务函数。
      • EX0 = 1:外部中断0中断允许控制位。为1时开放外部中断1的中断请求,为0时屏蔽。(使能的意思就是开启~)
      • EA = 1:总中断允许控制位。用来开启或屏蔽所有的中断请求,令它为1,则开放中断请求,可以响应中断;令它为0,则屏蔽所有中断请求。
      • void exint0() interrupt 0:这个可以分成两部分看,一部分是void exint0()是函数的名字,一般是随便取,返回值和参数都要是空,另一部分是interrupt 0这个指定的是外部中断0, 若把0改为1就指定的是外部中断1。
      • 外部中断还有把 IT0 和 EX0 改为 IT1 和 EX1 就可开启外部中断1.
      • 一般用的外部中断就这两个, 外部中断0对应的引脚位P3.2, 外部中断1对应的引脚为P3.3
    更多相关内容
  • 51单片机外部中断有两种触发方式可选:电平触发和边沿触发。选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位中断请求标志,向CPU请求中断。选择边沿触发方式时,单片机在上一个机器...
  • 单片机在自主运行的时候一般是在执行一个死循环程序,在没有外界干扰(输入信号)的时候它基本处于一个封闭状态。比如一个电子时钟,它会按时、分、秒的规律来自主运行并通过输出设备(如液晶显示屏)把时间显示出来...
  • 51单片机的5大中断源:串行口中断、定时中断1、外部中断1、定时中断0、外部中断0;下面一起来学习一下
  • 已知单片机的 P0 口接了一位七段数码管,当无外部中断外部中断 0)时,数码 管按 a~g 段依次点亮,不断循环显示;当有外部中断(按钮被按下,P3.2 有下降沿电 压)时,数码管显示状态改为“8”亮灭闪烁显示,亮灭...
  • 51单片机外部中断实验程序的设计与分析.pdf
  • 本文首先介绍了中断技术的概念,接着论述了MCS-51的中断系统结构、相关寄存器及中断处理过程,依据MCS-51中断功能要求编制了Proteus仿真电路并设计了驱动程序,最后对本文的实验仿真效果进行了总结。
  • 本文主要讲了51单片机外部中断触发方式的经验总结,希望对你的学习有所帮助。
  • 外部中断:用CPU的P1口输出控制信号,控制六个LED灯(红,绿,黄),模拟交通灯管理。允许急救车优先通过的要求,有急救车到达时,两个方向交通信号灯全红,以便让急救车通过。设急救车通过路口时间为10秒,急救车通过...
  • 设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即从P2口的LED循环点亮。可以从protues中看到结果
  • 单片机外部中断法实现外部按键,对于微机c语言也有借鉴意义
  • 单片机主程序控制P0口数码管循环显示0~LENGTH-1 外中断0、外中断1发生时分别在P2口、P1口依次显示0~LENGTH-1
  • 单片机外部中断的教学和自学方法,高职自动化类专业课程,核心知识点教学与自学。
  • 51单片机外部中断

    2017-11-10 12:33:41
    51单片机中断实验,HL-1学习板专用。删除按键部分所有单片机通用。
  • 上讲介绍并应用了单片机动态扫描驱动数码管,并给出了实例。这一讲将重点介绍单片机如何通过捕获来实现对红外遥控器解码。通过该讲,读者可以掌握红外遥控器的编码原理以及如何通过单片机对遥控器进行解码。
  • 采用外部中断0(INT0),优先级为高。在没有外部中断时使发光二极管正反循环流水点。在中断服务程序中使发光二极管交替循环点亮10次 使用keli编程、使用proteus仿真 代码如下: #include<reg51.h> #...

    题目:

         采用外部中断0(INT0),优先级为高。在没有外部中断时使发光二极管正反循环流水点。在中断服务程序中使发光二极管交替循环点亮10次

    使用keli编程、使用proteus仿真

     代码如下:

    #include<reg51.h>
    #include<stdio.h>
    #define uchar unsigned char
    #define uint unsigned int
    uchar light[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xf0,0x0f};//灯亮的数组
    sbit key=P3^2;
    void delay(uint num)//定义延时函数
    {
    	uint a;
    	for(a=1;a<num;a++);
    }
    void main()
    {
    	uint i;
    	uint q=0;//正负循环标志
    	EA=1;//允许中断
    	IT0=1;//边沿触发
    	EX0=1;//打开int0中断
        P1=0x00;//给P1口赋初值
    	while(1)
    	{
    		delay(10000);
    		if(q==0)//正循环点亮
    		{	if(i<7)
    				i=i+1;
    			else
    			{
    				i=6;q=1; //正负循环转换
    			}
    		}
    		else//负循环点亮
    		{	if(i>0)
    				i=i-1;
    			else
    			{
    				i=1;q=0;  //正负循环转换
    			}
    		}
    		P1=light[i];
    	}
    }
    void int0() interrupt 0//中断函数
    {
    	uint b;
    	if(key==0)//  防误触
    		delay(1000);
    		if(key==0)
    			for(b=0;b<10;b++)//交替循环点亮十次
    			{
    				P1=light[8];//后四个灯亮
    				delay(10000);
    				P1=light[9]; //前四个灯亮
    				delay(10000);
    			} 
    }
    

    有任何问题可以在评论区提问

    展开全文
  • 本范例使用WinAVR/G20050214版本开发按下按键0,0亮。直到松手,其他按键才能起作用  按下按键1,LED1亮。其他按键随时都能起作用 ... ****AVR外部中断使用范例***  *******  ****策划、整理与测试:阿莫
  • 单片机外部中断

    2019-03-05 10:45:27
    单排机中断(7、外部中断实验)
  • 单片机外部中断程序系统,关于51单片机外部中断的程序
  • 51单片机外部中断0实例详解

    千次阅读 2021-05-22 03:49:54
    今天就以51单片机外部中断0为例,来简单讲解一下单片机中断的用法。151单片机的中断源51单片机共有5个中断源,分别为:外部中断0定时器0中断外部中断1定时器1中断串口中断每一个中断都对应一个中断向量,中断向...

    今天就以51单片机的外部中断0为例,来简单讲解一下单片机中断的用法。

    1 51单片机的中断源

    51单片机共有5个中断源,分别为:外部中断0

    定时器0中断

    外部中断1

    定时器1中断

    串口中断

    每一个中断都对应一个中断向量,中断向量表如下所示:

    a6cdb607f79bfc891f89a65b8e2b9fdf.png

    2 什么是中断事件

    当中断发生时单片机将正在执行的程序暂时放下而去处理中断事件,当中断事件处理完毕后再接着去处理之前的事情,这样可以大大降低单片机的资源,提高执行效率。举个例子说明一下什么是中断:

    我很喜欢打CS,每天晚上我都会抽时间打CS,但同时厨房里正在烧水,为了不使水烧干,我每隔5分钟就去厨房看一下水有没开,但这就错过了游戏老被别人爆头干掉,我很苦恼,怎么办。于是我在网上买了一个水烧开就会叫的水壶,这样我就不用每隔5分钟去厨房了从而可以专心的打游戏,只有听到水壶吱吱叫的时候,我去把水倒出来就可以了。

    在这个例子里,打游戏就是主任务,水烧开就是中断,吱吱叫就是中断向量,听到吱吱响我就明白水烧开了,这时我要把打游戏这个主任务暂时放下,转而去处理水烧开了这个中断事件,水倒完后我就又回到了游戏这个主任务中。这样是不是提高了打游戏的效率呢?

    3 中断的硬件实现

    51单片机的外部中断0引脚接一只按键,该按键通过上拉电阻接到电源,即没有按键发生时单片机检测到的是高电平,当按键按下时单片机检测到的是低电平。单片机的P0.0引脚以灌电流的方式接了一只LED,当按键按下时LED灯点亮,没按键时LED灯熄灭。

    c990411e38221a3a6d325ceac62b476f.png

    4 中断的软件实现

    单片机中断函数的写法比较固定,51单片机中断函数的写法如下:

    void Initd() interrupt 0

    其中:void:为中断函数的返回类型,中断函数多为空类型;

    Initd():是中断函数的名称,这个函数名符合C语言函数命名规范就可以,随便起;

    interrupt:为51单片机中断的关键字,必须这么写(51单片机必须这么写);

    0:为中断向量,该值详看第一个表格,如果是外部中断1就写2,如果是定时器1中断就写3;

    中断函数不用在主函数中调用,只要中断事件发生,单片机自己主动会调到中断函数中。

    该例子的函数如下所示:

    386c4eae8860bcd9d1a9301c4c1328fe.png

    5仿真实现

    当按键发生时,LED灯点亮,如下图所示。注意对比两种图中按键的状态。

    58afbe67600f0ea8626252b3926890ac.png

    展开全文
  • 本文详细介绍了52单片机中的6个中断源和单片机端口的关系以及中断请求源和中断优先级寄存器的讲解及边沿触发程序知识。
  • 6.STC15W408AS单片机外部中断

    千次阅读 2021-07-15 09:29:24
    STC15W408AS单片机有4个外部中断,它们分别是:外部中断0(INT0)、外部中断1(INT1)、外部中断2(INT2)、外部中断3(INT3)。 外部中断0(INT0)和外部中断1(INT1)触发有两种触发方式,上升沿或下降沿均可触发方式 和仅...

    一、外部中断简介

            STC15W408AS单片机有4个外部中断,它们分别是:外部中断0(INT0)、外部中断1(INT1)、外部中断2(INT2)、外部中断3(INT3)。

            外部中断0(INT0)和外部中断1(INT1)触发有两种触发方式,上升沿或下降沿均可触发方式

    和仅下降沿触发方式。

            TCON寄存器中的IT0/TCON.0和IT1/TCON.2决定了外部中断0和1是上升沿和下降沿均可触发还是仅下降沿触发。如果ITx = 0(x = 0,1),那么系统在INTx(x = 0,1)脚探测到上升沿或下降沿后均可产生外部中断。如果ITx = 1(x = 0,1),那么系统在INTx( x= 0,1)脚探测下降沿后才可产生外部中断。外部中断0(INT0)和外部中断1(INT1)还可以用于将单片机从掉电模式唤醒。

            外部中断2(INT2)、外部中断3(INT3)都只能下降沿触发。外部中断2~3的中断请求标志位被隐藏起来了,对用户不可见,故也无需用户清"0"。当相应的中断服务程序被响应后或中断允许位EXn (n=2,3)被清零后,这些中断请求标志位会立即自动地被清0。这些中断请求标志位也可以通过软件禁止相应的中断允许控制位将其清"0"(特殊应用)。外部中断2(INT2)、外部中断3(INT3)也可以用于将单片机从掉电模式唤醒。

            由于系统每个时钟对外部中断引脚采样1次,所以为了确保被检测到,输入信号应该至少维持2个时钟。如果外部中断是仅下降沿触发,要求必须在相应的引脚维持高电平至少1个时钟,而且低电平也要持续至少一个时钟,才能确保该下降沿被CPU检测到。同样,如果外部中断是上升沿、下降沿均可触发,则要求必须在相应的引脚维持低电平或高电平至少1个时钟,而且高电平或低电平也要持续至少一个时钟,这样才能确保CPU能够检测到该上升沿或下降沿。

    二、中断结构图

    这里,我们只需要看最上面的部分就可以。

    三、中断寄存器

            IE寄存器是中断总控制,IP是中断优先级控制寄存器,TCON的低4位是外部中断0和外部中断1控制位。一般情况下我们只需要操作IE和TCON寄存器即可。

    四、实验电路图

    实验现象是点按一下按钮,LED闪烁一次,和上面的按键输入实验效果是一样的。

    五、实验程序

    #include "stc15.h"
    void main()
    {
    	P11 = 0; // 初始设置P1.1为低电平 熄灭LED
    	IT0 = 1; // 设置INT0的中断类型 (1:仅下降沿 0:上升沿和下降沿)
    	EX0 = 1; // 使能INT0中断
    	EA = 1;  // 打开总中断
    	while (1);
    }
    //外部中断服务程序
    void exint0() interrupt 0 //INT0中断入口
    {
      P11 = !P11; //将P1.1口取反
    }
    

            这里需要说明的是为什么外部中断服务程序是 interrupt 0。这个后面数字和中断优先级有关。从上面的中断结构图中,我们就可以看出外部中断0的优先级是最高的,所以这里是0,其他的在后面使用到再讲。

    更多首发原创,请关注我。

    展开全文
  • STM8S003单片机上,用按键口做为外部中断触发,实现按键按下LED指示灯翻转效果。
  • 51单片机 外部中断

    千次阅读 2021-04-09 21:13:42
    为了降低CPU的占有率,同时实现单片机对复杂情景的处理,引入了中断。 CPU与外设并行工作,当外设数据准备好或者有某种突发事件发生时,向CPU提出请求,CPU暂停正在进行的工作,为该外设服务(或者处理紧急事件),...
  • 原标题:STC89C52单片机外部中断0实验/////////////////////////////////////////////////////////////////////////实现功能: 设置,然后通过点亮与P1口第一个引脚相连的D1来显示系统进入了外部中断0实验板型号:BS...
  • ①编程实现无中断时,发光二极管常亮,有外部中断时左移,有外部中断时右移。 ②验证中断查询的自然优先顺序(写出验证方法及结果)。 ③通过IP寄存器设置优先级,验证中断的两个优先级结构(写出验证方法及结果)。...
  • 51单片机外部中断有两种触发方式可选:电平触发和边沿触发。选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位中断请求标志,向CPU请求中断。选择边沿触发方式时,单片机在上一个机器...
  • 51单片机外部中断拓展(两个以上的外部中断)

    千次阅读 多人点赞 2021-05-14 14:17:03
    在很多单片机中,外部中断的个数都是有限的,而很多现实场景需要有多个外部中断同时进行,这时候单片机自带的外部中断端口可能就不够用了,那么,怎么解决这个问题呢,本文将会用最典型的51单片机为例,介绍两种较...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,103
精华内容 10,041
关键字:

单片机外部中断

友情链接: 1.zip