51单片机数字钟汇编程序.pdfVIP

  • 3
  • 0
  • 约2.59千字
  • 约 7页
  • 2023-02-05 发布于上海
  • 举报
ORG 0000H AJMP MAIN ORG 000BH AJMP TT0 ORG 001BH AJMP TT1 ORG 0030H MAIN: MOV 20H,#00H ;初始化程序 MOV 21H,#00H MOV 22H,#00H MOV 23H,#00H MOV 24H,#00H MOV 25H,#00H MOV 26H,#10 ; MOV 27H,#10 ;熄灭最高两位 MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H MOV 36H,#10 ; MOV 37H,#10 ;熄灭最高两位 MOV SP,#50H MOV TMOD,#11H ;定时器初始化 MOV TH0,#3CH MOV TL0,#0B0H MOV TH1,#0D8H MOV TL1,#0F0H MOV IE,#8AH ;中断允许 SETB TR0 ;启动定时器0 ;启动到时器1 MOV R5,#20 MOV R1,#30H MOV R2,#0E0H CLR 2FH.7 ;设置表示位 SFJ1: JNB 2FH.7,SFJ2 ;功能切换键标志位 LCALL SFJ24 ;调用秒表键盘程序 LCALL DISPLAY1 ;调用秒表显示程序 SJMP SFJ25 SFJ2: LCALL DISPLAY ;调用时钟显示子程序 SFJ25: LCALL KEY ;调用时钟键盘子程序 SJMP SFJ1 /*定时器0中断*/ TT0: PUSH ACC ;保护现场 PUSH PSW DJNZ R5,SFJ5 MOV R5,#20 INC 20H ;秒加一 MOV A,20H CJNE A,#10,SFJ5 MOV 20H,#00H INC 21H MOV A,21H CJNE A,#6,SFJ5 ;判断秒是否加到60 MOV 21H,#00H ;清零计数单元 INC 22H ;分加一 MOV A,22H CJNE A,#10,SFJ5 MOV 22H,#00H INC 23H MOV A,23H CJNE A,#6,SFJ5 ;判断分是否加到60 MOV 23H,#00H ;清零计数单元 INC 24H MOV A,25H CJNE A,#2,SFJ3 ;每到24小时就清零 MOV A,24H ;计数单元 CJNE A,#4,SFJ5 ; SJMP SFJ4 ; SFJ3: MOV A,24H ; CJNE A,#10,SFJ5 ; SFJ4: MOV 24H,#00H INC 25H MOV A,25H CJNE A,#3,SFJ5 MOV 25H,#00H SFJ5: MOV TH0,#3CH ;定时器赋初值MOV TL0,#0B0H POP PSW ;恢复现场 POP ACC RETI /*定时器1中断*/ TT1: PUSH ACC ;保护现场 PUSH PSW INC 30H ;1/100秒加一 MOV A,30H CJNE A,#10,SFJ6 MOV 30H,#00H INC 31H MOV A,31H CJNE A,#10,SFJ6 MOV 31H,#00H ;清零计数单元 INC 32H ;秒加一 MOV A,32H CJNE A,#10,SFJ6 MOV 32H,#00H INC 33H MOV A,33H CJNE A,#6,SFJ6 MOV 33H,#00H ;清零计数单元 INC 34H ;分加一 MOV A,34H CJNE A,#10,SFJ6 MOV 34H,#00H INC 35H MOV A,35H CJNE A,#6,SFJ6 MOV 35H,#00H SFJ6: MOV TH1,#0D8H ;定时器1赋初值MOV TL1,#0F0H POP PSW ;恢复现场 POP ACC RETI /*键盘子程序*/ KEY: JB P3.1,SFJ7 LCALL DELAY1 JB P3.1,SFJ7 CPL 2FH.7 JNB 2FH.7,SFJ32 MOV TH0,#3CH MOV TL0,#0B0H MOV TH1,#0D8H MOV TL1,#0F0H SETB TR1 CLR TR0 MOV R1,#30H MOV R2,#0E0H RET ;启动/停止时钟 SFJ7: MOV P1,#0F7H MOV A,P1 ANL A,#0F0H CJNE A,#0F0H

文档评论(0)

1亿VIP精品文档

相关文档