第章定时计数器要点分析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.3.2 定时/计数器模式1的应用 【例5-2】利用T0模式1产生一个50Hz的方波,由P1.0输出。 设系统晶振为12MHZ,则计数频率为1MHZ,计数器初值为X,由 (M-X)T 定时值 (216-X)×10-6 1/(50×2) 得:X 55536 0D8F0H。 高8位0D8H给TH0,低8位0F0H给TL0。 采用查询方式,编程如下: MOV TMOD,#01H ;设置定时器0模式1 SETB TR0 ;启动定时器0 LOOP:MOV TH0,#0D8H ;设置计数初值 MOV TL0,#0F0H JNB TF0,﹩ ;查TF0为0,定时时间未到,等待 CLR TF0 ;TF0为0,定时时间到,软件清TF0 CPL P1.0 SJMP LOOP 5.3.3 定时/计数器模式2的应用 【例5-3】对单相电度表进行用电检测和管理,电度表每运转1圈产生1个脉冲,假设每200圈为1度电,试用T1工作在模式2,对输入脉冲计数。 计数初值:X M-计数值 28-200 56D 38H 采用查询方式,编程如下: MOV TMOD,#60H ;设置T1模式2计数功能 MOV TH1,#38H ;保存计数初值 MOV TL1,#38H ;设置计数初值 SETB TR1 ;启动计数 LP:JBC TF1,LOOP ;查询是否计数溢出 AJMP LP LOOP:INC 50H AJMP LP 5.3.4 定时/计数器门控位GATE的应用 【例5-4】照相机快门打开信号接在INT0 ,使用T0并利用门控位GATE测照相机快门打开时间。 解:此题实际上就是测外部输入脉冲的宽度。外部脉冲由INT0(P3.2)输入,其宽度为TP,如图5-8。T0工作于定时方式,模式1。 测试时,当INT0 0时,TR0 1;当INT0 1时,启动计数;当INT0 0时,停止计数。使TR0 0,读出TH0、TL0的计数值,用计数值乘以定时脉冲周期即得被检测正脉冲的宽度TP。 编程如下: MOV TMOD,#09H ;设T0为模式1,定时方式,GATE 1 MOV TL0,#00H ;设置计数初值为0 MOV TH0,#00H MOV R0,#30H ;地址指针送R0 JB INT0,﹩ ;等待INT0变低 INT0 启动T0 TP T0计时 停止T0计时 读取T0值 图5-8 利用GATE功能来检测脉冲的宽度 SETB TR0 ;准备启动定时器0 JNB INT0,﹩ ;等待INT0变高 JB INT0,﹩ ;变高,启动计数,并等待 INT0再次变低 CLR TR0 ;停止计数 MOV @R0,TL0 ;读取计数值并保存 INC R0 MOV @R0,TH0 ;读取计数值高8位并保存 5.3.5 运行中读定时/计数器 读定时/计数器方法: 先读THX,后读TLX,再读THX,若两次读得的THX没有变化,则读的内容是正确的。若前后两次读得的THX有变化,则再重复读得的内容就应该是正确的了。 看下面一段程序: RDTIME:MOV A,TH0 ;读TH0 MOV R0,TL0 ;读TL0 CJNE A,TH0,RDTIME;比较两次读得的 必要时重复上述过程 MOV R1,A RET 举例: 1、应用T0产生1ms的定时,并使P1.0输出周期为2ms的方波,设晶振为6MHz。(应用模式0) 编程如下: START:MOV TL0,#0CH ;初值写入T0 MOV TH0,#0F0H SETB TR0 LOOP:JBC TF0,PTF0 AJMP LOOP PTF0:MOV TL0,#0CH ;计数初值重装 MOV TH0,#0F0H CPL P1.0 AJMP LOOP 2、应用T0产生1ms的定时,并使P1.0输出周期为2ms的方波,设晶振为6MHz。 (应用模式1) 编程如下: START:MOV TMOD,#01H;置工作方式1 MOV TL0,#0CH ;初值写入T0 MOV TH0,#0FEH SETB TR0 ;允许计数 LOOP:JBC TF0,PTF0 ;溢出否? AJMP LOOP PTF0:MOV TL0,#0CH ;计数初值重装 MOV TH0,#0FEH CPL P1.0 AJMP LOOP 3、 P3.4输入低频负脉冲信号,要求P3.4每次发生负跳变时,P1.0输出一个500μs 的同步脉冲,设晶振为6MHz 。(T0模式2) 设计方法:初态P1.0输出高电平,外部事件计数初值为FFH;P3.4发生负跳变时,T0加1计数溢出;程序查询到TF0为1时,改变T0为500μs定时器工作方式,

文档评论(0)

妈妈王子 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档