c51单片机时钟程序汇编语言,51单片机数字钟汇编程序精选.docx

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

  • 5
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值