定时器计数器应用—音乐门铃制作(汇编语言).pptVIP

定时器计数器应用—音乐门铃制作(汇编语言).ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 2.定时/计数器应用 例 设系统振荡频率为12MHz,编程在P1.0上输出一个周期为2ms的方波。 方波的周期用T0来确定,让T0每隔1ms计数溢出1次(每1ms产生一次中断),CPU响应中断后,在中断服务程序中对P1.0取反。 即要使P1.0每隔1ms取反一次。 * 第一步: 确定工作方式 方式0 (13位)最长可定时 8.192ms; 方式1 (16位)最长可定时 65.536ms; 方式2 (8位)最长可定时 256?s。 T0为方式0, ? M1M0=00 定时工作状态, ? C/T=0 GATE=0,不受INT0控制, T1不用全部取“0”值。 故TMOD=00H * 第二步: 计算1ms定时的初值X 设初值为X,则有: (213-X) ×12×10-6 ×1/12=1×10-3 可求得:X=8192-1000=7192 X化为16进制, 即X=1C18H=1,1100,000 1,1000B。 所以,T0的初值为: TH0=E0H TL0=18H TH0 1 1 1 0 0 0 0 0 TL0 × × × 1 1 0 0 0 第三步: 程序初始化 * 中断服务程序 主程序 第四步:程序设计 对各个寄存器相应位进行正确设置,将计数初值送入定时器中。 中断服务程序除产生方波外,还要注意将计数初值重新装入定时器中,为下一次中断作准备。 ORG 0000H RESET: AJMP MAIN ;转主程序 ORG 000BH ;T0的中断入口 AJMP IT0P ;转T0中断处理程序IT0P ORG 0100H MAIN: MOV SP,#60H ;设堆栈指针 MOV TMOD,#00H ;设置T0为方式1 ACALL PT0M0 ;调用子程序PT0M0 HERE: AJMP HERE ;自身跳转 ACALL PT0M0 ;调用子程序PT0M0 HERE: AJMP HERE ;自身跳转 PT0M0: MOV TL0,#18H ;T0置初值 MOV TH0,#0E0H SETB TR0 ;启动T0 SETB ET0 ;允许T0中断 SETB EA ;CPU开中断 RET ITOP: MOV TL0,#18H ;T0中断服务子程序,T0置初值 MOV TH0,#0E0H CPL P1.0 ;P1.0的状态取反 RETI 本题还可以采用查询方式编程 ORG 0100H MAIN: MOV TMOD, #00H ;设置T0为方式0 MOV TL0, #18H ;送计数初值 MOV TH0, #0E0H ;送计数初值 SETB TR0 ;启动T0 LOOP: JBC TF0, NEXT ;查询定时时间到,转NEXT,同时清TF0 SJMP LOOP ;重复循环 NEXT: MOV TL0, #18H ;T0重置初值 MOV TH0, #0E0H ;T0重置初值 CPL P1.0 ;P1.0的状态取反 SJMP LOOP ;重复循环 END * 查询法更简便,但占用CPU 例 将上一例题中的输出方波周期改为1秒。 分析: 周期为1s的方波要求500ms的定时。 (1) T0工作方式的确定 因定时时间较长,采用哪一种工作方式?由各种工作方式的特性,可计算出: 方式0 (13位)最长可定时 8.192ms; 方式1 (16位)最长可定时 65.536ms; 方式2 (8位)最长可定时 256?s。 所以采用定时器定时加软件计数的方法来实现延长定时。 选方式1,定时50ms,循环10次。 50ms ×10=500ms。 所以,TMOD=01H * 以上各方式 都不满足要求 (2) 计算计数初值 因为: (216-X)×12×10-6 ×1/12=50×

文档评论(0)

kfcel5460 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档