久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7014|回復: 0
收起左側

16進制數轉換成8421BCD編碼函數

[復制鏈接]
ID:26188 發表于 2015-2-18 01:18 | 顯示全部樓層 |閱讀模式

.INCLUDE hardware.inc
.IRAM
_Led_Out:
.dw 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
_List_8421_Data: //16進位數轉換成8421碼的位權表,萬位每千位進位,千位每百位進位,百位每十位進位
.dw 0xFFFF,0xEA60,0xC350,0x9C40,0x7530,0x4E20,0x2710
//60000-10000
.dw 0x2328,0x1F40,0x1B58,0x1770,0x1388,0x0FA0,0x0BB8,0x07D0,0x03E8
//9000-1000
.dw 0x0384,0x0320,0x02BC,0x0258,0x01F4,0x0190,0x012C,0x00C8,0x0064
//900-100
.dw 0x005A,0x0050,0x0046,0x003C,0x0032,0x0028,0x001E,0x0014,0x000A
//90-10
//.RAM
//.DATA
.code
//=========================================================================================
//函數: hex_to_8421()
//語法:hex_to_8421(被轉換數,符號標記)
//描述:16進位數轉換成8421碼,存放在C段中定義好的數組當中
//須定義一個下標8位的整數數組,C段中如下書寫
//extern int led_out [8]={0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0};
//參數:被轉換數小于0xFFFF的數,符號標記0或非零的數
//返回:無
//=============================================================================================
.PUBLIC _hex_to_8421;
_hex_to_8421: .PROC
push bp to [sp];
bp=sp+1;                 //基址重定位,準備取參數
r1=[bp+3];               //備轉換成8421碼的16進位數字
r3=[bp+4];               //符號位標志,為0,則做無符號整數處理,非1做有符號數處理
R4=_Led_Out;             //輸出數據的地址******************************可修改輸出名稱
bp=_List_8421_Data;      //基址定位到位權表頭**************************對應.IRAM段,可修改輸入名稱
//------------------------------------------
test R3,0xFFFF;          //檢查R3是否非0,如果非零,做有符號數處理,如果為0,做無符號數處理
    je _hex_loop0;       //為0,做無符號數處理,跳到_hex_loop0
  R3=0xF000;             //非0,做有符號數處理
  [R4]=r3;               //表的第1個單元高4字節存放符號標記,F為負,0為正
  R1-=0X0001;            //包括下1步,減1后反碼轉換成10進位正數
  R1^=0xFFFF;
_hex_loop0:
    R2=0X0007;           //R2為進位標志,從9到1循環,R2初置7,進入循環后減1為6做初值
//------------------------------------------
_hex_loop1:              //位權表遍歷開始標記
CALL _Clear_WatchDog;            // 清看門狗
  BP+=0X0001;            //基址加1,定位到位權表第一個有效數字
  R2-=0X0001;            //位權減1,準備輸出位權表第一個有效數字所對應的位數字
  cmp r1,[bp];           //比較被轉換數和當前位權的大小
     jb _hex_loop2;      //如果被轉換數小于當前位權,則跳到"_hex_loop1",繼續比較
   jmp _hex_loop3;       //如果被轉換數大于當前位權,則跳到"_hex_loop3",進行轉換
     _hex_loop2:         //R2進位循環處理的標記
     CMP R2,0X0002;   
         JB _hex_loop4;  //包括上1步,如果R2小于2,跳到_hex_loop4,將R2置為10
       JMP _hex_loop1;   //如果R2大于等于2,跳到"_hex_loop1",繼續比較
         _hex_loop4:
         R2=0x000A;      //包括下1步,將R2置為10,跳到"_hex_loop1",繼續比較
         JMP _hex_loop1;
//------------------------------------------
_hex_loop3:              //判斷并輸出數據的標記
cmp r1,0x2710;
jnb _hex_2710;           //包括上1步,如果R1大于等于0x2710(10000),跳到_hex_2710處理
cmp r1,0x03e8;
jnb _hex_03e8;           //包括上1步,如果R1大于等于0x03E8(1000),跳到_hex_03E8處理
cmp r1,0x0064;
jnb _hex_0064;           //包括上1步,如果R1大于等于0x0064(100),跳到_hex_0064處理
cmp r1,0x000a;
jnb _hex_000a;           //包括上1步,如果R1大于等于0x000A(10),跳到_hex_000A處理
//------------------------------------------
R3=R4+5;                //包括下2步,輸出10進制第1位,跳到"_hex_000",結束轉換
[R3]=R1;
jmp _hex_over;
_hex_2710:
     R3=R4+1;            //包括下3步,輸出10進制第5位,被轉換數減位權,做被轉換數,跳到"_hex_loop1",繼續比較
     [R3]=R2;
     r1-=[bp];
     jmp _hex_loop1;
_hex_03e8:
     R3=R4+2;            //包括下3步,輸出10進制第4位,被轉換數減位權,做被轉換數,跳到"_hex_loop1",繼續比較
     [R3]=R2;
     r1-=[bp];
     jmp _hex_loop1;
_hex_0064:
     R3=R4+3;            //包括下3步,輸出10進制第3位,被轉換數減位權,做被轉換數,跳到"_hex_loop1",繼續比較
     [R3]=R2;
     r1-=[bp];
     jmp _hex_loop1;
_hex_000a:
     R3=R4+4;            //包括下3步,輸出10進制第2位,被轉換數減位權,做被轉換數,跳到"_hex_loop1",繼續比較
     [R3]=R2;
     r1-=[bp];
     jmp _hex_loop1;
_hex_over:
pop bp from [sp];
RETF
.ENDP;
.PUBLIC _Clear_WatchDog;
_Clear_WatchDog: .PROC
  PUSH R1 TO [SP];
R1 = 0x0001;
  [ASM_Port_Watchdog_Clear] = R1;
  POP R1 FROM [SP];
RETF
.ENDP;


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美中文日韩在线v日本 | 久久中文一区二区 | 成人毛片一区二区三区 | 在线视频第一页 | 国产精品久久久 | 日韩av在线不卡 | 福利在线观看 | 国产在线看片 | 亚洲高清在线观看 | 日韩一区不卡 | 久久亚洲春色中文字幕久久久 | 久久www免费人成看片高清 | 成人免费激情视频 | 一区在线观看 | 久久精品国产一区 | 天堂一区 | 国产视频久久 | 天天射中文 | 亚洲一区二区三区免费在线 | 国产精品不卡视频 | 91天堂网 | 99九色| 久久最新网址 | 日韩精品一区二区三区中文字幕 | 欧美色综合一区二区三区 | 欧美成人h版在线观看 | 在线看亚洲 | 国产成人一区二区三区 | 黄网站色大毛片 | 91精品国产91久久久久久最新 | www.一级片| 国产精品99久久久久久大便 | 日韩一区二区在线免费观看 | 国产自产21区 | 一区二区在线不卡 | 欧美成人自拍 | 亚洲电影在线播放 | 久久久www成人免费精品 | 91国在线高清视频 | 国产精品www | 一级毛片视频 |