音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁 | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

PIC 運(yùn)算子程序(2)

作者:BLACKHILL 欄目:單片機(jī)
PIC 運(yùn)算子程序(2)
4.2  3字節(jié)浮點(diǎn)數(shù)轉(zhuǎn)換為定點(diǎn)整數(shù)
子程序的轉(zhuǎn)換結(jié)果將采用補(bǔ)碼表示。其轉(zhuǎn)換數(shù)值范圍:-32768~32767,入口條件和出口條件如下:
入口條件:ACCBHI、ACCBLO、EXPB
出口條件:ACCBHI、ACCBLO
    以下為子程序的清單。由于程序所需調(diào)用的子程序和所需通用寄存器單元地址和定點(diǎn)數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)子程序相同,在此省略。使用時(shí),將前面介紹的子程序拷入此處即可。
FtoD    CLRF         SIGN            ;清結(jié)果符號(hào)寄存器
    MOVF         ACCBHI,0
    BTFSS         ACCBHI,7    ;被轉(zhuǎn)換數(shù)是否為負(fù)?
    GOTO         D1
    BSF             SIGN,7        ;是,SIGN.7置1
    CALL         NEG_B        ;被轉(zhuǎn)換數(shù)取補(bǔ)
D1    BTFSS         EXPB,7        ;被轉(zhuǎn)換數(shù)為正,再判階碼為負(fù)否?
    GOTO         D2
    CLRF         ACCBHI        ;為負(fù),被轉(zhuǎn)換數(shù)小于1,無法用定點(diǎn)數(shù)表示
    CLRF         ACCBLO
    RETLW         0
D2    MOVLW         .16            ;被轉(zhuǎn)換數(shù)階碼減16(十進(jìn)制數(shù))
    SUBWF         EXPB,0
    BTFSS         STATUS,C    ;階碼小于16?
    GOTO         D3
        MOVLW         0XFF            ;階碼大于等于16,置ACCB為最大,返回
    MOVWF         ACCBHI
    MOVWF         ACCBLO
    RETLW         01
D3    CALL         FTOW3        ;調(diào)用子程序?qū)⒏↑c(diǎn)數(shù)轉(zhuǎn)換為定點(diǎn)數(shù)
    BTFSC         SIGN,7        ;定點(diǎn)數(shù)為負(fù)?
    CALL         NEG_B        ;是,取補(bǔ)
    RETLW         0            ;否,返回
;****************************************
FTOW3    MOVLW         .15            ;EXPB=15(十進(jìn)制數(shù))?
    SUBWF         EXPB,0
    BTFSC         STATUS,Z
    RETLW         0            ;是,返回
    BCF             STATUS,C    ;否,ACCB繼續(xù)右移,EXPB加1
    RRF             ACCBHI
    RRF             ACCBLO
    INCF         EXPB
    GOTO         FTOW3        ;重新判斷EXPB=15?
【校驗(yàn)舉例1】 19531(十進(jìn)制)
化為十六進(jìn)制數(shù):4C4B0FH
結(jié)果:4C4BH
【校驗(yàn)舉例2】 2622(十進(jìn)制)
化為十六進(jìn)制數(shù):51F00CH
結(jié)果:0A3EH
【例程】
MAIN        MOVLW        0X4B        ;被轉(zhuǎn)換數(shù)4C4BH送ACCB
    MOVWF        ACCBLO
    MOVLW        0X4C
    MOVWF        ACCBHI
    MOVLW        0X0F
    MOVWF        EXPB
        CALL        FtoD            ;調(diào)用定點(diǎn)數(shù)至浮點(diǎn)數(shù)轉(zhuǎn)換子程序
    END
5  碼制轉(zhuǎn)換程序設(shè)計(jì)
5.1   雙字節(jié)定點(diǎn)數(shù)至5位BCD碼轉(zhuǎn)換程序
    入口條件:ACCBHI、ACCBLO
    出口條件:ACCCHI低半字節(jié)、ACCCLO、ACCDHI
以下為雙字節(jié)定點(diǎn)數(shù)至5位BCD碼轉(zhuǎn)換程序清單。
    LIST            p=16F877
    INCLUDE        p16F877.inc
    ACCBLO         EQU     23        ;存放被轉(zhuǎn)換的雙字節(jié)整數(shù)低8位
    ACCBHI         EQU     24        ;存放被轉(zhuǎn)換的雙字節(jié)整數(shù)高8位
    ACCCLO         EQU     26        ;存放5位BCD碼
    ACCCHI         EQU     27
    ACCDLO         EQU     28
    ACCDHI         EQU     29
    TEMP         EQU     2A        ;臨時(shí)寄存器
    SIGN         EQU     2B        ;被轉(zhuǎn)換數(shù)符號(hào)寄存器
    ORG            0X0000
START    GOTO        MAIN
    ORG            0X0100
;**********雙字節(jié)數(shù)至BCD碼子程序************
BtoBCD    CLRF        SIG
2樓: >>參與討論
biily
thank you .
我正想學(xué)點(diǎn)pic的。

3樓: >>參與討論
owengeorge
thank you very much!
 
4樓: >>參與討論
max560
驗(yàn)證過嗎?
 
5樓: >>參與討論
BLACKHILL
都是運(yùn)行過的
 
6樓: >>參與討論
wyhfly
有參考價(jià)值!!
 
7樓: >>參與討論
goof
太謝謝你了
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
急問
關(guān)于PHILIPS單片的一點(diǎn)問題!
哪位好心人告訴我16F84最低價(jià)錢?多謝了!
福建高齊的Picmate2002和哪種c編譯器聯(lián)合使用,怎么用?請(qǐng)指教
請(qǐng)問誰有pic單片機(jī)無線接收的程序,謝謝
免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)