单片机中断与计时计数器

合集下载

单片机实验-外部中断、计数器定时器

单片机实验-外部中断、计数器定时器

1)用单次脉冲申请中断INT0,在中断处理程序中对输出信号进行反转。

ORG 0000HLJMP STARTORG 0003HLJMP INT0START:CLR P1.0MOV TCON, #01HMOV IE, #81HLJMP $INT0:PUSH PSWCPL P1.0POP PSWRETIEND结果:按一下单脉冲小灯亮,再按一下,小灯灭接线:INT0接单脉冲P1.0接个小灯2)用单次脉冲申请中断INT1,在中断处理程序中实现8个小灯左移点亮1次。

ORG 0000HLJMP STARTORG 0013HLJMP INT1START:MOV TCON,#04HMOV IE,#84HCLR PX1MOV A,#01HSJMP $INT1:MOV R1,#8LOOP:MOV P1,ALCALL DELAYRL ADJNZ R1,LOOPRETIDELAY:MOV R6,#200DELAY1:MOV R7,#125DELAY2:DJNZ R7,DELAY2DJNZ R6,DELAY1RETEND结果:按一下单脉冲,8个小灯左移点亮一次接线:INT1接单脉冲P1口接8个小灯3)将8051计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行单脉冲计数,并将其数值按二进制在P1口驱动LED灯上显示出来。

ORG 0000HSTART:MOV TMOD,#05HMOV TH0,#0MOV TL0,#0SETB TR0LOOP:MOV P1,TL0LJMP LOOPEND结果:P1口与四个小灯相连,按单脉冲的次数在四个小灯上显示接线:(P3.4)T0接单脉冲P1.0到P1.4接4个小灯4)用CPU内部定时器T0中断方式计时,实现每1秒钟输出状态发生一次反转。

ORG 0000HLJMP STARTORG 000BHLJMP INTSTART: MOV TMOD,#01HMOV B,#0AH;即10,设循环次数10次。

单片机定时器 计数器

单片机定时器 计数器

单片机定时器计数器单片机定时器/计数器在单片机的世界里,定时器/计数器就像是一个精准的小管家,默默地为系统的各种操作提供着精确的时间控制和计数服务。

无论是在简单的电子时钟、还是复杂的通信系统中,都能看到它们忙碌的身影。

那什么是单片机的定时器/计数器呢?简单来说,定时器就是能够按照设定的时间间隔产生中断或者触发事件的模块;而计数器则是用于对外部脉冲或者内部事件进行计数的功能单元。

我们先来看看定时器的工作原理。

想象一下,单片机内部有一个像小闹钟一样的东西,我们可以给它设定一个时间值,比如说 1 毫秒。

当单片机开始工作后,这个小闹钟就会以一个固定的频率开始倒计时,当倒计时结束,也就是 1 毫秒到了,它就会发出一个信号,告诉单片机“时间到啦”!这个信号可以用来触发各种操作,比如更新显示、读取传感器数据等等。

定时器的核心在于它的时钟源。

就好比小闹钟的动力来源,时钟源决定了定时器倒计时的速度。

常见的时钟源有单片机的内部时钟和外部时钟。

内部时钟一般比较稳定,但精度可能会受到一些限制;而外部时钟则可以提供更高的精度,但需要额外的电路支持。

再来说说计数器。

计数器就像是一个勤劳的小会计,不停地数着外面进来的“豆子”。

这些“豆子”可以是外部的脉冲信号,也可以是单片机内部产生的事件。

比如,我们可以用计数器来统计电机旋转的圈数,或者计算按键被按下的次数。

计数器的工作方式也有多种。

可以是向上计数,就是从 0 开始,不断增加,直到达到设定的最大值;也可以是向下计数,从设定的最大值开始,逐渐减少到 0。

还有一种更灵活的方式是双向计数,根据需要在向上和向下之间切换。

那么,定时器/计数器在实际应用中有哪些用处呢?比如说,在一个智能温度控制系统中,我们可以用定时器每隔一段时间读取一次温度传感器的数据,然后根据温度的变化来控制加热或者制冷设备的工作。

而计数器则可以用来统计设备运行的次数,以便进行维护和保养。

在电子时钟的设计中,定时器更是发挥了关键作用。

单片机定时器中断原理

单片机定时器中断原理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

单片机计时原理

单片机计时原理

单片机计时原理单片机计时原理是通过定时器/计数器模块实现的。

定时器/计数器是单片机的一个重要功能模块,通常由一个计数器和一个或多个控制寄存器组成。

在单片机中,计时器/计数器可以用来进行定时操作、延时操作、计数操作等。

其工作原理是通过定时器/计数器模块内部的计数器不断累加,当计数值达到预设的目标值时,触发相应的中断或事件。

具体来说,单片机的定时器/计数器模块通常包含以下部分:1. 一个内部计数器,用于累计时钟信号的脉冲数。

计数器的位数决定了其能够表示的最大计数值。

2. 控制寄存器,用于设置计数器的工作模式、计数方向、计数初始值等参数。

通过写入控制寄存器,可以选择定时模式还是计数模式,确定计数器的工作频率等。

3. 时钟源选择电路,可以选择外部时钟信号作为计数器的输入,也可以选择内部时钟源(如时钟发生器)作为计数器的输入。

4. 中断控制电路,用于检测计数器达到预设值时的中断请求,并向中断控制器发送中断信号。

5. 输出控制电路,可以将计数器的输出信号用作其他模块的触发信号,如驱动LED数码管、PWM输出等。

在使用单片机计时器/计数器进行计时操作时,通常需要进行以下步骤:1. 初始化:设置计数器的工作模式、计数方向、计数初始值等参数,并开启计时器。

2. 启动计数:当需要开始计时时,可以通过将计数器清零或设置一个初始值来启动计数。

3. 计时过程:计数器开始不断累加,当计数值达到预设的目标值时,触发中断或事件。

4. 处理中断或事件:当计数器触发中断或事件时,单片机会根据中断服务程序进行相应的处理操作。

5. 计时结束:计时完成后,可以停止计数器并记录计时结果。

通过单片机的定时器/计数器模块,可以实现高精度的计时操作,广泛应用于各种计时、测量、延时控制等场景。

51单片机C语言程序定时-计数器 中断

51单片机C语言程序定时-计数器 中断

51单片机C语言程序定时/计数器中断程序一利用定时/计数器T0从P1.0输出周期为1s的方波,让发光二极管以1HZ闪烁,#include<reg52.h> //52单片机头文件#include <intrins.h> //包含有左右循环移位子函数的库#define uint unsigned int //宏定义#define uchar unsigned char //宏定义sbit P1_0=P1^0;uchar tt;void main() //主函数{TMOD=0x01;//设置定时器0为工作方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;//开总中断ET0=1;//开定时器0中断TR0=1;//启动定时器0while(1);//等待中断产生}void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt++;if(tt==20){tt=0;P1_0=~P1_0;}}程序二利用定时/计数器T1产生定时时钟,由P1口控制8个发光二极管,使8个指示灯依次一个一个闪动,闪动频率为10次/秒(8个灯依次亮一遍为一个周期),循环。

