?? 時(shí)鐘與秒表.asm
字號(hào):
ORG 0000H
AJMP MAIN
ORG 000BH ;定時(shí)器計(jì)數(shù)器0的定口地地址
AJMP T0INT
ORG 001BH ;定時(shí)器計(jì)數(shù)器1的定口地地址
AJMP T1INT
ORG 0030H
MAIN: ;此程序的跑表部分由TO計(jì)數(shù)完成,計(jì)時(shí)部分由T1計(jì)數(shù)完成.
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV 40H,#00H
MOV 41H,#00H
MOV 42H,#00H
MOV 50H,#00H
MOV 51H,#00H
MOV 52H,#00H
MOV SP,#60H
MOV TMOD,#10H ;定時(shí)器計(jì)數(shù)器1工作方式1,同時(shí)設(shè)置定時(shí)器T0為工作方式0
MOV TH0,#0CH
MOV TL0,#78H
SETB ET0
MOV TH1,#03CH
MOV TL1,#0AFH
SETB ET1
SETB TR1
SETB EA
DISPLAY:
MOV A,50H
CJNE A,#00H,KGD ;如果50H中的數(shù)不等于0則轉(zhuǎn)移
MOV R0,#41H
ACALL INKEY
AJMP DT
KGD:
CJNE A,#01H,DT
MOV R0,#31H
ACALL OUTKEY
MOV A,51H
CJNE A,#00H,DT
ACALL INKEY
DT:
ACALL DISPLAY1
AJMP DISPLAY
DISPLAY1: ;顯示子程序
MOV A,@R0
ANL A,#0FH
ACALL TABLE
MOV P2,A
CLR P0.6
ACALL DELAY
SETB P0.6
MOV A,@R0
SWAP A
ANL A,#0FH
ACALL TABLE
MOV P2,A
CLR P0.5
ACALL DELAY
SETB P0.5
INC R0
MOV A,@R0
ANL A,#0FH
ACALL TABLE
MOV P2,A
CLR P0.4
ACALL DELAY
SETB P0.4
MOV A,@R0
SWAP A
ANL A,#0FH
ACALL TABLE
MOV P2,A
CLR P0.3
ACALL DELAY
SETB P0.3
RET
OUTKEY:
MOV P3,#0FFH
JB P3.5,OUT
DD: ACALL BUZZER
JNB P3.5,DD ;去抖
INC 51H
MOV A,51H
CJNE A,#01H,DD22
MOV TH0,#3CH
MOV TL0,#0AFH
SETB TR0
AJMP OUT
DD22: CJNE A,#02H,DD33
CLR TR0
AJMP OUT
DD33:
MOV 51H,#00H
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
OUT: RET
INKEY:
MOV P3,#0FFH
JB P3.3,NEXT1 ;P3.3等于1則轉(zhuǎn)移
KK: ACALL BUZZER
JNB P3.3 ,KK
INC 50H
MOV A,50H
CJNE A,#01H,KK22
AJMP NEXT1
KK22: MOV 50H,#00H
NEXT1: RET
DELAY: MOV 55H,#10H
DELAY0: MOV 54H,#50H
DELAY1: DJNZ 54H,DELAY1
DJNZ 55H,DELAY0
RET
TABLE: INC A ;基地址加一
MOVC A, @A+PC ;查段碼表,取其相應(yīng)的段碼
RET
DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,80H,090H ;0-9的段碼
BUZZER:
CLR P1.0
ACALL DELAY
SETB P1.0
RET
T0INT:
PUSH ACC
CLR TR0
MOV TH0, #0CH
MOV TL0, #78H
INC 30H
MOV A,30H
CJNE A,#02H,EXIT ;得到了1%秒
MOV 30H, #00H
INC 31H
MOV A, 31H
DA A
MOV 31H,A
CJNE A,#100H,EXIT
MOV 31H,#00H
INC 32H
MOV A, 32H
DA A
MOV 32H, A
CJNE A,#100H,EXIT
MOV 32H, #00H ;前面用到了 R0,R1,R2
EXIT:
SETB TR0
POP ACC
RETI
T1INT:
PUSH ACC
CLR TR1
MOV TH1,#3CH
MOV TL1,#0AFH
INC 40H
MOV A,40H
CJNE A,#14H,EXIT1
MOV 40H,#00H
INC 41H
MOV A,41H
DA A
MOV 41H,A
CJNE A,#60H,EXIT1
MOV 41H,#00H
INC 42H
MOV A,42H
DA A
MOV 42H,A
CJNE A,#60H,EXIT1
MOV 42H,#00H
EXIT1:
SETB TR1
POP ACC
RETI
END
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -