📄 measure_freq.asm
字号:
ORG 0000H
AJMP START
ORG 001BH
AJMP T1INT
ORG 0100H
DISBUF EQU 30H
POSIT EQU 38H
TIME EQU 39H
FREQ EQU 40H
START:
MOV DPTR, #LEDCODE
MOV TMOD, #15H
MOV TL0, #0
MOV TH0, #0
MOV TL1, #0B0H
MOV TH1, #3CH
SETB TR0
SETB TR1
SETB ET1
SETB EA
LOOP:
CALL COUNTER
CALL DISPLAY
AJMP LOOP
SEGLOCK:
SETB P1.3
NOP
CLR P1.3
RET
POSITLOCK:
SETB P1.2
NOP
CLR P1.2
RET
NODISP:
MOV P0, #0
SETB P1.2
NOP
CLR P1.2
RET
DELAY:
DJNZ R4, $
RET
COUNTER:
MOV A, FREQ
MOV B, #100
DIV AB
MOV DISBUF, A
MOV A, B
MOV B, #10
DIV AB
MOV DISBUF+1, A
MOV DISBUF+2, B
RET
DISPLAY:
MOV A, DISBUF
MOVC A, @A+DPTR
MOV P0, A
CALL SEGLOCK
MOV P0, #04H
CALL POSITLOCK
CALL DELAY
CALL NODISP
MOV A, DISBUF+1
MOVC A, @A+DPTR
MOV P0, A
CALL SEGLOCK
MOV P0, #02H
CALL POSITLOCK
CALL DELAY
CALL NODISP
MOV A, DISBUF+2
MOVC A, @A+DPTR
MOV P0, A
CALL SEGLOCK
MOV P0, #01H
CALL POSITLOCK
CALL DELAY
CALL NODISP
RET
T1INT:
PUSH ACC
CLR TR1
MOV TH1, #3CH
MOV TL1, #0B0H
DJNZ TIME, INTOUT
MOV FREQ, TL0
MOV TL0, #0
MOV TH0, #0
MOV TIME, #20
INTOUT:
POP ACC
SETB TR1
RETI
LEDCODE:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
; 0 1 2 3 4 5 6 7 8 9
DB 88H,83H,0C6H,0A1H,86H,08EH,0BFH,0FFH,0F7H
; A B C D E F - 消隐 _
;================================================
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -