51单片机之中断实验

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

什么叫中断:

中断是指CPU在执行当前程序的过程中,由于某种随机出现的外设请求或CPU内部的异常事件,使CPU暂停正在执行的程序而转去 执行相应的服务处理程序;当服务处理程序运行完毕后,CPU再返回到暂停处继续执行原来的程序。

单片机在执行程序时其程序流程图


引起CPU中断的根源,称为中断源,中断源向CPU提出中断请求,CPU暂时中断原来的事务A,转去处理事件B,对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。中断的开启与关闭、设置启用哪一个中断等都是由单片机内部的一些特殊功能寄存器来决定的。


当CPU正在处理一个中断源请求的时候(执行相应的中断服务程序),发生了另外一个优先级比它还高的中断源请求。如果CPU能够暂停对原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中断服务程序,这样的过程称为中断嵌套。这样的中断系统称为多级中断系统,没有中断嵌套功能的中断系统称为单级中断系统。

STC90C51RC/RD+系列单片机提供了8个中断请求源,它们分别是:外部中断O(INTO),定时器0中断、外部中断1(INT1)、定时器1中断、定时器2中断、串口(UART)中断、外部中断2(INT2)、外部中断3(INT3)。


 用户可以用关总中断允许位(EA/IE.7)或相应中断的允许位来屏蔽所有的中断请求,也可以用打开相应的中断允许位来使CPU响应相应的中断申请;、每二个中断源可以用软件独立地控制为开中断或关中断状态;每一个中断的优先级别均可用软件设置。高优先级的中断请求可以打断低优先级的中断,反之,低优先级的中断请求不可以打断高优先级及同优先级的中断。当两个相同优先级的中断同时产生时,将由查询次序来决定系统先响应哪个中断。

中断系统结构图


1、定时器/计数器控制寄存器TCON

1)IT0和IT1是设置外部中断的触发方式。

      当其为0时,为低电平触发方式

      当其为1时,为负跳变触发方式。

2) IE0和IE1是外部中断标志位

3) TF0和TF1是定时器的中断标志。

4) TR1和TR0是打开相应的定时器


2、中断允许寄存器IE

1)EA:总中断允许位。

  为0时:CPU屏蔽所有的中断请求。

  为1时:CPU开放所有中断。

2)ES:串行口中断允许位。

  为0时:禁止串行中断。

  为1时:允许串行中断。

3)ET1和ET0:分别是定时器1和定时器0中断允许位

  为0时:禁止相应的定时器中断

  为1时:允许相应的定时器中断

4)EX1和EX0:分别是外部中断1和外部中断0的中断允许位

  为0时:禁止相应的外部中断

  为1时:允许相应的外部中断 


3、中断优先寄存器IP

1)PS:串行口中断优先级

    为1时:串行口中断定义为高优先级

    为0时:串行口中断定义为低优先级

2)PT1和PT0:分别是定时器1和定时器0的中断优先级

    为1时:相应的定时器中断为高优先级

    为0时:相应的定时器中断为低优先级

3)PX1和PX0:分别是外部中断1和外部中断0的中断优先级

    为1时:相应的外部中断为高优先级

    为0时:相应的外部中断为低优先级

一般都默认低优先级,不是特别需求不用改。


4、中断地址

5、开启外部中断步骤:


1)打开总中断(EA)

2)打开相应的外部中断允许(EX0或者EX1)

3)设置外部中断触发方式(IT0或者IT1)


 


实例一:按键按下后,触发外部中断0,LED灯状态翻转


#include "reg52.h"

 

typedef unsigned char u8;

typedef unsigned int u16;

 

sbit led = P2^0;

sbit k3 = P3^2; //P3^2 引脚和INT0引脚相连

 

void delay(u16 i)

{

 while(i --);

}

 

void Int0Init()

{

 EA = 1; //打开总中断

 EX0 = 1; //允许外部中断0

 IT0 = 1; //设置外部中断0触发方式为:为负跳变触发方式

}

 

