GMS82512/16/24
HYUNDAI MicroElectronics
;**************************
;*
Up Count
*
;**************************
;
SETC
LDA
ADC
#0
; DIGIT1 <- DIGIT1 + 1
DIGIT1
A == #0AH
IF
setc
lda
#0
ENDIF
STA
;
LDA
ADC
DIGIT1
; Store result into DIGIT1
#0
; When Overflow is set,
; DIGIT10 <- DIGIT10 + 1
DIGIT10
A == #10
#0
IF
lda
ENDIF
STA
RET
;
DIGIT10
;**************************
;*
Down Count
*
;**************************
;
DOWN:
clrc
lda
sbc
DIGIT1
#0
A == #0FFH
#9
; DIGIT1 <- DIGIT1 - 1
IF
lda
clrc
ELSE
setc
ENDIF
sta
;
lda
sbc
DIGIT1
; Store result into DIGIT1
DIGIT10
#0
A == #0FFH
#9
; When Overflow is set,
; DIGIT10 <- DIGIT10 - 1
IF
lda
ENDIF
STA
RET
DIGIT10
;
;**************************************************************************
;
TIMER0,INTERRUPT ROUTINE(2ms)& INT0,INT1
*
;**************************************************************************
;
TMR0_INT:
REG_SAVE
CALL
;Save Registers to Stacks
;Segments Data Port Output
;250ms mesurement
DSPLY
Make_500msFalg
CALL
REG_RESTORE
RETI
;Restore Registers from Stacks
;
;**************************************************************************
;
EXTERNAL INTERRUPT 0 (UP/DOWN KEY)
*
;**************************************************************************
;
INT_0:
NOT1
RETI
UP_F
;INT0 Service routine
;Toggle the Up/Down mode
;
;**************************************************************************
;
EXTERNAL INTERRUPT 1 (CLEAR KEY)
*
;**************************************************************************
;
INT_1:
LDM
LDM
LDM
RETI
DIGIT1,#0
DIGIT10,#0
TMR_500MS,#0
;INT1 Service routine
;0.5Sec Restart
;
;***********************************************************************
Subject: Seven Segment Display (DSPLY)
;
*
;***********************************************************************
;
;
;
;
Entry:
DIGIT10 or DIGIT1
Output SEG_PORT (R00~R07),
Strobe_port (R22,R23)
STROBE
*
*
*
*
Return:
Scratch:
;***********************************************************************
;
Description: After read internal RAM data, output data to the port *
v
FEB. 2000 Ver 1.00