收藏 分享(赏)

单片机原理第4章.ppt

上传人:dreamzhangning 文档编号:3321709 上传时间:2018-10-13 格式:PPT 页数:129 大小:1.74MB
下载 相关 举报
单片机原理第4章.ppt_第1页
第1页 / 共129页
单片机原理第4章.ppt_第2页
第2页 / 共129页
单片机原理第4章.ppt_第3页
第3页 / 共129页
单片机原理第4章.ppt_第4页
第4页 / 共129页
单片机原理第4章.ppt_第5页
第5页 / 共129页
点击查看更多>>
资源描述

1、吴定允 ,第4章 单片机内部功能介绍,4.1 单片机定时/计数的功能,第4章 单片机内部功能介绍,4.1.1 定时器计数器的结构与工作原理,1定时器的内部结构单片机内部设有三个16位可编程的定时器计数器,简称定时器0、定时器1和定时器2,分别用T0、T1、T2表示。他们的工作方式、定时时间、量程、启动方式等均可以通过程序来设置和改变,T2除作定时计数外,还有一些特殊的用途。,下一节,吴定允 ,第4章 单片机内部功能介绍,单片机内部定时器的逻辑结构见他由四个特殊功能寄存器TCON、TMOD、T2CON、T2MOD及T0、T1、T2组成。其中TMOD与T2MOD为模式控制寄存器,主要用来设置定时器

2、计数器的操作模式;TCON与T2CON为控制寄存器,主要用来控制定时器的启动与停止。三个16位的定时器T0、T1、T2均可以分成2个独立的8位计数器即TH0、TL0、TH1、TL1,TH2、TL2用于存定时或计数的初值。他们是一个加1的计数器。,图4-1,吴定允 ,第4章 单片机内部功能介绍,2定时器的工作原理两种工作方式:定时和计数工作方式。T0、T1由TMOD的D6位和D2位选择,其中D6位选择T1,D2位选择T0的工作方式。(1)定时方式:TMOD的D6或D2=0;T2CON的D1=0 T0、T1、T2定时方式时,计数脉冲输入信号是由内部时钟提供的,每一个机器周期使计数器的值加1。而每个

3、机器周期等于12个振荡周期,故计数频率为振荡器频率的112,fcont=fosc112 。 单片机的定时器用于定时,其定时的时间由计数初值和选择的计数器的长度(如8位、13位或16位)来确定。,吴定允 ,第4章 单片机内部功能介绍,(2)计数工作方式时:TMOD的D6或D2=1;T2CON的D1=1T0、T1、T2工作在计数方式时,计数脉冲来自相应的外部输入引脚T0、T1或T2(P1.0),用于对外部事件进行计数。当外入信号产生由1至0的跳变时,计数器的值加1。计数器在每个机器周期的S5P2期间,对外部脉冲输入进行一次采样。由于确认一次由1至0的下跳变要花2个机器周期,24个振荡器周期,故最高

4、计数频率为fcont=fosc124。外部计数脉冲的高电平和低电平保持时间均要求在一个机器周期以上。,吴定允 ,第4章 单片机内部功能介绍,4.1.2 T0和T1定时/计数器的控制,1. 模式控制寄存器TMODTMOD是一个8位的专用寄存器,用于控制T1和T0的操作模式及工作方式,其各位的定义如下:,吴定允 ,第4章 单片机内部功能介绍,D0D3用于定义T0;D4D7用于定义T1;GATE:门控位,用来控制定时器启动操作方式; 当GATE=0时,定时器只由软件控制TR0或TR1位来控制启停。Tri=1,定时器启动; Tri=0,停止工作(软启动)。当GATE=1时,启动要由外部中断引脚和TRi

5、位共同控制。只有当外部中断引脚为高,同时TR0或TR1置1才启动(硬启动) 。C/T:功能选择位。当C/T=0时设置为定时工作方式;计数脉冲由内部提供,计数周期等于机器周期。当=1时设置为计数工作方式,计数脉冲为外部引脚T0或T1引入的外部脉冲信号。,吴定允 ,第4章 单片机内部功能介绍,M1,M0:T0和T1操作模式控制位,对应于4种操作模式。M1 M0 操作模式 功能简述0 0 模式0 13位计数器,只用TLi低5位和THi的8位0 1 模式1 16位计数器1 0 模式2 8位自动重装计数器, TLi 加1 计数,THi的值不变, TLi溢出时,THi中的值自动装入TLi中。 1 1 模式

6、3 T0分成2个独立的8位计数器,T1停止计数TMOD模式控制寄存器不能进行位寻址,只能用字节传送指令(MOV)设置定时器的工作方式及操作模式。系统复位时TMOD所有位均为0。,吴定允 ,第4章 单片机内部功能介绍,2. 控制寄存器TCON控制定时器的启、停及溢出标志和外部中断触发方式等。,位地址,TF1和TF0:分别为定时器1和定进器0溢出标志。TR1和TR0:为定时器1和定时器0的启动控制位。IE1和IE0:为外部中断1 和外部中断0的中断请求标志位。IT1和IT0:为外部中断1和外部中断0的触发方式选择位。TCON中低4位是与外部中断有关的位,高4位为定时器控制位。,吴定允 ,第4章 单

7、片机内部功能介绍,4.1.3 T2定时/计数器的控制,52及89系列机中新增了T2,两个特殊功能寄存器T2CON、T2MOD用于控制他的工作方式、操作模式,启停、溢出等。 1. T2模式控制寄存器-T2MOD,DCEN:向下计数使能位,DCEN=0,T2默认为向上(加法)计数;DCEN=1,T2可通过P1.1位确定向上或向下计数。T2OE:定时器2输出使能位,即可编程时钟输出。,吴定允 ,第4章 单片机内部功能介绍,2. T2控制寄存器T2CON,D7位为TF2:定时器2溢出标志。D6位为EXF2:T2的外部标志。D5位为RCLK:接收时钟。D4位为TCLK:发送时钟标志。D3位为EXEN2:

8、T2的外部使能标志。D2位为TR2:T2的启动/停止控制位。D1位为C/T2:T2定时或计数方式选择。 D0位为CP/RL2:捕获/重装标志。,吴定允 ,第4章 单片机内部功能介绍,3. 定时器2的定时/计数工作方式(1) T2作定时器用时(T2CON的D1位=0)当T2作为定时器使用时,即为对内部时钟进行计数,C/T2=0,计数脉冲为fosc/12,仅当定时器溢出时进行捕获和重装。当由外部控制进行计数时,C/T2=0计数脉冲为fosc/12,待定时/计数器溢出,同时T2EX(P1.1)发生电平负跳变时才产生捕获和重装(但定时器2用于波特率发生器模式除外)。T2作定时使用时,不同的工作模式下T

9、2CON的值如所示。,表4-1,吴定允 ,第4章 单片机内部功能介绍,(2) T2作计数器用时(T2CON的D1 C/T2=1 )T2作计数器用时是对外部事件进行计数,此时T2CON的D1位C/T2应设置为“1”。T2在此工作方式下不同的操作模式及不同的时钟控制方式,模式控制寄存器T2CON的设置值见 所示。 内部控制时当定时器定义溢出时进行捕获和重装;外部控制时定时器产生溢出的同时要有T2EX(P1.1)发生负跳变时才产生捕获和重装。,表4-2,吴定允 ,4.1.4 定时/计数器的初始化编程,第4章 单片机内部功能介绍,1、初始化的4个步骤:(由MOV和SETB指令完成)(1) 确定工作方式

10、、操作模式、启动控制方式-写入TMOD、TCON和T2MOD、T2CON寄存器。(写模式及控制字)(2) 设置定时或计数器的初值-可直接将初值写入TH0、TL0或TH1、TL1、TH2、TL2中。(两次写入初值)(3) 根据要求是否采用中断方式-直接对IE位赋值。开放中断时,对应位置1;采用程序查询方式时IE相应位清0进行中断屏蔽。(写中断允许字)(4) 启动定时器工作-可使用SETB TRi启动。,吴定允 ,第4章 单片机内部功能介绍,2 、计数初值的计算设最大计数值为2n,n为计数器位数,则:模式0: 2n=8192 ;n=13模式1: 2n=65536 ;n=16模式2: 2n=256

