MCS-51终端系统教学课件PPT单片机中断定时器计数器.pptx

上传人:yyf 文档编号:3848269 上传时间:2019-09-30 格式:PPTX 页数:36 大小:388.84KB
返回 下载 相关 举报
MCS-51终端系统教学课件PPT单片机中断定时器计数器.pptx_第1页
第1页 / 共36页
MCS-51终端系统教学课件PPT单片机中断定时器计数器.pptx_第2页
第2页 / 共36页
MCS-51终端系统教学课件PPT单片机中断定时器计数器.pptx_第3页
第3页 / 共36页
MCS-51终端系统教学课件PPT单片机中断定时器计数器.pptx_第4页
第4页 / 共36页
MCS-51终端系统教学课件PPT单片机中断定时器计数器.pptx_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《MCS-51终端系统教学课件PPT单片机中断定时器计数器.pptx》由会员分享,可在线阅读,更多相关《MCS-51终端系统教学课件PPT单片机中断定时器计数器.pptx(36页珍藏版)》请在三一文库上搜索。

1、 MCS-51及其5l子系列的其它成员都具有相同的中断结构。 8051有5个中断源2个外部中断源INT0和INT1,2个片内定时器 计数器溢出中断源,1个片内串行口中断源。 分为两级高级中断和低级中断。其中任何一个中断源的优先级均可 由软件设定为高级或低级,能实现两级中断服务程序嵌套 。 都是可屏蔽的,由软件设定。 第五章 MCS-51的中断系统 中断允许寄存器IE控制 中断优先级寄存器IP控制中断触发方式位IT控制 一、MCS51的中断源 1.中断源 1) 外部中断0请求,由P3.2引脚输入。可由用户设定 为两种触发方式,(电平触发方式还是边沿触发方式)。 一旦输入信号有效,则向CPU申请中

2、断,并且将中断标志 IE0置1。 2) 外部中断1请求,由P3.3引脚输入。亦可由用户设定 为电平触发方式还是边沿触发方式。一旦输人信号有效, 则向CPU申请中断,并将中断标志IE1置1。 3)片内定时器T0溢出中断请求。当定时器T0产生溢出时, T0中断请求标志TF0 置1,请求中断处理。 4)片内定时器T1溢出中断请求。当定时器T1产生溢出时,T1 中断请求标志TF1置l,请求中断处理。 5)片内串行口发送接收中断请求。当通过串行口发送或接 收完一帧串行数据时,串行口中断请求标志TI或RI置1,请求中 断处理。 2.中断请求标志 (1)TCON的中断标志 TCON是专用寄存器,字节地址为8

3、8H,它锁存了外部和的中断请求标志 及T0和T1的溢出中断请求标志 TCON 88H D7D6D5D4D3D2D1D0 TF1TR1TF0TR0IE1IT1IE0IT0 1)IT0:选择外部中断0(INT0)触发方式控制位。 IT0=0 INT0为电平触发方式。 2)IE0:外部中断0请求标志位。IE01,外部中断0向CPU申请中断。 3)IT1:选择外部中断1(INT1)触发方式控制位。 4)1E1:外部中断1请求标志位。IE11时,外部中断1向CPU申请中断。 5)TF0:片内定时器T0溢出中断请求标志。T0被启动后,从初始值开始进行加1计 数,当最高位产生溢出时置TF01,向CPU申请中

4、断,直到CPU响应该中断时,才由 硬件自动将TF0清0,也可由软件查询该标志,并用软件清0。 6)TF1:片内定时器T1溢出中断请求标志,其操作功能与TF0类同。 SCON是串行口控制寄存器,与中断有关的是它的低两位TI和RI。 1) TI(SCON.1):串行口发送中断标志位。每发送完一个串行帧, 由硬件置位TI。CPU响应中断时,不能清除TI,TI必须由软件清除。 2)RI(SCON.0):串行口接收中断标志位,当允许串行口接收数据时 ,每接收完一个串行帧,由硬件置位RI。同样,RI必须由软件清除。 TIRISCON 2)SCON的中断标志 二、MCS51的中断控制 1、中断允许寄存器IE

