第5章 80C51 单片机的中断与定时_第1页
第5章 80C51 单片机的中断与定时_第2页
第5章 80C51 单片机的中断与定时_第3页
第5章 80C51 单片机的中断与定时_第4页
第5章 80C51 单片机的中断与定时_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机基础教程,发表者:李月华、南华大学、单片机基本理论目录第1章计算机基础知识第7章单片机并行I/o口扩展第2章80C51单片机的硬件构成第8章80C51单片机串行通信第3章80C51单片机指令系统第9章单片机串行扩展第4章80C51单片机兰姆设计第10章单片机A/D和D/a转换接口第5章80C51单片机的中断和时序第11章8位单片机的发展第6章单片机并行存储器扩展第11 第5章80C51单片机的中断和时间,5.180C51单片机的中断系统,一,中断概要1,中断源中断源引起正在执行的程序中断,中断服务分为硬中断、软中断. MCS-51单片机的5个中断源:外部中断2 :中断请求信号分别从P3.

2、2、P3.3输入,可以选择低电平有效、脉冲下降有效。 条目地址: 0003H,0013H。 定时/计数溢出中断2个: T0、T1、计数溢出时设定“1”TF0、TF1位,发出内部中断请求。 入口地址: 000BH,001BH。串行中断之一:当一帧的数据被串行接收或发送结束时,发生内部中断请求RI或TI。 入口地址: 0023H。 2 .中断处理过程返回四个阶段:中断请求、中断响应、中断服务、中断。 中断请求:中断源表示中断对应的请求的标志位置“1”,发出请求,由CPU进行询问。 中断响应:在指令的最后周期按优先顺序询问中断标志,在“1”中满足响应条件时进行响应。响应操作:断点的堆栈解除中断标志为

3、off,允许低级别中断的中断入口地址被发送到PC。 实际上对应于中断的主要操作是硬件自动地产生长呼叫指令LCALL。 中断服务:根据入口地址传输中断服务程序,保护现场,执行中断主体,恢复现场。 中断返回:中断点从堆栈中释放的中断可以返回到原始程序中。 3、中断优先级及其嵌套优先级-高优先级、低优先级可通过SFR寄存器IP设定。 中断嵌套原则是高优先级的中断不应该被低优先级的中断中断中断,兄弟的中断不应该互相中断。4、中断控制的特征性中断随机发生,可编程。 通过执行特定功能的程序段可以获得预定目的5、MCS-51中断聚合值,并且通过设定特殊功能寄存器TCON、SCON、IE和IP这四个寄存器来实

4、现中断控制。 1 .中断请求控制(1)定时中断、外部中断请求控制寄存器TCON、字节地址88H、位地址8FH88H、与中断请求有关的各位表示TF1,TF0:T1/T0溢出中断请求标志。 IE1、IE0 :外部中断/请求标志。 IT1、IT0 :外部中断/触发方式定义位,“1”后边缘触发,(2)串行中断请求控制寄存器SCON的串行中断请求通过TI、RI的逻辑“或”得到。 即,无论发送或接收标志,都发生串行中断请求。 字节地址98H、位地址9FH98H、与中断请求有关的各位表示,TI为发送中断,RI为接收中断,“1”的情况下,请求中断,响应后用户软件必须清零。 (3)在取消中断请求的中断响应后,必

5、须立即清除TCON、SCON中的已响应的中断请求标志。 否则会引起中断的重复查询和响应。外部中断请求的取消:边缘触发方式:触发信号消失后,取消自然自动。 关于电平触发方式,有必要通过硬件和软件的组合方法实现取消。 取消定时中断请求:定时中断后,硬件自动清除“0”。 取消串行中断请求:无法自动清除“0”,需要通过软件方式在中断服务子程序中清除“0”。 2 .中断许可控制由SFR寄存器IE设定,分两级进行许可控制。 把EA位作为主控,把各中断源的许可位作为主控。IE字节地址A8H、位地址AFHA8H、中断许可有关的各位在单片机复位之后,由于(IE)=00H,所以整个中断系统处于禁止状态。3 .中断