11、;n=8模式3: 2n=256 ;n=8,T0分成2个独立的8位计数器,T0、T1、T2定时器均为加1计数器,当加到最大值(00H或0000H)时产生溢出,将TFi位置1,可发出溢出中断计数器初值X的计算式为:X=2n-计数值,吴定允 ,第4章 单片机内部功能介绍,(1) 计数工作方式时对外部脉冲进行计数,其计数初值:X=2n - 计数值 (2) 定时工作方式时对机器周期进行计数,故计数脉冲为fcont=fosc112、计数周期 T=1fcont,其计数初值X等于:X=2n-计数值=2n-tT=2n-(fosct)123. 定时器初始化举例置T1为定时工作方式,定时50ms,选操作模式1,允许

12、中断,软启动;T0为计数方式,对外部脉冲进行计数10次,硬启动,禁止中断,选操作模式2。编写其初始化程序,设fosc=6MHz。,吴定允 ,T0计数10次,硬启动,模式2,禁止中断。则:X0=25610=246=F6H T1定时50ms,软启动,模式1,允许中断。则:X1=65536(6501000)12=40536=9E58H 模式字:00011110=1EH 控制字:00H 中断字:10001000=88H 初始化程序:MOV TMOD, #1EHMOV TH0, #0F6HMOV TL0, #0F6HMOV TH1, #9EHMOV TL1, #58HMOV IE, #88HSETB T

13、R0SETB TR1,吴定允 ,4.1.5 T0和T1 定时/计数器的操作模式及使用方法,第4章 单片机内部功能介绍,1. 模式0结构及工作过程模式0为13位的定时计数器,仅用高8位(THi)和低5位 (TLi的D4D0位)。48系列机兼容而设置。逻辑结构见当C/T=0为定时方式时,多路开关连接振荡器的12分频器或6分频器输出,T0对机器周期进行计数。其定时时间t为:t=(213-X)12fosc=(213-X)计数周期或(213-X)振荡器周期12计数初值X=213-tfosc12,图4-2,吴定允 ,第4章 单片机内部功能介绍,当C/T=1计数时, T0为外部事件的计数器,计数脉冲由T0引

14、脚输入。当外信号电平由1至0的跳变时,计数器加1。计数初值X=213-计数值定时器的启动过程为:当GATE=0时,反相为1,使或门输出为1,打开与门,使定时器的启动只受TRi的控制。TRi为1时接通控制开关,每来一个计数脉冲,计数器加1,当加到0时产生溢出使TFi置位,并申请中断。而定时器仍可以从0开始计数,只有当TRi置0时,断开控制开关,方可停止计数。当GATE=1时,同时TRi=1时,或门、与门全部打开,外部信号电平INT直接控制定时器的启停。输入1时允许计数,否则停止计数。常用来测试外部信号的脉冲宽度。,吴定允 ,第4章 单片机内部功能介绍,2. 模式0的应用例1.选用T0操作模式0,

15、用于定时,由P1.0输出周期为10ms的方波,设晶振fosc=6MHZ,选用12分频器。解:T0定时5ms实现X0=8192fosct12= 81922500=5692=163CHX0=1011000100011100B= B11CH故: MOV TL0, #1CHMOV TH0, #0B1HSETB TR0LP1:JBC TF0, LP2AJMP LP1LP2:MOV TL0, #1CHMOV TH0, #0B1HCPL P1.0SJMP LP1,吴定允 ,3. 模式1结构及工作过程定时时间t为: t=(216-X)12(或6)fosc计数初值X为: X=216-tfosc12(或6) 4.

16、 模式1的应用 例2用定时器1产生一个50Hz(T=20ms)的方波,由P1.1输出,仍用程序查询方式,fosc=12MHz,选12分频器。 解:T1定时10ms. X1=65536-10*12*1000/12=55536=D8F0HMOV TMOD, #10HSETB TR1LOOP: MOV TH1, #0D8HMOV TL1, #0F0HJNB TF1, $ :2T 踏步多少次?CLR TF1CPL P1.1SJMP LOOP,吴定允 ,第4章 单片机内部功能介绍,5. 模式2的结构及工作过程模式2是能自动重装计数初值的8位计数器。把16位的计数器拆成两个8位计数器,低8位作计数器用,高

17、8位用以保存计数初值。当低8位计数产生溢出时,将TFi位置1,同时又将保存在高8位中的计数初值重新自动装入低8位计数器中,又继续计数环,循环重复不止,自动循环计数,但定时/计数长度短。模式2的逻辑结构见计数初值 X=28-计数值=28-tfosc12(或6)t为定时时间。初始化编程时,THi和TLi都装入此X值。,图4-3,吴定允 ,6. 模式2的应用 例3 用定时器1,模式2计数,要求每计满200次将P1.0取反。 解:TH1=TH0=X1=256-200=56=38HTMOD=01100000B=60HMOV TMOD,#60HMOV TH1, #38HMOV TL1, #38HSETB

18、TR1LOOP: JBC TF1, REPSJMP LOOPREP: CPL P1.0SJMP LOOP,吴定允 ,例题4 由P3.5输入的负脉冲控制P1.2和P1.3分别输出同步负脉冲100S和同步正脉冲500S。(查询法),START:MOV TMOD,#60HMOV TH1,#0FFHMOV TL1,#0FFHSETB P1.2CLR P1.3SETB TR1 LOOP: JBC TF1,LP1SJMP LOOP LP1: CLR TR1MOV TMOD,#20HMOV TH1,#0CEHMOV TL1,#0CEH,SETB P1.3CLR P1.2SETB TR1MOV R1, #04

19、H LOOP1: JBC TF1,LP2SJMP LOOP1 LP2: SETB P1.2 LOOP2: JBC TF1, LP3SJMP LOOP2 LP3: DJNZ R1,LOOP2CLR P1.3CLR TR1AJMP START,吴定允 ,第4章 单片机内部功能介绍,7. 模式3的结构及工作过程模式3只适用定时器T0,T0在该模式下被拆成两个独立的8位计数器TH0和TL0,其中TL0使用原来T0的一些控制位和引脚,他们是C/T、GATE、TR0、TF0和T0(P3.4)引脚及INT0(P3.2)引脚。此模式下的TL0作为8位计数器,其功能和操作与模式0、模式1完全相同,可作定时也可作

20、计数用。该模式下的TH0,此时只可用作简单的内部定时器功能,他借用原定时器T1的控制位和溢出标志位TR1和TF1,同时占用了T1的中断源。TH0的启动和关闭仅受TR1的控制,TR1=1,TH0启动定时;TR1=0,TH0停止定时工作。模式3的逻辑结构见 所示。,图4-5,吴定允 ,第4章 单片机内部功能介绍,当T0选作操作模式3时,TH0占用了T1的TR0和TF0控制和溢出标志位,T1作用见 ,T0模式3下的T1结构。 T1仍可以设置为模式0、模式1、模式2,用在任何不需要中断的场合。通过设置C/T位可对内部时钟进行定时或对外部引脚脉冲进行计数的功能。由于T1的TR1和TF1被TH0占用,此情

21、况下T1溢出产生中断时不能由TF1发出,只能从串行口输出T1的溢出信号。当T0工作于模式3 时,T1一般用作串行口波特率发生器。当设置好工作方式后,T1自动开始运行;若要停止操作,只需送入一个设置定时器1为模式3的模式控制字。常把T1设置为模式2作波特率发生器比较方便。,图4-6,吴定允 ,8. 模式3的应用 例5 外部中断源的扩展和波特率发生器的实现。 解:T0模式3, TL0=FFH实现计数;TH0定时100s,TH0=X=256-100*12/12=156 TMOD=00100111=27H 初始化:MOV TMOD,#27HMOV TL0, #0FFHMOV TH0, #156MOV

22、TL1, #data ;若data=156,f=10kHzMOV TH1, #dataMOV TCON,#55H ;启动T0T1,外中断边缘触发MOV IE, #9EH ;开放所有中断 TL0溢出中断服务程序(由000BH来) TH0溢出中断服务程序(由001BH来)TH0INT:MOV TH0,#156CPL P1.0RET1,吴定允 ,4.1.6 T2定时/计数器的操作模式及使用方法,第4章 单片机内部功能介绍,定时器2有三种操作模式:捕获、自动重装载(递增或递减计数)和波特率发生器,这三种模式由T2CON中D0位(CP/RL2)、D2位(TR2)、D5位(TCLK)或D6位(RCLK)来

23、选择。三种操作模式的设置见 所示,下面介绍各模式的结构、特点、工作过程及使用方法。,表4-3,吴定允 ,第4章 单片机内部功能介绍,1T2的捕获模式结构及工作过程T2在捕获工作模式中,通过设置T2CON的EXEN2和CP/RL2两位。当设置EXEN2=0时,T2作为一个16位定时器或计数器(由T2CON中的C/T2位选择),产生溢出时使TF2位置“1”,可用于产生T2中断。当EXEN2=1时,T2作为位定时器或计数器,产生溢出时使TF2位置“1”,此时外部输入T2EX(P1.1)由1变0时将T2中TH2和TL2的当前值自动捕获到定时器2的高、低字节寄存器RCAP2H和RCAP2L中。另外T2E

24、X的负跳变使T2CON中的EXF2位置“1”,EXF2也象TF2一样能够产生中断(其中断向量与T2溢出中断的向量地址相同,均为002BH。T2中断服务程序通过查询TF2和EXF2位来确定引起中断的事件)。捕获模式如所示,此操作模式中TL2、TH2无需重装计数值,甚至当T2EX产生捕获事件时,计数器仍以T2EX的负跳变或振荡频率的1/12或1/6计数。,图4-7,吴定允 ,第4章 单片机内部功能介绍,2. T2捕获模式的使用方法 (例6详见教材)3. T2自动重装模式结构及工作过程T2自动重装模式又称为向上向下计数方式。T2设置为16位自动重装模式时,可通过T2CON的D1位选择为定时器或计数器

25、,编程设置模式控制寄存器T2MOD的D0位的DCEN为向上或向下计数。当DCEN设置为“0”时是向上计数,也是T2默认方式;当DCEN设置为“1”时,T2可通过T2EX(P1.1)确定为向上或向下计数。T2自动向上计数时DCEN=0,该计数方式见 所示。图4-9的操作模式是通过设置T2CON的D3 EXEN2位进行选择,当EXEN2设为“0”,T2为向上计数到0FFFFH并产生溢出后将TF2置“1”,然后将T2捕获寄存器RCAP2L、RCAP2H中的值作为重新装载值装入T2中。RCAP2L和RCAP2H的值是通过软件预设的。,图4-9,吴定允 ,第4章 单片机内部功能介绍,当EXEN2设置为“

26、1”时,16位重新装载可通过溢出或T2EX产生由1变0的负跳变时来实现;此负跳变同时将T2CON的D2的EXF2位置“1”。若T2中断被使能,则当TF2或EXF2被置“1”时可产生中断。当DCEN设置为“1”时,T2可向上或向下计数,此操作模式见 所示。 T2工作在此模式方式下,允许T2EX控制计数的方向。当T2EX置“1”时,T2为向上计数,计数到0FFFFH后产生溢出将TF2置“1”,如果中断被使能,还将产生中断。T2溢出时将RCAP2L和RCAP2H中的值作为重新载值装入TL2和TH2中。若T2EX置“0”时,T2为向下计数。当TL2和TH2计数到等于RCAP2L和RCAP2H的值时,定

27、时器产生下溢出,将TF2置“1”,并将0FFFFH值重新装入TL2和TH2中。当T2产生下溢出或上溢出时,外部标志位EXF2切换,如果需要,可将EXF2位作为第17位;此模式中,EXF2则不产生中断。,图4-10,吴定允 ,第4章 单片机内部功能介绍,4. T2自动重装模式的使用方法T2自动重装模式是当T2产生溢出时,将RCAP2H、RCAP2L中的值自动装入TH2、TL2中以实现重复计数的,计数的方向可由T2MOD中DCEN位来选择向上/向下计数,系统默认的为DCEN=0向上计数。(例7、例8详细见教材)在T2自动捕获/重装模式中,当设置DCEN、EXEN2、T2EX不同时,使用方法将不尽相

28、同。,吴定允 ,第4章 单片机内部功能介绍,5. T2波特率发生器模式的结构及工作过程在该模式中可通过专用寄存器T2CON中TCLK和RCLK位的设置,来选择从T1或T2获得串行口发送/接收的波特率。当TCLK=0时,选择T1作为串行口发送波特率发生器;当TCLK=1时,选择T2作为串行口发送特率发生器。同理当RCLK=0时,选择T1作为接收波特率发生器;当RCLK=1时,选择T2作为串行口接收波特率发生器。串行口接收/发送波特率发生器使用的定时器见 所示。T2波特率发生器模式结构见 所示。由图4-11可知,定时器2工作在波特率发生器模式时,与自动重装载模式相似;当TH2产生溢出时,将RCAP