#include<reg52.h> //52单片机头文件#include <intrins.h> //包含有左右循环移位子函数的库#define uint unsigned int //宏定义#define uchar unsigned char //宏定义sbit P1_0=P1^0;uchar tt,a;void main() //主函数{TMOD=0x01;//设置定时器0为工作方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;//开总中断ET0=1;//开定时器0中断TR0=1;//启动定时器0a=0xfe;while(1);//等待中断产生}void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt++;if(tt==2){tt=0;P1=a;a=_crol_(a,1);}}程序三同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔2s依次输出1,10,50,100,200,400,800,1k(hz)的方波#include<reg52.h> //52单片机头文件#include <intrins.h> //包含有左右循环移位子函数的库#define uint unsigned int //宏定义#define uchar unsigned char //宏定义sbit beep=P2^3;uchar tt;uint fre,flag;void main() //主函数{fre=50000;beep=0;TMOD=0x11;//设置定时器0,定时器1为工作方式1TH0=(65536-fre)/256;TL0=(65536-fre)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;//开总中断ET0=1;//开定时器0中断ET1=1;TR1=1;TR0=1;//启动定时器0while(1);//等待中断产生}void timer0() interrupt 1 //定时器0中断{TR0=0; //进中断后先把定时器0中断关闭,防止内部程序过多而造成中断丢失TH0=(65536-fre)/256;TL0=(65536-fre)%256;tt++;if(flag<40) //以下几个if分别用来选取不同的频率 if(tt==10){tt=0;fre=50000;beep=~beep;}if(flag>=40&&flag<80){tt=0;fre=50000;beep=~beep;}if(flag>=80&&flag<120){tt=0;fre=10000;beep=~beep;}if(flag>=120&&flag<160){tt=0;fre=5000;beep=~beep;}if(flag>=160&&flag<200){tt=0;fre=2500;beep=~beep;}if(flag>=200&&flag<240){tt=0;fre=1250;beep=~beep;}if(flag>=240&&flag<280){tt=0;fre=625;beep=~beep;}if(flag>=280&&flag<320){tt=0;fre=312;beep=~beep;}if(flag>=320&&flag<360){tt=0;fre=156;beep=~beep;}TR0=1;}void timer1() interrupt 3 //定时器1中断用来产生2秒时间定时{TH1=(65536-50000)/256;TL1=(65536-50000)%256;flag++;if(flag==360){flag=0;fre=50000;}}程序四用定时器以间隔500MS在6位数码管上依次显示0、1、2、3....C、D、E、F,重复。

c51单片机溢出中断程序

c51单片机溢出中断程序C51单片机溢出中断程序引言:C51单片机是一种常用的8位单片机,具有强大的功能和广泛的应用领域。

其中,溢出中断是C51单片机中的一种重要中断方式,可以实现定时功能。

本文将详细介绍C51单片机中溢出中断的原理和实现方法。

一、溢出中断的原理溢出中断是基于计时器/计数器的工作原理实现的。

C51单片机中的计时器/计数器有一个预设的计数值,当计数器计数达到预设值时,会产生溢出,同时触发中断。

溢出中断可以用来实现定时功能,例如定时器中断、周期性任务的执行等。

二、溢出中断的实现步骤1. 初始化计时器/计数器:首先,需要对计时器/计数器进行初始化。

通过设置计时器的工作模式、计数值等参数,来满足具体的定时要求。

2. 开启中断允许:在使能中断之前,需要将中断允许位设置为1,以允许中断的产生。

这样,当计数器溢出时,才能触发中断。

3. 编写中断服务函数:中断服务函数是中断发生时自动执行的函数。

在溢出中断发生时,单片机会自动跳转到中断服务函数的入口处,并执行相应的代码。

因此,需要编写中断服务函数来处理中断产生时的任务。

4. 启动计时器/计数器:通过启动计时器/计数器,开始计时器的工作。

计时器开始计数后,当计数器达到预设值时,会触发溢出中断,执行中断服务函数。

5. 主函数中添加主要代码:在主函数中,需要添加一些主要的代码来实现所需的功能。

这些代码可以包括计时器的初始化、中断的使能、中断服务函数的编写等。

三、示例代码下面是一个简单的C语言示例代码,用来实现C51单片机中的溢出中断功能。

```c#include <reg51.h>// 定义中断服务函数void timer_interrupt() interrupt 1{// 中断服务函数的代码// 在这里写入中断发生时需要执行的任务}// 主函数void main(){// 初始化计时器/计数器// 设置计数值、工作模式等参数// 开启中断允许EA = 1;// 启动计时器/计数器// 计时器开始计数// 主循环while(1){// 主函数中的其他代码// 在这里写入主要的功能代码}}```四、总结通过溢出中断的实现,C51单片机可以实现定时功能,提高系统的稳定性和可靠性。

单片机的中断机制及应用场景分析

单片机的中断机制及应用场景分析中断是指在程序运行过程中,当某个事件发生时,会中断当前程序的执行,转而去处理这个事件,待事件处理完成后再返回原来的程序继续执行。

在单片机中,中断机制是一种重要的处理方式,能够提高系统的响应速度和处理能力。

一、中断机制的基本原理单片机中断机制的基本原理是通过外部触发或内部事件引发中断,进而停止正在执行的程序,转入中断服务程序进行处理。

中断服务程序是预先定义好的,用来处理特定中断事件的程序。

