单片机的中断与定时

合集下载

单片机的中断处理方式

单片机的中断处理方式

单片机的中断处理方式单片机中断是指在程序运行过程中,发生某些特定的事件时,暂停正在执行的程序,转而执行另外一段特定的程序,完成特定的任务后,再返回原程序继续执行。

中断处理方式能够提高单片机的响应速度和实时性,因此在嵌入式系统中得到广泛应用。

单片机的中断处理方式有两种:硬件中断和软件中断。

一、硬件中断硬件中断是通过外部触发器来实现的。

单片机的中断请求引脚接收到外部信号后,触发中断。

硬件中断包括外部中断和定时器中断。

1. 外部中断外部中断是通过外部信号引脚的电平变化或边缘触发来引发的。

当外部信号满足一定条件时,单片机会停止当前任务,转而执行与该中断相对应的子程序。

外部中断可以用于实现按钮的按下、外部传感器数据的采集等,以实现实时响应。

2. 定时器中断定时器中断是通过单片机内部的计时器来实现的。

单片机中的定时器会定期产生中断信号,通过设定定时器的计数值和工作模式,可以实现特定时间间隔的中断。

定时器中断广泛应用于实时时钟、定时测量、定时采样等需要定时触发的场景。

二、软件中断软件中断是由程序内部主动触发的,通常通过软件指令执行INT指令来触发中断。

软件中断可以由开发人员自定义,并根据需求在程序中进行调用。

软件中断可以用于实现特定事件的调度和处理,例如实现任务的优先级调度、不同模块之间的通信等。

通过软件中断,可以在不同任务之间灵活切换执行,提高系统的多任务处理能力。

中断处理方式的选择应根据具体的应用场景和需求来确定。

硬件中断适用于外部事件的实时响应,而软件中断则适用于程序内部事件的处理。

在编写中断处理程序时,需遵循以下几点原则:1. 快速响应:中断处理程序应尽可能地短小快速,以保证系统能够及时响应中断事件。

2. 恰当处理:中断处理程序应准确地处理中断事件,并根据需要执行相应的操作,例如保存寄存器状态、执行特定任务等。

3. 中断嵌套:当多个中断事件同时发生时,需要根据优先级进行中断嵌套处理,确保高优先级的中断能够先得到响应。

第05章 MCS-51单片机的中断与定时(1-4)

第05章 MCS-51单片机的中断与定时(1-4)

2
1
TH0
;P1.0输出“0” ;P1.0输出“1”
5.2 MCS-51单片机的中断系统
五、外中断应用举例
1. 中断初始化程序
设置外中断源的触发方式 设置中断允许寄存器IE 设置中断优先级寄存器IP
2. 中断服务程序
保护现场 中断处理 恢复现场
23/65
5.2 MCS-51单片机的中断系统
【例5-3】 设外部中断0为下降沿触发方 式,高优先级,试编写中断初始化程序
5.2 MCS-51单片机的中断系统
【例5-4】 将单脉冲接到外中断0(INT0)引脚,利 用P1.0作为输出,经反相器接发光二极管。编写程 序,每按动一次按钮,产生一个外中断信号,使发 光二极管的状态发生变化,由亮变暗,或反之
P1.0 单脉冲 发生器 INT0
1
+5V
8031
26/65
5.2 MCS-51单片机的中断系统
串口:0023H
20/65
5.2 MCS-51单片机的中断系统
四、中断请求的撤除
1.定时/计数器中断请求标志TF0/TF1会自动撤除 2.串行口中断请求标志TI/RI要用指令撤除
CLR TI ;清TI标志位 CLR RI ;清RI标志位
3.负脉冲触发的外中断请求标志IE0/IE1会自动撤除 4.低电平触发的外中断请求信号需要外加电路撤除
下次课前请预习5.3节
30/65
5.3 51单片机的定时器/计数器
MCS-51单片机内部有两个16位定时/计数器 T0和T1,简称定时器0和定时器1
在特殊功能寄存器TMOD和TCON的控制下, 它们既可以设定成定时器使用,也可以设定 成计数器使用
定时/计数器有4种工作方式,具有中断功能, 可以完成定时、计数、脉冲输出等任务

