51单片机学习——8.1外部中断0和1

发布者:DreamySerenity最新更新时间:2021-07-23 来源: eefocus关键字:51单片机  外部中断 手机看文章 扫描二维码
随时随地手机看文章

外部中断原理

在这里插入图片描述

外部中断0:(P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。

外部中断1:(P3.3)可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。


编程原理(外部中断0)

首先我们对中断允许控制寄存器IE赋值,打开中断总开关,令EA=1.

然后我们还需要打开外部中断0的开关,令EX0=1

在这里插入图片描述

EX0(IE.0),外部中断0允许位;

ET0(IE.1),定时/计数器T0中断允许位;

EX1(IE.2),外部中断1允许位;

ET1(IE.3),定时/计数器T1中断允许位;

ES(IE.4),串行口中断允许位;

EA (IE.7), CPU中断允许(总允许)位。

最后再对中断请求标志TCON寄存器赋值,我们可以选择的外部中断0的触发方式有两种,一种是低电平触发方式,一种是下降沿的触发方式。如果选择低电平触发,则令IT0=0,如果选择下降沿触发,则令IT0=1。

在这里插入图片描述

IT0(TCON.0),外部中断0触发方式控制位。

当IT0=0时,为低电平触发方式。

当IT0=1时,为边沿触发方式(下降沿有效)。

IE0(TCON.1),外部中断0中断请求标志位。

IT1(TCON.2),外部中断1触发方式控制位。

IE1(TCON.3),外部中断1中断请求标志位。

TF0(TCON.5),定时/计数器T0溢出中断请求标志位。

TF1(TCON.7),定时/计数器T1溢出中断请求标志位。


4.完成以上过程就完成了对中断系统的初始化 ,然后需要编程中断服务函数。格式如下:


void init0() interrupt 0 using m

{

函数体

}


函数名(自定):init0

0:外部中断0的中断标号

m:寄存器组

在实际编程中using m 可省去

在这里插入图片描述

代码实现

通过独立按键来控制第一个led灯的亮灭


#include


typedef unsigned char u8;

typedef unsigned int u16;


sbit led1=P2^0;

sbit K3=P3^2;//通过独立按键触发外部中断0


void intint0()//外部中断初始化

{

    EA=1;

EX0=1;   

IT0=1;

}


void delay(u16 i)//延时函数

{

   while(i--);

}


void main()

{

   intint0();//在主函数中调用初始化外部中断0

   while(1);

}

void int0() interrupt 0 //中断服务函数

{

   delay(1000);//延时消抖

   if(K3==0)

   {

   led1=~led1;//是第一个led灯状态反转

   }

}

关键字:51单片机  外部中断 引用地址:51单片机学习——8.1外部中断0和1

上一篇:51单片机学习——8.2--定时计数器
下一篇:51单片机学习——8--中断系统

推荐阅读最新更新时间:2024-11-12 21:43

基于51单片机多功能太阳能路灯的设计与实现
随着社会发展的步伐日益加快,人们对新型能源地开发利用程度不断加大,太阳能作为一种新型能源,越来越受到人们的重视,合理有效的利用好太阳能,已逐步成为节能环保的一种趋势。西藏太阳能资源居中国首位,也是世界上最丰富的地区之一,全年平均日照时数在3 000小时左右。因此为了更环保、更加节能,合理有效地利用太阳能,我们设计出一款多功能太阳能路灯。文中采用C8051F020作为主控芯片,通过51单片机控制片内高速AD对紫外线传感器、温度传感器、光照度传感器等进行采样,对拉萨环境进行监测(特别是紫外线强度的监测),相关数据参数经过LCD显示,用户可通过需要显示广告信息,如进行公益广告,商业广告相关信息的宣传;同时利用具有高效节能的LED灯作为
[单片机]
基于<font color='red'>51单片机</font>多功能太阳能路灯的设计与实现
一起学mini2440裸机开发(十)mini2440外部中断实验
我今天一整天都在试着将TQ2440的那种处理中断的方法(即安装中断向量表)移植到MDK中的mini2440,但是一直没成功,这种方法一直没成功,后来又想,还是先从最简单的开始吧,就是不利用中断向量表,直接像利用51单片机那样的中断一样使用它,但是也没成功。考虑到程序跑飞的可能性,将程序利用MDK中的Download功能下载到了Nor Flash中去,竟然行了,想了想原因,明白是怎么回事了。我原来是利用jlink调试的方法,这种调试方式是直接将程序放到了SDRAM的0x3000 0000处,如果发生中断后,比如发生了普通中断IRQ,那么PC指针被强制设为0x0000 0018,而我的程序是放在了0x3000 0000处,在地址0x
[单片机]
一起学mini2440裸机开发(十)mini2440<font color='red'>外部中断</font>实验
51单片机定时/计数器使用方法
定时/计数器的使用方法: 1、根据要求选择方式,确定方式控制字,写入方式控制寄存器TMOD。 2、根据要求计算定时/计数器的计数值,再由计数值求得初值,写入初值寄存器TH0/TH1和TL0/TL1。 3、根据需要开放定时/计数器中断(后面需要编写中断服务程序)。 4、设置定时/计数器控制寄存器TCON的值,启动定时/计数器开始工作。 5、等待定时/计数器时间到,到则执行中断服务程序;如用查询处理则编写查询程序判断溢出标志,溢出标志等于1,则进行相应处理。 /**************************************************************************************
[单片机]
89C51单片机中文简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称 单片机 。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器 的单片机。单片机的 可 擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多 功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机 为很多嵌入式控制系统提供了一种灵活性
[单片机]
89C<font color='red'>51单片机</font>中文简介
基于51单片机的直流电机驱动(L298)
L298是SGS公司的产品,L298N为15个管角的单块集成电路,高电压,高电流,四通道驱动,设计用L298N来接收DTL或者TTL逻辑电平,驱动感性负载(比如继电器,直流和步进马达)和开关电源晶体管。内部包含4通道逻辑驱动电路,其额定工作电流为 1 A,最大可达 1.5 A,Vss 电压最小 4.5 V,最大可达 36 V;Vs 电压最大值也是 36 V。L298N可直接对电机进行控制,无须隔离电路,可以驱动双电机。 1,L298内部的原理图 2,L298 引脚符号及功能 3,L298的逻辑功能 当使能端为高电平时,输入端IN1为PWM信号,IN2为低电平信号时,电机正转;输入端IN1为低电平信号,I
[单片机]
51外部中断测试
#include #include #define GPIO_LED P2 //外部中断的IO sbit K3=P3^2; sbit K4=P3^3; void IntConfiguration(); void Delay(unsigned int n); unsigned char KeyValue=0; void main(void) { GPIO_LED=0Xfe; IntConfiguration(); while(1) { if(KeyValue) GPIO_LED=_crol_(GPIO_LED,1); else GPIO_LED=_cror_(GPIO_LED,1); Delay(2000); } } voi
[单片机]
51单片机DHT11温湿度检测手机蓝牙APP显示设计
今天给大家介绍的是一个温湿度检测设计,基于51单片机、蓝牙模块、温湿度传感器、Android APP完成。首先先展示一下设计好的实物,接下来将从系统方案、硬件设计、软件设计这三个方面来阐述。 1.系统方案 先来看一下整体的架构图:硬件部分由STC89C52单片机、DHT11温湿度传感器、BT08蓝牙串口模块和Android手机组成。传感器将采集到的温湿度数据传送给单片机,然后单片机通过蓝牙串口模块将数据发送到手机APP,从而将温湿度在APP显示出来。在APP上可以设置温湿度告警的阈值,超过阈值将显示“偏高”或者“偏低”的相关信息。 2.硬件设计 整个设计的原理图如下所示,由单片机最小系统、蓝牙串口模块、温湿度传感器组
[单片机]
<font color='red'>51单片机</font>DHT11温湿度检测手机蓝牙APP显示设计
基于51单片机的天气温度报警系统
基于AT89C51的天气温度报警系统,采用Protues仿真。 元件: DS1302时钟芯片 DS18B20温度传感器 LM016L(1602)液晶 AT89C51 单片机 LED灯若干 蜂鸣器一只 用于 报警 本人不写这个报警程序了 其实挺简单的 我只贴出部分主要的代码 完整源代码请到: http://blog.sina.com.cn/u/2311964960 (内附图片) 或直接下载: LSD.c (7.4 KB, 下载次数: 72) /*初始化DS18B20*/ void Init_DS18B20() { //初始化DS18B20必须先给DS18B20一个复位脉冲,接收到复位脉冲后
[单片机]
基于<font color='red'>51单片机</font>的天气温度报警系统
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved