170 likes | 356 Views
辽宁机电职业技术学院. 项目五 气动仓储机器人自动控制. 制作人:王洪庆 白天明. 项目内容: 自动化立体仓库作为物流过程中的关键单元,在国外已广泛应用。 自动化立体仓库是生产物流的重要组成部分,它是生产过程中的物流中心,通过计算机的智能控制和管理,也成为生产过程的调度中心。. 能力目标: 课题 1 、定时器 / 计数器(一) 课题 2 、定时器 / 计数器(二) 课题 3 :定时器接口应用. 实战演练: 通过实际项目,来掌握单片机定时器 / 计数器的结构和工作原理、工作方式和初始化编程及应用举例。
E N D
辽宁机电职业技术学院 项目五 气动仓储机器人自动控制 制作人:王洪庆 白天明
项目内容: 自动化立体仓库作为物流过程中的关键单元,在国外已广泛应用。 自动化立体仓库是生产物流的重要组成部分,它是生产过程中的物流中心,通过计算机的智能控制和管理,也成为生产过程的调度中心。
能力目标: 课题1、定时器/计数器(一) 课题2、定时器/计数器(二) 课题3:定时器接口应用 实战演练: 通过实际项目,来掌握单片机定时器/计数器的结构和工作原理、工作方式和初始化编程及应用举例。 通过该项目的训练,提高学生的实际动手操作能力,养成学生的工程道德观念,建立工程敬业精神和团队合作精神。
课题1 定时器/计数器(一)
课题内容 1.定时器/计数器概述 2. AT89C51片内定时器结构及工作原理 3.与T/C有关的特殊功能寄存器 4.定时器/计数器的初始化 知识要点: 掌握单片机定时器/计数器的结构和工作原理。 能力训练: 通过实践,来掌握单片机定时器/计数器的 结构和工作原理,为学习工作方式和初始化编程 做准备。 技能操作 1、上机操作掌握定时器调试和运行方法。 2、掌握气动仓储机器人自动控制程序的设计、调试 方法。
一、定时器/计数器概述 实现定时的方法一般有三种: 1.软件定时 即让计算机执行一段程序。这个程序段本身没有其它的执行目的,只是利用执行这个程序段所花费的一个固定时间。通过适当地选择指令和安排循环次数,便可改变执行这段程序所需时间的长短,实现软件定时的调节。但软件定时占用CPU,降低了CPU的利用率。 2.不可编程硬件定时 可以采用例如555集成器件、外接RC来构成定时电路。与软件定时方法相比,其定时过程全由硬件完成。利用改变RC的量值,可以使定时时间在一定范围内调节。但是这种定时电路在硬件连接好以后,定时值就不便改变了。
3.可编程计数器/定时器 它直接对外部脉冲信号或系统时钟脉冲进行计数。当计数达到设定的数值时,发出控制信号表示计数满或定时时间到。外部脉冲(或时钟脉冲)频率和设定数值的改变都能引起计数或定时的变化。所以可编程计数器/定时器的功能强,使用灵活。 单片机的内部都有两个以上的可编程定时器/计数器,为用户使用提供了方便条件。本节以AT89C51单片机为例讲述片内定时器/计数器的编程使用方法。
T1(P3.5) T0(P3.4) MP TH0 TL0 TH0 TL0 TMOD TCON 二、AT89C51片内定时器结构及工作原理 AT89C51内部有两个16位的可编程定时器/计数器,定时器/计数器0(T/C0)和定时器/计数器1(T/C1)。T/C0和T/C1既可以编程为定时器使用,也可以编程为计数器使用。 定时器实际上也是工作在计数方式下,只不过对固定频率的脉冲计数,由于脉冲周期也固定,由计数值可以计算出计数时间,有定时的功能;计数器是对外部输入的非固定频率的脉冲计数,由于脉冲周期无规律,就无法计算时间,只能计数脉冲个数。
AT89C51的T/C是加1计数的。当工作在定时器方式时,对振荡源12分频的脉冲计数,即每个机器周期计数值加1,计数速率=l/12fosc,当fosc=6MHz时,计数速率=500KHz。AT89C51的最高晶振频率fosc为33MHz时,计数速率=7500 KHz。 当T/C工作在计数器方式时,计数脉冲来自外部脉冲输入端T0(P3.4)或T1(P3.5),当T0或T1脚上负跳变时计数值加1。CPU在每个机器周期的S5P2状态采样T0或T1,因此识别该引脚上的负跳变需两个机器周期,即24个振荡周期。所以T0或T1脚输入的可计数的外部脉冲的最高频率为1/24fosc,若高于此频率,将会计数出错。
三、与T/C有关的特殊功能寄存器 1.T0和T1 T0和T1都是16位的计数值寄存器。T0由TH0和TL0构成,TH0和TL0都是SFR,字节地址分别是8CH和8AH,T1由TH1和TL1构成,TH1和TL1也是SFR,字节地址分别是8DH和8BH。由于T0和T1都是16位的,因此T/C0和T/C1的最大计数值为十进制数65536。 2.定时器/计数器控制寄存器TCON TCON是SFR,字节地址为88H,可位寻址。
TR0:T/C0启动控制位。TR0=1,T/C0启动计数;TR0=0, T/C0停止计数。 TF0:T/C0溢出中断标志位。 T0溢出时置TF0=1,此标志可供中断或查询用。当采用中断方式时,转向中断服务程序的同时由硬件清“0”TF0。采用查询方式时,由用户软件清“0”。 TR1:T/C1启动控制位。其意义同TR0。 TF1:T/C1溢出中断标志位。其意义同TF0。
辽宁机电职业技术学院 3.T/C的方式控制寄存器TMOD 方式控制寄存器TMOD用来编程定时器/计数器的工作方式,字节地址为89H。 GATE:门控位 GATE=0时,T/C的启动仅受TR0或TR1的控制。 GATE=1时,T/C的启动受到双重控制。 C/T:计数器、定时器选择位。 C/T=0时,工作于定时方式。 C/T=1时,工作于计数方式。
M1和M0:工作方式选择位 AT89C51的定时器/计数器有4种工作方式,由M1、M0的4种组合状态确定,具体见下表:
四、定时器/计数器的初始化 • 1.初始化步骤 • 在使用AT89C51的定时器/计数器前,应对它进行编程初始化,主要是对TCON和TMOD编程;计算和装载T0和T1计数初值。一般完成以下几个步骤: • 确定T/C的工作方式—编程TMOD; • 计算T0或T1中的计数初值,并装载到T0或T1。 • T/C在中方式工作时,须开CPU中断和源中断—编程IE寄存器。 • 启动定时器/计数器—编程TCON中TR1或TR0位。
2.计数初值的计算 (1)定时器的计数初值 在定时器方式下,T/C是对机器周期脉冲计数的,若fosc=6MHz,一个机器周期为2µS,所以: 方式0 13位定时器最大定时间隔=213×2µS=16.384ms 方式1 16位定时器最大定时间隔=216×2µS=131.072ms 方式2 8位定时器最大定时间隔=28×2µS=512µS 若使T/C1工作在定时器方式1,要求定时1mS,求计数初值。设计数初值为X,则有: (216-X)×2µS=1000µS X=65536-500=65036=1111111000001100B=FE0CH 因此,TH1=FEH,TL1=0CH
(2)计数器的计数初值 在计数器方式下: 方式0 13位计数器的满计数值=213=8192 方式1 16位计数器的满计数值=216=65536 方式2 8位计数器满计数值=28=256 若和T/C1工作在计数器方式2,要求计数10个脉冲的计数初值。设计数初值为X,则有: 28-X=10 X=28-10=246=11110101B=F5H 因此 TH1=TL1=F5H