单片机的延时与中断问题及解决方法

单片机的延时与中断问题及解决方法

单片机的延时与中断问题及解决方法单片机的延时和中断是单片机编程中经常遇到的问题。

延时是指在程序执行过程中需要暂停一段时间,而中断是指在程序执行过程中需要中断当前的任务去处理一个更紧急的事件。

下面将详细介绍这两个问题以及解决方法。

延时问题:在单片机程序中,有时需要进行一定的延时,比如等待某个外设初始化完成或等待一段时间后执行某个任务。

常见的延时方法有软件延时和硬件延时。

1. 软件延时:软件延时是通过程序自身来实现的,可以使用循环或者定时器来实现。

循环延时的原理很简单,就是通过不断的进行空操作,等待一定的时间。

但是由于单片机的执行速度非常快,所以软件延时可能会导致主程序无法正常执行。

为了解决这个问题,可以采用定时器来进行延时。

通过设置定时器的参数,可以让定时器在指定的时间后产生中断,然后在中断服务函数中执行需要延时的任务。

2. 硬件延时:硬件延时是通过特殊的硬件电路来实现的,比如借助外部晶振来实现精确的延时。

硬件延时可以达到比较精确的延时效果,但需要占用额外的硬件资源。

中断问题:中断是指程序在执行过程中突然被打断,去处理一个更紧急的事件。

单片机中常见的中断有外部中断和定时器中断两种。

1. 外部中断:外部中断常用于处理外部事件,如按键输入、外部信号触发等。

在外部中断的配置过程中,需要设置相关的寄存器来使能中断功能,还需要编写中断服务函数来处理中断事件。

一般情况下,外部中断在硬件电路中配置好后,单片机会在产生中断信号时自动跳转到中断服务函数中执行相应的程序。

2. 定时器中断:定时器中断常用于定时操作,比如按时采样、定时发送数据等。

定时器中断的配置也需要设置相关的寄存器来使能中断功能,并编写中断服务函数来进行相应的操作。

定时器中断的优点是可以较为精确地控制时间,但需要注意设置好中断的周期和优先级,以避免中断冲突导致系统运行不稳定。

解决方法:1. 在编写单片机程序时,需要考虑到延时和中断的问题,合理设置延时时间和中断优先级,以确保程序的正常运行。

中断与定时器和计数器实验

中断与定时器和计数器实验

中断与定时器和计数器实验一、实验目的:1.掌握单片机的中断的原理、中断的设置,掌握中断的处理及应用2.掌握单片机的定时器/计数器的工作原理和工作方式,学会使用定时器/计数器二、实验内容:(一)、定时器/计数器应用程序设计实验1.计数功能:用定时器1方式2计数,每计数满100次,将P1.0取反。

(在仿真时,为方便观察现象,将TL1和TH1赋初值为0xfd,每按下按键一次计数器加1,这样3次就能看到仿真结果。

)分析:外部计数信号由T1(P3.5)引脚输入,每跳变一次计数器加1,由程序查询TF1。

方式2有自动重装初值的功能,初始化后不必再置初值。

将T1设为定时方式2,GATE=0,C/T=1,M1M0=10,T0不使用,可为任意方式,只要不使其进入方式3即可,一般取0。

TMOD=60H。

定时器初值为X=82-100=156=9CH,TH1=TL1=9CH。

(1)硬件设计硬件设计如图所示(2)C源程序#include "reg51.h" sbit P1_0=P1^0;void main(){TMOD=0x60;TH1=0xfd;TL1=0xfd;TR1=1;ET1=1;while(1){if(TF1==1){P1_0=~P1_0;TF1=0;}}}(3)proteus仿真通过Keil编译后,利用protues软件进行仿真。

在protues ISIS 编译环境中绘制仿真电路图,将编译好的“xxx.hex”文件加入AT89C51。

启动仿真,观察仿真结果。

(二)中断应用程序设计实验2.中断定时使用定时器定时,每隔10s使与P0、P1、P2和P3端口连接的发光二极管闪烁10次,设P0、P1、P2和P3端口低电平灯亮,反之灯灭。

分析:中断源T0入口地址000BH;当T0溢出时,TF0为1发出中断申请,条件满足CPU响应,进入中断处理程序。

主程序中要进行中断设置和定时器初始化,中断服务程序中安排灯闪烁;TL0的初值为0xB0,TH0的初值为0x3C,执行200次,则完成10s定时。

单片机定时器中断原理

单片机定时器中断原理

单片机定时器中断原理
单片机定时器中断原理是通过设定一个计时器寄存器和一个计数器寄存器来实现的。

当定时器开始计数时,计数器开始递增,当计数器的值达到预设值时,触发定时器中断。

首先,需要设置定时器的计时方式,例如可以选择计数器以固定的时间间隔递增,也可以选择以外部触发信号作为计数器递增的条件。

其次,需要设置计时器的预设值,即计数器需要达到的值,通常是根据所需的时间间隔来确定的。

最后,需要开启定时器中断使能位,使得当计数器达到预设值时,能够触发中断请求。

当定时器开始计数时,计数器开始递增。

一旦计数器的值等于预设值,定时器中断请求被触发,中断标志位被置位。

此时,单片机会检查中断使能位是否被设置,如果被设置,则响应中断请求,暂停当前正在执行的程序,跳转到中断服务程序中执行相应的操作。

中断服务程序可以根据需要做一些数据处理、状态更新等操作,然后再返回到主程序继续执行。

在中断服务程序中,通常会清除中断标志位,以便下次再次触发中断时能够正常响应。

同时,也可以根据需要重新设置定时器的预设值,实现周期性的定时中断。

通过定时器中断,可以实现定时任务的调度和实时操作的需求。

单片机中的中断与定时器的原理与应用

单片机中的中断与定时器的原理与应用

单片机中的中断与定时器的原理与应用在单片机(Microcontroller)中,中断(Interrupt)和定时器(Timer)是重要的功能模块,广泛应用于各种嵌入式系统和电子设备中。

本文将介绍中断和定时器的基本原理,并探讨它们在单片机中的应用。

一、中断的原理与应用中断是指在程序执行过程中,当发生某个特定事件时,暂停当前任务的执行,转而执行与该事件相关的任务。

这样可以提高系统的响应能力和实时性。

单片机中的中断通常有外部中断和定时中断两种类型。

1. 外部中断外部中断是通过外部触发器(如按钮、传感器等)来触发的中断事件。

当外部触发器发生状态变化时,单片机会响应中断请求,并执行相应的中断服务程序。

外部中断通常用于处理实时性要求较高的事件,如按键检测、紧急报警等。

2. 定时中断定时中断是通过定时器来触发的中断事件。

定时器是一种特殊的计时设备,可以按照设定的时间周期产生中断信号。

当定时器倒计时完成时,单片机会响应中断请求,并执行相应的中断服务程序。

定时中断常用于处理需要精确计时和时序控制的任务,如脉冲计数、PWM波形生成等。

中断的应用具体取决于具体的工程需求,例如在电梯控制系统中,可以使用外部中断来响应紧急停车按钮;在家电控制系统中,可以利用定时中断来实现定时开关机功能。

二、定时器的原理与应用定时器是单片机中的一个重要模块,可以用于计时、延时、频率测量等多种应用。

下面将介绍定时器的工作原理和几种常见的应用场景。

1. 定时器的工作原理定时器是通过内部时钟源来进行计时的。

它通常由一个计数器和若干个控制寄存器组成。

计数器可以递增或递减,当计数值达到设定值时,会产生中断信号或触发其他相关操作。

2. 延时应用延时是定时器最常见的应用之一。

通过设定一个合适的计时器参数,实现程序的精确延时。

例如,在蜂鸣器控制中,可以使用定时器来生成特定频率和持续时间的方波信号,从而产生不同的声音效果。

3. 频率测量应用定时器还可以用于频率测量。

单片机中断、定时器的应用


80C51中断的控制 80C51中断的控制
一,中断允许控制
CPU对中断系统所有中断以及某个中断源的开放和屏 CPU对中断系统所有中断以及某个中断源的开放和屏 蔽是由中断允许寄存器IE控制的 控制的. 蔽是由中断允许寄存器IE控制的.
EX0(IE.0),外部中断0允许位; EX0(IE.0),外部中断0允许位; ET0(IE.1),定时/计数器T0中断允许位; ET0(IE.1),定时/计数器T0中断允许位 中断允许位; EX1(IE.2),外部中断0允许位; EX1(IE.2),外部中断0允许位; ET1(IE.3),定时/计数器T1中断允许位; ET1(IE.3),定时/计数器T1中断允许位 中断允许位; ES(IE.4),串行口中断允许位; ES(IE.4),串行口中断允许位; EA (IE.7), CPU中断允许(总允许)位. (IE.7), CPU中断允许 总允许) 中断允许(
80C51单片机中断处理过程 80C51单片机中断处理过程
3.2.1 中断响应条件和时间
中断响应条件
中断源有中断请求; 中断源有中断请求; 此中断源的中断允许位为1; 此中断源的中断允许位为1 CPU开中断(即EA=1). CPU开中断 开中断( EA=1).
随着计算机技术的应用, 随着计算机技术的应用,人们发现中断技 术不仅解决了快速主机与慢速I/O设备的数 术不仅解决了快速主机与慢速I/O设备的数 据传送问题,而且还具有如下优点: 据传送问题,而且还具有如下优点: 分时操作.CPU可以分时为多个I/O设备 分时操作.CPU可以分时为多个 可以分时为多个I/O设备 服务,提高了计算机的利用率; 服务,提高了计算机的利用率;
2,SCON的中断标志 SCON的中断标志
RI(SCON.0),串行口接收中断标志位.当允 RI(SCON.0),串行口接收中断标志位. ),串行口接收中断标志位

实验五 中断与定时(计数)器实验(Keil)

实验五中断与定时/计数器实验一、实验目的1.了解单片机中断与定时器工作原理,掌握中断与定时器程序结构;2.掌握在µVision环境中调试中断与定时器程序的方法。

二、实验仪器和设备Keil软件;THKSCM-2综合实验装置;三、实验原理及实验内容1.示例及相关设置(1)建立一个文件夹:lx51。

(2)利用菜单File的New选项进入编辑界面,输入下面的源文件,以lx51.asm文件名存盘到lx51文件夹中。

ORG 0000HLJMP MAINORG 0003HMOV P2,ARL ARETIORG 0040HMAIN:MOV SP,#5FHMOV A,#0FEHSETB EASETB EX0SETB IT0SJMP $END(3)在lx51文件夹下建立新工程,以文件名lx51存盘(工程的扩展名系统会自动添加)。

(4)在Project菜单的下拉选项中,单击Opt ions for Target ‘Target1’,在弹出的窗口中要完成一下设置:○1单片机芯片选择A T89C51选择完器件,按“确定”后会弹出一个提示信息框,提示“Copy Startup Code to Project Folder and Add File to Project?”,选择“是”。

○2晶振频率设为11.0592MHz。

○3Output标签下的Create HEX File前小框中要打钩。

○4在Debug标签选择Use Simulator(软件模拟)。

(5)在Project菜单的下拉选项中,单击build Target 选项完成汇编,生成目标文件(.HEX)。

按F5运行程序。

(6)在P3窗口的P3.2位单击鼠标(模拟INT0引脚信号),观察P2窗口变化。

