网站大量收购独家精品文档,联系QQ:2885784924

单片机原理及应用课件6.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 定时器/计数器及应用 6.1 定时器/计数器的结构 6.2 定时器/计数器的工作方式 6.1 定时器/计数器的结构 6.1.1 定时器/计数器的结构 定时器/计数器的结构如图6-1所示。 6.1.2 定时器/计数器的工作方式寄存器TMOD 定时器/计数器是一种可编程部件,在工作之前必须通过软件设定它的工作方式,即对工作方式寄存器TMOD中每位进行设定。下面介绍每位的含义: TMOD(89H) 其中,低4位用于决定T0的工作方式,高4位用于决定T1的工作方式。 1、M1和M0工作方式控制位 M0和M1为工作方式控制位,确定4种工作方式,如表7-1所示。 2、C/T定时器/计数器方式选择位 C/T=0,设置为定时方式,对机器周期进行计数; C/T=1,设定为计数方式,对外部信号进行计数, 外部信号接至T0(P3.4)或T1(P3.5)引脚。 3、GATE门控位 GATE=0时,只要用软件使TR0(或TR1)置1就能启动定时器T0(或T1); GATE=1时,只有在INT0(或INT1)引脚为高电平的情况下,且由软件使TR0(或TR1)置1时,才能启动定时器T0(或T1)工作。 6.1.3 定时器/计数器的控制寄存器TCON 设定好了定时器/计数器的工作方式后,它还不能进入工作状态,必须通过设置控制寄存器TCON中的某些位来启动它工。要使定时器/计数器停止运行,也必须通过设置TCON中的某些位来实现。当定时器/计数器计满溢出,或有外部中断请求时,TCON能标明溢出和中断情况。下面介绍控制寄存器TCON每位的含义: TF1:定时器T1溢出标志位。当定时器T1溢出时,由硬件自动使TF1置1,并向CPU申请中断。CPU响应中断后,自动对TF1清零。TF1也可以用软件清零。 TR1:定时器T 1运行控制位。可由软件置1(或清零)来启动(或关闭)定时器T1,使定时器T1开始计数。用指令SETB TR1(或CLR TR1)使TR1置1(或清零)。 TF0:定时器T0溢出标志位。其功能与TF1相同。 TR0:定时器T0运行控制位。其功能与TR1相同。 IE1:外部中断1请求标志位。 IT1:外部中断1触发方式控制位。 IE0:外部中断0请求标志位。 IT0:外部中断0触发方式控制位。 IE1、IT1、IE0、IT0这4位将在第3节讲述。 控制寄存器TCON的位地址是88H,可以对它进行位寻址。 6.2 定时器/计数器的工作方式 6.2.1 工作方式0 定时器/计数器T0工作在方式0时,16位计数器只用了13位,即TH0的高8位和TL0的低5位,组成一个13位定时器/计数器。 1、工作在定时方式 2、工作在计数方式 【例6-1】利用定时器T0产生定时脉冲。每隔2ms产生宽度为2个机器周期的正脉冲,由P1.0输出此定时序列脉冲信号(设时钟频率为6MHZ)。 解:首先求出定时器T0初值。由于时钟频率为6MHZ,所以,机器周期为2μs。 因为:t=(213-T0初值)? 机器周期 所以,当t=2ms时,则:(213-T0初值)? 2?10-6=2?10-3 解得:T0初值=709611000B,其中将高8B=DDH赋给TH0,低5位11000B=18H赋给TL0。 方法一: 采用查询工作方式,编程如下: ORG 0000H AJMP MAIN ORG 0100H MAIN: CLR P1.0 MOV TMOD , #00H ;设定T0的工作方式 MOV TH0 , #0DDH ;给定时器T0送初值 MOV TL0 , #18H SETB TR0 ;启动T0工作 LOOP: JNB TF0 , $ ;$为当前指令指针地址 CLR TF0 SETB P1.0 ;产生2μs正脉冲 CLR P1.0 MOV TH0 , #0DDH ;重装载TH0和TL0 MOV TL0 , #18H SJMP LOOP END 方法二: 采用中断工作方式,编程如下: ORG 0000H AJMP MAIN ORG 000BH AJMP T0INT ORG 0100H MAIN: CLR P1.0 MOV TH0 , #0DDH ;给定时器T0送初值 MOV TL0 , #18H MOV IE , #82H ;允许T0中断 SETB TR0 ;启动T0 SJMP $ 中断服务程序: ORG 0300H T0INT:SETB P1.0 CLR P1.0 MOV TH

文档评论(0)

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

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

1亿VIP精品文档

相关文档