6、优先级控制由SFR寄存器IP设定,具有两个优先级,相应的位置为“1”,是高优先级。 相应位置为“0”,优先级低。IP字节地址B8H、位地址BFHB8H,与中断许可有关的各位注意: 5个中断许可位都为“1”的情况下,以相同的优先级处理中断、以自然优先级处理,即外部中断0T0外中断,如同全部清零效果一样三、中断应用程序1、中断应用程序的准备,(1)中断初始化设置:定义SP、IP、IE和外部中断触发方式的选择(2)中断服务程序:中断入口、现场保护、中断代理程序、恢复现场。 2 .应用例5-1以P1.0P1.7控制发光二极管,输出两种节日灯,并利用中断P3.2,在两种状态之间进行切换。 分析:主程序中

7、的状态:点亮1灯向左循环,中断程序中的状态:以1秒间隔依次点亮8灯,依次熄灭,循环3次后返回。主流程图(省略),程序如下: ORG0000HLJMPSTARTORG0003H; 中断项目ljmp 0100 horg 0030 h开始: movsp,#60HSETBIT0; 设定下跳有效SETBEX0; 中途SETBEAMOVIP,#01HMOVA,#01HLOOP:MOVP1,ARLALCALLDELAYAJMPLOOP,中断服务程序流程图,中断服务程序: ORG0100HPUSHACCCLRAMOVR0 # 00 h loop1: setbcrlcamovp1alcalldelayjnbac

8、c.7,LOOP1LOOP2:CLRCRLCAMOVP1,ALCALLDELAYJBACC.7,LOOP2INCR0CJNER0,#03H,loop1pop 5.280C51单片机的计时器/计数器,1,计时器/计数器结构1,计时器方式软件延迟通过执行周期而得到延迟,短时间延迟的硬件延迟是硬件电路实现的延迟,是长时间延迟的程序2、MCS-51单片机的定时/计数器16位定时/计数器T0、T1分别由4个8位计数器构成,全部是SFR寄存器。 T0由TH0、TL0构成,字节地址为8CH、8AH; T1由TH1、TL1构成,字节地址为8DH、8BH;MCS-51单片机的计时器结构图3、MCS-51单片机的

9、定时/计数器的功能始终是计数器。 (1)定时功能对芯片内的设备周期进行计数,也就是说,在每个设备周期中产生计数脉冲,并且将计数加1。(2)计数功能对从T0(P3.4),T1(P3.5)端子输入到芯片外的外部脉冲信号进行计数,并将下降沿计数加1。 第二,时序/计数器的控制寄存器具有三个用于时序/计数器的控制寄存器: 1,计时器控制寄存器TCON(88H)SFR寄存器TCON涉及时序控制和中断控制,且4位用于时序控制TR1/TR0:T1/T0运行控制位。 软件设置为“1”后,T1/T0启动。 2、设定计时器动作方式寄存器TMOD(89H)SFR寄存器TMOD用于两个计时器/计数器T1/T0的动作方

