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

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(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

請(qǐng)問(wèn)哪里有十六進(jìn)制轉(zhuǎn)換十進(jìn)制的子程序,提供一個(gè),謝謝。

作者:笨鳥急飛 欄目:技術(shù)交流
請(qǐng)問(wèn)哪里有十六進(jìn)制轉(zhuǎn)換十進(jìn)制的子程序,提供一個(gè),謝謝。
 
2樓: >>參與討論
netjackycn
!!!
;***********************************************************
;
; 八位十六進(jìn)制數(shù)(255)轉(zhuǎn)成二位十進(jìn)制數(shù)(99)的子程序
;
; 欲轉(zhuǎn)換的十六進(jìn)制數(shù)值存放在 DIGIT 寄存器中
;
; 輸出值放在 BUFFER 寄存器中
; 其中“低四位”為“各位”數(shù)碼管需要顯示的十進(jìn)制的內(nèi)容,
; 其中“高四位”為“十位”數(shù)碼管需要顯示的十進(jìn)制的內(nèi)容,
;
;
;
;
;
;二進(jìn)制調(diào)整為BCD碼的方法是將二進(jìn)制碼8次每次移位后
;都檢查低四位LSD+3是否大于7,如果是則再加3,否則不加。
;接著再將高四位MSD作相同處理
;
;
;
;***********************************************************


     list p=16F877,R=DEC

    include "p16F877.inc"





COUNTER        EQU    20H
DIGIT        EQU    21H
BUFFER        EQU    22H
BUFFER1        EQU    23H
SUM        EQU    24H



    ORG    0000H
MAIN
    MOVLW    048H
    MOVWF    DIGIT
    CALL    HEX2BCD

STOP    GOTO    STOP



;***********************************************************
;   八位十六進(jìn)制數(shù)(255)轉(zhuǎn)成二位十進(jìn)制數(shù)(99)的子程序
;***********************************************************
HEX2BCD
    MOVLW    8
    MOVWF    COUNTER        ;循環(huán)左移計(jì)數(shù)器置8,左移8次
    CLRF    BUFFER        ;清除緩沖器
    MOVF    DIGIT,W        ;DIGIT→W→BUFFER1
    MOVWF    BUFFER1

H2B
    RLF    BUFFER1,1    ;二進(jìn)制數(shù)轉(zhuǎn)換成BCD碼(以便顯示)
    RLF    BUFFER,1

;
; 當(dāng) BUFFER1 寄存器左移到有進(jìn)位(即 有1從左邊移出)的時(shí)候,
; 導(dǎo)致 STATUS 寄存器的 C 位為1;
; 當(dāng)下一條指令左移 BUFFER 寄存器的時(shí)候,
; 會(huì)將 STATUS 中的 C (此時(shí)C=1)帶到 BUFFER 寄存器中。
;

    DECFSZ    COUNTER,1    ;如果左移8次完成,則跳
    GOTO    ADJUST        ;


    BTFSS    STATUS,C    ;判斷是否有進(jìn)位(即是否達(dá)到100),如已到100,則跳
                ;(若C=1 則程序跳過(guò)下一條指令)
    RETFIE            ;


;    …………        ;所處理的數(shù)值已經(jīng)超過(guò)兩位。此處填寫超過(guò)兩位的處理程序

    RETFIE            ;



ADJUST    
    MOVLW    03H        ;二進(jìn)制轉(zhuǎn)BCD的調(diào)整
    ADDWF    BUFFER,W    ;每次移位后都檢查低四位LSD+3是否大于7
    MOVWF    SUM             
    BTFSC    SUM,3
    MOVWF    BUFFER
                ;接著再將高四位MSD作相同處理
    MOVLW    30H
    ADDWF    BUFFER,W    ;如果是則再加3,否則不加。
    MOVWF    SUM
    BTFSC    SUM,7
    MOVWF    BUFFER
    GOTO    H2B

;***********************************************************
;             子程序結(jié)束
;***********************************************************

     END

3樓: >>參與討論
將軍令
這種軟件也要?jiǎng)e人給?
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
兩個(gè)器件如果i2c地址一樣,怎么處理?
BTA12-600B2容易燒毀,請(qǐng)教原因?
ADS7805應(yīng)用問(wèn)題
在Pspice做瞬態(tài)仿真時(shí),經(jīng)常出現(xiàn)類似一下的錯(cuò)誤信息
能做A/D轉(zhuǎn)換的高手請(qǐng)進(jìn)
免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


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