单片微型计算机原理及接口技术- 课件 15 定时器 .pptx

单片微型计算机原理及接口技术- 课件 15 定时器 .pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

;内容提纲;定时/计数器的应用;;1.定时/计数器的作用;2.定时/计数器的一般结构;STC8H8K64U集成了5个16位的通用定时/计数器T0、T1、T2、T3和T4,分别由两个8位的特殊功能寄存器THn和TLn组成(n=0、1、2、3、4)。

单片机中的微处理器、定时器相关特殊功能寄存器之间的关系框图。;2.定时/计数器的工作模式;T0工作方式0的原理图;;2.定时/计数器的工作模式;定时器T2的原理图;;与定时/计数器相关的特殊功能寄存器有TMOD、TCON、AUXR、INTCLKO、T4T3M。其中,TMOD用于控制定时/计数器的工作方式;TCON用于控制T0、T1的启动和停止,并包含了定时器的状态;AUXR用于设置定时器T0、T1、T2的速度和T2的功能选择和启动/停止控制;T4T3M用于设置T4和T3的功能、速度和启动/停止控制。;2.定时器控制寄存器(TCON);3.辅助寄存器(AUXR)

AUXR主要用来设置T0和T1的速度、T2的功能以及串口UART的波特率控制等。;4.中断与时钟输出控制寄存器(INTCLKO);5.T4/T3控制寄存器(T4T3M);除了上述特殊功能寄存器外,还有各个定时器的重装载寄存器,这些寄存器复位值均为00H,包括:

T0重装值寄存器高字节TH0(地址为8CH)、T0重装值寄存器低字节TL0(地址为8AH)

T1重装值寄存器高字节TH1(地址为8DH)、T1重装值寄存器低字节TL1(地址为8BH)

T2重装值寄存器高字节TH2(地址为D6H)、T2重装值寄存器低字节TL2(地址为D7H)

T3重装值寄存器高字节TH3(地址为D4H)、T3重装值寄存器低字节TL3(地址为D5H)

T4重装值寄存器高字节TH4(地址为D2H)、T4重装值寄存器低字节TL4(地址为D3H)。

定时器T2~T4还另外设置了时钟预分频器,分别为:TM2PS(地址为FEA2H)、TM3PS(地址为FEA3H)和TM4PS(地址为FEA4H)。;下一讲内容;;内容提纲;1.定时/计数器量程的扩展;1.定时/计数器量程的扩展;(2)定时器定时量程的扩展

定时器定时量程的扩展可分为软件扩展和硬件扩展两种方法。

1)软件扩展方法

软件扩展方法是在定时器中断服务程序中对定时器中断请求进行计数,当中断请求的次数达到要求的值时才进行相应的处理。例如,某事件的处理周期为1s,由于受到最大定时时间的限制,无法一次完成定时,此时可以将定时器的定时时间设为以10ms为一个单位,启动定时器后的每一次定时器溢出中断产生10ms的定时,进入中断服务程序后,对定时器的中断次数进行统计,每100次定时器溢出中断进行一次事件的处理,然后再以同样的方式进入下一个周期的事件处理。

2)硬件扩展方法

硬件扩展方法可以使用外接通用定时器芯片对单片机的定时能力进行扩展,如使用定时/计数器芯片8253,也可以利用单片机两个定时器串联起来实现对定时能力进行扩展。具体方法,请读者自行思考。

采用硬件扩展方法时,占用较多的硬件或者CPU资源,因此,在工程应用中通常采用软件扩展的方法。;定时/计数器是一种可编程器部件,在开始工作之前,CPU必须将一些命令(称为控制字)写入定时/计数器。将控制字写入定时/计数器的过程称为定时/计数器初始化。在初始化过程中,要将工作方式控制字写入方式寄存器,赋定时/计数初值,启动或停止定时器。

定时/计数器的应用编程主要有两点:一是能正确初始化,包括写入控制字,进行时间常数的计算并装入;二是中断服务程序的编写,即在中断服务程序中编写实现需要定时完成的任务代码。一般情况下,定时/计数器初始化部分的步骤大致如下:

1)设置工作方式,将控制字写入方式寄存器。

2)把定时/计数初值装入TLn、THn寄存器。

3)置位TRn以启动定时/计数。

4)置位ETn允许定时/计数器中断(如果需要)。

5)置位EA使CPU开放中断。;;;汇编语言程序代码如下:

$INCLUDE(STC8H.INC)

ORG 0000H

LJMP MAIN ;转主程序

ORG 000BH ;T0中断服务程序入口地址

LJMP T0_ISR

ORG 0200H

MAIN:MOV SP,#80H ;设置堆栈指针

MOV P4M1,#0ffH

MOV P4M0,#0ffH

MOV P6M1,#0

MOV P6M0,#0

CLR P40

LCALL TIMER0_INIT ;调用T0初始化子程序

MOV A,#10 ;累加器A置10

SETBET0 ;允外T0中断

SETBEA ;CPU开中断

SJMP

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档