PIC單片機的數(shù)制轉(zhuǎn)換
另外一個是數(shù)據(jù)的反轉(zhuǎn),比如高位在前反轉(zhuǎn)到低位在前,我也認(rèn)為這樣的程序最好使用匯編,當(dāng)然我沒有看編譯器編譯出來的效率,估計會占用更多的FLASH。
本文引用地址:http://m.butianyuan.cn/article/201611/316605.htm下面是數(shù)制轉(zhuǎn)換的程序:
//在使用前要定義幾個全局變量
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);
}
評論