单片机:中断及定时器工作

发布者:chunli最新更新时间:2018-07-14 来源: eefocus关键字:单片机  中断  定时器 手机看文章 扫描二维码
随时随地手机看文章

一、中断

 1、中断的概念

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

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

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

 引起CPU中断的根源叫做中断源。

 中断源向CPU的请求,叫做中断请求。

 CPU暂时中断原来的事件A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。

 实现上述中断功能的部件称为中断系统(中断机构)

2、中断响应优先级及中断服务程序入口表

           

3、中断优点

分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;

实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;

可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。

4、中断系统的结构

     

(1)、P3.2中断引脚可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。

  当IT0=0时,为电平触发方式。
 当IT0=1时,为边沿触发方式(下降沿有效)。

(2)、初始化程序:

 void int_init1()
  {
      IT0 = 1;  //中断0触发方式 1下降沿 0低电平 
  EA = 1; //中断使能
    EX0 = 1; //外部中断0使能
  }

(3)、中断服务程序:

 void int0()  interrupt 0
  { 
      EX0  = 0;
      bsp_ledOff();
      EX0 = 1;
  }

中断服务函数无需在主函数调用,满足中断执行条件自动调用

二、定时/计数器

1、基本结构

 定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。 

       

2、计数脉冲来源:

加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。
    可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。

(1)设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期就是定时时间t 

(2)设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 us。

3、定时/计数器的控制

 80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。

(1)、工作方式寄存器TMOD

工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。其格式如下:

        

GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。即此时定时器的启动多了一条件。
  C/T定时/计数模式选择位。 0为定时模式;1为计数模式。
  M1M0:工作方式设置位。 定时/计数器有四种工作方式,由M1M0进行设置。

4种工作方式:

 

方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。 

 方式1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器 。

 方式2为自动重装初值的8位计数方式。

 方式3只适用于定时/计数器T0,定时器T1处于方式3时相当于TR1=0,停止计数。

 常用方式1和方式2

(2)控制寄存器TCON

 TCON的高4位用于控制定时/计数器的启动和中断申请。其格式如下:

 TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。

 TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。

 TF0(TCON.5):其功能与TF1类同。 

 TR0(TCON.4):其功能与TR1类同。

4、定时器/计数器编程

(1)初始化程序

void bsp_timerinit(void)
{
TMOD |= 0x01; //采用定时器0方式1工作
TL0 = COUNT;
TH0 = COUNT>>8; //赋计数初值
ET0 = 1;      //定时器0使能端
EA = 1;      //总中断使能
TR0 = 1;     //定时器0开始计数
}

(2)定时器中断服务程序

void ISR_timer1(void) interrupt 1
  {
 TL0 = COUNT;
 TH0 =COUNT>>8;  //重新赋计数初值(手动装入)
      countt1++;
 if (countt1 == 1000)
 {
    countt1 = 0;
    LED = ~LED;
 }
   }


关键字:单片机  中断  定时器 引用地址:单片机:中断及定时器工作

上一篇:单片机:矩阵键盘和LCD1602
下一篇:单片机:矩阵键盘和LCD1602

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

基于嵌入式Web服务器的温室远程监控的研究
1 引言 现代温室大棚多以微电子技术和计算机辅助决策技术为核心、以上下位机方式进行智能化监控。但上下位机监控由于受通讯线路、距离影响,费时费力。随着我国设施农业的快速发展和广泛应用,研究并开发基于Internet的连栋温室室内环境远程控制技术及设备,成为迫切需要解决的问题。本文提出了一种将温室控制的嵌入式系统作为服务器接入网络,利用廉价的嵌入TCP/IP通信协议的51系列单片机来控制网络接口芯片 RTL8019AS,实现以太网通讯的系统方案,并对系统硬软件进行了设计。 2  系统硬件设计方案 温室远程监控系统的核心微控制器采用美国Cygnal公司的单片机C8051F020,以太网控制器采用台湾Realtek公司生产的R
[嵌入式]
8051单片机指令系统的用法介绍
一个计算机的指令系统就是它能执行的全部指令的集合。8051的指令系统共有111条指令,由42种助记符和7种寻址方式组合而成。 8051的指令通常包括操作码,和操作数两部分。操作码规定指令进行什么操作,采用助记表示;操作数表示指令的操作对象。 汇编语言指令的基本形式是:操作码助记符 目的操作数,源操作数。 操作码助记符与操作数分开书写,操作数中目的操作数在前,源操作数在后,操作数之间用逗号分隔。 如指令MOV B,#23H中符号MOV就是操作码助记符,这个助记符的意义为将源操作数传入目的操作数地址中,累加器A是目的操作数,寄存器B是源操作数。 8051的机器语言指令根据长度有一字节、二字节、三字节三种。一字节指令操作码中
[单片机]
8051<font color='red'>单片机</font>指令系统的用法介绍
基于MSP430FW427的无磁水表设计方案精编
  1 MSP430FW42x单片机介绍   MSP430FW42x系列单片机是TI公司针对电子式流量与旋转运动检测最新开发的专用MCU芯片,它将超低功耗MCU、旋转扫描接口(SCAN IF)和液晶显示LCD驱动模块完美地结合在一起。该器件的超低功耗结构和流量检测模块不仅延长了电池的寿命,同时还提高了仪表的精度与性能。MSP430FW42x的典型应用包括热量仪表、热水和冷水仪表、气体仪表和工业流量计、风力计以及其他旋转检测应用。   2 流量测量的原理   2.1 基本原理   一个由叶轮或螺旋齿轮构成的机械装置把流体流动转换为转动,这种转换能够实现对流体流量的测量。   把一个谐振回路中的电感置于叶轮的上方可
