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

📄 erjingzhi-to-shijingzhi.txt

📁 PIC单片机把二进制转换成十进制的一段程序
💻 TXT
字号:
转》1字(双字节)二进制/十进制 转换子程序--适合初
1字(双字节)二进制/十进制 转换子程序--适合初学者


    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
    RETLW      0H
;-------------------------------------------------------------------------------------
    ORG        1FFH
    GOTO       JISUAN
    END

⌨️ 快捷键说明

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