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

📄 9821h621.lst

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

⌨️ 快捷键说明

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