📄 cal.asm
字号:
;PRJ: FAT SCALE
;**************************************;
;MODULE: CAL.ASM ;
;FUNCTION: CALIBRATE SCALE ;
;INPUT: [CAL_PRESSED] ;
;OUTPUT: [CNT10] [CNT12] ;
;**************************************;
CAL_STATE_CON EQU 11 ;
;***************************************************************************;
; CALIBRATION ;
;***************************************************************************;
ORG 620H ;
JPS CAL_CASE0 ; TEST LCD
JPS CAL_CASE1 ; DELAY
JPS CAL_CASE2 ; DISPLAY ABSLUTE COUNTS (HEX)
JPS CAL_CASE3 ; DISP "R120"
JPS CAL_CASE4 ; DELAY & DISP RELATIVE COUNTS(BCD)
JPS CAL_CASE5 ; DISP "CAL2"
JPS CAL_CASE6 ; DELAY & DISP "R40"
JPS CAL_CASE7 ; DELAY
JPS CAL_CASE8 ; DISP "CAL1"
JPS CAL_CASE9 ; DELAY
JPS CAL_CASE10 ; ANALYSE & SAVE DATA TO EEP & PWR OFF
CALIBRATION: ;
BTST CAL_EN ; CAL_EN = 1?
RET ; NO. EXIT
;----------------- ;
LD L,#CAL_STATE_CON ;
LD A,CAL_STATE ;
CALL CHK_STATE ; CHECK CAL STATE
;----------------- ;
LD WX,#20H ;
LD A,CAL_STATE ;
LD E,#0 ;
ADS EA,EA ;
ADS EA,WX ;
JR @EA ;
;**************************************;
;**************************************;
;CAL_CASE0: TEST LCD ;
CAL_CASE0 ;
BTSF CAL_PRESSED ; CAL PRESSED ?
JPS CAL_CASE1_1 ; YES. ENTER CASE2 TO DISP ABS COUNTS
CAL_CASE0_1: ;
LD EA,TEST_BUF ; NO.
LD BCC_BUF+0,EA ;
LD BCC_BUF+2,EA ;
LD BCC_BUF+4,EA ;
LD BCC_BUF+6,EA ;
CALL DIGIT1234_DISP ; TEST DIGIT 1,2,3,4
LD EA,TEST_BUF ;
CALL DIGIT_AB_DISP ;
LD EA,TEST_BUF ;
CALL DIGIT789_DISP ; TEST DIGIT 7,8,9
LD EA,TEST_BUF ;
CALL UP_DIGIT_DISP ; TEST UP DIGIT
LD EA,TEST_BUF ;
CALL DN_DIGIT_DISP ; TEST DOWN DIGIT
LD EA,#(256-150) ;
LD CAL_DLY+0,EA ;
INCS CAL_STATE ;
RET ;
;**************************************;
;**************************************;
;CAL_CASE1: DELAY ;
CAL_CASE1: ;
BTST CAL_PRESSED ; CAL PRESSED ?
JPS CAL_CASE1_2 ; NO.
CAL_CASE1_1: ;
BITR CAL_PRESSED ; YES.
BITS KG_FLAG ; UNIT SET TO "G"
BITS DISP_HEX_COUNTS ; DISPLAY COUNTS IN HEX
BITR DISP_CHAR ; ENABLE DISP COUNTS
LD A,#(16-5) ;
LD ZERO_TRACE_CNT,A ;
LD A,#02H ;
LD CAL_STATE,A ;
LD A,#0000B ;
JP DISP_8888 ;
CAL_CASE1_2: ;
INCS CAL_DLY+0 ;
RET ;
INCS CAL_DLY+1 ;
RET ;
INCS TEST_BUF ;
LD A,TEST_BUF ;
CPSE A,#0AH ; = 0AH ?
JPS CAL_CASE1_3 ; NO.
LD EA,#0 ; YES.
LD TEST_BUF,EA ;
CAL_CASE1_3: ;
LD A,#0 ;
LD CAL_STATE,A ;
RET ;
;**************************************;
;**************************************;
;CAL_CASE2: WAIT FOR CAL ;
CAL_CASE2: ;
BTST CAL_PRESSED ; CAL PRESSED ?
RET ; NO.
BITR CAL_PRESSED ; YES.
BITR DISP_HEX_COUNTS ; DISPLAY RELATIVE COUNTS IN BCD
BITR CAL_CNT1_OK ; INITIAL THIS TWO FLAG
BITR CAL_CNT2_OK ;
BITS DISP_CHAR ;
LD EA,#R120 ; DISPLAY "r120"
CALL TIP_DISP ;
CALL LOAD_CALDLY_2S ;
INCS CAL_STATE ; CAL_STATE ++
RET ;
;**************************************;
;**************************************;
;CAL_CASE4: DELAY 0.5S FOR "r120" ;
CAL_CASE3: ;
INCS CAL_DLY+0 ;
RET ;
INCS CAL_DLY+1 ;
RET ;
INCS CAL_DLY+2 ;
RET ;
BITR DISP_CHAR ; RESTORE DISPLAY COUNTS (HEX)
BITR CAL_PRESSED ;
INCS CAL_STATE ; CAL_STATE ++
RET ;
;**************************************;
;**************************************;
;CAL_CASE4: WAIT FOR "CAL" PRESSED ;
CAL_CASE4: ;
BTST CAL_PRESSED ; CAL PRESSED ?
RET ; NO.
BITR CAL_PRESSED ; YES.
BITS DISP_CHAR ; ENABLE DISPLAY CHAR
LD EA,#CAL2 ;
CALL TIP_DISP ; DISPLAY "CAL2"
BITS CAL_CNT2_OK ; YES. RECORD CNT2
INCS CAL_STATE ; CAL_STATE ++
JPS LOAD_CALDLY_2S ;
;**************************************;
;**************************************;
;CAL_CASE5: DELAY 0.5S FOR "CAL2" ;
CAL_CASE5: ;
INCS CAL_DLY+0 ;
RET ;
INCS CAL_DLY+1 ;
RET ;
INCS CAL_DLY+2 ;
RET ;
BTSF CAL_CNT2_OK ; CAL_CNT2_OK IS CLEAR ?
JPS LOAD_CALDLY_2S ; NO. RELOAD TMR
LD EA,#R40 ;
CALL TIP_DISP ;
CALL LOAD_CALDLY_2S ;
INCS CAL_STATE ; CAL_STATE ++
RET ;
;**************************************;
;**************************************;
;CAL_CASE6: DELAY 0.5S FOR "r40" ;
CAL_CASE6: ;
INCS CAL_DLY+0 ;
RET ;
INCS CAL_DLY+1 ;
RET ;
INCS CAL_DLY+2 ;
RET ;
BITR DISP_CHAR ;
BITR CAL_PRESSED ;
INCS CAL_STATE ; CAL_STATE ++
RET ;
;**************************************;
;**************************************;
;CAL_CASE7: WAIT FOR "CAL" TO PRESSED ;
CAL_CASE7: ;
BTST CAL_PRESSED ; CAL PRESSED ?
RET ; NO.
BITR CAL_PRESSED ; YES.
BITS DISP_CHAR ;
LD EA,#CAL1 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -