精华内容
下载资源
问答
  • Port B口8个引脚:PB[7:0] Port C口8个引脚:PC[7:0] Port D口7个引脚:PD[6:0] Port E口8个引脚: PE[7:0] PD7时最高优先级的中断源TLI. 中断触发方式: 00:下降沿和低电平触发 01:仅上升沿触发 10:仅...

    Port A口的5个引脚:PA[6:2]
    Port B口的8个引脚:PB[7:0]
    Port C口的8个引脚:PC[7:0]
    Port D口的7个引脚:PD[6:0]
    Port E口的8个引脚: PE[7:0]

    PD7时最高优先级的中断源TLI.

    中断触发方式:
    00:下降沿和低电平触发
    01:仅上升沿触发
    10:仅下降沿触发
    11:上升沿和下降沿触发

    展开全文
  • View Code 1 #include"gpio.h" 2 #include"def.h" 3 #include "system.h" 4 #include "intc.h" ... 6 本例简单展示中断需要配置的 中断向量涉及的寄存器:void IRQINIT... 7 和 外部中断0的引脚关联的寄存器...
    View Code
      1 #include"gpio.h"
      2 #include"def.h"
      3 #include "system.h"
      4 #include "intc.h"
      5 /*
      6     本例简单展示中断需要配置的 中断向量涉及的寄存器:void    IRQINIT(void);   
      7      和   外部中断0的引脚关联的寄存器相关配置: void    KeyInit(int key_num);
      8 */
      9 
     10 
     11 #define        BASE    0X7F008000
     12 #define        GPIO    ((oGPIO_REGS*)BASE)
     13 
     14 #define    Inp32(ADDR)                *((u32*)ADDR)
     15 #define    Outp32(ADDR,VAL)    *((u32*)ADDR)=VAL
     16 
     17 extern void SYSTEM_EnableVIC( void);
     18 extern    void SYSTEM_EnableIRQ( void);
     19 void    KeyInit(int key_num);
     20 void    EintClrPend(int key_num);
     21 void    EintClrMask(int key_num);
     22 void    BuzzerPlay(int count);
     23 void    Delay(int time);
     24 void    IRQINIT(void);
     25 void    BuzzerInit(void);
     26 
     27 void __irq    IsrEint(void);
     28 
     29 int main(void)
     30 {
     31     SYSTEM_EnableVIC();
     32     SYSTEM_EnableIRQ();
     33     BuzzerInit();
     34     IRQINIT();
     35     KeyInit(1);
     36         KeyInit(3);
     37             KeyInit(5);
     38     //BuzzerInit();
     39     while(1);
     40     
     41 }
     42 //中断向量控制器初始化;
     43 void    IRQINIT(void)
     44 {
     45     u32    uConValue;
     46 // 1. 选择为IRQ模式:
     47     uConValue = Inp32(rVIC0INTSELECT);
     48     uConValue &= ~0x3;
     49     Outp32(rVIC0INTSELECT,uConValue);
     50 // 2. 使能中断向量寄存器对应的中断:
     51     uConValue = Inp32(rVIC0INTENABLE);
     52     uConValue |= 0x3;
     53     Outp32(rVIC0INTENABLE,uConValue);
     54 // 3. 注册中断程序地址:
     55     Outp32(rVIC0VECTADDR,(u32)IsrEint);
     56     Outp32(rVIC0VECTADDR+4,(u32)IsrEint);
     57 // 4. 清零中断程序运行地址
     58     Outp32(rVIC0ADDR,0);
     59     
     60 }
     61 
     62 //配置按键所在引脚的所有配置寄存器;
     63 void    KeyInit(int key_num)
     64 {
     65         u32    uConValue;
     66 // 1. 将按键所在的GPN引脚 设为中断模式:
     67         uConValue = GPIO->rGPIONCON;
     68         uConValue &= ~(0x3<<((key_num -1) *2));
     69         uConValue |= 0x2 << ((key_num -1) *2);
     70         GPIO->rGPIONCON = uConValue;
     71 // 2. 除能按键所在的GPN引脚上下拉电阻;
     72         uConValue = GPIO->rGPIONPUD;
     73         uConValue &= ~(0x3<<(key_num -1));
     74         GPIO->rGPIONPUD = uConValue;
     75 // 3. 配置GPN0的触发方式为下降触发
     76         uConValue = GPIO->rEINT0CON0;
     77         uConValue &=  ~(0x7 << ((key_num -1)*3));
     78         uConValue |= (0x2 << ((key_num -1)*3));
     79         GPIO->rEINT0CON0 = uConValue;
     80 // 4. 清除未决寄存器标志
     81         EintClrPend(key_num);
     82 // 5. 关闭ENT0MASK,解除屏蔽;
     83         EintClrMask(key_num);
     84         
     85 }
     86 
     87 //按键清除未决寄存器具体实现:
     88 void    EintClrPend(int key_num)
     89 {
     90         GPIO->rEINT0PEND |= (0X1 << (key_num -1));        
     91 }
     92 //清除屏蔽位具体实现:
     93 void    EintClrMask(int key_num)
     94 {
     95         GPIO->rEINT0MASK &= ~(0x1<<(key_num -1));    
     96 }
     97 
     98 //服务函数
     99 void    __irq    IsrEint(void)
    100 {
    101     EintClrPend(1);
    102     EintClrPend(3);
    103     EintClrPend(5);
    104     BuzzerPlay(5);
    105     Outp32(rVIC0ADDR,0);
    106     
    107 }
    108 
    109 
    110 //延时函数;
    111 void    Delay(int time)
    112 {
    113     int i;
    114     for(; time >0; time--)
    115         for(i=0;i<3000;i++);
    116 }
    117 
    118 //初始化buzzer;
    119 void    BuzzerInit(void)
    120 {
    121         u32    uConValue;
    122         //设置GPF15为输出口
    123         uConValue = GPIO->rGPIOFCON;
    124         uConValue &= ~(0x3 << 30);
    125         uConValue |= 0x1 << 30;
    126         GPIO->rGPIOFCON=uConValue;
    127         //除能上下拉电阻
    128         uConValue = GPIO->rGPIOFPUD;
    129         uConValue &= ~(0x2 << 15);
    130         GPIO->rGPIOFPUD = uConValue;
    131 }
    132 //蜂鸣器工作
    133 void    BuzzerPlay(int count)
    134 {
    135         while(count--)
    136         {
    137             GPIO->rGPIOFDAT |= (0x1 << 15);
    138             Delay(500);
    139             GPIO->rGPIOFDAT &= ~(0x1 << 15);    
    140             Delay(500);
    141         }
    142 }

     

    转载于:https://www.cnblogs.com/zhang3gzhong/archive/2012/06/06/2539051.html

    展开全文
  • 外部中断

    2020-03-01 17:28:35
    外部中断0(INT0):P3.2口附加功能 外部中断1(INT1):P3.3口附加功能 当引脚上出现有效中断信号时,就有中断标志置1,向CPU申请中断。 二.外部中断相关寄存器 1.中断允许寄存器(IE) EA:CPU开启中断...

    一.外部中断输入引脚

    在这里插入图片描述
    外部中断0(INT0):P3.2口的附加功能
    外部中断1(INT1):P3.3口的附加功能

    当引脚上出现有效的中断信号时,就有中断标志置1,向CPU申请中断。

    二.外部中断相关寄存器

    1.中断允许寄存器(IE)

    在这里插入图片描述
    EA:CPU开启中断总允许位。EA=1时,才能启动中断功能。
    EX0:外部中断0允许位。EX0=1时,外部中断1才能启动。下同。
    EX1:外部中断1允许位。

    2.中断标志寄存器(TCON)

    在这里插入图片描述
    IT0/IT1:控制外部中断的触发条件。0:低电平有效 1:下降沿有效
    一般来说,设置成下降沿有效(1)会比较多。

    IE0/IE1:外部中断标志位。当外部中断触发时,标志位变成1,向CPU申请中断。申请中断完成后,标志位重新置0.

    三.外部中断配置与程序举例

    依前,还是要设置基本的三个函数

    中断配置函数:以使用外部中断0为例
    void Int0Init0(){
    EA=1;
    EX0=1;
    IT0=1;
    }

    主函数:

    void main{
    IntInit0();
    While(1);
    }

    中断服务函数
    Void Int0() interrupt 0 //中断号为0
    {
    所要执行的程序动作
    }

    举例:使用外部中断,利用独立按键控制LED灯的亮灭(按一下会开,再按就关)

    分析:涉及的外部资源有独立按键和LED灯。其中,独立按键K3与P3.2口相连,故可以用K3作为外部中断输入。当按下按键后,led1(P2^1)就会取反,从而有亮-灭-亮的效果。

    #include "reg52.h"
    #include <stdio.h>
    
    #define u16 unsigned int
    
     sbit k3 = P3^2;   //独立按键K3与外部中断引脚P3.2相连
     sbit led = P2^1;  //定义LED模块的1号灯为led
    
     void dalay()
     {
     	u16 i;
    	for(i=0;i==1000;i++);  //延时函数,用于独立按键消抖
     }
     
     void Init_INT0()
     {
     	EA=1;
    	EX0=1;
    	IT0=1;  //设置外部中断为下降沿有效
    
     }
    
     void main()
     {
     	Init_INT0();   //主程序中需要有中断配置
    	while(1);     //程序在此处停止,等待中断发生
     }
    
     void INIT0() interrupt 0
     {
       void delay();
       if(k3==0)
          	led=~led;  //按下按键时,led1取反
       
     }
    
    展开全文
  • 有3个寄存器需要注意 1.EA寄存器:中断的总开关,EA=0则所有中断都不起作用 2.EX0寄存器:EX为Enable External Interrupt ...另外,外部中断0的引脚是P3.2,入口点地址为:0003H;外部中断1的引脚为P3.3,入口点地址

    有3个寄存器需要注意

    1.EA寄存器:中断的总开关,EA=0则所有中断都不起作用

    2.EX0寄存器:EX为Enable External Interrupt 的缩写,所以EX0的意思是打开外部中断0

    3.IT0寄存器:设置外部中断0的触发方式。IT0为0:低电平触发,IT0为1:下降沿触发。

    另外,外部中断0的引脚是P3.2,入口点地址为:0003H;外部中断1的引脚为P3.3,入口点地址为0013H。


    #include <reg52.h>
    
    void ExternalInterrupt() interrupt 0
    {
    	P0 = 0x00;
    }
    void main()
    {
    	EA = 1;		// 打开中断
    	EX0 = 1;	// 打开外部中断0
    	IT0 = 0;	// 低电平触发为0, 高电平到低电平边缘触发为1
    
    
    	while (1)
    		P0 = 0xff;
    }
    展开全文
  • 调用外部中断0的初始化程序 LCALL INT0_INITIALIZATION ;外部中断0初始化程序 INT0_INITIALIZATION: SETB EA CLR IE0 ;外部中断0请求源标志。 SETB IT0 ;中断触发方式为下降沿触发,CLR IT0为低电平触...
  • 外部中断0和1外部中断原理编程原理(外部中断0)代码实现 外部中断原理 外部中断0:(P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效中断信号时,中断标志IE0(TCON.1)置...
  • LPC1768微处理器包括4个外部中断,分别是EINT0、EINT1、EINT2、EINT3对应的引脚分别是P2.10~P2.13,这几个引脚也可以作为通用IO口使用。名个外部中断可以设置成低电平/高电平或上升沿/下降沿有效,它们还有一个功能...
  • 一项目中使用STM8单片机,需要使用到外部的引脚中断功能,并且是上升沿触发,之前的代码是: GPIO_Init(GPIOB, GPIO_Pin_0, GPIO_Mode_In_FL_IT); EXTI_SetPinSensitivity(EXTI_Pin_0, EXTI_Trigger_Rising); 但...
  • 8051外部中断0解析

    2019-07-23 10:23:44
    程序实现功能: 在实验板上左下方有一个黑色独立按键(K3), 当我们按下它时, ...当进入中断处理函数执行时, 若P32引脚的电平为低电平, 则说明K3按键已按下; 若P32引脚的电平为高电平, 说明K3按键已抬起. "低电平触...
  • 1. 电平触发方式 ○ CPU采样外部中断引脚电平 ○ 低电平,则硬件置1... ○ CPU采样外部中断的引脚电平 ○ 如果上一个机器周期电平为高,下一个机器周期电平为低,则硬件置1(IE=1) ○ 等待CPU响应中断 ○ CPU.
  • 单片机的外部中断(二)

    千次阅读 2018-12-01 21:58:33
    前言:单片机中断系统(一) ...80C51单片机在每个机器周期S5P2期间扫描外部中断输入引脚的电平状态。当外部中断设置为下降沿触发时,若处理器在连续两个机器周期扫描到INT0引脚的电平先后为高...
  • 中断号和芯片中断引脚的关系

    千次阅读 2014-07-06 10:31:30
    中断号和芯片中断引脚的关系 ...一直以来搞不懂这个中断号来历,总以为是中断控制器自己规定一个号,但是最近在看了s3c2440中断控制后才发现不是这么一回事.2440中断处理只能处理32个...而且它的外部中断I
  • CortexM0的外部中断配置见相关博文 → Cortex-M0系列 ~ 外部中断 外部中断算是中断机制中的一种,只要中断引脚触发,便会打断当前的执行任务到外部中断函数中 如遇到有重要任务执行时不想被外部中断所打断,便需要...
  • Arduino中断例程及常用arduino开发板中断引脚汇总

    千次阅读 多人点赞 2019-03-04 00:59:59
    文章目录外部中断常用arduino开发板外部中断引脚...不同Arduino开发板外部中断引脚不同,总结常用有如下几个: UNO int.0 int.1 2 3 具体见图: Ethernet int.0 int.1 2 3 Nano ...
  • 利用外部中断来实现按键控制LED灯亮灭。 实验工具:MDK5,STM32F103ZET6开发板 使用固件库编程 LED灯引脚PD13,按键PE0 首先了解一下32的外部中断 STM32 每个 IO 都可以作为外部中断的中断输入口,STM32F103 ...
  • 外部中断的概念我还是稍微说下吧,就是你映射的外部中断引脚,如果检测到相应脉冲边沿变化,就进入外部中断处理程序,处理完后跳出中断,等待下次边沿跳变。 现在来回顾下我们外部中断的结构图: 看到这张图,...
  • 2440 外部中断

    2018-04-07 22:08:00
    1、设置io为外部中断引脚  通过2440数据手册可以知道需要使用io的外部中断需要配置那些位    a、通过上面表格可以看出,如果要使用io的外部中断需要把对应位设置为10  例如:GPF0和GPF2这两个io需要使用...
  • 外部中断需要用的必须先看原理图的INT0 INT1的引脚。因为外部中断是通过这两个引脚来触发,只要使能引脚,而且配置引脚为输出方式,电平如果发生合适的变化(具体通过高低电平还是上升沿下降沿控制是通过MCUCR寄存器...
  • P3.2: 外部中断0的输入引脚 P3.3:外部中断1的输入引脚 P3.4:定时器0的输入引脚 P3.5:定时器1的输入引脚 二、单片机的中断源 外部中断0; 外部中断1; 定时/计数器0 中断; 定时/计数器0 中断; 串行口...
  • 《初学者C51自学笔记》之中断(外部中断0

    千次阅读 多人点赞 2018-08-05 18:06:49
    概念:  CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前工作,转去处理事件B(中断响应和中断服务);...当CPU检测到P3.2引脚上出现有效的中断信号时...
  • 1、外部中断0:INT0,其对应的引脚为P3^2。 #include "reg52.h" typedef unsigned int u16; typedef unsigned char u8; sbit k3=P3^2; //定义按键K3,外部中断0触发I/O口 sbit led=P2^0; //定义P20...
  • 51单片机2个外部中断的应用

    千次阅读 2016-01-25 11:48:34
    外部中断0输入引脚P3.2接有一只按钮开关K1。;在外部中断1输入引脚P3.3接有一只按钮开关K2。;要求K1和K2都未按下时,P1口8只LED呈流水灯显示,;仅K1(P3.2)按下时,左右4只LED交替闪烁。;仅按下K2(P3.3)时,P1...
  • LPC2478的外部中断使用

    2014-10-17 21:35:00
    也就是说,port0和2支持外部中断,EINT0-2是三个独立管脚中断,而EINT3则是port0和2所有中断共同拥有向量 对于port0和2不需要刻意去把引脚配置为中断模式,将他配置到输入模式然后启动中断就可以了,对于独立...
  • /******************************* PORTBRB0可以作为一个外部中断信号输入,可以对输入信号上升沿或下降沿跳变产生一个中断响应。 要实现RB0/INT中断源,软件初始化设定步骤如下: 1,RB0/INT引脚为输入模式,...
  • 外部中断的资料

    2011-11-21 19:51:00
    MCS-51单片机有多个中断源,以8051为...即外中断0(INT0)和外中断1(INT1),中断请求信号由引脚P3.2(INT0)和P3.3(INT1)输入。外中断请求信号有两种方式,一是电平方式,二是脉冲方式。可通过有关控制位定义进行...
  • STM32外部中断

    2017-05-15 08:23:37
    STM32外部中断远比之前学51单片机中断强大多,回忆一下51单片机外部中断只有两个对应输入是P3.2和P...,STM32的外部中断一共是19:0-18(其中0—15是IO口中断线3个是其他外设)由此可见IO口中断占了半壁江

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 407
精华内容 162
关键字:

外部中断0的引脚