t2自装载时钟.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
t2自装载时钟

;本程序AHSHMJ编写,完全是自己的思路,除按键部分外,其余都与众不同,语句简洁,计时精确。2009年02月10日写到89S52运行正常 ;本程序AHSHMJ编写,2009年02月10日写到89S52运行正常 $NOMOD51 #include reg52.inc ORG 0000H JMP MAIN ORG 000BH JMP T0Z ORG 002BH JMP AD ;定时/计数器T2中断服务程序入口地址 ORG 0030H ;-----主程序开始----- MAIN: MOV SP, #0DFH ;将0E0H-0FFH,共计32字节作为堆栈区 ;---复位后,08H-0FF内部RAM单元清0。因如果非上电复位,RAM不一定清0 MOV R0, #08H LOOP1: MOV @R0, #0 INC R0 CJNE R0, #0, LOOP1 ;----初始化定时器T1 MOV TMOD,#01H ;初始化定时器 MOV TH0,#(65536-2000) / 256;装入初值,2000uM MOV TL0,#(65536-2000) MOD 256 ;----初始化定时器T2 MOV TH2, #(65536-50000)/256 MOV TL2, #(65536-50000) mod 256 ;初值0DC00H送定时器T2 MOV RCAP2H, #(65536-50000)/256 MOV RCAP2L, #(65536-50000) mod 256 ;初始化重装初值 MOV T2CON, #04H ;初始化T2工作方式(自动重装初值、定时) 并启动T2 ;-----初始化中断控制器 SETB ET2 ;允许定时器T2中断 SETB PT2 ;设置T2高优先级 CLR PT0 ;T0强制设低优先 SETB TR0 ;T0启动 SETB ET0 ;开T0中断 SETB EA ;开总中断 MOV R0, #20 MOV R1, #60 ;秒数 MOV R2, #60 ;分数 MOV R3, #17 ;开机时显示7:00:00 SJMP WT ;-----定时/计数器T2中断服务程序 T0Z: MOV TH0,#(65536-2000) / 256;重装初值,2000uM MOV TL0,#(65536-2000) MOD 256 PUSH PSW PUSH ACC MOV R4, #8 ;显示8位数,从小时数开始到秒个位 MOV A, #24 ;小时数送A(显示扫描从小时往秒方向) SUBB A, R3 ;显示小时。下面的程序R3 是减,所以这里倒 ;换一下,以便显示。 CALL DISP ;调显示子程序 MOV A, #60 ;显示分 SUBB A, R2 CALL DISP MOV A, #60 ;显示秒 SUBB A, R1 CALL DISP MOV P1,#0A0H ;关闭秒个位显示,否则下次中断前

文档评论(0)

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

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

1亿VIP精品文档

相关文档