版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
车用单片机原理(含实验与实训)1中断的概念及优点2中断系统的结构单击此处添加标题单击此处添加标题3C51中断服务函数01中断的概念及优点第一节中断的概念及优点
在我们生活中,有许多与单片机系统相似的中断概念,比如你正在教室用电脑写一篇论文,突然有同学给你打电话,手机铃声响了,你首先把论文文件保存起来,然后拿手机接电话,当你正在跟同学电话交谈时,有老师走进教室,你暂停和同学交谈和老师打了个招呼,然后又跟同学继续打电话,电话打完后,你再打开保存好的论文,继续写论文。这就是一个生活中常见的中断现象,即正常的工作过程被某个突发事件(内部的或外部的)打断,发生中断后执行的另一项工作,当中断工作执行完成后,仍然可继续执行原来的工作任务。一、中断系统的概念中断的概念:日常生活中断的例子写论文写论文电话电话第一节中断的概念及优点随机事件发生主程序主程序中断服务子程序CPU
中断是指由于某随机事件的发生,计算机暂停现行程序的运行,转去执行另一程序,以处理发生的事件,处理完毕后又自动返回原来的程序继续运行。将能引起中断的事件称为中断源
CPU现行运行的程序称为主程序处理随机事件的程序称为中断服务子程序单片机中的中断概念第一节中断的概念及优点二、中断系统的优点分时操作
---CPU可以同多个外设“同时”工作实时处理
---CPU及时处理随机事件故障处理
---电源掉电、存储出错、运算溢出中断的优势---利用中断功能,CPU可以和多个外设同时工作。第一节中断的概念及优点中断源:引起单片机产生中断的事件,8051单片机中断系统有5个中断源分别是:一个串行通信中断源、两个外部中断源、两个定时器/计数器中断源,具体见表4-1:表4-1中断源中断源名称中断源触发信号中断向量P3.2引脚输入低电平或下降沿脉冲0003HP3.3引脚输入低电平或下降沿脉冲000BH定时器/计数器T0T0计数到达最大值溢出0013H定时器/计数器TlT1计数到达最大值溢出001BH串口中断TI/RI串行口完成一帧数据的发送或接收后0023H第二节中断系统的结构三、中断源02中断系统的结构一、中断系统控制寄存器:中断系统控制电路由4个专用寄存器组成中断源中断标志位CPUINT0INT1T0T1串口IE0TF0IE1TF1主程序TIRITCON每一个中断源都有相应的中断标志位某一个中断源申请中断,相应中断标志位置1。第二节中断系统的结构(一)TCON控制寄存器TCON
D
7D6D5D4D3D2D1D0
IE1IT1IE0IT0(88H)
IE1(TCON.3):外部中断1(INT1)请求标志位。有效时,由内部硬件使IE1置1,并向CPU请求中断处理。该标志位由内部硬件自动清0。
IT1(TCON.2):外部中断1触发方式控制位。IT1=0,为电平触发方式;IT0=1,下降沿触发方式。
IE0(TCON.1):外部中断0(INT0)中断请求标志位。其操作功能与IE1相同。
IT0(TCON.0):外部中断0的中断触发方式控制位。其操作功能与IT1相同。第二节中断系统的结构SCON寄存器-----串行口控制寄存器SCON
D7D6D5D4D3D2D1D0
TIRI(98H)TI(SCON.1)-----串行发送中断标志RI(SCON.0)-----串行接收中断标志注意:该寄存器可以位寻址第二节中断系统的结构(二)SCON控制寄存器中断允许控制
中断源中断标志位CPUINT0INT1T0T1串口IE0TF0IE1TF1主程序TIRI中断允许EX0ET0EX1ET1ESEAEA----总牛-中断允许位,EA=1开放所有中断,EA=0禁止所有中断。某一个中断源还有相应的中断允许位,1允许相应中断源的中断,0禁止相应中断源中断。第二节中断系统的结构IE
D7D6D5D4D3D2D1D0
EAES
ET1EX1ET0EX0(A8H)例:允许定时器T0中断:EA=1;ET0=1;
或IE=0x82;注意:该寄存器可以位寻址第二节中断系统的结构(三)IE中断允许控制寄存器IP
D7D6D5D4D3D2D1D0
PT2
PSPT1PX1PT0PX0(B8H)例:PT2=1;优先级为高PT2=0;优先级为低
第二节中断系统的结构(四)IP中断允许控制寄存器二、中断优先级控制中断源中断标志位CPUINT0INT1T0T1串口IE0TF0IE1TF1主程序TIRI中断允许EX0ET0EX1ET1ESEA优先控制PX0PT1PT0PX1PS单片机中有两个中断优先级,即高优先级中断和低优先级中断,前者优先权高于后者(在程序中设置,相应位=1,为高优先级)同一忧先级别的中断源按照自然优先级顺序确定犹先级别(硬件形成,无法改变)00101000100000011111第二节中断系统的结构任何一种中断一旦得到响应,与其同级的或者比其低级的中断请求即被禁止。8051的中断优先级可以归纳为以下几条基本原则:(4)如果几个同一优先级的中断源同时向CPU申请中断,CPU将通过内部硬件查询逻辑,按自然优先级顺序确定先响应哪个中断请求。自然优先级由硬件形成,排列如表所示.中断源同级内的中断优先级外部中断0
高级
最低定时/计数器T0溢出中断外部中断1定时/计数器T1溢出中断串行口中断当多个中断源同时发出中断请求时,优先权高的中断能先被响应,按中断源
优先权高低逐次响应的过程称为优先权排队。CPU响应了低级中断请求之后,仍可以响应高级中断的请求。第二节中断系统的结构(一)中断请求
当中断源发出中断请求时,CPU才可能响应它产生中断,不同的中断源发出请求的方式不同。
外部中断源的中断请求信号是或引脚上检测到低电平或负跳变时产生定时器/计数器中断源的中断请求信号是T0/T1计数单元的最高位计满溢出时产生串行口中断源的中断请求信号是串行口在完成一次发送或接收串行数据时产生中断处理过程分为四个阶段:中断请求、中断响应、中断处理和中断返回。第二节中断系统的结构三、中断响应过程(二)中断响应过程
中断响应过程包括保护断点和将程序转向中断服务程序的入口地址。
随机事件发生主程序主程序中断服务子程序CPU中断响应中断响应:在满足CPU的中断响应条件之后,CPU对中断源中断请求予以处理。保护断点地址:把程序转向中断服务程序的
入口地址(通常称矢量地址)
断点地址中断服务程序的入口地址0003H
LJMP
中断返回RETI第二节中断系统的结构
使用时,通常在这些入口地址处存放一条跳转指令,使程序跳转到用户安排的中断服务程序起始地址上去。第二节中断系统的结构(三)中断处理随机事件发生主程序主程序中断服务子程序CPU中断响应断点地址中断服务程序的入口地址0003HLJMP中断返回RETI中断服务程序从入口地址开始执行,直到返回指令RETI为止,这个过程称为中断处理(或中断服务)。中断服务子程序一般包括两部分内容,一是保护和恢复现场,二是处理中断源的请求。第二节中断系统的结构(四)中断返回中断返回是指中断服务完后,单片机返回原来暂停的位置(即断点),继续执行原来的程序。中断返回由专门的中断返回指令RETI来实现。RETI指令功能:把断点地址取出,送回到程序计数器PC中去。另外,它还通知中断系统已完成中断处理,将清除优先级状态触发器。随机事件发生主程序主程序中断服务子程序CPU中断响应中断返回RETI第二节中断系统的结构03C51中断服务函数中断函数定义C51的中断服务程序是一种特殊的程序,其定义如下:
void函数名(void)interruptnusingm{函数体语句;}这里的interrupt和using是为编写C51中断服务程序而引入的关键字,interrupt表示该函数是一个中断服务程序,其后的n是指该中断服务程序对应于哪一个中断源;using用于指定该中断服务程序要使用的工作寄存器组编号,
m的取值范围为0~3。
若不使用关键字using,则编译系统会自动给该服务函数分配寄存器组,并将当前工作寄存器组的8个寄存器压入堆栈。
用户程序中不允许任何程序调用中断服务程序。第三节C51中断服务函数
C51的中断源及其中断编号如下:中断源中断编号外部中断0定时器/计数器0中断外部中断1定时器/计数器1中断串行口中断定时器/计数器2中断012345第三节C51中断服务函数
编写中断函数时,应注意以下几点:(1)中断函数不带任何参数,否则会导致编译出错。(2)中断函数不能有返回值,所以函数类型应为void。(3)中断函数必须由中断源触发而自动调用,不得直接调用,因此也不用提前声明。(4)中断函数要精简,避免因执行时间过长影响其它中断的响应。第三节C51中断服务函数【例1】采用外部中断0和外部中断1控制P1.0和P1.1端口的LED灯,程序代码如下:#include<reg51.h>sbitled1=P1^0;sbitled2=P1^1;voidmain(void){IP=0x05;//外部中断0和1设置为高优先级IT0=1;//外部中断0设置为下降沿触发方式IT1=1;//外部中断1设置为下降沿触发方式EX0=1;//允许外部中断0中断EX1=1;//允许外部中断1中断EA=1;//允许总中断while(1);//等待}voidxin0(void)interrupt0//外部中断0中断响应函数{led1=!led1;}voidxin1(void)interrupt2//外部中断1中断响应函数{led2=!led2;//P1.1口反相}第三节C51中断服务函数【例2】采用定时中断,在程序中每隔50ms产生一次定时中断,然后在中断服务程中重装定时器T0的定时值和溢出值加1,当溢出值为20后在主函数中把P1.0口取反。程序代码如下:#include<reg51.h>#defineucharunsignedcharsbitled1=P1^0;uchar
num;voidT0_time()interrupt1{TH0=0x3c;TL0=0xb0;
num++;}voidmain(void){TMOD=0x01;//定时器T0设为工作方式1TH0=0x3c;TL0=0xb0;//定时器T0初值EA=1;ET0=1;//开总中断,开定时器T0中断TR0=1;//启动定时器T0while(1){if(num==20){num=0;led1=~led1;//P1.0口取反} P2=num;//循环次数值送P2口显示}}第三节C51中断服务函数【例3】在主函数中将INT1设为高优先级,INT0设为低优先级,下降沿触发。主函数执行P1口的流水灯,当有接键被接下时,主程序中断并进入相应的中断服务函数。两个中断服务函数都是流水灯的显示模式,当中断服务函数执行结束后返回主函数,程序代码如下:第三节C51中断服务函数【例3】在主函数中将INT1设为高优先级,INT0设为低优先级,下降沿触发。主函数执行P1口的流水灯,当有接键被接下时,主程序中断并进入相应的中断服务函数。两个中断服务函数都是流水灯的显示模式,当中断服务函数执行结束后返回主函数,程序代码如下:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintucharled[]={0xfe,0xfd,0xfb,0xf7,0xfef,0xdf,0xbf,0x7f};sbitsw1=P3^2;//定义按键sbitsw2=P3^3;voiddelay(){//延时函数
uintj;for(j=0;j<31000;j++);}voidint0()interrupt0using1//INT0中断服务函数{
uchar
i;for(i=0;i<8;i++){P0=led[i];delay();//P0口显示流水灯}P0=0xff;}voidint1()interrupt2using2{//INT1中断服务函数
uchar
i;for(i=0;i<8;i++){P2=led[i];delay();//P2口显示流水灯}P2=0xff;}voidmain(){
uchar
i;IE=0x85;TCON=0x05;PX1=1;//开中断,设置INT1为高优先级while(1){for(i=0;i<8;i++){P1=led[i];delay();//P1口非中断状态时显示流水灯}}}第三节C51中断服务函数【例2】采用串行中断的应用,程序代码如下:#include<reg51.h>#defineuintunsignedintvoidmain(void){uinti;SCON=0x00;//串口工作方式0ES=1;//允许串口中断EA=1;i=0x65;SBUF=i;//数据送SBUF,启动发送while(1);//等待}voidXTXD(void)interrupt4//串口中断函数{P1=0xaa;TI=0;//清发送标志位}第三节C51中断服务函数1.用定时器作外部中断源将定时器T0和T1,以及两外部中断扩展为4个外部中断源。
将定时器T0和T1设定为方式2(自动恢复计数初值),初值均设置为FFH,4个中断源的任务是分别点亮P2口的LED灯(显示不同状态),程序代码如下:#include<reg51.h>voidmain(void){TMOD=0x66;//定时器T0和T1设为计数/方式2TH0=0xff;TL0=0xff;//定时器初值TH1=0xff;TL1=0xff;EA=1;//开总中断ET0=1;TR0=1;//中断允许及启动ET1=1;TR1=1;EX0=1;IT0=1;EX1=1;IT1=1;while(1);}voidxin0()interrupt0{//外部中断0响应函数P2=0x0f;}voidT0_time0()interrupt1{//定时器T0中断响应函数P2=0xf0;}voidxin1()interrupt2{//外部中断1响应函数P2=0xaa;}voidT1_time1()interrupt3{//定时器T1中断响应函数P2=0x66;}第三节C51中断服务函数车用单片机原理(含实验与实训)1定时器/计数器T0和T1结构和工作原理2定时器/计数器控制的相关寄存器单击此处添加标题单击此处添加标题3定时器/计数器的工作方式及应用01定时器/计数器T0和T1结构和工作原理第一节定时器/计数器T0和T1结构和工作原理
对于定时器/计数器来说,不管是独立的定时器芯片还是单片机内的定时器,大都具有以下特点:◆定时器/计数器有多种工作方式,可以是计数方式,也可以是定时方式。◆定时器/计数器的计数值是可变的,计数的最大值也是有限的,这取决于计数器的位数。计数的最大值也就限定了定时时间的最大值。◆在到达设定的定时或计数值时发出中断申请,以便实现定时控制。一、定时器/计数器T0和T1的结构第一节定时器/计数器T0和T1结构和工作原理一、定时器/计数器T0和T1的结构
8051单片机内部定时器/计数器结构原理框图如图5-1所示,定时器/计数器T0和T1是一个16位的计数器,由两个高8位和低8位两个计数器组成。TMOD是定时/计数器的定时工作方式寄存器,其作用是设置定时/计数器的功能和工作方式。TCON是控制寄存器,用于控制T0、T1两个寄存器的启动或停止以及设置溢出标志。第一节定时器/计数器T0和T1结构和工作原理
图5-1定时/计数器结构原理框图第一节定时器/计数器T0和T1结构和工作原理二、定时器/计数器T0和T1的工作原理
定时器/计数器T0和T1实质就是一个加1计数器,只不过作为定时器和计数器时,两者计数脉冲来源不同,定时器的计数信号源是系统内部的时钟振荡器输出频率的12分频,计数器的计数信号源是单片机输入引脚T0(P3.4)或T1(P3.5)外接的脉冲源,计数器对接收到的脉冲进行计数,每检测到一个高电平到低电平负跳变时,计数器就自动加1,当计数器达最大值产生溢出后,硬件将TCON的TF0或者TF1置1作为计数器的溢出中断标志。用作定时器使用时,溢出中断标志表示已经到达定时的时刻到了;用作计数器使用时,溢出中断标志表示计数回零。定时器的工作原理启动与停止控制部分工作方式部分定时计数
TL0TH08位8位TFO
16位定时计数器部分定时器0的逻辑电路结构图
0000第一节定时器/计数器T0和T1结构和工作原理启动与停止控制部分
TL0TH08位8位TFO0000内部机器周期
定时方式
计数方式振荡器/12T0定时器0的逻辑电路结构图
第一节定时器/计数器T0和T1结构和工作原理启动与停止控制部分
TL0TH08位8位TFO0000定时方式
计数方式振荡器/12T0开关信号定时器0的逻辑电路结构图
第一节定时器/计数器T0和T1结构和工作原理
TL0TH08位8位TFO0000定时方式
计数方式振荡器/12T0开关信号定时器0的逻辑电路结构图
控制1A&C>1BGATETR01A&C>1BINT012C/T=0C/T=1外
SETBTR0
定时方式000100020003第一节定时器/计数器T0和T1结构和工作原理02定时器/计数器控制的相关寄存器第二节定时器/计数器控制的相关寄存器一、工作方式寄存器TMOD
定时方式控制寄存器TMOD用于设置定时/计数器的工作方式,字节地址是89H,不可以位寻址,TMOD寄存器的高4位用于控制T1,低4位用于控制T0,两部分的定义完全对称。TMOD寄存器定义格式见表5-1。表5-1
TMOD定时方式控制寄存器
高4位控制T1高4位控制T0门控位定时/计数方式选择工作方式选择门控位定时/计数方式选择工作方式选择GATEM1M0GATEM1M0
(一)门控位GATE
门空位GATE是定时器启动方式选择位。当GATE=0时,只要设置TCON中的TR0或TR1为1,就可以启动定时/计数器工作,当TR0或者TR1等于0时,就可以使定时/计数器停止工作;GATE=1时,只有TR0或TR1为1并且外部中断引脚的输入也为高电平时,才能把定时器/计数器启动,这种方式可以用于测量外部中断引脚输入正脉冲的宽度。第二节定时器/计数器控制的相关寄存器
第二节定时器/计数器控制的相关寄存器C/T*=0,定时器模式,对系统时钟12分频后的脉冲进行计数。C/T*=1,计数器模式,计数器对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲(负跳变)计数。(3)C/T*—计数器模式和定时器模式选择位(三)工作方式设置位M1、M0M1、M0:定时器/计数器工作方式选择位,其值与工作方式对应关系如下表所示。M1M0工作方式方式说明00013位定时器/计数器01116位定时器/计数器102具有自动重装初值功能的8位定时器/计数器113两个8位定时器/计数器(T0)第二节定时器/计数器控制的相关寄存器二、控制寄存器TCON
TCON为定时器/计数器控制寄存器,字节地址为88H,可以位寻址,低4位用于控制外部中断,已在前面第4章中断系统中介绍。高4位用于控制定时/计数器的启动与中断请求。TCON的定义格式见表5-3。
第二节定时器/计数器控制的相关寄存器表5-3
TCON定时器/计数器控制寄存器TCOND7D6D5D4D3D2D1D0
位名称TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H
(一)T1溢出中断请求标志位TF1
当定时器/计数器T1计数溢出后,由硬件自动将TF1置1,并向CPU发出中断请求。当CPU响应该中断后,TF1由硬件自动置0。TF1的状态可由软件程序查询,也可以通过软件置0或1。
(二)T0溢出中断请求标志为TF0
TF0的作用与TF1一致。
(三)定时/计数器T1运行控制位TR1
当GATE=0时,定时/计数器T1仅由TR1控制,TR1=1时启动T1计数,TR1=0,停止T1计数。
当GATE=1时,定时/计数器T1由TR1和共同控制,当TR1=1并且有高电平输入时,启动T1计数,当TR1=1或=0时,停止T1计数。
(四)定时/计数器T0运行控制位TR0
TR0的工作原理与TR1一致。
第二节定时器/计数器控制的相关寄存器03定时器/计数器的工作方式及应用
一、工作方式0
当M1=0、M0=0时,定时器/计数器工作于方式0,如下图所示。当定时器/计数器工作在方式0下,内部是一个13位计数器,TL0的高3位没有使用,由TL0的低5位和TH0的8位组成,当TL0低5位计数满溢出时不向TL0的第6位进位,而是向TH0进位。当13位计满时溢出,TF0标志位由硬件置1,向CPU发出中断请求。13位计数器下最大计数值213=8192(计数器初值为0)。第三节定时器/计数器的工作方式及应用
THx是高8位加法计数器,TLx是低5位加法计数器,TLx的高3位未用。TLx加法计数溢出时向THx进位,THx加法计数溢出时置位TFx,最大计数值为213。可用程序将0~8191(213-1)的某一数送入THx、TLx作为初值。THx、TLx从初值开始加法计数,直至溢出。所以初值不同,定时时间或计数值不同。
必须注意的是:加法计数器THx溢出后,必须用程序重新对THx、TLx设置初值,否则下一次THx、TLx将从0开始重新计数。(重写初值)第三节定时器/计数器的工作方式及应用
如果C/T=1,图中开关S1自动地接到下面,定时器/计数器工作在计数状态,加法计数器对Tx(x=1,2)引脚上的外部脉冲进行计数。计数值由下式确定:式中:N为计数值,x是THx、TLx的初值。x值为8191时计数值最小,其值为1;当x值为0时计数值最大,其值为8192,即计数范围为1~8192。第三节定时器/计数器的工作方式及应用一、工作方式1
当M1=0、M0=1时,定时器/计数器工作于方式1,如下图所示。定时器/计数器工作在方式1时,为一个16位计数器,由低八位TL0寄存器和高八位TH0寄存器组成,当计数器计满溢出时,TF0将被硬件置1。第三节定时器/计数器的工作方式及应用TH0、TL0都是8位加法计数器。在方式1时,计数器的计数值由下式确定:
所以计数范围为1~65536。定时器的定时时间由下式确定:如果fosc=12MHz,则Tcy=1μs,定时范围为1~65536μs。第三节定时器/计数器的工作方式及应用三、工作方式2
当M1=1、M0=0时
时,定时器/计数器工作于方式2下,为自动重装初值的8位定时器/计数器。第三节定时器/计数器的工作方式及应用
在方式2下,TLx作为8位加法计数器使用,THx作为初值寄存器使用,THx、TLx的初值由程序设定。当TLx
计数溢出时,不仅置为TFx,而且自动发出重装信号,使三态门打开,将THx中的初值自动送至TLx,并从初值开始重新计数。重装初值后,THx中的值保持不变,除非用程序重新给THx赋值。第三节定时器/计数器的工作方式及应用
在方式2时,计数器的计数值由下式确定:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年菏泽生物医药职业学院公开招聘工作人员(120人)建设笔试模拟试题及答案解析
- 2026北京大学心理与认知科学学院招聘1名劳动合同制工作人员建设笔试参考题库及答案解析
- 2025年注册岩土工程师之《岩土基础知识》考前冲刺模拟题库附答案详解(模拟题)
- 2026崂山国家实验室海洋战略研究中心研究人员招聘建设考试参考题库及答案解析
- 招5人!黄南藏族自治州藏医院招聘建设笔试备考试题及答案解析
- 2026广西南宁市良庆区人民检察院招聘工作人员1人建设笔试备考题库及答案解析
- 2026上半年黑龙江中医药大学附属第二医院招聘3人建设笔试备考试题及答案解析
- 高中生用X射线衍射法分析不同国家湖盐晶体结构特征的课题报告教学研究课题报告
- 2026年保密岗位教育试题库及参考答案详解(轻巧夺冠)
- 未来五年塑料桌椅市场需求变化趋势与商业创新机遇分析研究报告
- 非政府采购项目内控制度
- 2025年中国大圆柱电池行业发展白皮书
- 【学习教育】建章立制:卫生院领导干部任期稳定制度
- 2026国家卫生健康委妇幼健康中心招聘3人笔试模拟试题及答案解析
- 2026年宁夏财经职业技术学院单招职业技能测试题库及参考答案详解1套
- 2026届高三历史复习策略与核心考点精讲
- 科研管理信息系统使用手册-医院后台管理
- 软件开发项目管理与实施规范(标准版)
- 中兴新云行测题库
- 地质灾害预测与大数据技术
- 《纸的前世今生》课件
评论
0/150
提交评论