当事件发生时,中断控制器将中断请求信号发送给中央处理器(CPU),CPU响应中断请求,暂停当前运行的程序,保存相关寄存器的值,并跳转到中断服务程序的入口点开始执行。

中断服务程序的执行过程中,会根据具体的需求进行相应的处理,比如读取输入端口数据、进行数据处理、发送输出信号等。

处理完成后,恢复之前保存的寄存器值,并返回到中断发生处,将执行权还给原来的程序继续执行。

二、中断的分类根据触发中断的方式,中断可以分为外部中断和内部中断两种。

1. 外部中断外部中断是通过外部引脚的电平变化触发的中断,比如按键输入、外部设备接口的数据传输完成等。

单片机通常配置了专门的中断引脚,当引脚的电平变化时,会产生外部中断请求,中断控制器便会将该信号发送给CPU。

2. 内部中断内部中断是由单片机内部产生的中断信号,通常与特定的事件相关。

比如定时器中断、串口通信中断、模数转换完成中断等。

这些中断通常是由硬件模块生成的,当满足特定条件时,会触发相应的中断请求,中断控制器再将该信号发送给CPU。

三、应用场景分析中断机制广泛应用于单片机系统中,以下是一些常见的应用场景。

1. 外部输入处理在单片机系统中,经常需要处理外部输入信号,比如按键输入、传感器信号等。

通过配置外部中断引脚,当输入信号发生变化时,引发外部中断,单片机会立即停止当前运行的程序,转入中断服务程序进行处理。

这种方式可以有效地处理实时性要求较高的外部输入信号。

单片机定时器计数器工作原理

单片机定时器计数器工作原理单片机定时器计数器是单片机中非常重要的一个模块,它通常用于实现各种定时和计数功能。

通过定时器计数器,单片机能够精准地进行定时操作,实现定时中断、计数、脉冲生成等功能。

本文将详细介绍单片机定时器计数器的工作原理。

1. 定时器计数器的功能单片机定时器计数器通常由若干寄存器和控制逻辑组成,可以实现以下几种功能:- 定时功能:通过设置计数器的初始值和工作模式,可以实现一定时间的定时功能,单片机能够在计时结束时触发中断或产生输出信号。

- 计数功能:可以实现对外部信号的计数功能,用于测量脉冲个数、频率等。

也可以用于实现脉冲输出、PWM等功能。

- 脉冲发生功能:可以在一定条件下控制定时器输出脉冲,用于控制外部器件的工作。

2. 定时器计数器的工作原理定时器计数器的工作原理可以分为初始化、计数及中断处理几个基本环节。

(1)初始化:在使用定时器前,需要对定时器计数器进行初始化设置。

主要包括选择工作模式、设置计数器的初始值、开启中断等。

不同的单片机厂商提供了不同的定时器初始化方式和寄存器设置方式,通常需要查阅相关的单片机手册来进行设置。

(2)计数:初始化完成后,定时器开始进行计数工作。

根据不同的工作模式,定时器可以以不同的频率进行计数。

通常采用的计数源是内部时钟频率,也可以选择外部时钟源。

通过对计数器的频率设置和初始值的设定,可以实现不同的定时功能。

(3)中断处理:在定时器计数完成后,可以触发中断来通知单片机进行相应的处理。

通过中断服务程序,可以定时执行一些任务,或者控制一些外部设备。

中断服务程序的编写需要根据具体的单片机和编程语言来进行相应的设置。

3. 定时器计数器的应用定时器计数器广泛应用于各种嵌入式系统中,最常见的应用包括定时中断、PWM输出、脉冲计数、定时控制等。

可以利用定时器计数器实现LED呼吸灯效果、马达控制、红外遥控编码等功能。

在工业自动化、通信设备、电子仪器等领域也有着广泛的应用。

单片机实验3 中断、定时器计数器实验

西南科技大学实验报告课程名称:单片机原理及应用A实验名称:中断、定时器/计数器实验姓名:学号:班级:生医1401指导教师:雷华军西南科技大学信息工程学院制实验题目数码管动态扫描显示驱动、键盘动态扫描驱动一、实验目的1、熟练巩固单片机开发环境KEIL界面的相关操作和PROTUES仿真软件的操作,会使用HEX文件进行单片机的仿真。

