AT-C-制电子钟时钟源程序_第1页
AT-C-制电子钟时钟源程序_第2页
AT-C-制电子钟时钟源程序_第3页
AT-C-制电子钟时钟源程序_第4页
AT-C-制电子钟时钟源程序_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AT89C2051 AT89C2051时钟程 ;T0、T150MS,T0为秒计数用,T1;P3.7为调整按钮,P1 中断入口程 ORG0000H START;跳到标号START执ORG0003H ;外中断0中断程序入口 ;外中断0中断返回ORG000BH ;定时器T0中断程序入口 INTT0;跳至INTTO执行ORG0013H ;外中断1中断程序入口 ;外中断1中断返回ORG001BH ;定时器T1中断程序入口 INTT1;跳至INTT1执行ORG0023H 主程 START:MOVR0,#70H ;清70H-7AH共11个内存单元MOVR7,#0BH CLEARDISP:MOV@R0,#00H INCR0 DJNZR7,CLEARDISPMOV ;20H(标志用MOV ;放入"熄灭符" ;T0、T116MOVTL0,#0B0H ;50MS定时初值(T0计时用)MOVTH0,#3CH ;50MS定时初值MOVTL1,#0B0H ;50MS定时初值(T1闪烁定时用)MOVTH1,#3CH ;50MS定时初值SETBEA SETBET0 ;允许T0中断SETB ;T0MOVR4,#14H ;1秒定时用初值(50MS×20)START1:LCALLDISPLAY P3.7,SETMM1;P3.7口为0时转时间调整程序SJMPSTART1 ;P3.7口为1时跳回START1 LJMPSETMM; 1秒计时程 ;T0INTT0:PUSHACC PUSHPSW CLRET0 ;关T0中断允许CLR MOVA,#0B7H ADDA,TL0 ;低8位初值修正MOVTL0,A ;重装初值(低8位修正值)MOVA,#3CH ;高8位初值修正ADDC MOVTH0,A ;重装初值(高8位修正值)SETBTR0 ;开启定时器T0DJNZR4, ;20ADDSS:MOV ;20次中断到(1秒)重赋初值 ACALLADD1 ;调用加1程序(加1秒操作)MOVA,R3 ;秒数据放入A(R3为2位十进制数组合) CJNE ADDMM: ;60ACALLCLR0 ;大于或等于60秒时对秒计时单元清0 ACALLADD1 ;分计时单元加1分钟 CLRC CJNE ADDHH:JC ;小于60分时中断退出ACALLCLR0 ;大于或等于60分时分计时单元清0 ACALLADD1 ;小时计时单元加1小时MOVA,R3 CLRC CJNEA,#24H,HOUR HOURJC ;24ACALLCLR0 ;大于或等于24小时小时计时单元清0OUTT0:MOV72H,76H MOV73H,77H MOV74H,78H MOV POPACC SETB ;T0 ; 闪动调时程 ;T1中断服务程序,用作时间调整时调整单元闪烁指示 PUSHACC PUSH MOVTL1,#0B0H ;装定时器T1定时初值MOVTH1,#3CH DJNZ ;0.3秒未到退出中断(50MS6次MOVR2,#06H ;重装0.3秒定时用初值CPL02H ;0.3秒定时到对闪烁标志取反 ;02H位为1时显示单元"熄灭"MOV72H,76H ;02H位为0时正常显示MOV73H,77H;MOV74H,78H;MOV75H,79HINTT1OUT:POPPSW;POPACC ; 01H,FLASH2;01H位为1时,转小时熄灭控制MOV72H,7AH ;01H位为0时,"熄灭符"数据放入分MOV73H,7AH 73H,MOV74H,78H MOV AJMP MOV72H,76H ;01H位为1时,"熄灭符"数据放入小时MOV73H,77H 75H,MOV74H,7AH MOV AJMP 加1子程 ADD1:MOV SWAP ;A ;前一地址中数据放入A中低四位 ;A加1操作 ;MOV ;R3 MOV@R0,A;放回前一地址单元MOVA,R3;R3中暂存数据INCR0;指向当前地址单元 ;A中数据高四位与低四位交换 ;高四位变0 清零程 ;CLR0: ; 时钟调整程 ;SETMM:cLR ;关定时器T0中断 ;关闭定时器T0 ;1 P3.7,CLOSEDIS;键按下时间小于1秒,关闭显示(省电) ;T1 SET2:JNB , ;键释放,分调整闪烁标志置1SET4: ; ;0.5JNBP3.7,SETHH;0.5秒转调小时状态MOVR0,#77H;0.51分钟操作LCALLADD1;1子程序 A,#60H,HHH;60HHH:JC ;调整单元数据小于60转SET4循环 ;调整单元数据大于或等于60时清0 ;SET4CLOSEDIS:SETB ;省电(LED不显示)状态。开T0中断 ;开启T0定时器(开时钟)CLOSE: P3.7,CLOSE; P3.7,CLOSE;是干扰返回CLOSE等待WAITH: P3.7,WAITH; ;返回主程序(LED数据显示亮)SETHH:CLR SETHH1:JNB ;小时调整标志置1SET6:JB ;0.5 P3.7,SETOUT;按下时间大于0.5秒退出时间调整 R0,#79H ;按下时间小于0.5秒加1小时操作 ;调加1子程序 ;计时单元数据与24比较HOUU:JC ;小于24转SET6循环 ;大于或等于24时清0操作 ;跳转到SET6循环SETOUT:JNB P3.7,SETOUT1;调时退出程序。等待键释放 ;是抖动,返回SETOUT再等待 ;关定时器T1中断 ;开启定时器T0 ;开定时器T0中断(计时开始) SET1:LCALLDISPLAY AJMPSET2 SET3:LCALLDISPLAY AJMPSET4SET5:LCALL ;键释放等待时调用显示程序(调小时AJMP ;SET7:LCALLDISPLAY AJMPSET6SETOUT1:LCALL ;AJMP 显示程 ;70H-75HLED共阳数码管显示,P1口输出段码数据,P3;扫描控制,每个LED数码管亮1MS时间再逐位循环。DISPLAY:MOV PLAY:MOV ;扫描字放入A ;P3 ;取显示数据到A DPTR,#TAB;取段码表地 A,@A+DPTR;查显示数据对应段码 ;段码放入P1口 ; ; ACC.5,ENDOUT;ACC.5=0 ;A中数据循环左移 ;放回R5内 ;跳回PLAY循环ENDOUT:SETB ;一次显示结束,P3口复位 ;P1口复位 ;TAB:DB;共阳段码 "0""1"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论