GOGOGO高清完整国语,GOGOGO在线观看免费观看完整版高清,GOGOGO免费高清完整,GOGOGO高清在线观看免费视频,GOGOGO日本高清国语完整,GOGOGO免费高清完整版

技術熱線: 4007-888-234

定點數轉浮點數的程序

更新時間: 2019-03-23
閱讀量:4030

十年專注單片機方案開發的方案公司英銳恩,分享定點數轉浮點數的程序。英銳恩現提供服務產品涉及主控芯片:8位單片機、16位單片機、32位單片機及各類運算放大器等。

定點數轉換成浮點數
本子程序的功能是將雙字節定點整數(十六進制)轉換為3字節浮點數,其轉換數值范圍:-32768~32767,入口條件和出口條件如下:
入口條件:ACCBHI、ACCBLO
出口條件:ACCBHI、ACCBLO、EXPB
以下為定點整數轉換成浮點數的程序清單。
    LIST            p=16f877
    INCLUDE        p16f877.inc
    ACCBLO         EQU     23        ;存放定點整數和轉換后浮點數的尾數
    ACCBHI         EQU     24
    EXPB         EQU     25        ;存放轉換后浮點數的階碼
    ACCCLO         EQU     26        ;臨時寄存器
    ACCCHI         EQU     27        ;臨時寄存器
    ACCDLO         EQU     28        ;臨時寄存器
    ACCDHI         EQU     29        ;臨時寄存器
    SIGN         EQU     2B        ;存放被轉換數的符號

ORG            0X0000
START    GOTO        MAIN
    ORG            0X0100
;*********雙字節定點整數到浮點數轉換子程序***********
DtoF    CLRF         SIGN            ;根據被轉換數確定結果的符號,對負數取補
    BTFSS         ACCBHI,7
    GOTO         INTF1
    BSF             SIGN,7
    CALL         NEG_B
INTF1    MOVLW         .15            ;初始化EXPB
    MOVWF         EXPB
    CLRF         ACCCHI
    CLRF         ACCCLO
    CALL         F_norm        ;對ACCB進行規格化
    BTFSS         SIGN,7        ;結果為負?
    GOTO         DtoF1
    CALL         NEG_B        ;是,求補
DtoF1    RETURN   
;**************浮點數規格化子程序**************
F_norm     MOVF         ACCBHI        ;ACCB=0?
    BTFSS         STATUS,Z
    GOTO         C_norm
    MOVF         ACCBLO
    BTFSC         STATUS,Z

 RETLW         0            ;是,不需規格化,返回
C_norm    BTFSC        ACCBHI,7    ;否。ACCB為負?
     GOTO        C_norm2   
C_norm1    BTFSC         ACCBHI,6    ;為正。規格化完畢?
    RETLW         0            ;ACCBHI.6=1,規格化結束
    CALL         SHFTSL        ;否。ACCB左移
    DECF         EXPB        ;EXPB減1
    GOTO         C_norm1        ;重新判斷規格化完畢否?
C_norm2    BTFSS        ACCBHI,6    ;ACCB為負。規格化完畢否?
    RETLW        0            ;ACCBHI.6=0,規格化結束
    BCF            STATUS,C   
    CALL        SHFTSL        ;否,ACCB左移
    BSF            ACCBHI,7    ;加符號
    DECF        EXPB        ;EXPB減1

 GOTO        C_norm2        ;重新判斷規格化完畢否?
SHFTSL      BCF             STATUS ,C    ;ACCB左移子程序   
    RLF             ACCCLO       
    RLF             ACCCHI
    RLF             ACCBLO
    RLF             ACCBHI
    RETLW         0
【校驗舉例1】 19531(十進制)
化為十六進制數:4C4BH
結果:4C4B0FH
【校驗舉例2】 2622(十進制)
化為十六進制數: 0A3EH
結果:51F00CH
【例程】
MAIN        MOVLW        0X4B        ;被轉換數4C4BH送ACCB
    MOVWF        ACCBLO
    MOVLW        0X4C
    MOVWF        ACCBHI
        CALL        DtoF            ;調用定點數至浮點數轉換子程序
    END

欢迎光临: 老河口市| 万宁市| 祥云县| 乐至县| 海林市| 诏安县| 孙吴县| 赤峰市| 呈贡县| 璧山县| 上蔡县| 孟津县| 盐城市| 双江| 镇巴县| 云浮市| 奉贤区| 紫阳县| 澄迈县| 修文县| 池州市| 凤山市| 普格县| 南昌县| 融水| 北碚区| 阿拉善左旗| 新绛县| 福泉市| 松江区| 米泉市| 巨野县| 洛浦县| 连云港市| 乾安县| 酒泉市| 休宁县| 鹤山市| 昌江| 木兰县| 蓬溪县|