void main()

{

 Int0Init();

 while(1);

}

 

void Int0() interrupt 0  

{

 delay(1000);

 if(k3 == 0)

  {

   led =~led;

  }

}

实例二:按键按下后,触发外部中断1,LED灯状态翻转


#include "reg52.h"

 

typedef unsigned char u8;

typedef unsigned int u16;

 

sbit led = P2^0;

sbit k3 = P3^3; //P3^3 引脚和INT1引脚相连

 

void delay(u16 i)

{

 while(i --);

}

 

void Int1Init()

{

 EA = 1; //打开总中断

 EX1 = 1; //允许外部中断1

 IT1 = 1; //设置外部中断1触发方式为:为负跳变触发方式

}

 

void main()

{

 Int1Init();

 while(1);

}

 

void Int1() interrupt 2  

{

 delay(1000);

 if(k3 == 0)

  {

   led =~led;

  }

}

关键字:51单片机  中断实验 引用地址:51单片机之中断实验

上一篇:51单片机之定时器实验
下一篇:51单片机之IO口扩展——74HC165芯片并行转串行实验

推荐阅读最新更新时间:2024-11-09 16:00

基于51单片机的路灯自动开关控制仿真设计
仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0052 1.主要功能: 基于51单片机的万年历时钟仿真设计 基于51单片机的路灯自动开关控制仿真设计 1、测量环境光强度,如果光照过低,开灯 2、可以通过按键设置阀值,光照低于该阀值表示光照过低 3、LCD显示光照和阀值 4、环境亮度越低,灯光亮度越高 需注意仿真中51单片机芯片是通用的,AT89C51,AT89C52都是51单片机的具体型号,内核是兼容的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序也是一样的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片
[单片机]
基于<font color='red'>51单片机</font>的路灯自动开关控制仿真设计
51单片机-实际LED硬件连接
1.三极管认识 假如我们的开发板的硬件连接有如下情况,我们需要点亮LED,需要怎么做? 先看左图,要想点亮LED,根据本章第一讲知识,只需“+5”与R1是短接状态即可,那么PNP型三极管就是起到被单片机IO端口控制是否允许此处短接的作用,也叫三极管是否导通。 如果单片机IO端口输出的是低电平(0V),此时我们可以直观的认为“+5”那端与单片机IO端口形成压差有电流通过,而电流流向正如箭头所示,则表明此时“+5”与R1是短接状态,三极管导通,灯就被点亮了。 那单片机IO端口输出的是高电平(5V)时,则没有形成压差也就产生不了电流,那么箭头不能代表此时有电流流向这个方向,所以“+5”与R1是断开状态,灯没
[单片机]
<font color='red'>51单片机</font>-实际LED硬件连接
采用MXT8051单片机实现基站温控仪的设计
引言 移动基站分布在全国各地,覆盖面广,各地气候差异大。解决好散热问题,是基站正常运作的关键因素之一。本文介绍的温控仪,利用温度传感器采集信号,然后通过单片机进行A/D转换、处理、运算得到室内外温度,并且根据当前室内外温差,计算出风机风速。然后利用PWM方式控制可控硅对交流220V斩波,实现风机风速调制。从而实现了利用自然冷源达到降低基站内部温度的目的。 系统设计 本温控仪是以MXT8051单片机为核心,整个硬件系统(如图1)分为温度信号采集、显示、键盘、控制输出、通信接口和存储模块。该仪表工作流程是:单片机通过集成的A/D采样室内室外温度,根据温差调制风机风速。键盘部分实现对温控仪参数的设置,如风机启动温度、停止温度等参数。
[单片机]
采用MXT80<font color='red'>51单片机</font>实现基站温控仪的设计
51单片机串口通信--SCON方式1
计算机的通信分为:串行通信和并行通信 串行通信分为:异步通信和同步通信 异步通信:发送设备与接受设备有各自的时钟,通信时双方的时钟尽量保持一致, 以字符为单位进行传输, 字符与字符间的时间间隔是任意的, 每个字符中的各位是以固定时间传送的, 异步通信的数据格式:起始位,7位数据,校验位,停止位(这10位数据就是所说的字符,叫1帧数据) 同步通信: 建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。 传输数据的位之间的距离均为“位间隔的整数倍”, 传输的字符间不留间隙,保持位同步和字符同步, 两种方式实现同步:外同步,自同步 外同步:计算机甲控制计算机乙的时钟, 自同步:??? 串行通信的传输方向: 单工:仅
[单片机]
<font color='red'>51单片机</font>串口通信--SCON方式1
51单片机入门——Proteus 8 Professional的使用
1.什么是Proteus 8 Professional ? Proteus是Lab Center Electronics公司推出的一个EDA工具软件。 Proteus具有原理布图、PCB自动或人工布线、SPICE电路仿真、互动电路仿真、仿真处理器及其外围电路等特点功能。 Proteus 8.9 安装包,内附安装教程 链接:https://pan.baidu.com/s/19YPyUeNt5bTVd7ch_15tig 提取码:qcyx 2.Proteus 8 Professional的使用 双击图标后进入主页面:如图: 首先我们要建立一个工程文件,点击左上角的图标或在开始设计中点击新建工程,如图: 选择合适的保
[单片机]
<font color='red'>51单片机</font>入门——Proteus 8 Professional的使用
51单片机的GPIO配置
导语 通过单片机控制外围器件(LED,蜂鸣器,数码管,按键),本质上是对于单片机IO口的操作,相对于STM32,51单片机IO口模式较少,但了解IO的内部对于学习了解51单片机也由很大的帮助。 GPIO GPIO(General Purpose Input Output),通用输入输出。既能当输入口使用,又能当输出口使用。端口,就是元器件上的一个引脚。可以通过软件去控制。 在大多数的时候,我们将IO口可以看为一个电子开关,通过向IO寄存器中写入相应的值,其输出的电平就随着寄存器的变化而变化,这是IO口的输出,在大多数的单片机中,需要去配置单片机的IO模式,是输入还是输出。 即需要预先初始化,配置GPIO的参数,再去使用
[单片机]
<font color='red'>51单片机</font>的GPIO配置
51单片机 ret和reti
原来在8051构架中--中断系统中含有两个不可寻址的“优先级生效”触发器。一个用于指出CPU是否正在执行高优先级的中断服务程序,这个触发器为1时,系统将屏蔽所有的中断请求;另一个则指出CPU是否正在执行低优先级中断服务程序,该触发器为1时,将阻止除高优先级以外的一切中断请求。由此可见,若要响应同级甚至是低级中断请求,必须使得该“优先级生效”触发器清零。但该触发器又是不可寻址的,所以无法用软件直接清零。” 通常情况下,在普通的汇编子程序中用RET做返回,在中断服务子程序中用RETI起中断返回作用。两条指令都能从堆栈中弹出断点地址并装入PC中,使 CPU回到原来主程序的断点处继续运行。然而,RET和RETI有本质的区别:当某一中断源响
[单片机]
51单片机教程(四):独立-矩阵键盘应用与设计
简介:上讲介绍并应用了单片机的串口通信,并给出了实例。从这一讲开始将介绍单片机的外围电路。这讲向大家介绍单片机外接键盘电路,通过该讲,读者可以掌握单片机外接键盘的工作原理从而实现电路与程序设计。 一、原理简介 键盘接口电路是单片机系统设计非常重要的一环,作为人机交互界面里最常用的输入设备。我们可以通过键盘输入数据或命令来实现简单的人机通信。在设计键盘电路与程序前,我们需要了解键盘和组成键盘的按键的一些知识。 1. 按键的分类 一般来说,按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是
[单片机]
<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