2、了解定时器的原理和四种工作方式的使用方法,学习定时器的相关应用,包括产生信号和计数,利用定时器进行延时等。

3、进一步掌握熟练单个数码管以及多位数码管的显示原理,学会将0~1000的数字进行显示。

4、掌握利用单片机产生矩形方脉冲的相关原理。

二、实验原理1、定时器结构和原理图①上图①为定时器T0、T1的结构,其中振荡器经12分频后作为定时器的时钟脉冲,T为外部计数脉冲输入端,通过开关K1选择。

反相器,或门,与门共同构成启/停控制信号。

TH 和TL为加1计数器,TF为中断标志。

每接收到一个脉冲,加1计数器自动加1,当计数器中的数被加为0时产生溢出标志,TF将被置1。

计数器工作方式的选择和功能的实现需要配置相应的寄存器TMOD和TCON。

2、定时器工作方式定时器共有四种工作方式分别为方式0——方式3。

方式0:13位计数器,最大计数值为213个脉冲。

方式1:16位计数器,最大计数值为216个脉冲。

方式2:8位自动重装计数器。

该方式下,TL进行计数工作,TH用于存放计数初值,当产生溢出中断请求时会自动将TH中的初值重新装入TL,以使计数器继续工作。

方式3:仅限于T0计数器,在方式3下,T0计数器被分成两个独立的8为计数器TL0和TH0。

3、定时器间隔1ms产生一个脉冲利用单片机1 P3.0口进行脉冲的输出,通过定时器进行端口定时控制,实现每1ms高低电平变换。

就可以实现一个占空比为50%的矩形脉冲输出。

对于定时器的定时功能实现,需要进行定时器模式选择,定时器初值设定。