29、2H和RCAP2L的16位值自动装入TH2和TL2中。RCAP2H、RCAP2L的内容为16位无符号数。,表4-4,图4-11,吴定允 ,第4章 单片机内部功能介绍,当用定时器2作为波特率发生器,C/T2设为“0”定时方式;T2CON中的RCLK或TCLK位必需设置为“1”,否则T2不可能作为波特率发生器。而T2作波特率发生器时,计数器产生溢出时并不会将TF2置位,故TF2不能产生中断;因此T2中断不必被禁止。但T2作波特率发生器时,若T2外部使能位EXEN2=1,则T2EX的负跳变能使T2的外部标志位EXF2=1,可引起中断,而不会使TH2、TL2发生重装操作。由此可见当需要时,T2EX的负

30、跳变可作为附加的外部中断。T2作波特率发生器时,不要对TH2、TL2进行读写,因为在每一个机器周期T2将加1,对TH2、TL2进行读写是不准确;却可对RCAP2寄存器进行读,但不能写,否则将产生自动重装错误。当对T2或RCAP进行访问时,应先将TR2置“0”,停止T2工作再进行访问。,吴定允 ,第4章 单片机内部功能介绍,T2作波特率发生器,而串行口工作于方式1或方式3时,其波特率如何计算呢?由图4-11可知T2的计数脉冲可由T2(P1.0)外部引入(此时C/T2=1,T2计数)或由振荡器2分频后引入,C/T2=0,T2定时,其串行口的波特率为:外部时钟信号由T2引脚引入时:若时钟信号由内部产

31、生时:则自动重装的计数初值为: RCAP2H、RCAP2L=65536-fosc/(n波特率)式中的n16时(为6时钟模式);n32时(为12时钟模式)。列出了常用的波特率及在RCAP2中存入的T2的重装值表。,表4-5,吴定允 ,4.2 单片机中断控制功能,4.2.1 单片机中断系统的组成及中断入口,第4章 单片机内部功能介绍,中断是外部突发事件,他打断CPU正在执行的程序,转去处理外部事件,待完成后CPU返回到原被中断的程序处,继续执行程序。,1. 中断系统的组成51子系列单片机有5个中断源,52子系列单片机及89系列单片机均有6个中断源;6个中断源可分为4个中断优先级:0级(为最低级)、

32、1级、2级和3级,三个特殊功能寄存器:IE、IP、IPH相连组成4级中断结构;每一个中断源的优先级都可以由程序来设定。,上一节,下一节,吴定允 ,第4章 单片机内部功能介绍,89系列单片机的中断系统组成见 所示。他由6个与中断有关的特殊功能寄存器(TCON、T2CON、SCON的相关位作中断源的标志位),中断允许控制寄存器IE、中断优先级寄存器IP、IPH和中断优先顺序查询逻辑等组成。 中断顺序查询亦称硬件查询逻辑,6个中断源的中断请求是否会得到响应,要受中断允许寄存器IE各位控制,他们的优先级分别由IP、IPH各位来确定;同一优先级的各中断源同时请求中断时,就由内部的硬件查询逻辑来确定响应次

33、序;不同的中断源有不同的中断矢量。,图4-12,吴定允 ,第4章 单片机内部功能介绍,2. 中断源及中断入口单片机有6个中断源:2个外部中断源;4个内部中断源。(1)INT0和INT1:外部中断0和外部中断1,其中断请求信号分别由P3.2、P3.3引脚输入。请求信号的有效电平由IT0和IT1设置,一旦输入信号有效,则将TCON中的IE0或IE1标志位置1,可向CPU申请中断。(2)TF0、TF1、TF2:T0、T1和T2的溢出中断。当T0或T1或T2计数器加1计数产生溢出时,则将TCON中的TF0或TF1或T2CON的TF2置位,向CPU申请中断。(3)RI和TI:串行口的接收和发送中断。当串

34、行口接收或发送完一帧数据时,将SCON中的RI或TI位置1,向CPU申请中断。 单片机中断源的矢量地址是固定的。见,表4-6,吴定允 ,第4章 单片机内部功能介绍,单片机中断控制部分由6个专用寄存器组成.1. 中断请求标志-TCON、SCON、和T2CONTCON的IT0和IT1位,是外部中断的触发方式设置位,决定外部中断的复位方法:当IT=0时,外部中断为电平触发方式,若测得输入引脚为低,则有中断申请,使IE相应标志位置位;若测得为高,为无中断申请或中断申请已撤除,清除IE相应标志位。在电平触发方式中,CPU响应中断后不能自动清除IE标志位,也不能由软件清除IE标志位,所以在中断返回前必需撤

35、消引脚上的低电平,否则将再次中断造成出错。,4.2.2 单片机的中断控制,吴定允 ,第4章 单片机内部功能介绍,若IT=1时,为边沿触发方式。若在连续两个机器周期采样到先高后低的电平变化,则将IE相应标志置“1”,此标志一直保持到CPU响应中断时,才由硬件自动清除。串行口的中断请求由串行口控制寄存器SCON的D0和D1位来设置。RI(SCON.0)为接收中断标志位;TI(SCON.1)为发送中断标志位。发送过程:当CPU将一个数据写入发送缓冲器SUBF时,就启动发送,每发送完一帧数据,由硬件自动将TI位置位。接收过程:在串行口允许接收时,即可串行接收数据,当一帧数据接收完毕,由硬件自动将RI位

36、置位。系统复位后,TCON、T2CON和SCON中各位均清“0”。,吴定允 ,第4章 单片机内部功能介绍,2中断开放和屏蔽-IE寄存器IE称为中断允许寄存器,其作用是用来对各中断源进行开放或屏蔽的控制。EA-IE.7位为CPU中断总允许位,EA=1,CPU开放中断;EA=0,CPU关中断,禁止一切中断。ET2-IE.5位为T2中断允许位,用于52子系列单片机和89系列单片机中,ET2=1,允许T2中断,否则禁止中断。,吴定允 ,第4章 单片机内部功能介绍,ES-IE.4位为串行口中断允许位。ES=1,允许串行口的接收和发送中断;ES=0,禁止串行口中断。ET1- IE.3位为T1中断位。ET1

37、=1,允许T1中断,否则禁止。EX1- IE.2位为外部中断1的中断位。EX1=1,允许外部中断1中断;否则禁止中断。ET0- IE.1位为T0中断位。ET0=1,允许T0中断,否则禁止。EX0- IE.0位为外部中断0的中断位。EX0=1,允许外部中断0中断;否则禁止中断。系统复位后,IE各位均为0,即禁止所有中断。IE寄存器可以进行字节寻址也可以进行位寻址。,吴定允 ,第4章 单片机内部功能介绍,3.中断优先级设定-IP和IPH寄存器(1) IP -中断优先级寄存器4个优先级。各中断源的优先级通过IP中的相应位来设定。PT2-IP.5位为T2优先级设定位,适用于52子系列和89系列单片机中

38、。PT2=1时,设定为高优先级,否则为低优先级;PS-IP.4位为串行口优先级设定位。PS=1时,串行口为高优先级,否则为低优先级; IP.7和IP.6保留位;,吴定允 ,第4章 单片机内部功能介绍,PT1-IP.3位为定时器1优先级设定位。PT1=1时,T1为高优先级,否则为低优先级;PX1-IP.2位为外部中断1优先级设定位。PX1=1时,外部中断1为高优先级,否则为低优先级;PT0-P.1位为定时器0优先级设定位。PT0=1时,T0为高优先级,否则为低优先级;PX0- IP.0位为外部中断0优先级设定位。PX0=1时,外部中断0为高优先级,否则为低优先级;当系统复位后,IP各位均为0,所

39、有中断源设置为低优先级中断。IP也是可进行字节寻址和位寻址的专用寄存器。,吴定允 ,第4章 单片机内部功能介绍,(2) IPH-中断优先级的高字节寄存器IPH与IP寄存器各位定义相同。可进行字节寻址或位寻址。IPH中当某位为“1”时,对应的中断源设定为高优先级,否则为低优先级。89系列机中6个中断源的4个优先级中断结构,其级别由IP和IPH对应位的组合共同设定,见 。,表4-7,吴定允 ,第4章 单片机内部功能介绍,4. 优先级结构设置6个中断源优先级应遵循2条基本原则: (1)低优先级中断可被高优先级中断所中断,反之不能。(2)一种中断(不管是什么优先级)一旦得到响应,与他同级的中断不能再中

