0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

51单片机中断概述和中断源以及中断寄存器的详细资料概述

GReq_mcu168 来源:未知 作者:易水寒 2018-07-05 08:36 次阅读

一、中断的概念CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断

二、中断源

51单片机中有5个中断源

51单片机中断概述和中断源以及中断寄存器的详细资料概述

三、中断寄存器

单片机有10个寄存器主要与中断程序的书写控制有关

1.中断允许控制寄存器IE

2.定时器控制寄存器TCON

3.串口控制寄存器SCON

4.中断优先控制寄存器IP

5.定时器工作方式控制寄存器TMOD

6.定时器初值赋予寄存器(TH0/TH1,TL0/TL1)

寄存器详细说明:http://blog.sina.com.cn/s/blog_a05b986d0101545c.html

四、寄存器功能与赋值说明

注:在用到中断时,必须要开总中断EA,即EA=1。//开总中断

1.中断允许控制寄存器IE

EX0(EX1):外部中断允许控制位

EX0=1 外部中断0开关闭合//开外部0中断EX0=0 外部中断0开关断开

ET0(ET1):定时中断允许控制位

ET0=1定时器中断0开关闭合//开内部中断0

ET0=0 定时器中断0开关断开ES: 串口中断允许控制位

ES=1 串口中断开关闭合//开串口中断

ES=0 串口中断开关断开

2.定时器控制寄存器 TCON//控制外部中断和定时器中断

外部中断:

IE0(IE1):外部中断请求标志位

当INT0(INT1)引脚出现有效的请求信号,此位由单片机自动置1,cpu开始响应,处理终端,而当入

中断程序后由单片机自动置0.

//外部中断,即外部中断相应的引脚接入低电平或下降沿信号时,中断开始响应。

IT0(IT1):外部中断触发方式控制位//选择有效信号

IT0(IT1)=1:脉冲触发方式,下降沿有效。

IT0(IT1)=0:电平触发方式,低电平有效。

内部中断:

TF0(TF1):内部定时器/计数器溢出中断标志位

当定时器、计数器计数溢出的时候,此位由单片机自动置1,cup开始响应,处理中断,而当进入中

断程序后由单片机自动置0.

//内部中断实际上就是利用内部的计数器,只不过提供计数的脉冲来自单片机自身。

TRO(TR1):定时器/计数器启动位//启动定时器

TRO(TR1)=1; 启动定时器/计数器0

TR0(TR1)=0; 关闭定时器/计数器0

3.串口控制寄存器SCON

TI:串行口发送中断标志位

当单片机串口发送完一帧数据后,此位由单片机自动置1,而当进入中断服务程序后是不会自动清0的,

必须由用户在中断服务中用软件清0.

RI:串行口接收中断标志位

当单片机串口接收完一帧数据后,此位由单片机自动置1,而当进入中断服务程序后是不会自动清0的,

必须由用户在中断服务软件中用软件清0.

(IP以后补上,TMOD,TL0/TH0 在定时器/计数器中讲)

五、中断结构图:

六、定时器/计数器

1.计数的定义:

计数是指对外部事件进行计数,外部事件的发生以输入脉冲的形式表示,因此计数功能的实质就是对外来

的脉冲进行计数,在单片机中对应引脚T0和T1,两个脉冲输入端。

外部输入的脉冲在负跳变时有效(即外部脉冲由1变化到0),计数器加1.

2.定时器:

定时器是通过计数器的计数来实现的,不过此时的计数脉冲来自单片机的内部,因此定时器的实质是对内

部脉冲的计数,在单片机中,每个机器周期产生一次计数脉冲,计数器加1.

3.工作方式控制寄存器TMOD:

TMOD的低半字节(D0,D1,D2,D3)用来控制定时器/计数器0

TMOD的高半字节(D4,D5,D6,D7)用来控制定时器/计数器1

对TMOD中的内容说明:

GATE——门控制。 GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1。 当INT0引脚为高电平时TR0置位,启动定时器T0; 当INT1引脚为高电平时TR1置位,启动定时器T1。 GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。

C/T——功能选择位 C/T=0时为定时功能,C/T=1时为计数功能。 M0、M1——方式选择功能 由于有2位,因此有4种工作方式

4.根据单片机晶振,所选TMOD的的工作方式,所要定的时间,来确定THO和TLO所要赋予的初值

(以12M晶振,工作方式1,16位计数器为例,设所定时间为Xus(16为计数器最大数65536,即65536us,若所

定时间大于65535,则要用if语句控制,现假设X<65535))

1.时钟周期的时间t=1/12M=1/12 us

2.机器周期的时间T=12*1/12=1 us

3.因为每经过一个机器周期计数器+1,所以,计数器+1,经过的时间为 1 us。

若所定时间为X,则要求经过Xus,中断响应,又因为16为计数器要全部置1(即达到65535)+1后,中断才会

响应,所以,初值=(65536-X)

4.将初值转化为16进制码,分别付给THO和TLO

eg:所定时间5ms

初值=(65536-5000)=60536=EC78

TH0=0XEC; TL0=0X78;

(当工作方式不同时,TH0/TL0的赋值也不同,个人觉得有了16位计数器了,其余的没什么用,不介绍了)

5.写程序时另一种THO/TLO赋值方法

TH0=(65536-20000)/256;TL0=(65536-20000)%6;

这样设置,每经过20ms,发生一次中断,中断时间一般以秒为单位,所以经过n次中断即可。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117719
  • 51单片机
    +关注

    关注

    269

    文章

    5649

    浏览量

    120700
  • 中断
    +关注

    关注

    5

    文章

    884

    浏览量

    41023

原文标题:51单片机中断学习

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C51中断寄存器

    C语言 中断寄存器 学习单片机的可以看看,详细资料可以去别的地方看
    发表于 06-27 14:41 2次下载

    单片机教程之80C51中断系统及定时和计数器的详细资料概述

    本文档的主要内容详细介绍的是单片机教程之80C51中断系统及定时和计数器的详细资料概述主要内容
    发表于 11-13 19:05 9次下载
    <b class='flag-5'>单片机</b>教程之80C<b class='flag-5'>51</b>的<b class='flag-5'>中断</b>系统及定时和计数器的<b class='flag-5'>详细资料</b><b class='flag-5'>概述</b>

    51单片机教程之51单片机中断系统的详细资料概述

    本文档的主要内容详细介绍的是51单片机教程之51单片机中断系统的
    发表于 11-19 09:56 17次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>教程之<b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>中断</b>系统的<b class='flag-5'>详细资料</b><b class='flag-5'>概述</b>

    51单片机中断系统详细资料总结

    本文档的详细介绍的是51单片机中断系统详细资料总结。主要内容包括了:1 中断的概念,2
    发表于 03-07 16:37 3次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>系统<b class='flag-5'>详细资料</b>总结

    如何选择51单片机中断寄存器

    首先介绍一下51寄存器组:通过设置PSW寄存器的第3位和第4位可以任意切换寄存器组。在进入中断前,切换
    发表于 04-17 17:27 0次下载
    如何选择<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断寄存器</b>组

    51单片机中断系统相关寄存器详细资料说明

    本文档的主要内容详细介绍的是51单片机中断系统相关寄存器详细资料免费下载。
    发表于 08-02 17:34 2次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>系统相关<b class='flag-5'>寄存器</b><b class='flag-5'>详细资料</b>说明

    STM32单片机中断及NVIC的详细资料概述

    51单片机有一定了解的都知道51单片机有5个中断源,2个优先级,通过对IP这个寄存器赋值来进行
    发表于 07-17 17:39 3次下载
    STM32<b class='flag-5'>单片机</b><b class='flag-5'>中断</b>及NVIC的<b class='flag-5'>详细资料</b><b class='flag-5'>概述</b>

    51单片机中断相关寄存器详细说明

    本文档的主要内容详细介绍的使用51单片机中断相关寄存器详细说明。
    发表于 06-26 17:43 0次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>中断</b>相关<b class='flag-5'>寄存器</b>的<b class='flag-5'>详细</b>说明

    使用51单片机进行中断设置的详细资料说明

    本文档的主要内容详细介绍的是使用51单片机进行中断设置的详细资料说明。这些中断请求源的
    发表于 06-20 17:43 0次下载
    使用<b class='flag-5'>51</b><b class='flag-5'>单片机</b>进行<b class='flag-5'>中断</b>设置的<b class='flag-5'>详细资料</b>说明

    51单片机中断系统详细资料说明

    本文档的主要内容详细介绍的是51单片机中断系统详细资料说明。
    发表于 06-14 17:45 3次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>系统<b class='flag-5'>详细资料</b>说明

    51单片机中断相关的寄存器

    51单片机中断相关的寄存器简介中断控制寄存器IE中断
    发表于 11-12 11:36 8次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>与<b class='flag-5'>中断</b>相关的<b class='flag-5'>寄存器</b>

    51单片机中断

    (TI/RI)。特殊功能寄存器51单片机有4个专用寄存器用于中断的控制,这四个寄存器分别为定时器
    发表于 11-22 12:21 8次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>

    #51单片机#中断

    中断中断,是单片机的一种运行机制。标准的51单片机有两个控制中断
    发表于 11-22 13:06 13次下载
    #<b class='flag-5'>51</b><b class='flag-5'>单片机</b>#<b class='flag-5'>中断</b>

    51单片机中断系统

    的数字 x 就是根据中断向量得出的,它的计算方法是 x*8+3=向量地址。抢占优先级寄存器:参考资料:手把手教你学51单片机:C语言版...
    发表于 11-22 13:36 8次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>中断</b>系统

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

    参考文章89C51中断系统有5个中断源:外部中断0、定时器0、外部中断1、定时器1、串口中断
    发表于 11-22 14:06 36次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>知识点梳理——<b class='flag-5'>中断</b>