(7)修改程序,使之适合字节数大于8的中断服务情况。

(8)利用单片机最小系统板演示该程序的运行情况。

2.示例及相关设置(1)建立一个文件夹:lx52。

(2)利用菜单File的New选项进入编辑界面,输入下面的源文件,以lx52.asm文件名存盘到lx52文件夹中。

单片机中断系统和定时计数器

单片机中断系统和定时计数器在单片机的世界里,中断系统和定时计数器就像是两个得力的助手,为单片机的高效运行和精确控制发挥着至关重要的作用。

接下来,让我们一起深入了解一下这两个重要的概念。

首先,咱们来聊聊中断系统。

想象一下,单片机正在专心致志地执行着一个任务,突然有个紧急情况发生了,比如外部设备传来了一个重要的数据需要立即处理。

这时候,中断系统就像是一个“紧急警报器”,让单片机暂停当前的任务,迅速去处理这个紧急情况。

处理完之后,再回到原来被中断的地方继续执行之前的任务。

中断系统的好处那可太多了。

它大大提高了单片机的工作效率。

要是没有中断,单片机就得一直按照顺序依次执行任务,可能会错过一些关键的信息或者无法及时响应紧急事件。

有了中断,单片机就能在多个任务之间灵活切换,做到“分身有术”。

中断系统一般由中断源、中断允许控制、中断优先级控制和中断响应等部分组成。

中断源就是那些能引起中断的事件,比如外部中断、定时器中断、串口中断等等。

中断允许控制就像是一道“开关”,决定了是否允许某个中断源发出中断请求。

中断优先级控制则是用来确定当多个中断同时发生时,先处理哪个中断,后处理哪个中断。

再来说说定时计数器。

在很多实际应用中,我们经常需要对时间进行精确的测量和控制,这时候定时计数器就派上用场了。

比如说,我们要控制一个小灯每隔1 秒钟闪烁一次,或者要统计外部脉冲的个数,都可以用定时计数器来实现。

定时计数器的工作原理其实并不复杂。

它就像是一个不断计数的“小闹钟”。

可以设置为定时模式或者计数模式。

在定时模式下,它根据单片机内部的时钟信号进行计数,当计数值达到设定的值时,就会产生一个定时中断。

在计数模式下,它对外部输入的脉冲进行计数,当计数值达到设定值时,也会产生中断。

比如说,我们要实现一个 1 毫秒的定时,假设单片机的时钟频率是12MHz,那么一个机器周期就是 1 微秒。

如果我们要定时 1 毫秒,就需要设置定时计数器的初值,让它经过 1000 个机器周期后产生中断。

中断及定时器实验报告

一、实验目的1. 理解中断和定时器的基本概念及工作原理。

2. 掌握51单片机中断系统和定时器的配置方法。

3. 学会使用中断和定时器实现特定功能,如延时、计数等。

4. 培养动手实践能力和问题解决能力。

二、实验原理中断是计算机系统中的一种机制,允许CPU在执行程序过程中,暂停当前程序,转去执行另一个具有更高优先级的程序。

51单片机具有5个中断源,包括两个外部中断(INT0、INT1)、两个定时器中断(定时器0、定时器1)和一个串行口中断。

定时器是51单片机内部的一种计数器,可以用于产生定时中断或实现定时功能。

51单片机有两个定时器,即定时器0和定时器1。

定时器可以工作在模式0、模式1、模式2和模式3。

三、实验内容及步骤1. 实验内容一:外部中断实验(1)实验目的:掌握外部中断的使用方法,实现按键控制LED灯的亮灭。

(2)实验步骤:- 使用Keil for 8051编译器创建项目。

- 根据电路原理图连接电路。

- 编写程序,配置外部中断,实现按键控制LED灯的亮灭。

2. 实验内容二:定时器中断实验(1)实验目的:掌握定时器中断的使用方法,实现LED灯闪烁。

(2)实验步骤:- 使用Keil for 8051编译器创建项目。

- 根据电路原理图连接电路。

- 编写程序,配置定时器中断,实现LED灯闪烁。

3. 实验内容三:定时器与外部中断结合实验(1)实验目的:掌握定时器与外部中断结合使用的方法,实现按键控制LED灯闪烁频率。

(2)实验步骤:- 使用Keil for 8051编译器创建项目。

- 根据电路原理图连接电路。

- 编写程序,配置定时器中断和外部中断,实现按键控制LED灯闪烁频率。

四、实验结果与分析1. 外部中断实验:成功实现了按键控制LED灯的亮灭。

当按下按键时,LED灯亮;松开按键时,LED灯灭。

2. 定时器中断实验:成功实现了LED灯闪烁。

LED灯每隔一定时间闪烁一次,闪烁频率可调。

3. 定时器与外部中断结合实验:成功实现了按键控制LED灯闪烁频率。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第五章单片机的中断与定时重点及难点:单片机中断与定时的基本概念、单片机的中断系统、单片机的定时器/计数器、单片机外部中断源的扩展。

教学基本要求:1、掌握单片机中断与定时的基本概念;2、掌握单片机的中断源、中断控制、中断响应过程的基本概念及单片机中断系统的功能和使用方法;3、掌握单片机的定时器/计数器的初值计算、工作方式控制寄存器的初始化、程序的设计方法和步骤;4、了解单片机外部中断源扩展的常用方法和步骤。

教学内容§5.1 中断的基本知识一、一般微机的输入/输出方式1.条件传送方式2.查询传送方式3.直接存储器存取(DMA—Direct Memory Access)方式4.中断传送方式二、中断概述(一)中断的概念所谓“中断”,是指计算机在执行某一段程序的过程中,由于计算机系统内、外的某种原因,有必要中止原程序的执行,而去执行相应的处理程序,待处理结束后,再返回来继续执行本中断的原程序的过程。

(二)中断源引起中断的原因,或是能发出中断申请的来源,称为中断源。

(三)中断的分类(1)屏蔽中断(2)非屏蔽中断。

(3)软件中断。

(四)中断的开放与关闭中断的开放与关闭,亦称为开中断和关中断。

这是指CPU中断系统的状态,只有当CPU 处于开中断状态时,才能接受外部的中断申请。

反之,当CPU处于关中断状态时,则不能接受外部的中断申请。

(五)中断的优先级(六)中断处理过程一个完整的中断处理的基本过程应包括:中断请求、中断响应、中断处理和中断返回。

§5.2 MCS-51单片机的中断系统一、中断源(一)外中断(二)定时中断(三)串行中断MCS-51中断系统结构框图二、中断控制(一)定时器控制寄存器(TCON)1.IE0和IE1—外中断请求标志位2.IT0和IT1—外中断请求触发方式控制位IT0(IT1)= 1 脉冲触发方式,后沿负跳有效。

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

此位由软件置“1”或清“0”。

3.TF0和TF1—计数溢出标志位(二)串行口控制寄存器(SCON)1.TI —串行口发送中断请求标志位2.RI —串行口接收中断请求标志位(三)中断允许控制寄存器(IE)l.EA —中断允许总控制位EA = 0 中断总禁止,禁止所有中断。

EA = 1 中断总允许,总允许后中断的禁止或允许由各中断源的中断允许控制位进行设置。

2.EX0和EX1—外部中断允许控制位EX0 (EX1) = 0 禁止外中断。

EX0 (EX1) = 1 允许外中断。

3.ET0和ET1—定时/计数中断允许控制位ET0 (ET1) = 0 禁止定时(或计数)中断。

ET0 (ET1) = 1 允许定时(或计数)中断。

4.ES—串行中断允许控制位ES = 0 禁止串行中断。

ES = 1 允许串行中断。

(四)中断优先级控制寄存器(IP)PX0—外部中断0优先级设定位;PT0—定时中断0优先级设定位;PX1—外部中断1优先级设定位;PT0—定时中断1优先级设定位;PS—串行中断优先级设定位。

为“0”的位优先级为低;为“1”的位优先级为高。

(五)中断优先级控制原则和控制逻辑(1)低优先级中断请求不能打断高优先级的中断服务;但高优先级中断可以中断低优先级的中断服务,从而实现中断嵌套。

(2)如果一个中断请求已被响应,则同级的其他中断服务将被禁止,即同级不能嵌套。

(3)如果同级的多个中断请求同时出现,则按CPU查询次序确定哪个中断请求被响应。

其查询次序为:外部中断0 →定时中断0 →外部中断1 →定时中断1 →串行中断。

(六)中断初始化与中断控制寄存器状态设置对中断的使用是在程序初始化时设置的,如果不包括优先级控制,外中断初始化共有3项内容:中断总允许、外中断允许和中断方式设定。

而定时中断则只有两项内容,没有中断方式控制。

假定要开放外中断0,使用字节操作指令为:MOV IE ,# 81H如使用位操作指令则为:SETB EASETB EX0三、中断响应过程(一)中断采样(二)中断查询(三)中断响应中断响应就是对中断源提出的中断请求的接受,是在中断查询之后进行的。

当查询到有效的中断请求时,紧接着就进行中断响应。

8031/ 8051的中断服务程序入口中断响应是有条件的,并不是查询到的所有中断请求都能被立即响应,当存在下列情况之一时,中断响应被封锁。

(1)CPU正处在为一个同级或高级的中断服务中。

(2)查询中断请求的机器周期不是当前指令的最后一个机器周期。

(3)当前指令是返回指令(RET,RETI)或访问IE、IP的指令。

(四)中断响应时间一般的中断响应时间都是在大于3个机器周期而小于8个机器周期的两种极端情况之间。

(五)中断请求的撤销1.定时中断请求的撤销2.脉冲方式外部中断请求的撤销3.电平方式外部中断请求的撤销4.串行中断软件撤销(六)中断服务流程1.现场保护和现场恢复2.关中断和开中断3.中断处理4.中断返回四、MCS-51单片机的单步工作方式(1)建立单步执行的外部控制电路(2)编写外部中断0的中断服务程序JNB P2.2 ,$ ;0INT=0则“原地踏步”ANL P1 ,# FFH ;0INT=1则“原地踏步”RETI ;返回主程序§5.3MCS-51单片机的定时器/计数器一、定时方法概述1.软件定时2.硬件定时3.可编程定时器定时二、定时器/计数器的定时和计数功能1.计数功能2.定时功能三、定时器/计数器的控制寄存器(一)定时器控制寄存器(TCON)1.TF0和TF1—计数溢出标志位2.TR0和TR1—定时器运行控制位TR0(TR1)= 0 停止定时器/计数器工作TR0(TR1)= 1 启动定时器/计数器工作(二)工作方式控制寄存器(TMOD)GA TE =0 以运行控制位TR启动定时器GA TE = l 以外中断请求信号0INT 或1INT 启动定时器2.C/T —定时方式或计数方式选择位C/T = 0 定时工作方式 C/T = 1 计数工作方式3.M1M0—工作方式选择位 M1M0 = 00 方式0 M1M0 = 01 方式1 M1M0 = 10 方式2 M1M0 = 11 方式3(三)中断允许控制寄存器(IE ) 1.EA — 中断允许总控制位2.ET0和ET1—定时/计数中断允许控制位 ET0(ET1)= 0 禁止定时/计数中断 ET0(ET1)= 1 允许定时/计数中断 四、定时工作方式0(一)电路逻辑结构方式0是13位计数结构的工作方式,其计数器由TH0全部8位和TL0的低5位构成。

TL0的高3位弃之不用。

(二)定时和计数应用在方式0下,当为计数工作方式时,计数值的范围是: 1~8192(213)当为定时工作方式时,定时时间的计算公式为: (213-计数初值)× 晶振周期×12或(213-计数初值)× 机器周期其时间单位与晶振周期或机器周期相同(μs )。

如晶振频率为6 MHz ,则最小定时时间为[213-(213-1)] ×1/6×10—6×l2 = 2×10—6 = 2(μs )最大定时时间为(213- 0 )×1/6×10—6×l2 = 16 384×10—6 = 16 384(μs )[例5-1] 设单片机晶振频率为6MHz ,使用定时器1以方式0产生周期为500μs 的等宽正方波连续脉冲,并由P1.0输出,以查询方式完成。

1.计算计数初值要产生500μs 的等宽正方波脉冲,只需在P1.0端以250μs 为周期交替输出高低电平即可实现,为此定时时间应为250μs 。

使用6MHz 晶振,则一个机器周期为2μs 。

方式0为13位计数结构。

设待求的计数初值为X,则:(213-X)×2×106 = 256×106求解得:X= 8067,二进制数表示为11B,十六进制表示,高8位为:0FCH,低5位为03H。

其中高8位放入TH1,即TH1 = 0FCH;低5位放入TL1,即TL1= 03H。

2.TMOD寄存器初始化为把定时器/计数器1设定为方式0,则M1M0 = 00;为实现定时功能,应使C/ = 0;为实现定时器/计数器1的运行控制,则GA TE = 0。

定时器/计数器0不用,有关位设定为0。

因此TMOD寄存器应初始化为00H。

3.由定时器控制寄存器TCON中的TR1位控制定时的启动和停止TR1 = 1启动,TR1= 0停止。

4.程序设计MOV TMOD ,# 00H ;设置T1为工作方式0MOV TH1 ,# 0FCH ;设置计数初值MOV TL1 ,# 03HMOV IE ,# 00H ;禁止中断LOOP:SETB TR1 ;启动定时JBC TF1 ,LOOPl ;查询计数溢出AJMP LOOPLOOP1:MOV TH1 ,# 0FCH ;重新设置计数初值MOV TL1 ,# 03HCLR TF1 ;计数溢出标志位清“0”CPL P1.0 ;输出取反AJMP LOOP ;重复循环五、定时工作方式1方式1是16位计数结构的工作方式,计数器由TH0全部8位和TL1全部8位构成。

当为计数工作方式时,计数值的范围是1~65536(216)当为定时工作方式时,定时时间的计算公式为(216-计数初值)×晶振周期×12或(216-计数初值)×机器周期其时间单位与晶振周期或机器周期相同(μs)。

[例5-2] 题目同[例5.1],但以中断方式完成。

单片机晶振频率为6MHz,使用定时器1以工作方式1产生周期为500μs的等宽正方波连续脉冲,并由P1.0输出。

1.计算计数初值TH1 = 0FFH TL1 = 83H2.TMOD寄存器初始化TMOD = 10H3.程序设计主程序:MOV TMOD ,# 00H ;设置T1为工作方式0MOV TH1 ,# 0FFH ;设置计数初值MOV TL1 ,# 0A1HSETB EA ;开中断SETB ET1 ;定时器1允许中断LOOP:SETB TR1 ;定时开始HERE:SJMP $ ;等待中断中断服务程序:MOV TH1 ,# 0FFH ;设置计数初值MOV TL1 ,# 0A1HCPL P1.0 ;输出取反RETI ;中断返回六、定时工作方式2方式2是自动重新加载工作方式。

在这种工作方式下,把16位计数器分为两部分,即以TL作计数器,以TH作预置寄存器,初始化时把计数初值分别装入TL和TH中,当计数溢出后,由预置寄存器TH以硬件方法自动给计数器TL重新加载,变软件加载为硬件加载。

[例5-3]使用定时器0以工作方式2产生100μs定时,在P1.0输出周期为200μs的连续正方波脉冲。

相关文档
最新文档