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

📄 hex_dec.asm

📁 PS2 Game Products Test-Jig source code,
💻 ASM
字号:
HEX_DEC_7F	CLRWDT
		BSF	SIGN_FB
		MOVWF	TEMP_BUFFER
		MOVLW	0x7F		;VR CENTRAL VALUE=80
		SUBWF	TEMP_BUFFER,F
		BTFSC	STATUS,C	;RESULT = NEGATIVE?
		GOTO	HEX_DEC_CONVERT	;NO
		BCF	SIGN_FB		;SET SIGN FLAG BIT = NEGATIVE
		COMF	TEMP_BUFFER,F
		INCF	TEMP_BUFFER,F
		GOTO	HEX_DEC_CONVERT

HEX_DEC_80	BSF	SIGN_FB
		MOVWF	TEMP_BUFFER
		MOVLW	0x80		;VR CENTRAL VALUE=80
		SUBWF	TEMP_BUFFER,F
		BTFSC	STATUS,C	;RESULT = NEGATIVE?
		GOTO	HEX_DEC_CONVERT	;NO
		BCF	SIGN_FB		;SET SIGN FLAG BIT = NEGATIVE
		COMF	TEMP_BUFFER,F
		INCF	TEMP_BUFFER,F

HEX_DEC_CONVERT	MOVF	TEMP_BUFFER,W
		MOVWF	TEMP_BUFFER1
		MOVWF	TEMP_BUFFER2
		BSF	STATUS,RP0
	        CLRF	DEC_TEMP1
                CLRF	DEC_TEMP2
                CLRF	DEC_TEMP3
		BCF	STATUS,RP0
VR_DIV100	MOVLW	D'100'
		SUBWF	TEMP_BUFFER2,F 
		BTFSS	STATUS,C	;NEGATIVE ?
		
		GOTO	CHK_DEC_3	

;		GOTO	VR_DIV10

		BSF	STATUS,RP0
		INCF	DEC_TEMP3,F
		BCF	STATUS,RP0
		MOVF	TEMP_BUFFER2,W
		MOVWF	TEMP_BUFFER1		
		GOTO	VR_DIV100

;---------------------------------------------------------------------
CHK_DEC_3	BTFSC	SIGN_FB
		GOTO	CHK_DEC_31			
		
		BSF	STATUS,RP0
		MOVLW	0x0A
		ADDWF	DEC_TEMP3,F
		BCF	STATUS,RP0
		GOTO	VR_DIV10
		
CHK_DEC_31	BSF	STATUS,RP0
		MOVF	DEC_TEMP3,W
		BCF	STATUS,RP0
		BTFSS	STATUS,Z
		GOTO	VR_DIV10
		BSF	STATUS,RP0	
		MOVLW	0x0C
		MOVWF	DEC_TEMP3
		BCF	STATUS,RP0	
;---------------------------------------------------------------------

VR_DIV10	MOVF	TEMP_BUFFER1,W
		MOVWF	TEMP_BUFFER2
VR_DIV10_1	MOVLW	D'10'
		SUBWF	TEMP_BUFFER1,F
		BTFSS	STATUS,C

		GOTO	CHK_DEC_2

		BSF	STATUS,RP0	
		INCF	DEC_TEMP2,F
		BCF	STATUS,RP0	
		MOVF	TEMP_BUFFER1,W
		MOVWF	TEMP_BUFFER2
		GOTO	VR_DIV10_1

;---------------------------------------------------------------------
CHK_DEC_2	BSF	STATUS,RP0	
		MOVF	DEC_TEMP2,W
		BCF	STATUS,RP0	
		BTFSS	STATUS,Z
		GOTO	VR_DIV1

		BSF	STATUS,RP0	
		MOVLW	0x0A
		XORWF	DEC_TEMP3,W
		BCF	STATUS,RP0	
		BTFSC 	STATUS,Z
		GOTO	CHK_DEC21

		BSF	STATUS,RP0	
		MOVLW	0x0C
		XORWF	DEC_TEMP3,W
		BCF	STATUS,RP0	
		BTFSC	STATUS,Z
		GOTO	CHK_DEC21
		GOTO	VR_DIV1


CHK_DEC21	BSF	STATUS,RP0		
		MOVLW	0x0C
		MOVWF	DEC_TEMP2
		BCF	STATUS,RP0			


VR_DIV1		
		MOVF	TEMP_BUFFER2,W
                BSF	STATUS,RP0	
		MOVWF	DEC_TEMP1
		BCF	STATUS,RP0	

		RETURN


;***********************************************************************
;File name	:HEX_dEC.asm
;Routine Name	:BG_DIV
;Input parm	:W Register 
;Output 		:W Register 
;Ram affected	:TEMP_BUFFER1 , TEMP_BUFFER2 , OFFSET
;SFR affected	:(STATUS,C,DC,Z)
;I/O Pin		:
;Subroutine Call	:BAR_GRAPH_TABLE	
;***********************************************************************
BG_DIV
		MOVWF	TEMP_BUFFER1
		CLRF	TEMP_BUFFER2
		
		XORLW	0xFF
		BTFSS	STATUS,Z	;Force sensor output value=FF
		GOTO	BG_DIVA		;No
		
		MOVLW	0x08		;Yes 
		MOVWF	TEMP_BUFFER2	
		GOTO	BG_DIV2		

BG_DIVA		
		MOVF	TEMP_BUFFER1,W
		XORLW	0x00
		BTFSS	STATUS,Z	;Force sensor output value=00
		GOTO	BG_DIV1		;No
		
		MOVLW	0xFF		
		MOVWF	TEMP_BUFFER2
		GOTO	BG_DIV2		
		
BG_DIV1		MOVLW	D'37'		;	
		SUBWF	TEMP_BUFFER1,F
		BTFSS	STATUS,C	;RESULT IS POSITIVE ?
		GOTO	BG_DIV2		;NO					
		INCF	TEMP_BUFFER2,F	;YES
		GOTO	BG_DIV1

BG_DIV2		INCF	TEMP_BUFFER2,W	
		MOVWF	OFFSET
		CALL	BAR_GRAPH_TABLE	

		RETURN

⌨️ 快捷键说明

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