第6讲 定时器计数器习题.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 6.4.4 门控制位GATEx的应用—测量脉冲宽度 介绍门控制位GATE的具体应用,测量 (P3.3)引脚上正脉冲的宽度。 【例6-7】 门控位GATE1可使T1的启动计数受 的控制,当GATE1?=?1,TR1=1时,只有 INT1*引脚输入高电平时,T1才被允许计数。可测量 引脚 (P3.3)上正脉冲的宽度。其方法如图6-16所示。 * 图6-16 利用GATE位测量正脉冲的宽度 * 参考程序: ORG 0000H RESET: AJMP MAIN ;复位入口转主程序 ORG 0100H ;主程序入口 MAIN: MOV SP,#60H MOV TMOD,#90H ;向TMOD写控制字,T1为方 ;式1定时,GATE1?=?1 MOV TL1,#00H MOV TH1,#00H LOOP0: JB P3.3,LOOP0 ;等待 低 SETB TR1 ;如 为低,启动T1 * * LOOP1:JNB P3.3,LOOP1;等待 升高 LOOP2:JB P3.3,LOOP2 ; 为高, 此时计数器计数, ;等待 降低 CLR TR1 ;停止T1计数 MOV A,TL1 ;T1计数值送A ;将T1计数值送显示器 ? …… END 执行以上程序,使 引脚上出现的正脉冲宽度以机器周期数的形式显示在显示器上。 * 将A中的T1计数值送到显示器显示 * 6.4.5 实时时钟的设计 介绍使用定时器/计数器实现时钟。 1.实现实时时钟的基本思想 最小计时单位是秒,如何获得1s的定时时间呢?从前面介绍知,定时器方式1,最大定时时间也只能131ms。可将定时器的定时时间定为100ms,中断方式进行溢出次数的累计,计满10次,即得秒计时。而计数10次可用循环程序的方法实现。初值的计算如例6-2。 片内RAM规定3个单元为秒、分、时单元: 42H:“秒”单元;41H:“分”单元;40H:“时”单元 * * 从秒到分,从分到时是通过软件累加并比较来实现。要求每满1秒,则“秒”单元42H中的内容加1;“秒”单元满60,则“分”单元41H中的内容加1;“分”单元满60,则“时”单元40H中的内容加1;“时”单元满24,则将42H、41H、40H的内容全部清“0”。 2.程序设计 (1)主程序设计 进行定时器T0初始化,并启动T0,然后反复调用显示子程序,等待100ms中断到来。流程如图6-17所示。 (2)中断服务程序的设计 实现秒、分、时的计时处理。流程如图6-18所示。 * * * 图6-17 时钟主程序流程 * * 图6-18 中断服务程序流程 * 参考程序: ORG 0000H AJMP MAIN ;上电,跳向主程序 ORG 000BH ;T0的中断入口 AJMP IT0P ORG 1000H MAIN: MOV TMOD,#01H ;设T0为方式1 MOV 20H, #0AH ;装入中断次数 CLR A MOV 40H, A ;“时”单元清“0” MOV 41H, A ;“分”单元清“0” MOV 42H, A ;“秒”单元清“0” * * SETB ET0 ;允许T0申请中断 SETB EA ;总中断允许 MOV TH0,#3CH ;给T0装入计数初值 MOV TL0,#0B0H SETB TR0 ;启动T0 HERE: SJMP HERE ;等中断(也可调用显示子程序) IT0P: PUSH PSW ;T0中断子程序入口, 保护现场 PUSH Acc MOV TH0,#3CH ;重新装入初值 MOV TL0,#0B0H DJNZ 20H,RETURN ;1秒时间未到, 返回 MOV 20H,

文档评论(0)

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

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

1亿VIP精品文档

相关文档