⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 9821h621.lst

📁 用台湾富晶单片机开发的电子称包括源码和编译器
💻 LST
📖 第 1 页 / 共 5 页
字号:
0654                L_CalcHeft_1:
0655  0180  209E    			MOVFW   R_ZeroCodeL     ;\
0656  0181  228B    			MOVWF   R_PubReg4       ; | 当前零点内码[R_ZeroCodeH:R_ZeroCodeL]
0657  0182  209F    			MOVFW   R_ZeroCodeH     ; | ->R_PubReg5:R_PubReg4
0658  0183  228C    			MOVWF   R_PubReg5       ;/
0659  0184  8328    			CALL    S_CalcRelWeight ;计算[R_PubReg5:R_PubReg4]中的内码相对于标定零点的重量
0660                ;			                          ->R_PubReg3:R_PubReg0,[R_PubFlag1].3=1为负数
0661  0185  2087                MOVFW   R_PubReg0       ;\
0662  0186  22A6                MOVWF   R_TmpPubReg0    ; \
0663  0187  2088                MOVFW   R_PubReg1       ;  |
0664  0188  22A7                MOVWF   R_TmpPubReg1    ;  | [R_PubReg3:R_PubReg0]
0665  0189  2089                MOVFW   R_PubReg2       ;  | ->R_TmpPubReg3:R_TmpPubReg0 暂存
0666  018A  22A8                MOVWF   R_TmpPubReg2    ;  |
0667  018B  208A                MOVFW   R_PubReg3       ; /
0668  018C  22A9                MOVWF   R_TmpPubReg3    ;/
0669  018D  CC86                BCF     R_PubFlag1,6    ;0->R_PubFlag1.6
0670  018E  E686                BTFSC   R_PubFlag1,3
0671  018F  DC86                BSF     R_PubFlag1,6    ;[R_PubFlag1].3=1,1->R_PubFlag1.6
0672                L_CalcHeft_11:
0673  0190  209A    			MOVFW	R_LastAverageL	;\
0674  0191  228B    			MOVWF	R_PubReg4		; | [R_LastAverageH:R_LastAverageL] (当前平均内码)
0675  0192  209B    			MOVFW	R_LastAverageH	; | ->R_PubReg5:R_PubReg4
0676  0193  228C    			MOVWF	R_PubReg5		;/
0677  0194  8328    			CALL    S_CalcRelWeight ;计算[R_PubReg5:R_PubReg4]中的内码相对于标定零点的重量
0678                ;			                          ->R_PubReg3:R_PubReg0,[R_PubFlag1].3=1为负数
0679  0195  C4CF                BCF     R_DispFlag,2	;0->R_DispFlag.2 负号显示
0680  0196  F686                BTFSS   R_PubFlag1,3
0681  0197  A1BA                GOTO    L_CalcHeft_14   ;[R_PubFlag1].3=0 转
0682  0198  FC86                BTFSS   R_PubFlag1,6    ;[R_PubFlag1].3=1;
0683  0199  A1BC                GOTO    L_CalcHeft_15   ;[R_PubFlag1].6=0 转
0684                L_CalcHeft_12:      ;[R_PubFlag1].3=1,[R_PubFlag1].6=1 //[R_PubFlag1].3=0,[R_PubFlag1].6=0
0685  019A  20A6                MOVFW   R_TmpPubReg0    ;\
0686  019B  1A87                SUBWF   R_PubReg0,1     ; \
0687  019C  20A7                MOVFW   R_TmpPubReg1    ;  |
0688  019D  3A88                SUBWFC  R_PubReg1,1     ;  | [R_PubReg3:R_PubReg0]-[R_TmpPubReg3:R_TmpPubReg0]
0689  019E  20A8                MOVFW   R_TmpPubReg2    ;  | ->R_PubReg3:R_PubReg0
0690  019F  3A89                SUBWFC  R_PubReg2,1     ;  |
0691  01A0  20A9                MOVFW   R_TmpPubReg3    ; /
0692  01A1  3A8A                SUBWFC  R_PubReg3,1     ;/
0693  01A2  E204                BTFSC	STATUS,C
0694  01A3  A1B7                GOTO    L_CalcHeft_13   ;无借位,转
0695  01A4  40FF                MOVLW   0FFH            ;\
0696  01A5  3287                XORWF   R_PubReg0,1     ; \
0697  01A6  40FF                MOVLW   0FFH            ;  |
0698  01A7  3288                XORWF   R_PubReg1,1     ;  |
0699  01A8  40FF                MOVLW   0FFH            ;  |
0700  01A9  3289                XORWF   R_PubReg2,1     ;  |
0701  01AA  40FF                MOVLW   0FFH            ;  | 有借位,计算[R_PubReg3:R_PubReg0]的补码
0702  01AB  328A                XORWF   R_PubReg3,1     ;  | ->R_PubReg3:R_PubReg0
0703  01AC  4001                MOVLW   1               ;  |
0704  01AD  0687                ADDWF   R_PubReg0,1     ;  |
0705  01AE  4000                MOVLW   0               ;  |
0706  01AF  2688                ADDWFC  R_PubReg1,1     ;  |
0707  01B0  4000                MOVLW   0               ;  |
0708  01B1  2689                ADDWFC  R_PubReg2,1     ;  |
0709  01B2  4000                MOVLW   0               ; /
0710  01B3  268A                ADDWFC  R_PubReg3,1     ;/
0711  01B4  FC86                BTFSS   R_PubFlag1,6
0712  01B5  D4CF    			BSF		R_DispFlag,2	;[R_PubFlag1].6=0,1->R_DispFlag.2 显示负号
0713  01B6  A1C6                GOTO    L_CalcHeft_2
0714                L_CalcHeft_13:
0715  01B7  EC86                BTFSC   R_PubFlag1,6
0716  01B8  D4CF    			BSF		R_DispFlag,2	;[R_PubFlag1].6=0,1->R_DispFlag.2 显示负号
0717  01B9  A1C6                GOTO    L_CalcHeft_2
0718                L_CalcHeft_14:
0719  01BA  FC86                BTFSS   R_PubFlag1,6    ;[R_PubFlag1].3=0;
0720  01BB  A19A    			GOTO	L_CalcHeft_12	;[R_PubFlag1].6=0 转
0721                L_CalcHeft_15:      ;[R_PubFlag1].3=1,[R_PubFlag1].6=0 //[R_PubFlag1].3=0,[R_PubFlag1].6=1
0722  01BC  20A6                MOVFW   R_TmpPubReg0    ;\
0723  01BD  0687                ADDWF   R_PubReg0,1     ; \
0724  01BE  20A7                MOVFW   R_TmpPubReg1    ;  |
0725  01BF  2688                ADDWFC  R_PubReg1,1     ;  | [R_PubReg3:R_PubReg0]+[R_TmpPubReg3:R_TmpPubReg0]
0726  01C0  20A8                MOVFW   R_TmpPubReg2    ;  | ->R_PubReg3:R_PubReg0
0727  01C1  2689                ADDWFC  R_PubReg2,1     ;  |
0728  01C2  20A9                MOVFW   R_TmpPubReg3    ; /
0729  01C3  268A                ADDWFC  R_PubReg3,1     ;/
0730  01C4  E686                BTFSC   R_PubFlag1,3
0731  01C5  D4CF    			BSF		R_DispFlag,2	;[R_PubFlag1].3=1,1->R_DispFlag.2 显示负号
0732                L_CalcHeft_2:
0733  01C6  2087                MOVFW   R_PubReg0       ;\
0734  01C7  22A6                MOVWF   R_TmpPubReg0    ; \
0735  01C8  2088                MOVFW   R_PubReg1       ;  |
0736  01C9  22A7                MOVWF   R_TmpPubReg1    ;  | [R_PubReg3:R_PubReg0]
0737  01CA  2089                MOVFW   R_PubReg2       ;  | ->R_TmpPubReg3:R_TmpPubReg0 暂存
0738  01CB  22A8                MOVWF   R_TmpPubReg2    ;  |
0739  01CC  208A                MOVFW   R_PubReg3       ; /
0740  01CD  22A9                MOVWF   R_TmpPubReg3    ;/
0741                ;
0742  01CE  2089                MOVFW   R_PubReg2       ;\
0743  01CF  2287                MOVWF   R_PubReg0       ; | [R_PubReg3:R_PubReg2]
0744  01D0  208A                MOVFW   R_PubReg3       ; | ->R_PubReg1:R_PubReg0
0745  01D1  2288                MOVWF   R_PubReg1       ;/
0746  01D2  20A0                MOVFW   R_LockWeightL   ;\
0747  01D3  228B                MOVWF   R_PubReg4       ; | [R_LockWeightH:R_LockWeightL]
0748  01D4  20A1                MOVFW   R_LockWeightH   ; | ->R_PubReg5:R_PubReg4
0749  01D5  228C                MOVWF   R_PubReg5       ;/
0750  01D6  83F5    			CALL	S_CalcABS		;计算[R_PubReg5:R_PubReg4]-[R_PubReg1:R_PubReg0]绝对值->R_PubReg5:R_PubReg4
0751                ;
0752  01D7  20A6                MOVFW   R_TmpPubReg0    ;\
0753  01D8  2287                MOVWF   R_PubReg0       ; \
0754  01D9  20A7                MOVFW   R_TmpPubReg1    ;  |
0755  01DA  2288                MOVWF   R_PubReg1       ;  | [R_TmpPubReg3:R_TmpPubReg0]
0756  01DB  20A8                MOVFW   R_TmpPubReg2    ;  | ->R_PubReg3:R_PubReg0
0757  01DC  2289                MOVWF   R_PubReg2       ;  |
0758  01DD  20A9                MOVFW   R_TmpPubReg3    ; /
0759  01DE  228A                MOVWF   R_PubReg3       ;/
0760                ;
0761  01DF  400A                MOVLW   10
0762  01E0  188B                SUBWF   R_PubReg4,0
0763  01E1  4000                MOVLW   0
0764  01E2  388C                SUBWFC  R_PubReg5,0
0765  01E3  F204                BTFSS   STATUS,C
0766  01E4  A1EA                GOTO    L_CalcHeft_21   ;[R_PubReg5:R_PubReg4]<10 转
0767  01E5  2089                MOVFW   R_PubReg2       ;\
0768  01E6  22A0                MOVWF   R_LockWeightL   ; | [R_PubReg3:R_PubReg0]
0769  01E7  208A                MOVFW   R_PubReg3       ; | ->R_LockWeightH:R_LockWeightL
0770  01E8  22A1                MOVWF   R_LockWeightH   ;/
0771  01E9  8359                CALL    S_CalcOffTime	;计算自动关机时间(单位:秒)->R_OffTimerH:R_OffTimerL
0772                L_CalcHeft_21:
0773  01EA  4002                MOVLW   2
0774  01EB  1889                SUBWF   R_PubReg2,0
0775  01EC  4000                MOVLW   0
0776  01ED  388A                SUBWFC  R_PubReg3,0
0777  01EE  E204                BTFSC   STATUS,C
0778  01EF  A1FE                GOTO    L_CalcHeft_3    ;[R_PubReg3:R_PubReg2]≥2 转
0779  01F0  FA85    			BTFSS	R_PubFlag0,5
0780  01F1  A1FC    			GOTO	L_CalcHeft_23	;[R_PubFlag0].5=0(称重数据不稳定) 转
0781  01F2  20E2    			MOVFW	R_LockCodeNum
0782  01F3  18A3    			SUBWF	R_2dWeightCnt,0
0783  01F4  E204    			BTFSC   STATUS,C
0784  01F5  A1F8    			GOTO	L_CalcHeft_22	;[R_2dWeightCnt]≥[R_LockCodeNum] 转
0785  01F6  0AA3    			INCF	R_2dWeightCnt,1	;[R_2dWeightCnt]+1->R_2dWeightCnt
0786  01F7  A1FC    			GOTO	L_CalcHeft_23
0787                L_CalcHeft_22:
0788  01F8  209A    			MOVFW	R_LastAverageL	;\
0789  01F9  229E    			MOVWF	R_ZeroCodeL   	; | [R_LastAverageH:R_LastAverageL]->R_ZeroCodeH:R_ZeroCodeL
0790  01FA  209B    			MOVFW	R_LastAverageH	; | 保存零点内码
0791  01FB  229F    			MOVWF	R_ZeroCodeH		;/
0792                L_CalcHeft_23:
0793  01FC  C4CF                BCF     R_DispFlag,2	;0->R_DispFlag.2 不显示负号
0794  01FD  A20B    			GOTO	L_CalcHeft_31
0795                L_CalcHeft_3:
0796  01FE  20E6    			MOVFW	R_MaxScaleMarkL	;\
0797  01FF  1889    			SUBWF	R_PubReg2,0		; |
0798  0200  20E7    			MOVFW	R_MaxScaleMarkH	; | [R_PubReg3:R_PubReg2]≥[R_MaxScaleMarkH:R_MaxScaleMarkL]
0799  0201  388A    			SUBWFC	R_PubReg3,0		; | (称重结果≥最大分度数+9) 转 显示超载错误
0800  0202  E204    			BTFSC	STATUS,C		; |
0801  0203  A26C    			GOTO	L_DispOverErr	;/
0802  0204  4001    			MOVLW   D_P21
0803  0205  8261    			CALL	S_RdMinDispV	;读最小显示值
0804  0206  1889    			SUBWF	R_PubReg2,0
0805  0207  4000    			MOVLW	0
0806  0208  388A    			SUBWFC	R_PubReg3,0
0807  0209  E204    			BTFSC	STATUS,C
0808  020A  A20F    			GOTO	L_CalcHeft_32	;[R_PubReg3:R_PubReg2]≥最小显示分度数 转
0809                L_CalcHeft_31:
0810  020B  028A    			CLRF	R_PubReg3	    ;0->R_PubReg3
0811  020C  0289    			CLRF	R_PubReg2	    ;0->R_PubReg2
0812  020D  0288    			CLRF	R_PubReg1	    ;0->R_PubReg1
0813  020E  A215    			GOTO	L_CalcHeft_33
0814                L_CalcHeft_32:
0815  020F  4014    			MOVLW	14H
0816  0210  1889    			SUBWF	R_PubReg2,0
0817  0211  4000    			MOVLW	0
0818  0212  388A    			SUBWFC	R_PubReg3,0
0819  0213  E204    			BTFSC	STATUS,C
0820  0214  A219    			GOTO	L_CalcHeft_35	;[R_PubReg3:R_PubReg2]≥0014H 转
0821                L_CalcHeft_33:
0822  0215  F286    			BTFSS	R_PubFlag1,1
0823  0216  A218    			GOTO	L_CalcHeft_34	;[R_PubFlag1].1=0(未锁定) 转
0824  0217  C286    			BCF		R_PubFlag1,1	;0->R_PubFlag1.1 解锁
0825                L_CalcHeft_34:
0826  0218  A226    			GOTO	L_CalcHeft_4
0827                L_CalcHeft_35:
0828  0219  E286    			BTFSC	R_PubFlag1,1
0829  021A  A224    			GOTO	L_CalcHeft_36	;[R_PubFlag1].1=1(已锁定) 转
0830  021B  8359    			CALL	S_CalcOffTime	;计算自动关机时间(单位:秒)->R_OffTimerH:R_OffTimerL
0831  021C  FA85    			BTFSS	R_PubFlag0,5
0832  021D  A226    			GOTO	L_CalcHeft_4	;[R_PubFlag0].5=0 (称重数据不稳定) 转
0833  021E  D286    			BSF		R_PubFlag1,1	;1->R_PubFlag1.1 锁定
0834  021F  2089                MOVFW   R_PubReg2       ;\
0835  0220  22A0                MOVWF   R_LockWeightL   ; | [R_PubReg3:R_PubReg0]
0836  0221  208A                MOVFW   R_PubReg3       ; | ->R_LockWeightH:R_LockWeightL
0837  0222  22A1                MOVWF   R_LockWeightH   ;/
0838  0223  A226    			GOTO	L_CalcHeft_4
0839                L_CalcHeft_36:
0840  0224  D6CF    			BSF		R_DispFlag,3	;1->R_DispFlag.3 显示锁符
0841  0225  A260    			GOTO	L_CalcHeftRet
0842                ;
0843                L_CalcHeft_4:
0844  0226  0290    			CLRF	R_PubCnt3		;0->R_PubCnt3
0845  0227  8413    			CALL	S_LeftMove 		;[R_PubReg3:R_PubReg0]左移,直到[R_PubReg3]≥80H,最多移16次
0846                ;					 				 实际移位次数加入[R_PubCnt3]
0847  0228  20EA    			MOVFW	R_UnitData0		;\
0848  0229  228B    			MOVWF	R_PubReg4		; | [R_UnitData1:R_UnitData0]
0849  022A  20EB    			MOVFW	R_UnitData1		; | ->R_PubReg5:R_PubReg4
0850  022B  228C    			MOVWF	R_PubReg5		;/
0851  022C  20EC    			MOVFW	R_UnitData2
0852  022D  0690    			ADDWF	R_PubCnt3,1		;[R_PubCnt3]+[R_UnitData2]->R_PubCnt3
0853  022E  84F0    			CALL	S_Multi			;[R_PubReg3:R_PubReg2]×[R_PubReg5:R_PubReg4]->R_PubReg3:R_PubReg0
0854                L_CalcHeft4L1:
0855  022F  2090    			MOVFW	R_PubCnt3
0856  0230  68FF    			ANDLW	0FFH
0857  0231  E004    			BTFSC	STATUS,Z
0858  0232  A240    			GOTO	L_DispHeft		;[R_PubCnt3]=0 转
0859  0233  EE90    			BTFSC	R_PubCnt3,7
0860  0234  A23C    			GOTO	L_CalcHeft43	;[R_PubCnt3]≥80H 转
0861  0235  1290    			DECF	R_PubCnt3,1		;[R_PubCnt3]-1->R_PubCnt3
0862  0236  C204    			BCF		STATUS,C		;0->Cy
0863  0237  3E8A    			RRF		R_PubReg3,1		;\
0864  0238  3E89    			RRF		R_PubReg2,1		; | [R_PubReg3:R_PubReg0]右移1位
0865  0239  3E88    			RRF		R_PubReg1,1		; | ->R_PubReg3:R_PubReg0
0866  023A  3E87    			RRF		R_PubReg0,1		;/
0867  023B  A22F    			GOTO	L_CalcHeft4L1
0868                L_CalcHeft43:
0869  023C  4001    			MOVLW	1
0870  023D  2284    			MOVWF	R_Count			;1->R_Count
0871  023E  8417    			CALL	S_RL1Bit	;[R_PubCnt3]+1->R_PubCnt3,[R_PubReg3:R_PubReg0]左移1位->R_PubReg3:R_PubReg0
0872  023F  A22F    			GOTO	L_CalcHeft4L1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -