9机器人伺服电机控制(定时器-计数器)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.软件定时 1.软件定时 2.硬件定时 2.硬件定时
3.可编程内部定时器定时 3.可编程内部定时器定时
任务1:利用51单片机内部定时器/计数器实现延时的程序设计。 任务1 利用51单片机内部定时器/计数器实现延时的程序设计。 51单片机内部定时器
作计数功能时, 作计数功能时,是对外部脉冲 进行计数。 进行计数。外部脉冲通过 二、可编程定时/计数器的特点 可编程定时/ T0(P3.4)和T1(P3.5)两个引脚 T0(P3.4)和T1(P3.5)两个引脚 作定时功能时, 作定时功能时,此时的计数脉冲 输入,当脉冲由1 时有效, 输入,当脉冲由1变0时有效 对于定时/计数器来说, 对于定时/计数器来说,不管是独立的定时器芯片还是单片 , 来自单片机内部, 来自单片机内部,每个机器周期 进行计数器加1操作。 进行计数器加1操作。 产生一个计数脉冲, 产生一个计数脉冲,也就是每个 机内的定时器,大都有以下特点: 机内的定时器,大都有以下特点: 机器周期计数器自动加1 机器周期计数器自动加1。
任务1:利用51单片机内部定时器/计数器实现延时的程序设计。 任务1 利用51单片机内部定时器/计数器实现延时的程序设计。 51单片机内部定时器
方式1 方式1 M1M0=01时,T/C设定为工作方式1,构成16位定时 设定为工作方式1,构成16位定时/ 当M1M0=01时,T/C设定为工作方式1,构成16位定时/计 数器,其中THx作为高8 ,TLx作为低 THx作为高 作为低8 满计数值为65536, 数器,其中THx作为高8位,TLx作为低8位,满计数值为65536, 其余同方式0类似。 其余同方式0类似。
寄存器 名称 寄存器 字节地址
TMOD
GATE C/T T1
M1
M0
GATE C/T T0
M1
M0
89H
GATE:门控制位,用于控制定时器的启动是否受外部中断源信号的影响。 GATE:门控制位,用于控制定时器的启动是否受外部中断源信号的影响。 GATE=0 GATE=0时,软件启动方式,由TCON寄存器中的 TRx=1控制启动。 软件启动方式, TCON寄存器中的 TRx=1控制启动。 GATE=1 双重启动方式,由控制位TRx= TRx=1 共同控制启动, GATE=1时,双重启动方式,由控制位TRx=1和引脚 INTx 共同控制启动,只有 没有外部中断请求信号的情况下 的情况下( ),才允许定 在没有外部中断请求信号的情况下(即外部中断引脚 INTx =1时),才允许定 时器启动。 时器启动。
伺服电机控制程序设计
任务1:利用51单片机内部定时器/计数器实 任务1 利用51单片机内部定时器/ 51单片机内部定时器 现延时的程序设计。 现延时的程序设计。 任务2 完成伺服电机正反转的程序设计。 任务2:完成伺服电机正反转的程序设计。
任务1:利用51单片机内部定时器/计数器实现延时的程序设计。 任务1 利用51单片机内部定时器/计数器实现延时的程序设计。 51单片机内部定时器 一、定时方法 在单片机的控制应用中,可供选择的定时方法有: 在单片机的控制应用中,可供选择的定时方法有: 靠执行一个循环程序来进行时间的延时。 靠执行一个循环程序来进行时间的延时。 不需要外部硬件电路,但占用CPU 定时时间不宜太长。 CPU, 不需要外部硬件电路,但占用CPU,定时时间不宜太长。 使用专门的硬件电路完成较长时间的定时。 使用专门的硬件电路完成较长时间的定时。 功能由硬件电路完成,不占CPU, CPU,但需要通过改变电路参数 功能由硬件电路完成,不占CPU,但需要通过改变电路参数 来调节定时时间,使用不灵活。 来调节定时时间,使用不灵活。 通过对系统机器周期计数来 实现定时。计数值通过程序设定,改变计数值就改变了定 实现定时。计数值通过程序设定, 时时间,方便灵活。 时时间,方便灵活。 MCS-51系列单片机内部有2个16位的定时/计数器T0、T1。 MCS-51系列单片机内部有2 16位的定时/计数器T0、T1。 系列单片机内部有 位的定时 T0 计数方式为加1计数,直到最大值溢出。 计数方式为加1计数,直到最大值溢出。
任务1:利用51单片机内部定时器/计数器实现延时的程序设计。 任务1 利用51单片机内部定时器/计数器实现延时的程序设计。 51单片机内部定时器
当 当
=1时为计数方式; =1时为计数方式; 时为计数方式 =0时为定时方式 时为定时方式. C / T =0时为定时方式. M1、M0:T/C工作方式定义位 工作方式定义位, M1、M0:T/C工作方式定义位,其具体定义方式如 表所示。 表所示。
GATE C/T T1 0 0 0 1 0 0 M1 M0 GATE C/T T0 0 0
TMOD ,#10H
M1 M0
任务1:利用51单片机内部定时器/计数器实现延时的程序设计。 任务1 利用51单片机内部定时器/计数器实现延时的程序设计。 51单片机内部定时器 2、定时器控制寄存器TCON 定时器控制寄存器TCON TCON用于控制定时器T0、T1的启动与停止, TCON用于控制定时器T0、T1的启动与停止,并包含了定 用于控制定时器T0 的启动与停止 时器的状态。 时器的状态。 TCON控制寄存器各位的定义如下 控制寄存器各位的定义如下: TCON控制寄存器各位的定义如下:
你能算出在晶振为 12MHZ的情况下 的情况下, 12MHZ的情况下, 方式0 方式0最长的定时 时间是多少? 时间是多少? 方式0:当M1M0=00时, 在此工作方式下,T/C构成一个13位的 方式0 M1M0=00时 在此工作方式下,T/C构成一个13位的 ,T/C构成一个13 计数器, THx的 位和TLx的低5位组成,TLx的高3位未用, TLx的低 ,TLx的高 计数器,由THx的8位和TLx的低5位组成,TLx的高3位未用,满计 数值为2 13次方 次方。 数值为2的13次方。
(1)定时/计数器有多种工作方式,可以是计数(Counter) (1)定时/计数器有多种工作方式,可以是计数(Counter)方式 定时 计数 也可以是定时 Timer)方式。 定时( 也可以是定时(Timer)方式。 (2)定时/计数器的计数值是可变的 但是对计数的最大值有一定 (2)定时/计数器的计数值是可变的,但是对计数的最大值有一定 定时 计数值是可变 限制,这取决于计数器的位数。 限制,这取决于计数器的位数。计数的最大值也就限制了定时 的最大值。 的最大值。 (3)可以按照规定的定时或计数值, (3)可以按照规定的定时或计数值,在定时时间到或者计数终止 可以按照规定的定时或计数值 发出中断申请 以便实现定时控制。 中断申请, 时,发出中断申请,以便实现定时控制。
任务1:利用51单片机内部定时器/计数器实现延时的程序设计。 任务1 利用51单片机内部定时器/计数器实现延时的程序设计。 51单片机内部定时器 例题:设置T1工作于方式1,定时工作与外部与外部中断引 例题:设置T1工作于方式1 T1工作于方式 脚电平无关,请编程进行设定。 脚电平无关,请编程进行设定。 解: T1工作于方式 工作于方式1 M1=0,M0=1。 (1) T1工作于方式1,则M1=0,M0=1。 (2)因为定时工作与外部引脚电平中断无关,故GATE=0。 因为定时工作与外部引脚电平中断无关, GATE=0。 (3)T0未用,低4位可随意设置,但低两位不可为11 T0未用, 未用 位可随意设置,但低两位不可为11 因为方式3 T1停用 一般可设置为0000 停用) 0000。 (因为方式3时,T1停用)一般可设置为0000。 因此, 因此,高4位应为0001,低4位为0000,指令形式为: 位应为0001, 0001 位为0000,指令形式为: 0000 MOV
D7 TCON TF1 D6 TR1 D5 TF0 D4 TR0 D3 IE1 D2 IT1 D1 IE0 D0 IT0 88H
TF0(TF1 (T1 定时器溢出中断标志位。 (T1 TF0(TF1) : 为 T0(T1) 定时器溢出中断标志位。 当 T0(T1) 计数 TCON中的低 位用于控制外部中断,与定时/计数器无关。 中的低4 TCON中的低4位用于控制外部中断,与定时/计数器无关。 溢出时, 由硬件置位, 并在允许中断的情况下, 溢出时 , 由硬件置位 , 并在允许中断的情况下 , 发出中断请 当系统复位时,TCON的所有位均清 的所有位均清0 当系统复位时,TCON的所有位均清0。 求信号。 CPU响应中断转向中断服务程序时 响应中断转向中断服务程序时, 求信号。当CPU响应中断转向中断服务程序时,由硬件自动 将该位清0 将该位清0。 TCON的字节地址是88H,可以位寻址,溢出清0 的字节地址是88H TCON的字节地址是88H,可以位寻址,溢出清0溢出标志 TR0(TR1):为T0(T1)运行控制位。在GATE=0的情况下, (T1 运行控制位。 GATE=0的情况下, TR位或启动定时器都可以用位操作指令实现。 0(TR1 位或启动定时器都可以用位操作指令实现。 TR0(TR1)=1时启动T (T1 当TR0(TR1)=1时启动T0(T1); TR0(TR1)=0时关闭T0(T1) 。 该位由软件进行设置。 TR0(TR1)=0 时关闭T (T1 该位由软件进行设置。 软件进行设置
任务1:利用51单片机内部定时器/计数器实现延时的程序设计。 任务1 利用51单片机内部定时器/计数器实现延时的程序设计。 51单片机内部定时器
方式2 方式2 M1M0=10时,T/C工作在方式2,构成 个自动重装载的T/C, 工作在方式2,构成1 当M1M0=10时,T/C工作在方式2,构成1个自动重装载的T/C, 满计数值为256 在方式0和方式1 256。 当计数满后, 满计数值为256。在方式0和方式1中,当计数满后,若要进行 下一次定时/计数,需用软件向THx TLx重新置计数初值 THx和 重新置计数初值。 下一次定时/计数,需用软件向THx和TLx重新置计数初值。在 方式2 THx和TLx被当作两个 位计数器,计数过程中,THx 被当作两个8 ,THx寄 方式2中THx和TLx被当作两个8位计数器,计数过程中,THx寄 位初值并保持不变, TLx进行 位计数。计数溢出时, 进行8 存8位初值并保持不变,由TLx进行8位计数。计数溢出时,除 产生溢出中断请求外,还自动将THx中的初值重新装到TLx THx中的初值重新装到TLx中 产生溢出中断请求外,还自动将THx中的初值重新装到TLx中 即重装载。 去,即重装载。 除此之外,方式2也同方式0类似。 除此之外,方式2也同方式0类似。
任务1:利用51单片机内部定时器/计数器实现延时的程序设计。 任务1 利用51单片机内部定时器/计数器实现延时的程序设计。 51单片机内部定时器 三、可编程定时/计数器的原理结构框图 可编程定时/
(P3.3) (P3.2)
T1(P3.5)
T0(P3.4)
T1
溢出 (8DH) TH1 (8BH) TL1 溢出 (8CH) TH0
任务1:利用51单片机内部定时器Leabharlann Baidu计数器实现延时的程序设计。 任务1 利用51单片机内部定时器/计数器实现延时的程序设计。 51单片机内部定时器 3、 定时/ 定时/计数器的工作方式 MCS-51单片机的T/C有 种工作方式,分别由TMOD 单片机的T/C TMOD中的 MCS-51单片机的T/C有4种工作方式,分别由TMOD中的 M1、M0两位的二进制编码所决定 两位的二进制编码所决定。 M1、M0两位的二进制编码所决定。
C /T
C /T
T/C功能选择位 功能选择位, :T/C功能选择位,
TMOD的字节地址为89H,其各位的状态只能通过字节传送 TMOD的字节地址为89H,其各位的状态只能通过字节传送 的字节地址为89H, 指令来设定而不能用位寻址指令改变,复位时各位状态为0 指令来设定而不能用位寻址指令改变,复位时各位状态为0。
方式寄存器
任务1:利用51单片机内部定时器/计数器实现延时的程序设计。 任务1 利用51单片机内部定时器/计数器实现延时的程序设计。 51单片机内部定时器 四、可编程定时/计数器的控制方法 可编程定时/ 1、定时器工作方式寄存器TMOD 定时器工作方式寄存器TMOD 定时器工作方式寄存器TMOD TMOD用于选择定时器的工作方 定时器工作方式寄存器TMOD用于选择定时器的工作方 它的高 位设置定时器T1 T1, 位设置定时器T0 TMOD中 T0。 式,它的高4位设置定时器T1,低4位设置定时器T0。TMOD中 各位的定义如下: 各位的定义如下:
T0
(8AH) TL0
用于控制定时器T0、T1 用于控制定时器T 的启动与停止, 启 的启动与停止 , 并包含 动 CPU 了定时器的状态。 了定时器的状态。
启 动 中断 TCON(88H)
工 用于设置定时/ 用于设置定时/计数 作 器的工作方式 方 工 作 方 式 TMOD(89H) 式
控制寄存器