10、式设定,各位的含义定义了GATE :栅极位,T1/T0的起动方式,逻辑图: C/:定时/计数功能选择位“0”为计时器用“1”为计数器用。 M1M0:动作模式选择位。 00方式013位计数器01方式116位计数器10方式2初始值自动再加载8位计数器,11方式32个8位计数器由T03、中断许可控制寄存器IE(A8H、计时器/计数器动作方式1、动作方式0M1M0=0013位计数器(当TL0的低位5位计数已满时,直接向TH0进位,当所有13位计数已满时,将TF0设置为“1”。(2)TMOD值:计时器: TMOD=00000000=00H计数器: TMOD=00000100=04H,(3)计数初始值的最

11、大计数值为213=8192T=(213计数初始值)设备周(12/fosc )计数初始值=如动作模式1M1M0=0116位计数器方式1时的电路逻辑结构图所示,计时器,TMOD=01H; 作为计数器,TMOD=05H; T=(216计数初始值)设备周期(12/fosc )计数初始值=216要计数的脉冲数=216T/设备周期,例如,在定时500us,fosc=6MHz的情况下,初始值=216500/2=65536-250=6550 动作模式2M1M0=10自动复位的8位计数器以TL0为计数器,以TH0为预设寄存器。 当计数溢出时,TF0设置为“1”,同时TF0通过硬件将计数初始值自动加载到TL0中。

12、 逻辑结构如图所示:作为计时器,TMOD=02H; 作为计数器,TMOD=06H; 最大计数值为28=256,在fosc=12MHz时方式2的最大额定时间为256us。 定时器用的情况下,定时时间的计算式: T=(28计数初始值)设备周期(12/fosc )计数初始值=28要计数的脉冲数=28T/设备周期例:定时500,fosc=6MHz的情况下,初始值=28500/2=6=06H (1)T0方式3tl0:使用t0固有的控制资源,与方式0、1功能相同。 借th0:t1的TR1、TF1时,只计算芯片上的机械周期脉冲,设为8位计时器。T0方式3的T0,T1电路逻辑结构,如图所示,T0方式3的T0初

13、始值计算,完全在方式2(2)T0方式3的T1T0方式3的情况下,T1也可以用方式0方式2动作。 C/控制位能够使T1通过计时器和计数器方式动作,但由于其TR1、TF1被T0的TH0所占有,所以不能使用计数溢出标志,在计数溢出时只能向串行端口发送输出结果,即,串行端口波雷在T0方式3中的T1方式2中,定时初始值被自动恢复,所以优选用作波特率发生器。 四、已知定时/计数器的应用【例5-2】fosc=6mhz,利用T1定时500us向P1.0端口输出周期为1ms的方波脉冲,并以方式0方式2进行编程。解,解:1)如方波波形图所示,2 )计数初始值:方式0 :计数初始值=213要计数的脉冲数=213T/

14、机器周期=213-500/2=1F06HTH1=F8H,TL1=06H方式1 :计数初始值=21 2=FF06HTH1=FFH TL1=06H方式2 :计数初始值=28要计数的脉冲数=28T/机器周期=28-500/2=06HTH1=TL1=06H3 )定时到达P1.0的反转方法:询问方式、中断方式4 ) 方式0 :采用查询方式程序:流程: ORG0030HSTART:MOVTMOD,#00HMOVTH1 #0f8hmotvtl1,#06HMOVIE,#00HSETBTR1WT:JNBTF1,WTCPLP1.0CLRTF1MOVTH1,# 00 方式1 :中断方式org 0000 hljmst

15、oporg 001 bhj MP 0100 horg 0030 HC start:movt mod,#10HMOVTH1,#0FFHMOVTL1,#06HMOVIE, 采用#88HMOVIP,#00001000BSETBTR1SJMP中断服务程序: ORG0100HCPLP1.0MOVTH1,#0FFHMOVTL1,#06HRETI, 【例5-3】试着设计用软延迟、计时器中断方式、查询方式定时的方法进行编程,控制6个LED灯的程序,设为水晶振动fosc=12MHZ,要求:1)合起来k后L1L6交替点亮1秒,这样循环2 ) 等待下次启动的3 )要求在t0计时器、软件程序延迟两种情况下实现解: (

16、1)硬件电路图和I/O分配,如图所示(2)。 用计时器T0方式1实现的延迟:计时器T0的初始值:计时器时间: tmax=65563525352535253525352525252525352535353535353535353535353535 3535353535353535353535353535353535353535353535353535353535353 获得1S的延迟中断方式:通过T0溢出中断获得50ms的延迟,循环20次,获得1S的延迟:(3)通过软件程序获得org 0000 hljmxmstartorg 0030 HC start:mov P3,#04HMOVA #00HWT:JBP3.2 WTLOOP2:MOVP1,AMOVR7,#10DL3:MOVR6,#200DL2:MOVR5,#125DL1:JNBP3.2,LOOP1DJNZR5,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论