微机原理及单片机应用技术第8章-80C51的中断与定时计数器课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《微机原理及单片机应用技术第8章-80C51的中断与定时计数器课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 单片机 应用技术 80 C51 中断 定时 计数器 课件
- 资源描述:
-
1、8 8.2 28 8.3 380C5180C51单片机的串行口单片机的串行口80C5180C51中断处理过程中断处理过程8 8.1.180C5180C51单片机的中断系统单片机的中断系统2022-12-2328.1 80C51单片机的中断系统5.1.1 80C515.1.1 80C51中断系统的结构中断系统的结构 CPUCPU进行工作进行工作A A时发生了事件时发生了事件B B,请求,请求CPUCPU马上处理马上处理 CPUCPU暂时中断当前工作暂时中断当前工作A A,转去处理事件,转去处理事件B B 事件事件B B处理完后,回到工作处理完后,回到工作A A被中断的地方继续处理被中断的地方继续
2、处理A A工作工作 中断的概念 中断源中断源 中断请求中断请求 中断服务中断服务 中断返回中断返回 中断系统中断系统与子程序调用相似与子程序调用相似但有本质的区别但有本质的区别 子程序调用是子程序调用是固定的固定的,专用指令,位置固定。,专用指令,位置固定。注意注意中断与子程序中断与子程序调用调用的不同点的不同点 中断的执行是中断的执行是随机的随机的,没有调用指令,任何位置。,没有调用指令,任何位置。中断工作方式的优点:中断工作方式的优点:1 1)外设与)外设与CPUCPU可并行工作可并行工作 CPUCPU与多个外设同时工作,互不干扰与多个外设同时工作,互不干扰 2 2)实现了实时处理、实时控
3、制)实现了实时处理、实时控制 CPUCPU能及时处理外部信息,如数据采集,监控能及时处理外部信息,如数据采集,监控 3 3)能及时处理随机故障)能及时处理随机故障 2022-12-234 8.1.1 8.1.1 80C5180C51中断系统的结构中断系统的结构5 5个中断源、个中断源、2 2个优先级个优先级2022-12-235 中断源8 8.1.2 80C51.1.2 80C51的中断源的中断源外部中断外部中断0 0(INT0INT0)外部中断外部中断1 1(INT1INT1)T0T0溢出中断(溢出中断(TF0TF0)T1T1溢出中断(溢出中断(TF1TF1)串行口中断(串行口中断(RIRI
4、或或TITI)2022-12-236 中断允许控制中断源的开放和屏蔽由中断源的开放和屏蔽由IEIE控制(控制(1 1,开放;,开放;0 0,禁止,禁止)76543210IEEAESET1EX1ET0EX0字节地址:字节地址:A8H EX0:外中断外中断0允许允许 ET0:T0中断允许中断允许 EX1:外中断外中断1 1允许允许 ET1:T1中断允许中断允许 ES :串口中断允许串口中断允许 EA:CPU中断允许中断允许 2022-12-237 中断优先级控制中断优先级由中断优先级由IPIP控制(控制(1 1,高级;,高级;0 0,低级,低级)76543210IPPSPT1PX1PT0PX0字节
5、地址:字节地址:B8H PX0:外中断外中断0优先级优先级 PT0:T0中断中断优先级优先级 PX1:外外中断中断1 1优先级优先级 PT1:T1中断中断优先级优先级 PS :串口中断串口中断优先级优先级同一优先级的自然顺序:同一优先级的自然顺序:自高至低:自高至低:INT0INT0、TOTO、INT1INT1、T1T1、串口。、串口。2022-12-238 中断优先级遵循的原则几个中断同时申请,先响应高级的中断几个中断同时申请,先响应高级的中断 正进行的中断服务,同级或低级中断不能对其正进行的中断服务,同级或低级中断不能对其中断,但可以被高级中断所中断。中断,但可以被高级中断所中断。为此,中
6、断系统内设有对应高、低为此,中断系统内设有对应高、低2 2个个优先级状优先级状态触发器态触发器(用户不能寻址)。(用户不能寻址)。状态触发器的复位由中断返回指令状态触发器的复位由中断返回指令RETIRETI控制。控制。中断服务程序入口地址和优先级中断服务程序入口地址和优先级 外中断0:0003H 定时器0:000BH 外中断1:0013H 定时器1:001BH 串口:0023H2022-12-23108.2 80C51单片机中断处理过程单片机中断处理过程8 8.2.1.2.1 中断响应条件和时间中断响应条件和时间 中断响应条件中断响应条件有中断请求有中断请求 相应的中断允许位为相应的中断允许位
7、为1 1CPUCPU开中断(即开中断(即EA=1EA=1)遇下面情况之一将不被响应(遇下面情况之一将不被响应(此间中断条件失效,中断丢失此间中断条件失效,中断丢失)正在处理同级或高级中断正在处理同级或高级中断 当前查询周期不是所执行指令的最后一个机器周期当前查询周期不是所执行指令的最后一个机器周期 正在执行正在执行RETIRETI或或访问访问IEIE或或IPIP 的指令的指令 2022-12-2311 中断响应时间中断响应时间中断响应至少需要中断响应至少需要3 3个完整的机器周期个完整的机器周期(3 38 8个)!个)!受阻时要附加受阻时要附加3 3 5 5个机器周期(个机器周期(无同级或高级
8、中断正进行无同级或高级中断正进行)查询周期不是当前指令的最后机器周期查询周期不是当前指令的最后机器周期(如如MULMUL,+3+3)查询周期恰逢查询周期恰逢RETIRETI类指令类指令(且后跟且后跟MULMUL指令指令+5+5)2022-12-23128 8.2.2.2.2 中断响应过程中断响应过程 CPUCPU响应中断过程响应中断过程将相应优先级状态触发器置将相应优先级状态触发器置1 1(阻断后来同级或低级中断阻断后来同级或低级中断 )执行硬件执行硬件LCALLLCALL指令(指令(PCPC入栈,中断服务程序入口址送入栈,中断服务程序入口址送PCPC)执行中断服务程序执行中断服务程序 编写中
9、断服务程序注意编写中断服务程序注意中断服务程序入口存放指令中断服务程序入口存放指令LJMPLJMP或或AJMPAJMP现场保护与现场恢复现场保护与现场恢复ORG 0000HLJMP MAINORG 0003HLJMP INT0;转外中断;转外中断0ORG 000BH;没有用定时器;没有用定时器0中断,在此放一条中断,在此放一条RETI ;万一万一“不小心不小心”产生了中断,产生了中断,RETI ;也不会有太大的后果。也不会有太大的后果。ORG 0030H MAIN:;主程序开始;主程序开始2022-12-23148 8.2.3.2.3 中断返回中断返回 中断服务程序最后指令必须是中断服务程序最
10、后指令必须是RETIRETI,其功能:,其功能:将断点从堆栈弹送将断点从堆栈弹送PCPC,CPUCPU从原断点继续执行从原断点继续执行 将相应优先级状态触发器清将相应优先级状态触发器清0 0,恢复原来工作状态,恢复原来工作状态 注意注意不能用不能用RETRET代替代替RETRETI I 中断服务程序中中断服务程序中PUSHPUSH和和POPPOP必须成对使用必须成对使用80C51C CL LK KQ QC CL LK KD DV VC CC CP P3 3.0 0I IN NT T0 07 74 4L LS S7 74 4D D7 7D D0 0P P1 1.0 0P P1 1.7 7程序如下
11、:程序如下:ORG 0000HSTART:LJMP MAIN ;跳转到主程序;跳转到主程序 ORG 0003H LJMP INTO ;转到中断服务程序;转到中断服务程序 ORG 0030H ;主程序;主程序MAIN:CLR IT0 ;设;设为电平触发方式为电平触发方式 SETB EA ;CPU开放中断开放中断 SETB EX0 ;允许;允许Int0中断中断 MOV DPTR,#1000H;设置数据区地址指针;设置数据区地址指针 ORG 0200H ORG 0200H ;中断服务程序中断服务程序INT0INT0:PUSH PSW PUSH PSW ;保护现场保护现场 PUSH ACCPUSH A
12、CC CLR P3.0 CLR P3.0 ;由由P3.0P3.0输出输出0 0 NOP NOP NOP NOP SETB P3.0 SETB P3.0 MOV P1 MOV P1,#0FFH#0FFH;置置P1P1口为输入口为输入 MOV AMOV A,P1 P1 ;输入数据输入数据 MOVX DPTRMOVX DPTR,A A ;存入数据存储器存入数据存储器 INC DPTR INC DPTR ;修改数据指针,指向下一个单元修改数据指针,指向下一个单元 POP ACC POP ACC ;恢复现场恢复现场 POP PSWPOP PSW RETI RETI 2022-12-23178.2.4 8
13、.2.4 中断程序举例中断程序举例【例例5-15-1】单外部中断源示例单外部中断源示例 ORG 0000HSTART:LJMP MAIN ORG 0003H LJMP INTO ORG 0030H MAIN:CLR IT0 ;电平电平 SETB EA SETB EX0 MOV DPTR,#1000H 主程序:主程序:2022-12-2318中断服务程序中断服务程序:ORG 0200H ORG 0200HINT0:PUSH PSW INT0:PUSH PSW PUSH ACC PUSH ACC CLR P3.0 CLR P3.0 ;由;由P3.0P3.0输出输出0 0 NOP NOP NOP N
14、OP SETB P3.0 SETB P3.0 MOV P1,#0FFH MOV P1,#0FFH;置;置P1P1口为输入口为输入 MOV A,P1 MOV A,P1 ;输入数据;输入数据 MOVX DPTR,A MOVX DPTR,A ;存入数据存储器;存入数据存储器 INC DPTR INC DPTR ;修改数据指针,指向下一个单元;修改数据指针,指向下一个单元 POP ACC POP ACC ;恢复现场;恢复现场 POP PSWPOP PSW RETI RETI 2022-12-2319【例例】多外部中断源示例多外部中断源示例 中断服务程序中断服务程序:ORG 0003HORG 0003H
15、 LJMP INSE0 LJMP INSE0 ORG 0013HORG 0013H LJMP INSE1 LJMP INSE1 INSE0:PUSH PSW;XI0INSE0:PUSH PSW;XI0中断服务中断服务 PUSH ACCPUSH ACC POP ACC POP ACC POP PSW POP PSW RETI RETI (转下页转下页)2022-12-2320INSE1:PUSH PSW INSE1:PUSH PSW (接上页接上页)PUSH ACC PUSH ACC JB P1.0,DV1 JB P1.0,DV1;P1.0P1.0为为1 1,转,转XI1XI1中断服务程序中断服
16、务程序 JB P1.1,DV2 JB P1.1,DV2;P1.1P1.1为为1 1,转,转XI2XI2中断服务程序中断服务程序 JB P1.2,DV3 JB P1.2,DV3;P1.2P1.2为为1 1,转,转XI3XI3中断服务程序中断服务程序 JB P1.3,DV4 JB P1.3,DV4;P1.3P1.3为为1 1,转,转XI4XI4中断服务程序中断服务程序INRET:POP ACCINRET:POP ACC POP PSW POP PSW RETI RETI DV1:DV1:;XI1XI1中断服务程序中断服务程序 AJMP INRETAJMP INRET DV4:DV4:;XI4XI4
17、中断服务程序中断服务程序 AJMP INRETAJMP INRET 2022-12-23218.2.5 定时定时/计数器计数器工作原理工作原理定时定时/计数器的结构计数器的结构1 1 定时定时/计数器的结构和工作原理计数器的结构和工作原理 TH1TH1、TL1TL1TH0TH0、TL0TL0TCONTCONTMODTMOD计数脉冲源计数脉冲源2022-12-2323定时定时/计数器的工作原理计数器的工作原理实质是实质是1616位加位加1 1计数器计数器定时器模式时,是对内部定时器模式时,是对内部机器周期机器周期计数。计数值乘以机计数。计数值乘以机器周期就是定时时间器周期就是定时时间 计数器模式
18、时,是对计数器模式时,是对外部事件外部事件计数。脉冲由计数。脉冲由T0T0(P3.4P3.4)或或T1T1(P3.5P3.5)引脚输入。引脚输入。注意注意:(:(若若计数值计数值为为N N,计数初值计数初值为为X X)溢出信号使溢出信号使TF0TF0或或TF1TF1置置1 1,并,并发出中断请求发出中断请求,1616位时有:位时有:N=65536-XN=65536-X,或,或X=65536-NX=65536-N12MHz12MHz晶振时,计数频率低于晶振时,计数频率低于0.5MHz 0.5MHz 2022-12-23248 8.2 2.6 6 定时定时/计数器的控制计数器的控制工作方式寄存器工
19、作方式寄存器TMODTMOD 76543210TMODGATEC/TM1M0GATEC/TM1M0字节地址:字节地址:89HGATEGATE:门控位。:门控位。GATEGATE0 0时,只要时,只要TRxTRx为为1 1,就可启动计,就可启动计数器工作;数器工作;GATAGATA1 1时,定时器的启动还要加上时,定时器的启动还要加上INTxINTx引脚引脚为高电平这一条件。为高电平这一条件。C/TC/T:模式选择位。:模式选择位。清清0 0为定时模式,置为定时模式,置1 1为计数方式。为计数方式。M1M0M1M0:工作方式设置位。可设置四种工作方式。:工作方式设置位。可设置四种工作方式。定时定
20、时/计数器的控制示意图计数器的控制示意图2022-12-2326M1M0M1M0 工作方式工作方式说说 明明0000方式方式0 01313位定时位定时/计数器计数器0101方式方式1 11616位定时位定时/计数器计数器1010方式方式2 28 8位自动重装定时位自动重装定时/计数器计数器1111方式方式3 3T0T0分成两个独立的分成两个独立的8 8位定时位定时/计数器;计数器;T1T1此方式停止计数此方式停止计数注意:注意:TMODTMOD不能进行位寻址不能进行位寻址 2022-12-2327控制寄存器控制寄存器TCONTCON 76543210TCONTF1TR1TF0TR0字节地址:字
21、节地址:88HTFxTFx:TxTx溢出标志位。溢出标志位。响应中断后响应中断后TFxTFx有硬件自动清有硬件自动清0 0。用软件设置用软件设置TFxTFx可产生同硬件置可产生同硬件置1 1或清或清0 0同样的效果。同样的效果。TRxTRx:TxTx运行控制位。运行控制位。置置1 1时开始工作;清时开始工作;清0 0时停止工作。时停止工作。TRxTRx要由软件置要由软件置1 1或清或清0 0(即启动与停止要由软件控制即启动与停止要由软件控制)。)。2022-12-23288 8.2 2.7 7 定时定时/计数器的工作方式计数器的工作方式T0T0、T1T1有有4 4种工作种工作方式方式(0 0、
22、1 1、2 2)。方式方式0 0:1313位方式位方式 2022-12-2329 C/T=1 C/T=1时,则为计数模式,有:时,则为计数模式,有:X=2X=21313-N=8192-N-N=8192-N C/T=0 C/T=0时,则为定时模式,有:时,则为定时模式,有:X=2X=21313-N=8192-N-N=8192-N,N=N=t t/Tcy/Tcy【例例】若计数个数若计数个数N N为为2 2,求计数初值。,求计数初值。公式法计算:公式法计算:X X819281922=8190=1FFEH2=8190=1FFEH 求补法计算:对求补法计算:对0 0000 0000 0010B0 000
23、0 0000 0010B取反加取反加1 1为:为:1 1111 1111 1110B(1 1111 1111 1110B(1FFEH1FFEH)初值计算:初值计算:公式法公式法 求补法求补法:X=X=对对N N求补求补2022-12-2330门控位作用门控位作用当当GATE=0GATE=0时时仅由仅由TR0TR0控制与门的开启。与门输出控制与门的开启。与门输出1 1时,控制开关时,控制开关接通,计数开始;接通,计数开始;当当GATE=1GATE=1时时与门的开启由与门的开启由INT0INT0和和TR0TR0共同控制。这种方式可以用共同控制。这种方式可以用来测量来测量INT0INT0引脚上正脉冲
24、的宽度。引脚上正脉冲的宽度。注意注意:方式:方式0的计数初值高的计数初值高8位和低位和低5位确定麻烦位确定麻烦,实际,实际应用中常由应用中常由16位的方式位的方式1取代。取代。2022-12-2331方式方式1 1:1616位方式位方式 X=2X=21616-N=65536-N -N=65536-N 计数范围:计数范围:1 16553665536 计数初值要计数初值要分成分成2 2个字节个字节分别送入分别送入TH0TH0、TL0TL02022-12-2332【例例】若要求定时器若要求定时器T0T0工作于方式工作于方式1 1,定时时间为,定时时间为1ms1ms,当晶,当晶振为振为6 MHz6 M
25、Hz时,求送入时,求送入TH0TH0和和TL0TL0的计数初值各为多少?应怎的计数初值各为多少?应怎样送入样送入TH0TH0和和TL0TL0?由于晶振为由于晶振为6 MHz6 MHz,所以机器周期,所以机器周期TcyTcy为为2 2S S,因此:,因此:N=t/TcyN=t/Tcy=1=11010-3-3/2/21010-6-6500500X X2 21616-N-N65536-50065536-5006503665036FE0CH FE0CH 也可以利用以下也可以利用以下2 2条指令完成:条指令完成:MOV TL0,#(65536-500)MOV TL0,#(65536-500)MODMOD
展开阅读全文