📄 00-59秒计时器.asm
字号:
Second EQU 30H ;定义秒钟的内存地址为30H
ORG 0000H ;程序起始地址
START:MOV Second,#00H ;秒钟内容初始化为0
NEXT:MOV A,Second ;秒钟内容给累加器A
MOV B,#10 ;立即数10给B
DIV AB ;A的内容除以B的内容
MOV DPTR,#TABLE ;TABLE的地址给DPTR
MOVC A,@A+DPTR ;以DPTR的内容为基址传送给A
MOV P0,A ;把A的内容送P0口
MOV A,B ;把B的内容送A
MOVC A,@A+DPTR ;以DPTR的内容为基址传送给A
MOV P2,A ;把A的内容送P2口
LCALL DELAY ;调用1秒钟延时子程序
INC Second ;秒钟加1
MOV A,Second ;秒钟内容给A
CJNE A,#60,NEXT ;A的内容不等于60,则跳转至NEXT
LJMP START ;否则,跳转至START
;1秒钟延时子程序
DELAY:MOV R7,#0A7H
DL1:MOV R6,#0ABH
DL0:MOV R5,#10H
DJNZ R5,$
DJNZ R6,DL0
DJNZ R7,DL1
NOP
RET
;码段地址表
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -