【51单片机】外部中断

0、前言

参考:普中 51 单片机开发攻略 第16章 及17章

1、硬件

2、软件

c 复制代码
#include <reg52.h>
#include <intrins.h>
#include "delayms.h"

typedef unsigned char u8;
typedef unsigned int u16;

sbit led = P2^0;
sbit key3 = P3^2;

//外部中断0初始化函数
void Int0Init()
{
	//设置INT0
	IT0 = 1; //跳变沿出发方式(下降沿)
	EX0 = 1; //打开INT0的中断允许
	EA = 1; //打开总中断
}

void Int0() interrupt 0
{
	delayms(100); //正常消抖10ms,但是中断触发100ms实际效果更加
	if(key3 == 0)
	{
		led = ~led;
	}
}

void main()
{
	Int0Init();
	while(1);
}
相关推荐
电子小白1239 小时前
第13期PCB layout工程师初级培训-1-EDA软件的通用设置
笔记·嵌入式硬件·学习·pcb·layout
清风66666610 小时前
基于单片机的多传感器智能云梯逃生控制器设计
单片机·嵌入式硬件·毕业设计·智能家居·课程设计
小何code10 小时前
STM32入门教程,第10课(上),OLED显示屏
stm32·单片机·嵌入式硬件
来自晴朗的明天10 小时前
高速画板-USB模块的PCB设计5-USB2.0/3.0布局布线要求
单片机·嵌入式硬件·硬件工程
早日退休!!!12 小时前
ARM Cortex-M核 【保存上下文&恢复上下文】
arm开发·单片机·嵌入式硬件
来自晴朗的明天13 小时前
差分控多少Ω阻抗
单片机·嵌入式硬件·硬件工程
点灯小铭14 小时前
基于单片机的多功能智能婴儿车设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
码农小韩17 小时前
基于Linux的C++学习——动态数组容器vector
linux·c语言·开发语言·数据结构·c++·单片机·学习
匠在江湖17 小时前
裸机单片机任务调度器实现:基于规范分层(COM/APP/SRV/DRV)架构,(附 任务调度器 / 微秒延时函数 / 串口重定向 源码)
单片机·嵌入式硬件·架构
点灯小铭18 小时前
基于单片机的智能洗碗机控制系统设计
单片机·嵌入式硬件·毕业设计·课程设计