单片机中断寄存器知识点总结

发布者:轻松自在最新更新时间:2024-08-14 来源: cnblogs关键字:单片机  中断寄存器  外部中断 手机看文章 扫描二维码
随时随地手机看文章

单片机中断源

一、一般而言,MCS-51单片机有5个中断源,分别是:

1、外部中断0;

2、外部中断1;

3、定时/计数器0中断;

4、定时/计数器1中断;

5、串行口发送或接受中断;

 

1)、用到外部中断时:

EX0 = 1;//中断允许开关
   IT0 = 0;//下降沿触发方式
   EA = 1;//总开关

 

2)、用到定时/计数器中断时

ET0 = 1;//启动计数器中断开关
   EA = 1;//总开关
   /*
   定时器的核心在这
   */
   TMOD = 0x09;
   TH0 = 0x0D8;
   TL0 = 0x0F0;
   TR0 = 1;//启动定时器

 

3)、用到串口中断时

    EX1 = 1;//外部中断1分开关

    IT1 = 1;//触发方式:下降沿

    PX1 = 1;//设置为高优先级

   

    //步骤一:波特率配置,由定时器1的益处率决定

    TMOD = 0x20;//0010 0000 = 0x20,定时器1设置为工作方式2,8位自动装载的定时器

    TH1 = 0xF4;//初值

    TL1 = 0xF4;//波特率4800

    ET1 = 1;//定时器1允许分开关

    TR1 = 1;//启动定时器


   

    //设置串口工作方式

    SCON = 0x50;//等同于TMOD,方式一,允许接收 0101 0000

    //PCON = 0x00;

    //TI = 0;发送中断标志位

    //RI = 0;接收中断标志位

    ES = 1;//IE寄存器第四位,串口中断允许位

    EA = 1;//外部中断总开关

 

Q:为什么叫外部中断呢???

A;因为引起CPU中断的中断源信号来自单片机的外部。

  外部中断0的中断源信号从51单片机的P3.2引脚进入单片机

外部中断1的中断源信号从51单片机的P3.3引脚进入单片机

 

引起中断的有:

1、低电平信号

2、从高电平变化到低电平的下降沿信号

 

所以这些中断要被响应,就要通过设置一系列的寄存器,那么寄存器就来了,,,,

二、

1、中断允许寄存器IE             Time Interrupt

2、定时器控制寄存器TCON          8位寄存器

3、中断优先级寄存器IP(不常用)

4、定时器方式寄存器TMOD

5、串行口控制寄存器SCON

 

中断允许寄存器IE

(EX中断 、ET定时器/计数器)

位7

位6

位5

位4

位3

位2

位1

位0

EA



ES

ET1

EX1

ET0

EX0

 

EX0: 中断0中断允许位。1为允许,0否则相反。

EX1: 中断1中断允许位。1为允许,0否则相反。

 

ET0:定时器/计数器0中断允许位。1为允许,0否则相反。

ET1:定时器/计数器1中断允许位。1为允许,0否则相反。

 

ES:串口中断允许位

EA:总开关

 

(如果定时器工作在中断方式下,则当定时器的当前值计满溢出时,就会触发定时器溢出中断)


器控制寄存器TCON(低4位用作外部中断,高4位用作定时)

 

IT0:外部中断0触发方式。1为低电平,0为下降沿信号。

 IT1:外部中断1触发方式。1为低电平,0为下降沿信号。

 

 IE0:外部中断0请求标志位。IE0=1,有中断请求,0则没有。

 IE1:外部中断1请求标志位。IE0=1,有中断请求,0则没有。

 

 

TR0:定时器/计数器0启动停止。1为启动,0为停止。

TR1:定时器/计数器1启动停止。1为启动,0为停止。

 

TF0:定时器/计数器标志位。1为溢出,0则没有溢出。

TF1:定时器/计数器标志位。1为溢出,0则没有溢出。

 

 

中断优先级寄存器IP(不常用)

PX0:外部中断0

PX1:外部中断1

PT0:定时器/计数器0中断

PT1:定时器/计数器1中断

PS:串口中断

 

定时器方式寄存器TMOD

位7  位6  位5  位4  位3  位2  位1  位0

GATE  C/T  M1   M0   GATE  C/T  M1   M0

        T1方式              T0方式

工作方式选择表

M1  M0      方式                    说明

0     0        0   13位定时器/计数器,TL存放低5位,TH存放高八位

0     1        1   16位定时器/计数器

1     0        2   初值自动装载的8位定时器/计数器

1     1        3   (不重要)

 

GATE:门控制位,相当于总开关

C/T:0定时器                   1计数器

5、串行口控制寄存器SCON

位7  位6  位5  位4  位3  位2  位1  位0

SM0  SM1  SM2  REN  TB8  RB8   TI    RI

 

SM0  SM 1 组合选择位

串行口方式选择

SM0  SM1      方式                    说明                       波特率

0     0        0      8位全部数据发送                             fosc/12

0     1        1    10位数据发送,包括起始位,停止位                 可变

1     0        2    11位数据发送,包括起始位,停止位 ,校验位     fosc/64

1     1        3    同方式2

 

SM2 多机通信使能位

REN:串口数据接收允许位    1允许,0禁止。该位有软件置位或清0

TB8:在方式2和方式3中,这位发送的是第9位,就是校验位。

RB8:在方式2和方式3中,这位发送的是第9位,就是校验位。

TI:发送中断标志位 ,用完时要用软件清0

RI:接受中断标志位,用完时要用软件清0


关键字:单片机  中断寄存器  外部中断 引用地址:单片机中断寄存器知识点总结

上一篇:用单片机控制LED灯(项目)
下一篇:定时器准确定时八位时钟

推荐阅读最新更新时间:2024-11-07 09:25

飞思卡尔首次展示业界最高能效的微控制器
2012年 6月19日,圣安东尼奥(飞思卡尔技术论坛)讯 - 飞思卡尔半导体公司(NYSE:FSL)现在提供业内首款基于ARM Cortex-M0+ 处理器的微控制器(MCU)-Kinetis L series系列的试用样品。Kinetis L series系列器件将于本周在飞思卡尔美国技术论坛(FTF)上亮相,并在活动的开幕主题演讲中进行展示。 随着机器对机器通信的扩展以及网络连接变得无处不在,当今许多独立的、入门级应用将会需要更多智能和功能。飞思卡尔Kinetis L系列的推出,为拥有8位和16位传统架构的用户向32位平台迁移提供了良机,并为日常设备带来额外的智能,但不会增加功耗、成本或体积。小家电、游戏配​​件、便携式医疗
[单片机]
STM32系列单片机IO口模式设置
  STM32单片机的每组IO口都有4个32位配置寄存器用于配置GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR和GPIOx_PUPDR,2个32位数据寄存器用于配置输入和输出寄存器GPIOx_IDR和GPIOx_ODR,1个32位置位复位寄存器GPIOx_BSRR,1个32位锁定寄存器GPIOx_LCKR和2个32位复用功能选择寄存器GPIOx_AFRH和GPIOx_AFRL。   GPIO的输出状态可以配置为推挽或开漏加上上拉或下拉。输出数据既可以来自输出数据寄存器,也可以由其他外围寄存器发出。每组IO口的速度都是可以配置的,可以配置为25MHz,50MHz或是100Mhz。数据输入同样也有几种
