技术热线: 4007-888-234

1字(双字节)二进制-十进制转换子程序

更新时间: 2019-03-23
阅读量:2623

十年专注单片机方案开发的方案公司英锐恩,分享1字(双字节)二进制-十进制转换子程序。英锐恩现提供服务产品涉及主控芯片:8位单片机、16位单片机、32位单片机及各类运算放大器等。

BIN_L EQU 10H ;要进行二进制转换的 低字节 BIN_H EQU BIN_L+1 ;要进行二进制转换的 高字节 GE_B EQU BIN_L+2 ;转换后的 个位 SHI_B EQU BIN_L+3 ;转换后的 十位 BAI_B EQU BIN_L+4 ;转换后的 百位 QIAN_B EQU BIN_L+5 ;转换后的 千位 WAN_B EQU BIN_L+6 ;转换后的 万位

; **********************说明************************ ; * 入口:BIN_L BIN_H       * ; * 出口:GE_B SHI_B BAI_B QIAN_B WAN_B * ; * 转换子程序: CONVERT_2_10     * ; **************************************************

ORG 00H JISUAN: MOVLW 0FFH ;验证程序 MOVWF BIN_H MOVLW 0FFH MOVWF BIN_L CALL CONVERT_2_10 GOTO $ ;------------------------------------------------------------------------------------- CONVERT_2_10: ;二进制转换十进制子程序 CLRF WAN_B CLRF QIAN_B CLRF BAI_B CLRF SHI_B CLRF GE_B BIN_L_PR ;二进制低字节进行十进制转换程序 MOVF BIN_L,F BTFSC STATUS,Z GOTO BIN_H_PRO BAI_B_PRO_L: MOVLW 64H SUBWF BIN_L,W BTFSS STATUS,C GOTO SHI_B_PRO_L MOVWF BIN_L INCF BAI_B,F GOTO BAI_B_PRO_L SHI_B_PRO_L: MOVLW 0AH SUBWF BIN_L,W BTFSS STATUS,C GOTO GE_B_PRO_L MOVWF BIN_L INCF SHI_B GOTO SHI_B_PRO_L GE_B_PRO_L: MOVF BIN_L,W MOVWF GE_B GOTO BIN_H_PRO BIN_H_PR ;二进制高字节进行十进制转换程序 

MOVF BIN_H,F BTFSC STATUS,Z GOTO CONVERT_END GE_B_PRO_H: MOVLW 6H ADDWF GE_B,F MOVLW 0AH SUBWF GE_B,W BTFSS STATUS,C GOTO SHI_B_PRO_H ;个位<10,则直接到十位转换程序 MOVWF GE_B INCF SHI_B,F ;个位>=10,则进位 GOTO SHI_B_PRO_H SHI_B_PRO_H: MOVLW 5H ADDWF SHI_B,F MOVLW 0AH SUBWF SHI_B,W BTFSS STATUS,C GOTO BAI_B_PRO_H ;十位<10,则直接到百位转换程序 MOVWF SHI_B INCF BAI_B,F ;十位>=10,则进位 GOTO BAI_B_PRO_H 

BAI_B_PRO_H: MOVLW 2H ADDWF BAI_B,F MOVLW 0AH SUBWF BAI_B,W BTFSS STATUS,C GOTO QIAN_B_PRO_H ;百位<10,则直接到千位转换程序 MOVWF BAI_B INCF QIAN_B ;百位>=10,则进位 GOTO QIAN_B_PRO_H QIAN_B_PRO_H: MOVLW 0AH SUBWF QIAN_B,W BTFSS STATUS,C GOTO WAN_B_PRO_H ;千位<10,则直接到万位转换程序 MOVWF QIAN_B INCF WAN_B ;千位>=110,则进位 GOTO WAN_B_PRO_H WAN_B_PRO_H: DECFSZ BIN_H,F GOTO GE_B_PRO_H GOTO CONVERT_END CONVERT_END: NOP RETLW0H ;------------------------------------------------------------------------------------- ORG 1FFH GOTO JISUAN END


(文源网络,侵删)