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

微机原理与应用:第三十二讲 定时器-计数器的应用下.ppt

微机原理与应用:第三十二讲 定时器-计数器的应用下.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三十二讲 定时器/计数器的应用(下) * 例6-10 若有某51系列的单片机应用系统,利用T1工作在模式1计数器方式,编一个程序使得T1计数器每计满1000个信号,向CPU申请中断,请求把外部数据存储器2300H单元的内容读入至内部数据存储器40H单元。 解: 由例6-5可知,T1计数器计满1000个信号向CPU申请中断,T1 需要设置初值FC18H。 根据题意,程序编制如下: ORG 0000H LJMP MAIN ORG 001BH; T0中断入口。 LJMP INT_T1; 转入中断服务子程序。 ORG 0100H * 例6-10续 MAIN: MOV SP, #60H; 设置堆栈。 MOV TMOD, #50H; 将T1设置为模式1计数器方式。 MOV TH1, #0FCH; 设置计数器初值。 MOV TL1, #18H; 设置计数器初值。 SETB EA; 中断系统开放。 SETB ET1; 开放T1中断源。 SETB TR1; 启动计数器工作。 ?; 执行其他程序。 * 例6-10续 ORG 1000H; INT_T1: PUSH PSW; 保护现场。 PUSH ACC; 保护现场。 PUSH DPH; 保护现场。 PUSH DPL; 保护现场。 MOV TH1, #0FCH; 重装计数器初值。 ORL TL1, #18H; 重装计数器初值。 MOV DPTR, #2300H;设置外部数据存储器指针。 MOVX A, @DPTR; 从外部数据存储器取数。 MOV 40H, A; 将数据存放在内部数据存储器中。 POP DPL; 恢复现场。 POP DPH; 恢复现场。 POP ACC; 恢复现场。 POP PSW; 恢复现场。 RETI; END; * 例6-13 当T0(P3.4)引脚上出现一个负脉冲信号时,就从P1.0线上输出一个周期为1ms的方波。设系统时钟频率为6MHZ。 * 500μs 例6-13续 解: 1)设计思路 为了捕获P3.4线上的负脉冲信号,将T0定义在方式1计数器模式,对外部输入的信号进行计数,并将初值设置在FFFFH。这样,当T0计到1个脉冲,就产生计数满中断信号。 为了在P1.0线上产生周期为1ms的方波信号,将T1定义在方式2定时器模式,产生500μs的定时中断信号,在其中断服务子程序中翻转P1.0线上的状态,从而产生周期为1ms的方波信号。 * 例6-13续一 2)计算T1的初值 * 例6-13续二 3)程序设计 ORG 0000H START: LJMP MAIN ORG 000BH LJMP IT0P ORG 001BH LJMP IT1P ORG 0100H MAIN: MOV SP, #60H MOV TMOD, #25H MOV TL0, #0FFH MOV TH0, #0FFH SETB TR0 SETB ET0 MOV TL1, #6 MOV TH1, #6 SETB EA SETB ET1 HERE: SJMP HERE ;以下是中断服务子程序 IT0P: CLR TR0 SETB TR1 RETI IT1P: CPL P1.0 RETI * 例6-14 一个定时器的定时时间有限,如何实现两个定时器联合起来定时呢? 解: 1)设计思想 用一个CTC工作在方式1定时模式,产生一个定时信号,其时间为 t1,由此信号在P1.0线上产生方波,周期为2 t1。 用另一个CTC工作在方式1计数模式,对P1.0线上的方波信号进行计数,根据定时需要,设置计数器初值a。 * 例6-14续一 若系统时钟频率为12MHZ,则在P1.0线上方波信号的周期最长为2×65536μs=131.072ms。 这样另一个CTC对此信号进行计数,最多可以计65536个,由此定下的时间最长可以为 Tmax=65536 × 131.072ms=8589934.592ms Tmax≈143分 * 例6-15 若需要每隔4秒将外部数据存储器2000H单元的内容送到内部数据存储器30H单元。试编制该程序。设单片机的系统时钟频率为12Mhz 解: 1)设计思想 将T0设置在方式1定时模式,产生一个50ms定时信号,由此信号在P1.0线上产生方波,周期为100ms。 将T1设置在方式2计数模式,对P1.0线上的方波信号进行计数,根据定时需要,设置计数器初值256-40=216。 * 例6-15续一 2)程序如下 ORG 0000H LJMP MAIN ORG 000BH LJMP 7000H ORG 001BH LJMP 9000H ORG 0100H MAIN

文档评论(0)

学习让人进步 + 关注
实名认证
内容提供者

活到老,学到老!知识无价!

1亿VIP精品文档

相关文档