📄 秒表带清零带暂停.asm
字号:
ORG 0000H
AJMP MAIN
ORG 000BH ;定时器计数器0的定口地地址
AJMP T0INT
ORG 0030H
MAIN: ;此程序的跑表部分由TO计数完成,计时部分由T1计数完成.
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV 50H,#00H
MOV SP,#60H
MOV TMOD,#01H ;定时器计数器1工作方式1,同时设置定时器T0为工作方式0
MOV TH0,#0D8H
MOV TL0,#0F0H
SETB ET0
SETB TR0
SETB EA
CYCLE:
MOV A,51H
CJNE A,#00H,PP
LCALL QLL
PP:
LCALL INKEY
LCALL SMXS
AJMP CYCLE
T0INT:
PUSH ACC
CLR TR0
MOV TH0, #0D8H
MOV TL0, #0F0H
MOV 30H, #00H
INC 31H
MOV A, 31H
DA A
MOV 31H,A
CJNE A,#100H,EXIT1
MOV 31H,#00H
INC 32H
MOV A, 32H
DA A
MOV 32H, A
CJNE A,#100H,EXIT1
MOV 32H, #00H
EXIT1:
SETB TR0
POP ACC
RETI
;-----------------------------------------------显示子程序---------------------------------------
SMXS:
MOV A,31H
ANL A,#0FH
ACALL TABLE
MOV P2,A
CLR P0.6
ACALL DELAY
SETB P0.6
MOV A,31H
SWAP A
ANL A,#0FH
ACALL TABLE
MOV P2,A
CLR P0.5
ACALL DELAY
SETB P0.5
MOV A,32H
ANL A,#0FH
ACALL TABLE
MOV P2,A
CLR P0.4
ACALL DELAY
SETB P0.4
MOV A,32H
SWAP A
ANL A,#0FH
ACALL TABLE
MOV P2,A
CLR P0.3
ACALL DELAY
SETB P0.3
RET
TABLE: INC A
MOVC A, @A+PC
RET
DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,80H,090H ;0-9的段码
INKEY:
MOV P3,#0FFH
JB P3.3,NEXT1 ;P3.3等于1则转移
KK: ACALL BUZZER
JNB P3.3 ,KK
INC 50H
MOV A,50H
CJNE A,#01H,KK22
CLR TR0
MOV 51H,#00H
AJMP NEXT1
KK22:
CJNE A,#02H,NEXT1
SETB TR0
MOV 50H,#00H
MOV 51H,#01H
NEXT1:
RET
QLL:
MOV P3,#0FFH
JB P3.5,NEXT2 ;P3.3等于1则转移
KK1: ACALL BUZZER
JNB P3.5 ,KK1
MOV 31H,#00H
MOV 32H,#00H
NEXT2:
RET
BUZZER:
CLR P1.0
ACALL DELAY
SETB P1.0
RET
DELAY: MOV 55H,#10H
DELAY0: MOV 54H,#50H
DELAY1: DJNZ 54H,DELAY1
DJNZ 55H,DELAY0
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -