- 1、本文档共69页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机讲义(第六章定时器计数器).ppt
第6章 MCS-51的 定时器/计数器 定时器和计数器两种工作模式 (1)计数器工作模式 (2)定时器工作模式 MCS—5l单片机的定时器/计数器具有4种工作方式(方式0、方式1、方式2和方式3),其控制字均在相应的特殊功能寄存器中,通过对它的特殊功能寄存器的编程,可方便地选择定时器/计数器2种工作模式和4种工作方式。 6.1 定时器/计数器的结构 定时器/计数器T0、T1的逻辑结构 6.1.1 工作方式控制寄存器TMOD TMODE的功能:用于选择定时器/计数器的工作方式和控制模式 格式: (3)M1、M0——计数器的工作方式选择位 M1、M0共有4种编码,对应于4种工作方式的选择,如表6—1所示。 6.1.2 定时器/计数器控制寄存器TCON 功能:用于控制计数器的启、停和计数溢出的标志设置 格式: 6.1.3 定时器/计数器的操作 ●定时器/计数器的方式设定、启停控制等,都通过对特殊功能寄存器TMOD和TCON的操作来完成。 【例】设定T0为方式1的计数方式,并由内部TR0控制启停,其控制字为××××0101B,设 T1为复位状态,故设定控制字为0000 0101B=05H。使用以下指令完成方式设定。 MOV TMOD,#05H 或 MOV 89H,#05H TCON可位寻址操作。对T0的启、停控制通过以下位操作指令完成。 SETB TR0 或 SETB 8CH ;启动T0计数 CLR TR0 或 CLR 8CH ;停止T0计数 6.2 定时器/计数器的工作方式 ●定时器/计数器按计数器的组成不同,分为4种工作方式如右图所示: 6.2.1 方式 0 6.2.2 方式1 6.2.3 方式 2 6.2.4 方式 3 说明: ●方式3是为了增加1个附加的8位定时器/计数器而提供的,从而使MCS-51具有3个定时器/计数器、方式3只适用于定时器/计数器T0,定时器/计数器T1不能工作在方式3。T1处于方式3时相当于TR1=0,停止计数(此时T1可用来作串行口波特率产生器)。 1.工作方式3下的T0 ●当TMOD的低2位为11时,T0的工作方式被选为方式3,各引脚与T0的逻辑关系框图如下图所示。 2. T0工作在方式3下T1的各种工作方式 ●一般情况下,当T1用作串行口的波特率发生器时,T0才工作在方式3。T0处于工作方式3时,T1可定为方式0、方式1和方式2,用来作为串行口的波特率发生器,或不需要中断的场合。 (3)T1工作在方式2 T1的控制字中M1、M0=10时,T1的工作方式为方式 2。 在这种方式下T1是一个8位的定时器/计数器。 (4)T1工作在方式3 T1的控制字中M1、M0=11时,T1停止计数。 6.3 定时器/计数器对输入信号的要求 (1)当被选定为定时器工作模式时 计数输入信号是内部时钟脉冲,每个机器周期产生1个脉冲使计数器增1。因此,定时器/计数器的输入脉冲的周期与机器周期一样,为时钟振荡频率的1/12。当采用12 MHZ频率的晶体时,计数速率为1MHZ,输入脉冲的周期间隔为 lμs。由于定时的精度决定于输入脉冲的周期,因此当需要高分辨率的定时时,应尽量选用频率较高的晶体。 (2)当定时器/计数器用作计数器时 计数脉冲来自相应的外部输入引脚T0或T1。当输入信号产生由1至0的跳变(即负跳变)时,计数器的值增1。每个机器周期的S5P2期间,对外部输入引脚进行采样。如在第一个机器周期中采得的值为1,而在下一个周期中采得的值为0,则在紧跟着的再下一个机器周期S3P1的期间,计数器加1。由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。为了确保某一给定的电平在变化之前能被采样1次,则这一电平至少要保持1个机器周期。 6.4 定时器/计数器的编程和应用 6.4.1 方式1的应用 【例 6-1】假设系统时钟频率采用6 MHz,要在P1.0上输出 1个周期为 2 ms的方波。 将X化为十六进制,即 X=FEOCH=1111 1110 0000 1100B。 所以,T0的初值为: TH0=0FEH TL0=0CH (2)初始化程序设计 初始化程序包括定时器初始化和中断系统初始化,主要是对寄存器IP、IE、TCON、TMOD的相应位进行
文档评论(0)