4、利用中断进行脉冲的计数将单片机1 P3.0口输出的脉冲连接到单片机2的中断INT0口P3.2,通过脉冲的高低电平变换触发中断0,进行脉冲个数的计数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IT0/IT1:外部中断请求的触发方式选择位:
=0:在INT0/INT1端申请中断的信号低电平有效;
=1:在INT0/INT1端申请中断的信号负跳变有效.
串行控制寄存器SCON
TCON 位名称 位地址
功能
D7 D6 D5 —— — —— —
—— —
D4 D3 D2 ——— ———
———
D1 TI 99H 串行发送 中断标志
位地址 AFH — — ACH ABH AAH A9H A8H
中断源 CPU — — 串行口 T1
T0
① EA —— CPU中断允许控制位(总开关) EA=1,CPU开中; EA=0,CPU关中,且屏蔽所有5个中断源。
② EX0 —— 外中断INT0中断允许控制位 EX0=1,INT0开中;EX0=0,INT0关中。
⒉ 中断控制寄存器
80C51单片机中涉及中断控制的有3个方面4个 特殊功能寄存器:
① 中断请求:定时和外中断控制寄存器TCON; 串行控制寄存器SCON;
② 中断允许控制寄存器IE; ③ 中断优先级控制寄存器IP。
⑴ 中断请求控制寄存器
INT0、INT1、T0、T1中断请求标志放在TCON中 串行中断请求标志放在SCON中。
IE D7 D6 D5 D4 D3 D2 D1 D0
位名称 — — — PS PT1 PX1 PT0 PX0
位地址 — — — BCH BBH BAH B9H B8H
中断源 — — — 串行口 T1 INT1 T0 INT0
① PX0 :INT0中断优先级控制位。PX0=1,为高优先级; PX0=0,为低优先级;
TCON位功能:
① TF1 —— T1溢出中断请求标志 T1计数溢出后,TF1=1
② TF0 —— T0溢出中断请求标志 T0计数溢出后,TF0=1
TF0/TF1:定时器溢出中断申请标志位: =0:定时器未溢出; =1:定时器溢出申请中断,进中断后自动清零。
③ IE1 —— 外中断中断请求标志 当P3.3引脚信号有效时,IE1=1
TCON的结构、位名称、位地址和功能如下:
TCON D7 D6 D5 D4 D3 D2 D1 D0
位名称 TF1 — TF0 — IE1 IT1 IE0 IT0
位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H
T1
T0
功能 中断 — 中断 — 中断 触发 中断 触发
标志
标志
标志 方式 标志 方式
D0 RI 98H 串行接收 中断标志
① TI —— 串行口发送中断请求标志 ② RI —— 串行口接收中断请求标志
⑵ 中断允许控制寄存器IE
80C51对中断源的开放或关闭由中断允许控 制寄存器IE控制。
IE的结构、位名称和位地址如下:
IE D7 D6 D5 D4 D3 D2 D1 D0
位名称 EA — —பைடு நூலகம்ES ET1 EX1 ET0 EX0
② PX1 :INT1中断优先级控制位。控制方法同上。 ③ PT0 :T0中断优先级控制位。控制方法同上。 ④ PT1 :T1中断优先级控制位。控制方法同上。 ⑤ PS :串行口中断优先级控制位。控制方法同上。
5.1.2 中断源和中断控制寄存器
⒈ 中断源
中断源是指能发出中断请求,引起中断的 装置或事件。
80C51单片机的中断源共有5个,其中2个 为外部中断源,3个为内部中断源:
⑴ INT0:外部中断0,中断请求信号由P3.2输入。 ⑵ INT1:外部中断1,中断请求信号由P3.3输入。 ⑶ T0:定时/计数器0溢出中断,对外部脉冲计数由P3.4输入。 ⑷ T1:定时/计数器1溢出中断,对外部脉冲计数由P3.5输入。 ⑸ 串行中断:包括串行接收中断RI和串行发送中断TI。
③ EX1 —— 外中断INT1中断允许控制位 EX1=1,INT1开中;EX1=0,INT1关中。
④ ET0 —— 定时/计数器T0中断允许控制位 ET0=1,T0开中;ET0=0,T0关中。
⑤ ET1 —— 定时/计数器T1中断允许控制位 ET1=1,T1开中;ET1=0,T1关中。
⑥ ES —— 串行口中断(包括串发、串收)允许控制位 ES=1,串行口开中;ES=0,串行口关中。
位名称 EA — — ES ET1 EX1 ET0 EX0
位地址 AFH — — ACH ABH AAH A9H A8H
中断源 CPU — — 串行口 T1
T0
中断允许控制寄存器IE
⑶ 中断优先级控制寄存器IP
80C51有5个中断源,划分为2个中断优先级: 高优先级和低优先级。
IP的结构、位名称和位地址如下:
④ IE0 —— 外中断中断请求标志 当P3.2引脚信号有效时,IE0=1
IE0/IE1:外部中断申请标志位: =0:没有外部中断申请; =1:有外部中断申请。
⑤ IT1 —— 外中断触发方式控制位 IT1=1,边沿触发方式; IT1=0,电平触发方式。
⑥ IT0 —— 外中断触发方式控制位 其意义和功能与IT1相似。
说明: 80C51对中断实行两级控制,总控制位是EA, 每一中断源还有各自的控制位。首先要EA=1,其 次还要自身的控制位置“1”。
例如:要使INT0开中(其余关中),可执行下列指令: MOV IE,#1000000lB ; 或者: SETB EA ; SETB EX0 ;
IE D7 D6 D5 D4 D3 D2 D1 D0
第5章 中断系统和定时/计数器
本章要点:
中断的基本概念 80C51中断源 中断控制寄存器 中断处理过程 中断优先控制和中断嵌套 中断系统的应用 80C51定时/计数器 定时/计数器控制寄存器 定时/计数器工作方式 定时/计数器的应用
§5-1 80C51中断系统
5.1.1 中断概述
⒈ 什么叫中断?
CPU暂时中止其正在执行的程序,转去执行请求中断 的那个外设或事件的服务程序,等处理完毕后再返回执 行原来中止的程序, 叫做中断。
⒉ 为什么要设置中断?
⑴ 提高CPU工作效率 ⑵ 具有实时处理功能 ⑶ 具有故障处理功能 ⑷ 实现分时操作
中断功能强弱是计算机性能优劣 的重要标志
中断涉及的几个环节
①中断源 ②中断申请 ③开放中断 ④保护现场 ⑤中断服务 ⑥恢复现场 ⑦中断返回
CPU识别中断申请的依据:
CPU 在每个机器周期的S5P2期间,会自动 查询各个中断申请标志位,若查到某标志位被 置位,将启动中断机制。
相关文档
最新文档