[单片机]
基于80C51单片机的智能小车设计
O 引言 在现有玩具电动车的基础上,加装光电检测器,实现对电动小汽车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。 1 直流调速系统采用PWM调速 直流调速系统采用晶闸管的直流斩波器与整流电路。晶闸管不受相位控制,而是工作在开关状态。当晶闸管被触发导通时,电源电压加到电动机上,当晶闸管关断时,直流电源与电动机断开,电动机经二极管续流,两端电压接近于零。脉冲宽度调制(Pulse Width Modulat-ion),简称PWM。脉冲周期不变。只改变晶闸管的导通时间,即通过改变脉冲宽度来进行直流调速。 脉宽调速也可通过单片机控制继电器的闭
[单片机]
基于C8051F系列单片机的低功耗设计
引言   在控制终端系统设计中,当系统要求整体功耗偏低时,C8051系列单片机是一个最佳的选择,它们拥有灵活的时钟硬件,使系统能够方便地在高效运作模式与低功耗模式间进行转换,智能的电源管理模式能够在正常工作及待机状态自由切换,从而降低整个系统的能量损耗,当工作频率低于10kHz时,时钟丢失检测器(MCD)能够引发系统产生复位,确保系统工作的安全可靠。 1 C8051F各部分组件的功耗   当一个系统对功耗要求严格时,可以在硬件电路建立前首先粗略计算一下整个系统所需的功耗,由于C8051F系列单片机为数模混合SOC系统,能够实现整个设计的大部分功能,因此整个设计系统的功耗将主要集中在C8015F系列单片机的能量消耗上。   整
[单片机]
C51 用一个外部中断0检测过零脉冲,并产生脉冲
用一个外部中断0检测过零脉冲,然后用一个定时器产生一个脉冲即可。 #include reg52.h #define uint unsigned int /*宏定义*/ #define uchar unsigned char /*宏定义*/ //#define Time_5ms (0x10000-5000) //fosc=12M #define Time_100us (0x10000-100) sbit P2_0=P2^0; uint Time_5ms=10000; void time_initial(); void main() { P2_0=0; time_initial(); while(
[单片机]
瑞萨推出低成本目标板以支持快速增长的RX系列32位MCU产品线
2018年2月27日,日本东京讯 - 全球领先的半导体解决方案供应商萨瑞电子株式会社(TSE:6723)今天宣布推出三款基于RX65N、RX130和RX231微控制器(MCU)的新型目标板,旨在帮助工程师快速启动其家电、楼宇和工业自动化应用的设计。目标板定价在30美元以下,从而降低了价格门槛,可以让更多系统设计人员从瑞萨电子众多的32位RX MCU系列产品的优势中获益。 RX目标板为嵌入式设计人员提供了一个便宜的切入点,用于开始评估,原型设计和产品开发。每个目标板套件都具有片上调试工具,无需购买额外工具即可进行应用设计。通孔引脚头提供了所有MCU信号引脚的接口,使客户可以轻松连接到标准面包板以实现快速原型设计。 瑞萨电子
[嵌入式]
瑞萨推出低成本目标板以支持快速增长的RX系列32位<font color='red'>MCU</font>产品线
采用C8051F单片机实现半导体激光器驱动电源的设计
半导体激光器(LD)体积小,重量轻,转换效率高,省电,并且可以直接调制。基于他的多种优点,现已在科研、工业、军事、医疗等领域得到了日益广泛的应用,同时其驱动电源的问题也更加受到人们的重视。使用单片机对激光器驱动电源的程序化控制,不仅能够有效地实现上述功能,而且可提高整机的自动化程度。同时为激光器驱动电源性能的提高和扩展提供了有利条件。 1总体结构框图 本系统原理如图1所示,主要实现电流源驱动及保护、光功率反馈控制、恒温控制、错误报警及键盘显示等功能,整个系统由单片机控制。本系统中选用了C8051F单片机。C8051F单片机是完全集成的混合信号系统级芯片(SOC),他在一个芯片内集成了构成一个单片机数据采集或控制系统所需要的几乎
[单片机]
采用C8051F<font color='red'>单片机</font>实现半导体激光器驱动电源的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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