第三章-51单片机外部中断


简述

本文主要介绍了单片机的外部中断,总共有四个外部中断,本次讲解中用到了外部中断0和外部中断1。要使用外部中断,首先要在主函数中初始化,所以要写初始化函数,和中断服务函数。(视频中有一个错误,在下文外部中断初始化中指出来啦

第三章-51单片机外部中断

1 外部中断初始化

外部中断0初始化

void Int0_Init(void)
{
EA = 1; //打开总中断
EX0 = 1; //允许外部中断0触发中断
IT0 = 1; //设置外部中断0触发方式 方式为下降沿触发
}

外部中断1初始化(这里IT1是等于0的,因为是低电平触发,视频中没有把1改为0

void Int1_Init(void)
{
	EA = 1;								//打开总中断
	EX1 = 1;							//允许外部中断1触发中断
	IT1 = 0;							//设置外部中断1触发方式   方式为低电平触发
}

把初始化函数在写main.c的主函数中

void main()
{
	Int0_Init();												//外部中断0初始化
	Int1_Init();												//外部中断1初始化

	while(1)
	{
		Key_function();										//按键函数
		Monitor_function();								//监测函数
		Display_function();								//显示函数
		Manage_function();								//处理函数
	}
}

2 外部中断服务函数,注意中断号是不一样的

外部中断0服务函数,现象是按次按键灯的状态会反转

void Int0_IRQHandler(void) interrupt 0
{
	LED = ~LED;
}

外部中断1服务函数,现象是按下按键不松手,灯会闪烁,不加延时也会反转,不过太快了人眼看不出来,

void Int1_IRQHandler(void) interrupt 2
{
LED = ~LED;
Delay_function(500);      //延时0.5秒
}

3 外部中断的引脚和现象

第三章-51单片机外部中断

外部中断0的引脚是P3.2        外部中断1的引脚是P3.3

因为是用按键控制LED灯的,所以按键的引脚要对应外部中断的引脚

第三章-51单片机外部中断

若按下第一个按键,灯亮,再按一次,灯灭

若长按第二个按键,灯以0.5秒的频率闪烁。

下载权限
查看
  • 免费下载
    评论并刷新后下载
    登录后下载
  • {{attr.name}}:
您当前的等级为
登录后免费下载登录 小黑屋反思中,不准下载! 评论后刷新页面下载评论 支付以后下载 请先登录 您今天的下载次数(次)用完了,请明天再来 支付积分以后下载立即支付 支付以后下载立即支付 您当前的用户组不允许下载升级会员
您已获得下载权限 您可以每天下载资源次,今日剩余
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索