最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | 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

16進(jìn)制到10進(jìn)制,10進(jìn)制到16進(jìn)制轉(zhuǎn)換

作者:蘭天白云 欄目:單片機(jī)
16進(jìn)制到10進(jìn)制,10進(jìn)制到16進(jìn)制轉(zhuǎn)換
以下程序經(jīng)過測試,可直接使用

//-----------------------------------------
//*把2字節(jié)16進(jìn)制數(shù)轉(zhuǎn)化成4位壓縮10進(jìn)制數(shù)
//16進(jìn)制數(shù)在x中,10進(jìn)制數(shù)也在x中,當(dāng)
//轉(zhuǎn)化成的10進(jìn)制數(shù)大于9999時(shí),置為9999*/
unsigned int hex2bcd5(unsigned int x)
{
if(x<0x270f)
x=(((x/1000)%10)<<12)+(((x/100)%10)<<8)+(((x/10)%10)<<4)+(x%10);
else
x=0x9999;
return(x);
}
//-------------------------------------------------
//*把0-9999范圍的十進(jìn)制數(shù)轉(zhuǎn)化成2字節(jié)的十六進(jìn)制數(shù)*/
unsigned int bcd4hex2(unsigned int x)
{
if(x>0x9999)
{x=0x9999;}
else     
x=(x>>12)*1000+((x>>8)&0x000f)*100+((x>>4)&0x000f)*10+(x&0x000f);
return(x);
}

唯一不足的是編譯后太占空間
大家看一看,太大了
206:               //-----------------------------------------
207:               //*把2字節(jié)16進(jìn)制數(shù)轉(zhuǎn)化成4位壓縮10進(jìn)制數(shù)
208:               //16進(jìn)制數(shù)在x中,10進(jìn)制數(shù)也在x中,當(dāng)
209:               //轉(zhuǎn)化成的10進(jìn)制數(shù)大于9999時(shí),置為9999*/
210:               unsigned int hex2bcd5(unsigned int x)
211:               {
212:                if(x<0x270f)
   384    3027     MOVLW 0x27
   385    1283     BCF 0x3, 0x5
   386    0241     SUBWF 0x41, W
   387    300F     MOVLW 0xf
   388    1903     BTFSC 0x3, 0x2
   389    0240     SUBWF 0x40, W
   38A    1803     BTFSC 0x3, 0
   38B    2C0D     GOTO 0x40d
213:                x=(((x/1000)%10)<<12)+(((x/100)%10)<<8)+(((x/10)%10)<<4)+(x%10);
   38C    30E8     MOVLW 0xe8
   38D    00DA     MOVWF 0x5a
   38E    3003     MOVLW 0x3
   38F    00DB     MOVWF 0x5b
   390    0841     MOVF 0x41, W
   391    00D9     MOVWF 0x59
   392    0840     MOVF 0x40, W
   393    00D8     MOVWF 0x58
   394    118A     BCF 0xa, 0x3
   395    273A     CALL 0x73a
   396    085C     MOVF 0x5c, W
   397    00D8     MOVWF 0x58
   398    085D     MOVF 0x5d, W
   399    00D9     MOVWF 0x59
   39A    300A     MOVLW 0xa
   39B    00DA     MOVWF 0x5a
   39C    3000     MOVLW 0
   39D    01DB     CLRF 0x5b
   39E    118A     BCF 0xa, 0x3
   39F    273A     CALL 0x73a
   3A0    0ED8     SWAPF 0x58, F
   3A1    0ED9     SWAPF 0x59, F
   3A2    30F0     MOVLW 0xf0
   3A3    05D9     ANDWF 0x59, F
   3A4    0858     MOVF 0x58, W
   3A5    390F     ANDLW 0xf
   3A6    04D9     IORWF 0x59, F
   3A7    30F0     MOVLW 0xf0
   3A8    05D8     ANDWF 0x58, F
   3A9    0858     MOVF 0x58, W
   3AA    00C2     MOVWF 0x42
   3AB    0859     MOVF 0x59, W
   3AC    00C3     MOVWF 0x43
   3AD    3064     MOVLW 0x64
   3AE    00DA     MOVWF 0x5a
   3AF    01DB     CLRF 0x5b
   3B0    0841     MOVF 0x41, W
   3B1    00D9     MOVWF 0x59
   3B2    0840     MOVF 0x40, W
   3B3    00D8     MOVWF 0x58
   3B4    118A     BCF 0xa, 0x3
   3B5    273A     CALL 0x73a
   3B6    085C     MOVF 0x5c, W
   3B7    00D8     MOVWF 0x58
   3B8    085D     MOVF 0x5d, W
   3B9    00D9     MOVWF 0x59
   3BA    300A     MOVLW 0xa
   3BB    00DA     MOVWF 0x5a
   3BC    3000     MOVLW 0
   3BD    01DB     CLRF 0x5b
   3BE    118A     BCF 0xa, 0x3
   3BF    273A     CALL 0x73a
   3C0    0842     MOVF 0x42, W
   3C1    07D8     ADDWF 0x58, F
   3C2    1803     BTFSC 0x3, 0
   3C3    0AD9     INCF 0x59, F
   3C4    0843&n
2樓: >>參與討論
蘭天白云
這么長的代碼你們也能忍受?
 
3樓: >>參與討論
hotpower
這2個(gè)程序試試(我沒調(diào)試)
unsigned int hex2bcd5(unsigned int x)
{
unsigned int val = 0, TEMP;
  if (x > 9999) val = 0x9999;
  else {
    do {
      val >>= 4;
      TEMP = x % 10;
      val += TEMP << 12;
      x /= 10;
    }
    while(x != 0);
  }
  return val;  
}

unsigned int bcd4hex2(unsigned int x)
{
unsigned int val = 0;
unsigned int TEMP = 1;
  if (x > 0x9999) val = 0x9999;
  else {
    do {
      val += (x & 0x0f) * TEMP;
      TEMP *= 10;
      x >>= 4;
    }
    while (x != 0);
  }
  return val;  
}


4樓: >>參與討論
netjackycn
16位二進(jìn)制數(shù)(FFFF)到5位十進(jìn)制數(shù)(65535)子程序
;*******************************************************************;
;    16位二進(jìn)制數(shù)(FFFF)到5位十進(jìn)制數(shù)(65535)子程序
;
;入口條件: 輸入16位二進(jìn)制數(shù)字,存放在 H_byte 和 L_byte
;
;出口條件: 輸出5位十進(jìn)制數(shù),存放在R0,R1,R2 = 06,55,35
;
;*******************************************************************;
HEX2BCD
    bcf    STATUS,0    ;清除進(jìn)位標(biāo)志位
    movlw    .16        ;十進(jìn)制的16
    movwf    count
    clrf    R0
    clrf    R1
    clrf    R2
loop16
    rlf    L_byte
    rlf    H_byte
    rlf    R2
    rlf    R1
    rlf    R0

    decfsz    count
    goto    adjDEC
    RETLW    0

adjDEC
    movlw    R2
    movwf    FSR
    call    adjBCD

    movlw    R1
    movwf    FSR
    call    adjBCD

    movlw    R0
    movwf    FSR
    call    adjBCD

    goto    loop16

adjBCD
    movlw    03H
    addwf    0,W        ;0:表示地址為0,即FSR單元所包含的地址
    movwf    TEMP
    btfsc    TEMP,3        ; 測試結(jié)果 > 7
    movwf    0        ; 保存到 MSD

    movlw    30H
    addwf    0,W
    movwf    TEMP
    btfsc    TEMP,7        ; 測試結(jié)果 > 7
    movwf    0        ; 保存到 MSD
    RETLW    0



5樓: >>參與討論
蘭天白云
先謝了
我試試

6樓: >>參與討論
bolofeng
暈死,這么長的代碼也敢用???俺也貼一個(gè)
經(jīng)過驗(yàn)證,轉(zhuǎn)匯編40行左右,速度也還可以。
bcd 到 bin 的自己想吧。
匯編的書上到處都是!
void Bin2Bcd5(unsigned int bin, unsigned CHAR *bcd)
{
    static const unsigned powTenTbl[] = {10000.html">10000,1000,100,10,1};

    unsigned int    powTen;
    unsigned CHAR     digit;
    unsigned CHAR     i;

    for (i = 0; i < 5; i++)
    {
        digit = 0;
        powTen = powTenTbl[i];

        while (bin >= powTen)
        {
            bin -= powTen;
            digit++;
        }

        *bcd++ = digit;
    }
}


參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
PIC下載線
邏輯運(yùn)算符&&,||與位運(yùn)算符&,|的異同?發(fā)現(xiàn)一個(gè)驚人的相同點(diǎn)
請問版主及各位關(guān)于PIC的A/D轉(zhuǎn)換時(shí)的滑動(dòng)窗口濾波問題????
TO:fzj大俠,向你請教PWM的問題
請問一下,PIC16F77能否直接替換PIC16F877或PIC16F877A
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號(hào)