40、断他。为实现此规则,中断系统内部包含2个不可寻址的“优先级激活”触发器。其中一个指示某高优先级的中断正在得到服务,所有后来的中断都被阻断。另一个触发器指示某低优先级的中断正在服务,所有同级的中断都被阻断,但不阻断高优先级的中断。,吴定允 ,第4章 单片机内部功能介绍,CPU同时收到几个同级的中断时,哪一个的请求将得到服务,取决于内部的硬件查询顺序,CPU将按自然优先级顺序确定该响应哪个中断请求。其自然优先级由硬件形成,排列如下:中断源 同级自然优先级外部中断0 最高级定时器0中断外部中断1定时器1中断串行口中断 最低级定时器2中断 最低级(52系列和89系列单片机),吴定允 ,第4章 单片机内

41、部功能介绍,在每一个机器周期中,CPU对所有中断源顺序地检查,到S6状态,可找到所有已被激活的中断请求,并排好了优先权。在下一个机器周期的S1状态,只要不受阻断就开始响应其中最高优先级的中断请求。中断响应阻断情况: (1) 同级或高优先级的中断正在进行中; (2) 现在的机器周期还不是执行指令的最后一个机器周期,即正在执行的指令还没有完成前不响应任何中断; (3) 正在执行的是中断返回指令RETI或是访问专用寄存器IE或IP或IPH的指令。在RETI或读写IE或IP或IPH之后不会马上响应中断请求,至少要在执行其他一条指令之后才会响应。,吴定允 ,第4章 单片机内部功能介绍,中断处理过程分为:

42、中断响应、中断处理和中断返回。 1. 中断响应 (1) 中断响应条件 有中断源发出中断请求; 中断总允许位EA1,即CPU开中断; 申请中断的中断源的中断允许位为1,即没有被屏蔽。以上条件满足,一般CPU会响应中断,但在上面所述的中断阻断的情况下,本次的中断请求CPU不会响应。,4.2.3 单片机中断处理过程,吴定允 ,第4章 单片机内部功能介绍,(2) 中断响应的过程CPU首先使被响应中断的相应“优先激活”触发器置位,以阻断同级和低级的中断。再根据中断源的类别,在硬件的控制下内部自动形成长调用指令(LCALL),然后将对应的中断源的矢量地址装入程序计数器PC,使程序转向该中断的矢量地址,以转

43、至中断服务程序入口地址。单片机中各中断源的矢量地址见,表4-6,吴定允 ,第4章 单片机内部功能介绍,(3)中断响应的时间 以外部中断为例,说明中断响应的最短时间。在S5P2期间,INT0和INT1引脚的电平被锁存到TCON的IE0和IE1标志位,CPU在下一个机器才会查询这些值。这时如果满足中断响应条件,下一条要执行的指令将是一条硬件长调用指令“LCALL”使程序转至中断源矢量地址入口。硬件长调用指令本身要花费2个机器周期,这样,从外中断请求有效到开始执行中断服务程序的首条指令,中间要隔3个T,为最短时间。如果遇到中断受阻的情况,则中断响应时间会更长一些。 若系统中只有一个中断源,则响应时间

44、在38个T之间。,吴定允 ,第4章 单片机内部功能介绍,2.中断处理CPU响应中断后即转至中断服务程序入口。从中断服务程序的第一条指令开始到返回指令为止,称为中断处理(中断服务)。中断处理包括:保护现场,中断源服务,恢复现场。现场通常有PSW、工作寄存器、专用寄存器等。如果在中断服务程序中要用这些寄存器,则在进入中断服务之前应将他们的内容保护起来,称为保护现场;同时在中断结束、执行RETI指令之前应恢复现场,中断服务是针对中断源的具体要求进行处理。其次,编写中断服务程序时应注意以下几点:,吴定允 ,第4章 单片机内部功能介绍,(1) 各中断源的入口矢量地址之间,存放一条无条件转移指令,而转至其他的存储器空间。 (2) 若要在执行当前中断程序时禁止更高级中断,应关闭CPU中断,或屏蔽更高级中断,在中断返回前再开放中断。(3) 保护现场和恢复现场时,关CPU中断,使CPU暂不响应新的中断请求。在保护现场前关中断,在保护现场后开中断。在恢复现场前关中断,恢复后开中断。流程见3. 中断返回中断处理程序的最后一条指令是RETI。功能是将断点弹出送回PC中,使程序能返回到原来被中断的程序继续执行。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报