📄 cal.asm
字号:
CALL TIP_DISP ; DISPLAY "CAL1"
BITS CAL_CNT1_OK ; RECORD CNT1
CALL LOAD_CALDLY_2S ;
INCS CAL_STATE ; CAL_STATE ++
RET ;
;**************************************;
;**************************************;
;CAL_CASE8: DELAY 0.5S FOR "CAL1" ;
CAL_CASE8: ;
INCS CAL_DLY+0 ;
RET ;
INCS CAL_DLY+1 ;
RET ;
INCS CAL_DLY+2 ;
RET ;
BTSF CAL_CNT1_OK ; CAL_CNT1_OK IS CLEAR ?
JPS LOAD_CALDLY_2S ; NO. RELOAD TMR AGAIN
BITR DISP_CHAR ;
INCS CAL_STATE ; YES. CAL_STATE ++
RET ;
;**************************************;
;**************************************;
CAL_CASE9: ;
;WRITE CNT10 CNT21 TO 24C01 ;
;CHK CNT10 IN (400*5 --- 400*12) ;
; CNT21 IN (800*5 --- 800*12) ;
LD2B ACC_BUF,CNT10 ;
CALL CHK_BENMARK ;
BTST C ; C = 1 ?
JP DISP_ERR2 ; NO.
LD2B ACC_BUF,CNT21 ; YES. GO ON CHK CNT21
LD HL,#(ACC_BUF+3) ;
CALL DIVTWO ;
CALL CHK_BENMARK ;
BTST C ; C = 1 ?
JP DISP_ERR2 ; NO.
;------------------------- ;
;WRITE DATA TO EEPROM ;
LD A,#5 ; YES. THEN WRITE CNT10 CNT21 TO 24C01
LD EEP_NUM,A ; BYTE NUM: 6
LD EA,#00H ;
LD EEP_RAM_ADDR,EA ; EEP_RAM_ADDR: 00
LD EA,#LAST_WEIGHT ;
LD CPU_RAM_ADDR,EA ;
CALL WRITE_EEP ; WRITE CNT10,CNT21 TO 24C01
;ANALYSE SNENSOR'S LINE CHARACTERISTIC ;
LD HL,#(CNT21+3) ;
CALL DIVTWO ; CNT21<= CNT21/2
LD HL,#ABS_ERR ;
LD YZ,#CNT10 ;
LD WX,#CNT21 ;
CALL SUB2BB ;
JPS CAL_CASE9_1 ;
LD HL,#ABS_ERR ;
CALL ABS2BB ;
CAL_CASE9_1: ;
LD HL,#(ABS_ERR+2) ;
LD2B CCC_BUF,ABS_ERR ;
BITS DISP_CHAR ;
CALL HEX_BCD ;
CALL DISP_WT ;
CALL LOAD_CALDLY_2S ;
INCS CAL_STATE ;
RET ;
;**************************************;
;**************************************;
CAL_CASE10: ;
INCS CAL_DLY+0 ;
RET ;
INCS CAL_DLY+1 ;
RET ;
INCS CAL_DLY+2 ;
RET ;
JP TURN_OFF_PWR ;
;**************************************;
;**************************************;
LOAD_CALDLY_2S: ;
LD EA,#(256-150) ;
LD CAL_DLY+0,EA ;
LD A,#(16-2) ;
LD CAL_DLY+2,A ;
RET ;
;**************************************;
;***************************************************************************;
; GET_CNT12 ;
;***************************************************************************;
;FUNCTION: GET CNT1,CNT2 ;
;INPUT: [CAL_CNT1_OK] ;
; [CAL_CNT2_OK] ;
;OUTPUT: [CNT10] [CNT21] ;
GET_CNT12: ;
BTST CAL_CNT1_OK ; SAL_CNT1_OK = 1 ?
JPS GET_CNT_A ; NO.
BTST SCALE_OK ; YES.& SYS IN STATIC STATE ?
JPS GET_CNT_C ; NO.
BITR CAL_CNT1_OK ; YES.
BITR SCALE_OK ;
LD2B CNT1,MID_POINT ; CNT1 <= MID_POINT
;-------------------- ;
LD HL,#CNT10 ; GET CNT10:
LD YZ,#CNT1 ; CNT10 <= CNT1 - CNT0
LD WX,#CNT0 ;
CALL SUB2BB ;
JPS GET_CNT12_1 ;
LD HL,#CNT10 ;
CALL ABS2BB ;
GET_CNT12_1: ;
LD HL,#CNT21 ; GET CNT21:
LD YZ,#CNT20 ; CNT21 = CNT20 - CNT10
LD WX,#CNT10 ;
CALL SUB2BB ;
JPS GET_CNT_C ;
LD HL,#CNT21 ;
CALL ABS2BB ;
JPS GET_CNT_C ;
;------------------ ;
GET_CNT_A: ;
BTST CAL_CNT2_OK ; CAL_CNT2_OK = 1 ?
JPS GET_CNT_B ; NO.
BTST SCALE_OK ; YES & SYS IN STATIC STATE ?
JPS GET_CNT_C ; NO.
BITR SCALE_OK ;
BITR CAL_CNT2_OK ; YES.
LD2B CNT2,MID_POINT ; CNT2 <= MID_POINT
;-------------------- ;
LD HL,#CNT20 ;
LD YZ,#CNT2 ;
LD WX,#CNT0 ; CNT20 <= CNT2 - CNT0
CALL SUB2BB ;
JPS GET_CNT_C ; CNT20 >=0
LD HL,#CNT20 ; < 0
CALL ABS2BB ;
JPS GET_CNT_C ;
;------------------------ ;
GET_CNT_B: ;
BTST DISP_HEX_COUNTS ; ONLY DISPLAY COUNTS ?
JPS GET_CNT_C ; NO.
LD2B BCC_BUF,MID_POINT ; YES.
JPS GET_CNT_E ;
;------------------------- ;
GET_CNT_C: ;
LD HL,#CCC_BUF ;
LD YZ,#MID_POINT ; CCC_BUF <= MID_POINT - CNT0
LD WX,#CNT0 ;
CALL SUB2BB ;
JPS GET_CNT_D ; CCC_BUF >= 0
LD HL,#CCC_BUF ; <= 0
CALL ABS2BB ;
GET_CNT_D: ;
;CHK IF CCC_BUF< 8 & STATUS IS STATIC,THEN ZERO TRACE
BTST STATIC_FLAG ;
JPS GET_CNT_D1 ;
LD A,JAM_STATE ;
CPSE A,#00H ;
JPS GET_CNT_D1 ;
LD HL,#(CCC_BUF+2) ;
LD WX,#08H ;
LD YZ,#00H ;
CALL COMP_CON ;
JPS GET_CNT_D1 ; OUT OF RANGE
INCS ZERO_TRACE_CNT ;
JPS GET_CNT_D2 ;
LD2B CNT0,MID_POINT ;
LD EA,#00H ;
LD CCC_BUF+0,EA ;
LD CCC_BUF+2,EA ;
GET_CNT_D1: ;
LD A,#(16-2) ;
LD ZERO_TRACE_CNT,A ;
GET_CNT_D2: ;
LD HL,#(CCC_BUF+3) ;
CALL DIVTWO ;
CALL HEX_BCD ;
GET_CNT_E: ;
BTSF DISP_CHAR ; DISPLAY CHAR ?
RET ; YES.
JP DISP_WT ; NO. DISPLAY VALUE
;**************************************;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -