久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > PIC單片機的數制轉換

PIC單片機的數制轉換

作者: 時間:2016-11-11 來源:網絡 收藏
如果使用PICC編譯器對PIC單片機的數制進行轉換,我認為嵌套匯編是最好的辦法,這樣可以節省更多的空間,相對PIC一般的小容量芯片來說是最好的,下面是我做的從BCD轉到BIN和從BIN轉到BCD的程序。本程序使用時還有個限制,那就是BINTOBCD的二進制數要小于0x64,這樣轉換出來的數據才能到99以內,另外一個就BCDTOBIN最好有個數據判斷功能。可能寫的不是很標準,請高手指正。

另外一個是數據的反轉,比如高位在前反轉到低位在前,我也認為這樣的程序最好使用匯編,當然我沒有看編譯器編譯出來的效率,估計會占用更多的FLASH。

本文引用地址:http://cqxgywz.com/article/201611/316605.htm

下面是數制轉換的程序:

//在使用前要定義幾個全局變量

volatile unchar FDATA,ZDATA,COUNT; //call ASM use.

unchar BinToBcd(unchar data)
{
unchar fdata;
ZDATA=data;
#asm
CLRF _FDATA;
GTENTH
MOVLW 0AH
SUBWF _ZDATA,W
BTFSS _STATUS,0
GOTO OVER
MOVWF _ZDATA
INCF _FDATA
GOTO GTENTH
OVER
SWAPF _FDATA,W
IORWF _ZDATA
#endasm
fdata=ZDATA;
return (fdata);
}
unchar BcdToBin(unchar data)
{
unchar fdata;
ZDATA=data;
#asm
CLRF _FDATA
MOVLW 0FH
ANDWF _ZDATA,W
MOVWF _FDATA
SWAPF _ZDATA
MOVLW 0FH
ANDWF _ZDATA
BCF _STATUS,0
RLF _ZDATA
MOVF _ZDATA,W
MOVWF _COUNT
BCF _STATUS,0
RLF _ZDATA
BCF _STATUS,0
RLF _ZDATA
MOVF _COUNT,W
ADDWF _ZDATA,W
ADDWF _FDATA
#endasm
fdata=FDATA;
return (fdata);
}



關鍵詞: PIC單片機數制轉

評論


技術專區

關閉