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

📄 hex2asc.asm

📁 8051 ASM source code for MLX90614 tempture sensor
💻 ASM
字号:
;**********************************************************************************************
;							Hexidecimal to ASCII conversion	
;**********************************************************************************************
;Name:		hex2asc
;Function:	Convert a byte in ASCII code
;Input:		W
;Output:	digit1(high nibble),digit2(low nibble)
;Comments:  
;**********************************************************************************************
hex2asc
	MOVWF	tx_1					; W -> tx_1
	SWAPF	tx_1,W					; Swap tx_1 -> W	
	ANDLW	0x0F					; Get low nibble
	MOVWF	tx_0					; W -> tx_0
	MOVLW	0x09					; 9 -> W
	SUBWF	tx_0,W					; tx_0 - 9 -> W
	BTFSC	STATUS,Z				; nibble=9? 
	GOTO	Equal_or_less_9_first	; Yes, jump to Equal_or_less_9_first
	BTFSS	STATUS,C				; nibble>9?
	GOTO	Equal_or_less_9_first	; No, jump to to Equal_or_less_9_first
	MOVLW	0x37					;|
	ADDWF	tx_0,W					; > tx_0 + 0x37 -> digit1
	MOVWF	digit1					;|
	GOTO	second_nibble
Equal_or_less_9_first
	MOVLW	0x30					;|
	ADDWF	tx_0,W					; > tx_0 + 0x30 -> digit1
	MOVWF	digit1					;|
	GOTO	second_nibble

second_nibble
	MOVF	tx_1,W					; tx_1 -> W
	ANDLW	0x0F					; Get low nibble
	MOVWF	tx_0					; W -> tx_0
	MOVLW	0x09
	SUBWF	tx_0,W					; tx_0 - 9->W
	BTFSC	STATUS,Z				; nibble=9?
	GOTO	Equal_or_less_9_second	; Yes, jump to Equal_or_less_9_second
	BTFSS	STATUS,C				; nibble>9?
	GOTO	Equal_or_less_9_second	; No, jump to to Equal_or_less_9_first
	MOVLW	0x37					;|
	ADDWF	tx_0,W					; > tx_0 + 0x37 -> digit2
	MOVWF	digit2					;|
	RETLW	0
Equal_or_less_9_second
	MOVLW	0x30					;|
	ADDWF	tx_0,W					; > tx_0 + 0x37 -> digit2
	MOVWF	digit2					;|
	RETLW	0

⌨️ 快捷键说明

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