51单片机——中断

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

一、中断的概念

    CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);

    CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);

    待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。

二、中断寄存器

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

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

    2.定时器控制寄存器TCON

    3.串口控制寄存器SCON

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

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

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

中断结构

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

    注:在用到中断时,必须要开总中断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

串口控制寄存器SCON

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

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

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

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

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

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

​4.中断优先寄存器IP[page]

四、定时器/计数器

    1.计数的定义:

        计数是指对外部事件进行计数,外部事件的发生以输入脉冲的形式表示,因此计数功能的实质就是对外来的脉冲进行计数,在单片机中对应引脚T0和T1,两个脉冲输入端。

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

    2.定时器:

        定时器是通过计数器的计数来实现的,不过此时的计数脉冲来自单片机的内部,因此定时器的实质是对内部脉冲的计数,在单片机中,每个机器周期产生一次计数脉冲,计数器加1.

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

工作方式控制寄存器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进制码,分别付给TH0和TL0

     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次中断即可。

五、附加​

中断函数
中断修饰符

  

 

参考链接:

http://blog.sina.com.cn/s/blog_a05b986d010152h3.html​

http://wenku.baidu.com/view/946e11949ec3d5bbfd0a74b8.html

http://wenku.baidu.com/view/25971fbefd0a79563c1e725f.html

​http://bbs.elecfans.com/jishu_210382_1_1.html

http://wenku.baidu.com/view/3e770240a8956bec0975e395.html​

关键字:51单片机  中断 引用地址:51单片机——中断

上一篇:51单片机——定时/计数器
下一篇:51单片机——动态数码管

推荐阅读最新更新时间:2024-03-16 14:34

STM32CubeMX系列教程2:外部中断(EXIT)
这一章我们在前一章GPIO的工程修改。复制GPIO的工程,修改文件夹名。点击STM32F746I.ioc打开STM32cubeMX的工程文件重新配置。PA0管脚重新配置为GPIO_EXIT0模式。 WAKEUP按键已经外部下拉,按下是PA0为高电平。在GPIO配置中配置PA0为上升沿触发。内部既不上拉也不下拉,添加用户标签WAKEUP。 在NVIC(嵌套向量中断控制器)中,勾选EXIT Line0 interrupt使能PA0中断。右边两个选项设置抢占优先级和响应优先级。此处我们选择默认的,不修改。 在这里简单介绍一下NVIC(嵌套向量中断控制器)。NVIC就是控制中断响应的。主要由三个参数,一个是中断使能,
[单片机]
STM32CubeMX系列教程2:外部<font color='red'>中断</font>(EXIT)
基于51单片机的GPS公交车自动报站系统
一.硬件方案 本设计主要是制作出一款基于51单片机的GPS自动报站公交车,根据设计需求,硬件部分应该具有的功能有,GPS定位、语音播报、液晶显示、按键操作以及相应的指示灯提示,所以本次设计采用了STC89C58RC单片机作为主控芯片、GPS模块采用了VK2828U7G5LF、液晶显示部分采用了LCD12864液晶、音频播放部分采用了Miniplay模块,以及按键电路、指示灯提示电路还增加了时钟显示电路。整体硬件框图如图: 二.设计功能 (1)本设计播报主要有两种方式,其一是当到达播报站点时,司机按下对应按键进行播报;另一种是全自动语音播报方式,到达播报站点时,设计会自动进行播报。 (2)自带时钟显示,并且设有GPS自动校时
[单片机]
基于<font color='red'>51单片机</font>的GPS公交车自动报站系统
如何用51单片机来产生PWM波
89C51芯片没有自带PWM发生器,如果要用51来产生PWM波就必须要用软件编程的方法来模拟。方法大概可以分为软件延时和定时器产生两种方法。下面将逐一介绍。 1 软件延时法 利用软件延时函数,控制电平持续的时间,达到模拟pwm的效果。 程序如下: #include sbit pwm=P1^0; main() while(1) pwm=1; delayus(60);//置高电平后延时60us,占空比60% pwm=0; delayus(40); void delayus(uint x) while(x--); proteus软件仿真结果如下: 可见,用这种延时函数的方法就能简单地模拟出pwm输出。但是这种方法的缺点也相当明显
[单片机]
如何用<font color='red'>51单片机</font>来产生PWM波
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的使用
8051单片机教程第五课:延时程序分析
上一次课中,我们已经知道,程序中的符号R7、R6是代表了一个个的RAM单元,是用来放一些数据的,下面我们再来看一下其它符号的含义。 DELAY:MOVR7,#250;(6) D1:MOVR6,#250;(7) D2:DJNZR6,D2;(8) DJNZR7,D1;(9) RET;(10) MOV:这是一条指令,意思是传递数据。说到传递,我们都很清楚,传东西要从一个人的手上传到另一个人的手上,也就是说要有一个接受者,一个传递者和一样东西。从指令MOVR7,#250中来分析,R7是一个接受者,250是被传递的数,传递者在这条指令中被省略了(注意:并不是每一条传递指令都会省的,事实上大部份数据传递指令都会有传递者
[单片机]
80<font color='red'>51单片机</font>教程第五课:延时程序分析
基于2051单片机串行数据采集传输模块的设计
在微机测控系统中,经常要用到A/D转换。常用的方法是扩展一块或多块A/D采集卡。当模拟量较少或是温度、压力等缓变信号场合,采用总线型A/D卡并不是最合适、最经济的方案。这里介绍一种以GNS97C2051单片机为核心,采用TLC2543 12位串行A/D转换器构成的采样模块,该模块的采样数据由单片机串口经电平转换后送到上位机(IBM PC兼容机)的串口COM1或COM2,形成一种串行数据采集串行数据传输的方式。经实践调试证实:该模块功耗低、采样精度高、可靠性好、接口简便,有一定实用价值。 1 主要器件介绍 1.1 TLC2543串行A/D转换器 模块采用TI公司的TLC2543 12位串行A/D转换器,使用开关电容逐次逼近技术完
[单片机]
基于20<font color='red'>51单片机</font>串行数据采集传输模块的设计
80c51是几位单片机 80c51单片机有几个中断
  80c51是几位单片机   80C51是一种8位微处理器,也被称为8051,由Intel公司推出。它是最早的商用单片机之一,由于它的简单易用、灵活可靠,被广泛应用于许多嵌入式系统中。在80C51系列中,最常见的型号包括AT89C51和AT89S52等。   80c51单片机寻址范围有多少   80C51单片机的寻址范围取决于其具体的型号和存储器结构。在最常见的AT89C51和AT89S52型号中,其寻址范围如下:   内部RAM寻址范围:0x00-0x7F(128字节)   内部ROM寻址范围:0x0000-0xFFFF(64KB)   特殊功能寄存器(SFR)寻址范围:0x80-0xFF(128字节)   外部扩展RAM
[单片机]
单片机的中断函数编写方法
interrupt m修饰符 C51中断函数必须通过该修饰符进行修饰。在C51程序设计中,当函数定义时用了interrupt m修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾段,并按51系统中断的处理方式自动把它安排在程序存储器中的相应位置。 在该修饰符中,m的取值为0~31,对应的中断情况如下: 0——外部中断0 1——定时/计数器T0 2——外部中断1 3——定时/计数器T1 4——串行口中断 5——定时/计数器T2 其它值预留。 C51编译器从绝对地址8m+3处产生一个中断向量,其中m为中断号,也即interrupt后面的数字。该向量包含一个到中断函数入口地址的绝对跳转。 【例】编写一个用于统计外中断0
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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