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

📄 9821h621.lst

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

⌨️ 快捷键说明

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