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

📄 9821h621.lst

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

⌨️ 快捷键说明

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