好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单片机应用-任益芳第5章.ppt

74页
  • 卖家[上传人]:E****
  • 文档编号:89108704
  • 上传时间:2019-05-18
  • 文档格式:PPT
  • 文档大小:960KB
  • / 74 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 单片机应用,第五章 定时与中断系统,MCS-51系列单片机至少有两个定时器/计数器和多个中断源定时器/计数器和中断系统是计算机的重要组成部分在检测、控制以及智能仪器等领域时,常常需要用单片机的定时器/计数器实现定时或延时控制或对外界事件进行计数;实时控制、故障自动处理往往采用中断系统,计算机与外围设备间传送数据及实现人机联系也常采用中断方式本章将通过实例介绍定时器/计数器和中断的基本概念及其实际应用课程描述:,第五章 定时与中断系统,,▲ 理解定时器/计数器的结构和工作原理 ▲ 理解中断系统的结构和工作原理 ▲ 掌握定时与中断的编程方法 ▲ 用定时器/计数器编写程序 ▲ 熟练编写中断服务程序,知识点及技能点,实训任务五 控制信号灯 5.1 定时器/计数器 5.2 中断系统 重点和难点 讨论 本章小结 作业及练习,主要内容,实训任务五 控制信号灯 1.实训目的 (1)用单片机定时与中断方式,实现对信号灯的复杂控制 (2)通过调试定时器程序,学会定时器方式1的使用 (3)通过调试中断程序,掌握中断的基本概念 2.实训器材 (1) 实训设备:单片机开发系统、实训电路板l套 (2) 实训电路:实训任务5 电路图,第五章 定时与中断系统,实训任务五 电路图,第五章 定时与中断系统,LED_PORT EQU P1 ORG 0000H LJMP START ORG 0100H START: CLR EA MOV SP,#0DFH MOV R2,#07H MOV A,#0FEH NEXT: MOV LED_PORT,A LCALL DELAY RL A DJNZ R2,NEXT MOV R2,#07H,第五章 定时与中断系统,NEXT1: MOV LED_PORT,A RR A LCALL DELAY DJNZ R2,NEXT1 SJMP START DELAY: MOV R3,#14H ;置50ms计数循环初值 MOV TMOD,#10H ;设置定时器1为方式1 MOV TH1,#3CH MOV TL1,#0B0H ;置定时器初值 SETB TR1 ;启动定时器1 LP1: JBC TF1,LP2 SJMP LP1,第五章 定时与中断系统,LP2: MOV TH1,#3CH ;重新置定时器初值 MOV TL1,0B0H DJNZ R3,LP1 ;未到1s继续循环 RET END,第五章 定时与中断系统,程序流程图:,【程序2】定时器中断方式 (1) 要求及方法:信号灯循环显示,时间间隔为1 s。

      用定时器中断方式编制1 s的延时程序,实现信号灯的控制采用定时器l中断定时50 ms,用R3做50 ms计数单元,在此基础上再用08H位作1 s计数溢出标志,主程序从0100H开始,中断服务程序名为CONT 源程序设计如下:,第五章 定时与中断系统,TIME_FLAG EQU 08H LED_PORT EQU P1 ORG 0000H LJMP START ORG 001BH ;定时器1中断入口 LJMP CONT ;指向中断服务程序 ORG 0100H START: CLR EA MOV SP,#0DFH MOV TMOD,#10H ;设置定时器1为方式1 MOV TH1,#3CH MOV TL1,#0B0H ;置定时器初值,第五章 定时与中断系统,SETB EA ;CPU开中断 SETB ET1 ;定时器1开中断 SETB TR1 ;启动定时器1 CLR TIME_FLAG ;清1s计满标志位 MOV R3,#14H ;置50ms计数循环初 DISP: MOV R2,#07H MOV A,#0FEH NEXT: MOV LED_PORT,A JNB TIME_FLAG,$ ;查询1s时间到否 CLR TIME_FLAG ;清标志位 RL A DJNZ R2,NEXT MOV R2,#07H,第五章 定时与中断系统,NEXT1: MOV LED_PORT,A JNB TIME_FLAG,$ CLR TIME_FLAG RR A DJNZ R2,NEXT1 SJMP DISP CONT: MOV TH1,#3CH MOV TL1,#0B0H ;置50ms计数循环初值 DJNZ R3,EXIT ;判断1s时间到否 MOV R3,#14H SETB TIME_FLAG ;标志位置1 EXIT: RETI END,第五章 定时与中断系统,程序流程图:,4. 实训总结与分析 (1) 实训程序1和实训程序2相比,硬件电路一致,效果一样,都采用定时器定时,但二者实现方法不同。

      前者采用查询工作方式,在l s定时程序期间一直占用CPU;后者采用中断工作方式,在1 s定时程序期间CPIJ可处理其它指令,从而充分发挥定时器/计数器的功能,大大提高CPU的效率 (2) 实训程序1和实训任务4相比,硬件电路一致,效果一样,但二者软件的编制方法不同后者采用软件定时,对循环体内指令机器周期数进行计数;前者采用定时器定时,用加法计数器直接对机器周期进行计数二者工作机理不同,置初值方式也不同,相比之下定时器定时无论是方便程度还是精确程度都高于软件定时第五章 定时与中断系统,5.1 定时器/计数器,5.1.1 定时器/计数器的结构 1.定时器/计数器组成框图 逻辑结构如图5.1所示2.定时器/计数器工作原理 3.定时器/计数器的方式寄存器和控制寄存器,5.1 定时器/计数器,5.1.2 定时器/计数器的工作方式 通过对TMOD寄存器中M0、M1位进行设置,可选择4种工作方式 1.方式0 方式0构成一个13位定时器/计数器图5.2是定时器0在方式0时的逻辑电路结构,定时器1的结构和操作与定时器0完全相同5.1 定时器/计数器,图5.2 定时器0(或定时器1)在方式0时的逻辑电路结构图,实例5.1 用定时器1,方式0实现实训5步骤1)中1 s的延时。

      解:因方式0采用13位计数器,其最大定时时间为:8192×1 s = 8.192 ms,因此,定时时间不可能像实训5步骤1)一样选择50ms,可选择定时时间为5章ms,再循环200次定时时间选定后,再确定计数值为5000,则定时器1的初值为 X = M 计数值= 8192  5000 = 3192 = C78H = 0110001111000B 因13位计数器中TL1的高3位未用,应填写0,TH1占高8位,所以,X的实际填写值应为,5.1 定时器/计数器,X = 0110001100011000B = 6318H 即:TH1 = 63H,TL1 = 18H,又因采用方式0定时,故TMOD = 00H 可编得 1s 延时子程序如下: DELAY:MOV R3,#200 ;置5 ms计数循环初值 MOV TMOD,#00H ;设定时器1为方式0 MOV TH1,#63H ;置定时器初值 MOV TL1,#18H SETB TR1 ;启动T1,5.1 定时器/计数器,LP1: JBC TF1,LP2 ;查询计数溢出 SJMP LP1 ;未到5 ms继续计数 LP2: MOV TH1,#63H ;重新置定时器初值 MOV TL1,#18H DJNZ R3,LP1 ;未到1 s继续循环 RET ;返回主程序,5.1 定时器/计数器,2.方式1 定时器工作于方式1时,其逻辑结构图如图5.3所示。

      5.1 定时器/计数器,图5.3 定时器0(或定时器1)在方式1时的逻辑结构图,3.方式2 定时器/计数器工作于方式2时,其逻辑结构图如图5.4所示5.1 定时器/计数器,图5.4 定时器0(或定时器1)方式2时的逻辑结构图,实例5.2 试用定时器1,方式2实现实训5步骤1)中1 s的 延时 解:因方式2是8位计数器,其最大定时时间为:256×1 s = 256 s,为实现1 s延时,可选择定时时间为250 s,再循环4000次定时时间选定后,可确定计数值为250,则定时器1的初值为:X = M 计数值=256  250 = 6 = 6H采用定时器1,方式2工作,因此,TMOD =20H 可编得1 s延时子程序如下: DELAY:MOV R5,#28H ;置25 ms计数循环初值,5.1 定时器/计数器,MOV R6,#64H ;置250 s计数循环初值 MOV TMOD,#20H ;置定时器1为方式2 MOV TH1,#06H ;置定时器初值 MOV TL1,#06H SETB TR1 ;启动定时器 LP1:JBC TF1,LP2 ;查询计数溢出 SJMP LP1 ;无溢出则继续计数 LP2:DJNZ R6,LP1 ;未到25 ms继续循环 MOV R6,#64H DJNZ R5,LP1 ;未到1 s继续循环 RET,5.1 定时器/计数器,4.方式3 定时器/计数器工作于方式3时,其逻辑结构图如图5.5所示。

      图5.5 方式3时的逻辑结构,5.1 定时器/计数器,在方式3中,定时器0被分解成两个独立的8位计数器TL0和TH0其中,TL0占用原定时器0的控制位、引脚和中断源,即、GATE、TR0、TF0和T0(P3.4)引脚、(P3.2)引脚除计数位数不同于方式0、方式1外,其功能、操作与方式0、方式1完全相同,可定时亦可计数TH0占用原定时器1的控制位TF1和TR1,同时还占用了定时器1的中断源,其启动和关闭仅受TR1置1或清0控制TH0只能对机器周期进行计数,因此,TH0只能用作简单的内部定时,不能用作对外部脉冲进行计数,是定时器0附加的一个8位定时器二者的定时时间分别为,5.1 定时器/计数器,,TH0,TH0,方式3时,定时器1仍可设置为方式0、方式1或方式2但由于TR1、TF1及T1的中断源已被定时器0占用,此时,定时器1仅由控制位切换其定时或计数功能,当计数器计满溢出时,只能将输出送往串行口在这种情况下,定时器1一般用作串行口波特率发生器或不需要中断的场合因定时器1的TR1被占用,因此其启动和关闭较为特殊,当设置好工作方式时,定时器1即自动开始运行若要停止操作,只需送入一个设置定时器1为方式3的方式字即可。

      5.1 定时器/计数器,实例5.3 用定时器0方式3实现实训5步骤1)中1具s的延时 解:根据题意,定时器0中的TH0只能为定时器,定时时间可设为250 s;TL0设置为计数器,计数值可设为200TH0计满溢出后,用软件复位的方法使T0(P3.4)引脚产生负跳变,TH0每溢出一次,T0引脚便产生一个负跳变,TL0便计数一次TL0计满溢出时,延时时间应为50ms,循环20次便可得到1 s的延时 由上述分析可知,TH0计数初值为 X =(256  250)= 6 = 06H TL0 计数初值为 X =(256  200)= 56 = 38H TMOD = 00000111B = 07H,5.1 定时器/计数器,可编得1 s延时子程序如下: DELAY:MOV R3,#14H ;置100 ms计数循环初值 MOV TMOD,#07H ;置定时器0为方式3计数 MOV TH0,#06H ;置TH0初值 MOV TL0,#38H ;置TL0初值 SETB TR0 ;启动TL0 SETB TR1 ;启动TH0 LP1: JBC TF1,LP2 ;查询TH0计数溢出 SJMP LP1 ;未到500 s继续计数,5.1 定时器/计数器,LP2:MOV TH0,#06H ;重置TH0初值 CLR P3.4 ;T0引脚产生负跳变 NOP ;负跳变持续 NOP SETB P3.4 ;T0引脚恢复高电平 JBC TF0,LP3 ;查询TH0计数溢出 SJMP L。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.