Loading

外部中断

一、原理 

1、中断响应条件:

(1)中断有中断请求;

(2)此中断源的中断允许位为1;

(3)CPU开中断(即EA=1)

以上三条件同时满足时,CPU才有可能响应中断

2、

 

 

 

 二、实现功能:按下K3,使LED进行状态翻转,让D1(下图)的值进行状态翻转     【即通过外部中断,使led进行状态翻转】

三、编程(黑色字体为外部中断0,红色字体为外部中断1)

#include "reg52.h"
 
typedef unsigned char u8;
typedef unsigned int u16;
 
sbit led=P2^0;
 
sbit K3=P3^2; // 由原理图知,K3接P30口   sbit K4=P3^3;
 
void Int0Init()   //设置外部中断0 ,该中断源符号为 Int0
{
  IT0=1;  // P32 管脚即按键默认高电平,当K3按下,低电平进入管脚,因此设置外部中断的触发方式为下降沿
   //IT1=1;
  EX0=1;//打开外部中断的允许位 EX1=1;
  EA=1//CPU中断总允许位
}

void delay(u16 i)
{
   while(i--);
}

void main()
{
   Int0Init();
   while(1);
}
 
void Int0() interrupt 0 // 中断服务函数  外部中断0的中断号为0  void Int1() interrupt 1
{
   delay(1000);  //延时,使按键消抖
   if(K3==0) //判断按键是否按下 K4
 {
    led=~led; //led接P20口,默认高电平,所以最初灯熄灭
 }
}
 

 

posted @ 2020-04-26 12:38  ARCHERy  阅读(768)  评论(0编辑  收藏  举报