[单片机]
STM32系列<font color='red'>单片机</font>IO口模式设置
单片机PID算法实现
在avr单片机上实现的100%通过测试,用单片机调的倒立摆非常稳定. #include stdio.h #include math.h struct _pid { int pv; //integer that contains the process value 过程量 int sp; //*integer that contains the set point 设定值 float integral; // 积分值 float pgain; float igain; float dgain; int deadband; //死区 int last_error; }; struct _pid
[单片机]
单片机数码管显示数字为流水灯亮的个数
本程序所用的原理图下载: 点这里 ,单片机芯片使用的stc89c52; /** *Function:数码管显示数字为流水灯亮的个数 *Author: 徐冉 *Time: 2013-07-28 **/ /*************基于AT89C52-RC MCU************/ /************基于HL-1开发板****************/ #include reg52.h typedef unsigned int uint; typedef unsigned char uchar; /*数码管锁存器位声明*/ sbit wela = P2^7; sbit dula = P2^6; /*数码管编码
[单片机]
基于单片机STC12C52系列直流电机调速系统
在现代工业中,电机调速系统被广泛应用于机械、冶金、石油化学、国防工业等工业部门中。随着计算机进入控制领域,以及新型的电力电子功率元器件的不断出现,使用脉宽调制(pulse width modulation,简称PWM)控制方式已成为绝对主流。脉宽调制是一种使用程序来控制波形占空比、周期、相位波形的技术,在电机驱动、D/A转换等场合有广泛的应用。这种控制方式已作为直流电动机数字控制的基础。在直流调速控制中,可以采用各种控制器,单片机是其中一种选择。 1 功能描述 电机调速系统采用微处理器作为控制核心,以控制板卡、电机驱动芯片及外围电路、电机等构成整个电机调速系统。由微处理器产生1对(共2路)PWM信号,该PWM信号经电机驱动芯片控制
[单片机]
基于<font color='red'>单片机</font>STC12C52系列直流电机调速系统
基于ATtiny85微控制器制作一款四通道温度计
本文主要介绍了一款基于ATtiny85微控制器的四通道温度计,该温度计可以同时监测四个温度传感器的温度,并且实时在小型128x32 OLED液晶屏上进行显示。 该温度计可以用于任何需要监控多个温度点的应用中,例如控制温室、检查功率放大器中的输出晶体管、监控超频游戏PC中的关键点、监控Raspberry Pi上的芯片,或者检查家里各个房间的温度。 以下示例是使用四通道温度计监视A类功率放大器功率晶体管的温度: 简介 这款四通道温度计采用了ATtiny85微控制器来读取四个DS18B20或MAX31820温度传感器的数据,使用1-Wire协议,并在小型OLED液晶屏上显示温度。 我选择了一个128x32
[单片机]
基于ATtiny85<font color='red'>微控制器</font>制作一款四通道温度计
两机串行通讯单片机汇编语言编程举例
A、B两机之间串行通讯(方式1),用‘检验和’校验波特率为2400,发送缓冲区和接收缓冲区都为片内30H开始的16个字节单元。已知:fosc=11.0592MHz。 设计A发送,B接收的双方协议如下: 1、首先A发送‘AA’信号,B接收到后发送‘BB’应答; 2、A方最多只发送20次‘AA’,若无应答,置错误标志,退出。 3、A收到‘BB’后,开始发送缓冲区的数据,同时求检验和,共16个字节。 4、B接收数据,存入缓冲区,并同时求检验和。 5、当一个数据块发送完后,A再发送检验和(一个字节)。 6、B接收到A的检验和后,再与本身的检验和比较。 7、若接收正确,B方发送‘00’,否则发送‘EE‘,请求重发。 8、若
[单片机]
两机串行通讯<font color='red'>单片机</font>汇编语言编程举例
NXP全新i.MX RT700跨界MCU搭载eIQ Neutron NPU, 以高性能、低功耗赋能AI边缘
高度集成的全新i.MX RT700跨界MCU旨在显著节省功耗,配备eIQ Neutron神经处理单元(NPU),可在边缘端提供高达172倍的AI加速 中国上海——2024年9月24日—— 恩智浦半导体(NXP Semiconductors N.V.,)今日宣布推出全新i.MX RT700 跨界MCU系列,旨在为支持智能 AI 的边缘端设备赋能,例如可穿戴设备、消费医疗设备、智能家居设备和 HMI 平台 。i.MX RT700 系列为边缘 AI 计算的新时代提供了高性能、广泛集成、先进功能和能效的优化组合。 i.MX RT700 在单个设备中配备多达五个强大的内核,包括在跨界 MCU 中 首次集成eIQ® Neutr
[嵌入式]
NXP全新i.MX RT700跨界<font color='red'>MCU</font>搭载eIQ Neutron NPU,  以高性能、低功耗赋能AI边缘
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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