DPJ内部定时器..ppt

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

* 6 定时器/计数器 定时器/计数器的组成核心:一个16位的加1计数器 提供给这个加1计数器实现加1功能的脉冲信号有两个来源: (1)由单片机时钟电路12分频之后产生的脉冲(即每个机器周期产生1个脉冲),对该(单片机内部的)脉冲计数,称作定时器; (2) 外部事件的脉冲,由外部引脚T1、T2引入,对外部脉冲计数, 称作计数器; 实际上,定时器、计数器本身是同一个电路模块,“定时”还是“计数”只不过是对不同计数对象时的不同名称而已,对内计数-定时器,对外计数-计数器。 80C51包含有两个16位的定时器/计数器:T0和T1。 定时器/计数器的工作方式(定时器or计数器)、工作模式(模式0、模式1、模式2、模式3)、启动/关闭、计数初值的设置都可以通过编程的方式实现。 相关特殊功能寄存器:THx、TLx、TMOD和TCON。 (1)THx、TLx寄存器:存放计数初始值。对应SFR区的8AH~8DH单元。 例如,设置T0的计数初值为2FA3H。 MOV TH0,#2FH MOV TL0,#0A3H 计数过程:当T0启动后,从初值2FA3H开始计数至最大值FFFFH后溢出为0,算一次计数过程,溢出时会对TF0置位。 (2)TCON(Timer Control 定时/计数器控制寄存器) 对应到SFR区的88H单元。 功能:显示定时器溢出与否、启动/关闭、外部中断方式控制、外部中断标志位等,直接与定时/计数器有直接关系的只有高4位(后面再介绍)。TCON的格式: TRx:定时/计数器的启动/关闭。置1,启动;清0,关闭。 TFx:定时/计数器的溢出标志。计数溢出后,TFx被硬件置1。 TR0 TF0 TR1 TF1 TCON的格式: 例如: (1)启动T0:SETB TR0 (2)判断T0计数是否完成:JNB TF0,$ (3)关闭T0:CLR TR0 TR0 TF0 TR1 TF1 (3)TMOD(Timer Mode定时器/计数器模式寄存器) 对应到SFR区的89H单元。 TMOD共8位,高4位控制T1,低4位控制T0。 各位的具体含义: M1M0:工作模式选择位。四种模式:00、01、10、11,分别是模式0~模式3。 C/T:定时/计数器选择位。为0,作定时器用;为1,作计数器用。 GATE:门控制位。为0,软件启动或关闭定时器/计数器(SETB/CLR);为1,硬件启动或关闭定时/计数器。 M0 M1 C/T GATE M0 M1 C/T GATE 例如,设置T0、T1的门控位为0,都工作在定时器方式下的模式2。 MOV TMOD,#0010 0010B M0 M1 C/T GATE M0 M1 C/T GATE TMOD的格式: 定时/计数器共有4种工作模式(模式0~模式3),其区别在于:计数位数(或范围)不同、能否自动装载计数初始值等。 模式0、模式1相似,先介绍模式1: 1、模式1(一个16位定时/计数器) (1)计数初值放到THx、TLx中,两个8位寄存器加起来就是16位。 (2)计数的最大值为FFFFH,即定时最长时间:65.536ms(12MHz晶振),131ms(6MHz晶振)。 (3)计数过程:从初值开始计数一直到FFFFH,然后溢出返回到0,算一次计数,将溢出标志TFx置位。 (4)不会自动装载初值。需要重复计数时,就必须重新装载计数初始值,并将TFx清0。 振荡器 ?12 TLx THx (8位) (8位) TFx 申请中断 Tx端 TRx位 GATE位 INTx端 ≥1 C/T=0 C/T=1 控制 =1开关接通 或门 与门 定时/计数器T0方式1控制逻辑 例如,假设晶振频率12MHz,模式1下T0的计数初始值为D8F0H(55536)。从T0启动到溢出需要多长时间? 分析:计数过程:从初值D8F0H开始直至 FFFFH后溢出。 因此,计数次数65535-55536+1(溢出,即从FFFFH到0,算1次)=65536-55536=10000 。 每个机器周期(1μs)计数一次,因此共计1000×1μs=10ms。 例如,晶振频率12MHz,若要实现500μs的延时,模式1下T0的初始值? 分析: 500μs/ 1μs=500,延时500μs需共计500个脉冲,因此初始值为 65536-500=65036(FE0CH),TH0=0FEH,TL0=0CH。 程序实现:MOV TH0,#0FEH MOV TH1,#0CH 例如,设计一个占空比50%的方波信号发生器,要求从P1.0口输出频率为2kHz的方波。 分析:(1)若选择定时器T1。 (2)设置工

文档评论(0)

文档资料 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档