51单片机定时器设计跑表汇编程序
bm EQU 50H ;百分秒
miao EQU 51H
fen EQU 52H
ORG 0000H
LJMP BEGIN
ORG 0BH
LJMP SJDL
BEGIN: MOV R2,#9H
MOV R1,#50H
Y1: MOV @R1,#00H
INC R1
DJNZ R2,Y1 ;内存清零
MOV TMOD,#01H
MOV TH0,#0D8H
MOV TL0,#0F0H
SETB EA ;初始化
SETB ET0
CLR TR0
MOV R2,#6
X11: MOV A,#0FFH
MOV SBUF,A
JNB TI,$
CLR TI
DJNZ R2,X11
CLR P2.3
NOP
SETB P2.3 ;上电不显示
L1: JB P0.0,$
LCALL DELAY
JB P0.0,L1 ;判键
JNB P0.0,$ ;判松开没
LCALL XCZ ;按了一次显初值
SETB TR0 ;开定时中断
PJ: JNB P0.0,YANLE ;判断是否又按了
LCALL XIANSHI ;显示数
JMP PJ
YANLE: LCALL DELAY
JB P0.0,PJ
JNB P0.0,$
CLR TR0 ;第二次按了,关定时器,读数
LCALL XIANSHI
HUI: JB P0.0,$
LCALL DELAY
JB P0.0,HUI
JNB P0.0,$
LJMP BEGIN ;再次按了,复位
XCZ: MOV R3,#4
X1: MOV A,#0C0H
MOV SBUF,A
JNB TI,$
CLR TI
DJNZ R3,X1
CLR P2.3
NOP
SETB P2.3
RET ;显初值函数
SJDL: PUSH A
MOV TH0,#0D8H
MOV TL0,#0F0H
INC BM
MOV A,BM
CJNE A,#100,FANHUI
MOV bm,#00H
INC MIAO
MOV A,MIAO
CJNE A,#60,FANHUI
MOV MIAO,#00H
INC FEN
MOV A,FEN
CJNE A,#20,FANHUI
MOV FEN,#00H
FANHUI: POP A
RETI ;定时中断函数,处理数据
xianshi:MOV A,bm
add a,#0
da a
mov bm,a
MOV A,miao
add a,#0
da a