5、中断的允许与开放 2中断优先级寄存器IP 中断优先级控制 内部自然优先级: 入口地址 INT0 高 0003H T0 000BH INT1 0013H T1 001BH TI/RI 底 0023H 中断处理过程一般分为三个阶段,即中断响应、中断处理和中断返回。 三、响应中断的条件及过程 1.中断响应 (1)中断响应的条件 1)有中断源发出请求信号 2)中断是开放的(总允许、源允许) 3)没有封锁(受阻),受阻情况是: CPU正在执行同级或高一级的中断服务程序; 现行机器周期不是正在执行的指令的最后一个机器周期,即现 行指令完成前不响应任何中断请求; 当前正在执行的是中断返回指令RETI或访问专

6、用寄存器IE或IP 的指令。也就是说,在执行RETI或是访问IE、IP的指令后,至少需要 再执行条其他指令,才会响应中断请求。 2)中断响应过程 进入中断响应周期。CPU在中断响应周期要完成下列操作: 1) 根据中断请求源的优先级高低, 使相应的优先级状态触发器置1。 2) 清相应中断请求标志位IE0、 IE1、TF0或TF1 3) 保留断点,把PC内容 压入堆 保存。 4) 把被响应的中断源服务 程序入口地址送入PC,输入相应 中断服务程序。 2.中断服务与返回 在编写中断服务程序时加注意的几点: 1)因各入口地址之间只相隔8个字节,一般的中断服务程序是存放不 下的。所以通常在中断入口地址单

7、元处存放条无条件转移指令,这样 就可使中断服务程序灵活地安排在64KB程序存储器的任何空间。 2)若要在执行当前中断程序时禁止更高优先级中断,可先用软件关闭CPU 中断,或禁止某中断源中断,在中断返回前再开放中断。 3)注意在保护现场和恢复现场。 4)中断服务程序的最后一条是返回指令RETI,该指令将清除响应中断 时被置位的优先级状态触发器,然后自动将断点地址从栈顶弹出,装入 程序计数器PC,使程序返回到被中断的程序断点处,继续向下执行。 3.中断请求的撤除 CPU响应中断请求后,在中断返回(RETI)前,该中断请求信号必须撤除 ,否则会引起另外一次中断。 注意:采用边沿触发的外部中断标志IE

8、0或IEl和定时器中断标志TF0或 TFl,CPU响应中断后能用硬件自动情除。 但在电平触发时,IE0或IEl受外部引脚中断信号(或)的直接控制,CPU 无法控制IE0或IEl,需要另外考虑撤除中断请求信号的措施,如通过外 加硬件电路,并配合软件来解决;串行口中断请求标志TI和RI也不能由 硬件自动清除,需要在中断服务程序中,用软件来清除相应的中断请求 标志 。 小结:1、硬件构成 2、存储器组织 3、中断系统 MCS-51子系列单片机内有两个可编程的定时器计数器 T0和T1;它可由用户程序选择其工作方式,设定其工作参 数和条件。 第六章 MCS51定时/计数器及其应用 本章重点: 定时/计数

9、器的编程结构 控制字与编程方法 应用编程 第一节 定时/计数器的结构与工作原理 一、定时/计数器的逻辑结构 定时计数器的结构如图所示。 定时/计数器的核心部件是加1计数器,其输入的计数脉冲有两个来源。 当加到计数器为全“1”时,再输入一个脉冲,就使计数器回零,同时产生 溢出脉冲使TCON中溢出中断标志TF0或TF1置1,并可向CPU申请中断。 1. 定时器工作方式时,对机器周期TM计数。这时计数器的计数脉冲由 振荡器的12分频信号产生,即每经过一个机器周期,计数值加1,直至计满 溢出。在机器周期固定的情况下,定时时间的长短与计数器事先装入的初值 有关,装入的初值越大,定时越短。 2. 计数器工

10、作方式时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计 数。当T0或T1脚上输入的脉冲信号出现由1到0的负跳变时,计数器值加1。 二、定时/计数器的工作原理 第二节 定时/计数器的控制与工作方式 应用问题 1、定时/计数如何设定? 2、定时/计数器如何启动? 3、定时/计数的值如何设定? 单片机内部的定时/计数器是一种可编程器件,可设置为 四种工作方式,由两个8位专用寄存器TMOD和TCON进行 管理与控制。 单片机内部的定时/计数器是一种可编程器件,可设置为四种工作方式, 由两个8位专用寄存器TMOD和TCON进行管理与控制。 一、定时计数器的管理与控制 1.工作方式寄存器TM

11、OD 用于选定定时/计数器的工作方式、启动方式等。 00方式0 01方式1 10方式2 11方式3 TMOD (89H) D7D6 D5D4D3 D2 D1D0 GATEC/TM1M0GATEC/TM1M0 控 制 T1 控 制 T0 0 定时器模式 1 计数器模式 0 与INT0无关 1 与INT0有关 与T0同 1)用于设置定时/计数器的工作方式(03); M1 M1 2)选择定时/计数CT* ; nC/T=0-定时,C/T=1-计数 3)启动控制方式选择-内/外; GATE:门控位,启动方式设定 GATE0 - 允许软件位TR0或TR1启动; GATE1 - 允许外部引脚信号INT0/I

12、NT1启动。 n2、定时器控制寄存器TCON n1) TF1 定时器1溢出标志 n2) TR1 定时器1运行控制位 n3) TF0 定时器0溢出标志 4) TR0 定时器0运行控制位 n5) IE1 外部中断1请求标志 n6) IT1 外中断1触发方式选择位 n7) IE0 外部中断0请求标志 n8) IT0 外部断0触发方式选择位。 注意:复位后TMOD 、TCON各位均清零。 例:启动T0工作,用 指令 SETB TR0 例如:设定时器T0工作于方式1定时,由软件启动控制,则可用如下指 令来装入控制字。 MOV TMOD,#00000001B;或 MOV TMOD,#01H; 练习:设定时

13、器T1工作于方式2计数,由外部脉冲启动,试写入方式控 制字。 通过控制TMOD中的M1,M0位选择定时器4种工作方式。这4种工作方式的 实质是对T0(或T1)的两个8位计数器TH0、TL0(或TH1、TL1)的计数操作 方式而言。 二、定时/计数器的工作方式 1.方式0 加1计数器为13位, 高8位溢出置位TF 定时器启、停控制 方式0下的逻辑结构图 (1)C/T=1为计数工作方式,计数脉冲由T1引脚输入。计数个 数 N=( 213初值x) (2)C/T=0为定时工作方式,计数脉冲为时钟频率fosc/12。 定时时间t=(213初值x)*时钟周期*12 X 213定时时间t/时钟周期*12 方

14、式0下工作时: 思考: (1)最大计数或定时时的初值 X 是多少? (2)时钟频率为12MHZ时,方式0最大定时时间是多少? 第四章 1-9 2.方式1 定时/计数器工作于方式1时为一个16位的计数器。其逻辑结构、操作 及运行控制几乎与方式0完全样,差别仅在于计数器的位数不同。 定时工作方式1时,定时时间为: 定时时间 t (216计数初值TC)机器周期 用于计数器工作方式时, 最大计数值为: 21665536 3. 方式2 定时/计数器工作于方式2时,将两个8位计数器THx、TLx分成独立的两部 分,组成一个可自动重装载的8位定时/计数器。其逻辑结构如图所示。 方式2的控制运行与方式0、方式

15、1相同。 用于定时工作方式时,定时时间t为:t(28计数初值X)机器周期 用于计数工作方式时,最大计数值(初值0时)是28。方式2特别适合于用作 较精确的定时和脉冲信号发生器。还常用作串行口波特率发生器 。 4.方式3 方式3只适用于定时器T0。在方式3下,T0被分成两个相互独立的8位 计数器TL0和TH0,如图所示 。 1)TH0和TL0变成2个分开的计数器。 2)TL0占用了全部的定时器控制位。 (C/T, GATE, TR0, TF0) 3)TH0只能用于定时方式,运行控制位和溢出标志位则借用 定时器1的TR1和TF1。 4)在T0设置为方式3工作时,一般是将定时器T1作为串行口 波特率

16、发生器,或用于不需要中断的场合。相当于增加了一 个8位的定时器。 定时/计数器工作于方式3时: 第三节 定时/计数器的应用 一、定时/计数器计数初始化 1. 定时计数器的初始化方法 初始化的主要是对TCON和TMOD编程,计算和装载T0和T1的计数初值。 (1)初始化步骤 1)分析定时器计数器的工作方式,将方式字写入TMOD寄存器; ( 定/计、内/外启动、工作方式) 2)计算T0或T1中的计数初值,并将其写入TH0、TL0或TH1、TL1; 3)根据需要开放CPU和定时计数器的中断,即对IE和IP寄存器编程; 4)启动定时器计数器工作:若要求用软件启动,编程时对TR0或TR1 置位即可启动;

17、若由外部中断引脚电平启动,则对TR0或TR1置位后, 还需给外引脚(或)提供启动电平。 1)计数器模式时的计数初值 X2MN (M为计数器位数,N为要求的计数值) X0,计数器的计数值最大 2M 2)定时器模式时的计数初值 定时时间为:t(2M计数初值X )机器周期 计数初值 X 2M -(t/12*T osc ) (2)计数器初值的计算 213 8192 (方式0) 216 65536 (方式1) 28 256(方式2及方式3 ) 若系统时钟频率 fOSC12MHz,1机器周期1S; 方式0:M13, tmax 213*机器周期8192S 方式1:M16, tmax216*机器周期65536

18、S 方式2: M8, tmax28*机器周期256S (方式3同) X = 605360EC78H X0,定时器的定时时间最大: tmax 2M机器周期 例如,若fOSC6MHz,定时时间为10ms,使用定时器T0工作于方式1 ,则 初值: 编写初始化程序的步骤; 1)方式控制字送 TMOD MOV TMOD,# 2)计数器的初值送TH、TL(0/1) n MOV TH0,# n MOV TL0,# 3)根据需要开放中断和设定优先级 n 即对IE和IP赋初值(可位寻址) 4) 启动T0/T1开始工作-置位TR0/1 n SETB TR0/1 5)等待溢出信号的出现(如何进入处理程序?) (查询

19、法或中断法) 2. 定时/计数器初始化举例 例4-1:要求定时器T1于方式1,定时50ms,由软件启动,允许中断。设 系统时钟频率fOSC6MHz,编写初始化程序段。 解:1)方式控制字为 00010000B=10H 2)计数初值为 X1 T1初始化程序段如下: MOVTMOD,#10H;写入工作方式字 MOVTH1,#9EH;写入计数初值 MOVTL1,#58H SETBET1;开放T1中断 SETBEA;开放CPU中断 SETBTR1;启动T1工作 例4-2: 要求利用定时/计数器T0对T0引脚(P3.4)出现的脉冲计数,每计 数100个脉冲向CPU申请中断,设由由软件启动。编写初始化程序

20、段。 解:1)经分析,可设定时器T0工作于方式2计数,方式控制字为 0000110B=06H 2)要求的计数值N=100,则计数初值为 28-100=156 初始化程序段如下: MOVTMOD,#06H ;写入工作方式字 MOVTH0,#156 ;写入计数初值 MOVTL0,#156 SETB ET0 ;开放T0、 CPU中断 SETB EA SETBTR0 ;启动T0工作 注意:方式2时初值必须同时写入TH和TL 二、定时/计数器计数应用举例 在应用定时计数器时,溢出标志TFx置位后既可由硬件向CPU申请中 断,也可通过用户程序查询TFx的状态,因此对计数溢出信息的处理有以下 两种方法。 中

21、断法在定时器初始化时要开放对应的源允许(ET0或ET1)和总允 许,在启动后等待中断。当计数器溢出中断,CPU将程序转到中断服务程序 入口,因此应在中断服务程序中安排相应的处理程序。 查询法既在定时器初始化并启动后,在程序中安排指令查询TFx的 状态。 LP:JBC TF0,NEXT ;TF0为1,转后面的处理程序,并将TF0复位 SJMPLP ;TF0为0,继续查询 NEXT: 注意:中断法时,CPU响应中断会自动清TF 第三节 定时/计数器的应用 采用查询方式时的一般编程模式: ORG 0030H MAIN: MOV TMOD,# MOV TH0,# MOV TL0,# - SETB TR

22、0 WAIT: JBC TF0,NEXT; SJMP WAIT; NEXT:MOV TH0,#;重装 MOV TL0,# ;初值 - - ;处理程序 - - SLMP WAIT 采用中断方式时的一般编程模式: ORG 0000H SJMP MAIN ORG 000BH (001BH) LJMP T0FW ORG 0030H MAIN: MOV TMOD,# MOV TH0,# MOV TL0,# SETB ET0 ; SETB EA ; - ;置其他初值 SETB TR0 ; SJMP $ T0FW: - ; 重装初值 - ;处理程序 - RETI 二、定时/计数器计数应用举例 1. 定时模式

23、的应用 例4-3: 利用定时/计数器定时产生周期信号。要求用定时器T0定时, 在P1.7引脚上输出周期为50Hz的方波。设晶振频率为12MHz。 解:1)按题意分析:方波周期T=1/50=20ms,可用T0方式1定时10ms, 使P1.7每隔10ms取反一次,即可得到周期为20ms的方波。设T0工作在方 式1,由软件启动。 2)TMOD控制字为 0000 0001 B 3)初值计算:fosc=12MHz,机器周期为1s。 初值216-10103/1=65536-10000=55536=D8F0H, 即有TH0=D8H,TL0=F0H。 CPL P1.7 ; 定时处理,P1.7取反输出方波 例:

24、要求用定时器T1定时,在P1.0引脚上输出如图方波。 设晶振频率为12MHz。 P1.0 89C51 2ms 1ms 解:1)按题意分析:可用T1为16位定时器模式(方式1)定时1ms。判 断P1.0为高电平时,溢出二次才对端口取反。 2)TMOD控制字为 0001 0000 B 3)初值计算:fosc=12MHz,机器周期为1s。 初值216 - 12 106 103 / 12= 65536-1000=64536=FC18H, 即 TH1=FCH,TL1=18H。 若采用查询法,编程如下: ORG 0030H STAR:MOV TMOD,#10H ;写入工作方式字 MOV TH1,#0FCH

25、 ;写入计数初值 MOV TL1,#18H MOV R2 , #2 SETB TR1 ;启动T1 LOOP: JBC TF1,CPLP ; TF1为1转CPLP并清TF1 SJMP LOOP ; TF1为0转LOOP等待 CPLP:MOV TH1,#0FCH ;重装初值 MOV TL1,#18H JB P1.0,CPLP1 ;P1.0为1转CPLP1 CPL P1.0 ;P1.0为0则取反 MOV R2,#2 ;R2重赋初值 AJMP LOOP ;转LOOP等定时时间到 CPLP1:DJNZ R2,LOOP ;2ms未到转LOOP CPL P1.0 ;2ms到P1.0取反 AJMP LOOP

26、;转LOOP等定时时间到 END 例4-4: 某系统要求用定时器T1对由P3.5(T1)引脚输入的脉冲 计数,每计满100个脉冲,在P1.0引脚输出一个正脉冲。 解:1)据题意分析,可将定时器T1设置为方式2计数,由软件启动。 2)方式控制 TMOD01100000B60H 3)计数初值 TC1281001569CH,即有 TH1TL1 9CH 2. 计数模式的应用 例:T0即P3.4输入负脉冲,要求T0发生负跳变时P1.0输出如图同步脉冲。 500us 500us T0 P1.0 方法:开始使P1.0为高电平, 定时器T0为方式2计数器,计 数1,即初值为FFH。当T0引脚 负跳变溢出,改T0为定时器, 定时500us,并使P1.0为低电 平。定时再溢出时,使P1.0高 电平,T0再恢复为计数器。 5. 门控位GATE的应用 等待INT0变低 3. 定时时间的扩展 为什么要扩展? 例如晶振频率为6MHz时一个定时器最长的定时时间为: 怎样扩展? 定时器配合软件计数器来实现。

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

当前位置:首页 > 高中教育


经营许可证编号:宁ICP备18001539号-1