51单片机知识点梳理——中断

发布者:cocolang最新更新时间:2022-06-16 来源: eefocus关键字:51单片机  中断  中断源 手机看文章 扫描二维码
随时随地手机看文章

89C51的中断系统有5个中断源:外部中断0、定时器0、外部中断1、定时器1、串口中断(优先级依次递减);2个中断优先级:高优先级、低优先级。
89C51中断系统.png

  • 中断相关寄存器

    • 中断优先级控制寄存器IP
      image.png
      PS:串行口中断口优先级控制位。PS=1,串行口中断声明为高优先级中断;PS=0,串行口定义为低优先级中断。
      PT1:定时器1优先级控制位。PT1=1,声明定时器1为高优先级中断;PT1=0定义定时器1为低优先级中断。
      PX1:外中断1优先级控制位。PT1=1,声明外中断1为高优先级中断;PX1=0,定义外中断1为低优先级中断。
      PT0:定时器0优先级控制位。PT1=1,声明定时器0为高优先级中断;PT1=0,定义定时器0为低优先级中断。
      PX0:外中断0优先级控制位。PT1=1,声明外中断0为高优先级中断;PX1=0,定义外中断0为低优先级中断。

    • 定时器控制寄存器TCON
      image.png
      其中,TF1、TR1、TF0和TR0位用于控制定时器/计数器;IE1、IT1、IE0和IT0位用于控制中断系统。
      TF1:定时器1溢出标志位。当定时器1计满溢出时,由硬件使TF1置“1”,并且申请中断。进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清“0”。 
      TR1:定时器1运行控制位。当GATE=1,且INT1为高电平时,TR1置“1”启动定时器1;当GATE=0,TR1置“1”启动定时器1。由软件清“0”关闭定时器1。
      TF0:定时器0溢出标志。其功能及操作情况同TF1。    
      TR0:定时器0运行控制位。其功能及操作情况同TR1。
      IE1:外部边沿触发中断1请求标志。其功能和操作类似于TF0。
      IT1:外部中断1类型控制位。通过软件设置或清除,用于控制外中断的触发信号类型。IT1=1,边沿触发。IT=0是电平触发。
      IE0:外部边沿触发中断0请求标志。其功能和操作类似于IE1。
      IT0:外部中断0类型控制位。通过软件设置或清除,用于控制外中断的触发信号类型。其功能和操作类似于IE1。
      image.png

    • 定时器控制寄存器TMOD

      GATE :定时操作开关控制位。若GATE=1,只有当INT0或INT1引脚为高电平,并且TCON中的TR0或TR1控制位为1时,计时/计数器0或1才开始工作。若GATE=0,则只要将TR0或TR1控制位设为1,计时/计数器0或1就开始工作。
      C/T :定时器或计数器功能的选择位。C/T=1时为计数器,通过外部引脚T0或T1输入计数脉冲。C/T=0时为定时器,由内部系统时钟提供计时工作脉冲。
      M1 、M0:T0、T1工作模式选择位。

    • 串行通信控制寄存器SCON
      image.png
      SM0、SM1:串行口工作方式控制位。

      串行口工作方式.png
      SM2:多机通信控制位。 多机通信工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃;当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。工作于方式0时,SM2必须为0。
      REN:允许接收位。REN用于控制数据接收的允许和禁止。REN=1时,允许接收;REN=0时,禁止接收。
      TB8:发送接收数据位8。在方式2和方式3中,TB8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。
      RB8:接收数据位8。在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。
      TI:发送中断标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。
      RI:接收中断标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。

    • 中断寄存器IE

      EA:中断总控制位。EA=1,CPU开放中断;EA=0,CPU禁止所有中断。
      ES:串行口中断控制位。ES=1,允许串行口中断;ES=0,屏蔽串行口中断。
      ET1:定时/计数器T1中断控制位。ET1=1,允许T1中断;ET1=0,禁止T1中断。
      EX1:外中断1中断控制位,EX1=1,允许外中断1中断;EX1=0,禁止外中断1中断。
      ET0:定时/计数器T0中断控制位。ET0=1,允许T0中断;ET0=0,禁止T0中断。
      EX0:外中断0中断控制位,EX0=1,允许外中断0中断;EX0=0,禁止外中断0中断。

  • 中断源
    中断源.png


中断函数

void int0 () interrupt 0 using 1  //int0为函数名称,() interrupt为固定格式,0位中断号,using 1是指函数具体使用哪一组寄存器(可不写)。

{

   do anything that you want

}


关键字:51单片机  中断  中断源 引用地址:51单片机知识点梳理——中断

上一篇:微机基础与89C51单片机部分知识
下一篇:51单片机点阵实验

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

51单片机基础之定时器中断(二)
TMOD寄存器: 这里讲一下TMOD寄存器,这个寄存器可以选择开启定时器0还是1,还有可以决定定时器以什么方式工作。如图: 代码: #include reg51.h sbit LED=P2^0; typedef unsigned char u8; typedef unsigned int u16; void time1_init(void) { TMOD|=0x10; //TMOD是一个寄存器,用来决定定时器的工作方式,高四位决定定时器1,目前是工作方式1,即16位定时计数。 TH1=0xfc; //定时器高八位 TL1=0x18; //定时器低
[单片机]
<font color='red'>51单片机</font>基础之定时器<font color='red'>中断</font>(二)
51单片机与A/D接口设计详解
A/D转换器用于实现模拟量→数字量的转换,按转换原理可分为4种,即:计数式A/D转换器、双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。 目前最常用的是双积分式A/D转换器和逐次逼近式A/D转换器。双积分式A/D转换器的主要优点是转换精度高,抗干扰性能好,价格便宜。其缺点是转换速度较慢,因此,这种转换器主要用于速度要求不高的场合。 另一种常用的A/D转换器是逐次逼近式的,逐次逼近式A/D转换器是一种速度较快,精度较高的转换器,其转换时间大约在几μs到几百μs之间。通常使用的逐次逼近式典型A/D转换器芯片有: (1)ADC0801~ADC0805型8位MOS型A/D转换器(美国国家半导体公司产品)。 (2)
[单片机]
<font color='red'>51单片机</font>与A/D接口设计详解
51单片机学习笔记(五)
已经很多天没有写程序了,原因很简单,竟是迷上了新版的西游记,连续看了几天,今天写的是续上以前的教材,“心率计数器”是继“电子时钟”的一个计算器/计时器的应用。 对于计数器/计时器的应用,似乎就是熟练的问题,对计数器/计时器的使用很容易理解,但是要是不看书本,那编写出的程序多半是有错误的,因为对TMOD,TCON,IE,的控制方式,不看书是很难把它记住的,而应用起来却是十分简单。 在这里要说一下在计数器模式下,t1计数的是p3.5的脉冲信号,t0计数的是来自p3.4的脉冲信号。因为我手头上没有心率传感器,所以就只用一根杜邦线接在p3.5口上,然后用手捏杜邦线的另一头,用这种方法给p3.5脉冲信号,挺有意思的。 写这个程序
[单片机]
s3c2440中断控制器操作
一、ARM中断体系结构 arm有7中异常工作模式 用户模式、快中断模式、管理模式、数据访问终止模式、中断模式、系统模式、未定义指令终止模式。 几种模式有什么不同呢, 1、不同的寄存器 2、不同的权限 3、触发条件 对于不同的寄存器,ARM920T有31个通用的32位寄存器和6个程序状态寄存器。这37个寄存器分为7组,进入某个工作模式时就使用他那组的寄存器。有些寄存器,不同的工作模式下有他的副本,当切换到另一个工作模式时,那个工作模式的寄存器副本将被使用:这些寄存器被称为备份寄存器(图中灰色部分的寄存器) 在ARM状态下,每种工作模式都有16个通用的寄存器和一个(或两个,这取决于不同的工作模式)程序状态寄存器。图中R
[单片机]
s3c2440<font color='red'>中断</font>控制器操作
S3C2440外部中断系统详解
S3C2440A中的中断控制器接受来自60个中断源的请求。提供这些中断源的是内部外设,如DMA控制器、UART、IIC等等。在这些中断源中,UARTn、AC97和EINTn中断对于中断控制器而言是“或”关系。任意一个中断发生都会触发总中断 当从内部外设和外部中断请求引脚收到多个中断请求时,中断控制器在仲裁步骤后请求ARM920T内核的FIQ或IRQ。 仲裁步骤由硬件优先级逻辑决定并且写入结果到帮助用户通告是各种中断源中的哪个中断发生了的中断挂起寄存器中。 中断源有两种,一种是直接中断源,比如触摸屏中断,还有一种是带子中断的中断,类似于串口带有子终端入RXTX中断,通过SUBMASK也就是中断允许之后挂起到系统,系统根据用户设置
[单片机]
S3C2440外部<font color='red'>中断</font>系统详解
8051单片机端口结构—P3口
P3口是一个多功能端口,对比P1的结构图不难看出,P3口与P2口的差别在于多了与非门和缓冲器。正是这两个部分,使得P3口除了具有P1口的准双向I/O功能之外,还可以使用各引脚所具有的第二功能。 与非门的作用实际上是一个开关,决定是输出锁存器上的数据还是输出第二功能W的信号。WR和RD三个第二输出功能引脚。当W=1时,输出Q端信号;当Q=1时,可输出W线信号。编程时,可不必事先由软件设置P3口为通用I/O口还是第二功能。 当CPU对P3口进行特殊功能寄存器寻址访问时,由内部硬件自动将第二功能输出线W置1,这时P3口为通用I/O口;当CPU不把P3口作为特殊功能寄存器寻址访问时,即可用作第二功能输出/输入线时,由内部硬件使锁存
[单片机]
80<font color='red'>51单片机</font>端口结构—P3口
STM32学习日志——定时器中断实验
今天学习的是通用定时器及其中断,首先是内部时钟的选择,定时器的时钟Tclk是由APB1时钟乘以1或2决定的,至于是1还是2,要看APB1的分频系数(AHB/APB1),如果为1,则乘以1,否则乘以2。接着就可以根据我们想设定的时间Tout,去配置ARR跟PSC,这两个数是存在16位的寄存器,所以他们的范围为(0-65535),在这个范围内任意取值,满足公式即可。如果我么要配置500ms,可将ARR配置为2499,PSC配置为14399。也就是定时器计数的一个周期为500ms。(ARR为自动重装载值,PSC为Tclk的预分频系数) 根据步骤去写程序就很简单了。 实现功能:通过定时器的中断控制一个绿灯翻转,时间为500ms
[单片机]
STM32学习日志——定时器<font color='red'>中断</font>实验
STM32中断与嵌套NVIC快速入门
简介:STM32 中断与嵌套NVIC 快速入门 //==================================================== // STM32 中断与嵌套NVIC 快速入门 // netjob 2008-8-1 //==================================================== STM32中断与嵌套NVIC快速入门 我也是靠看这本书才弄懂的: Cortex-M3 权威指南 Joseph Yiu 著 宋岩 译 其实很简单。 //CM3 有 最多240个中断(通常外部中断写作IRQs),就是 软件上说的 IRQ CHA
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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