您的位置 首页 IOT

PIC单片机的数制转化

如果使用PICC编译器对PIC单片机的数制进行转换,我认为嵌套汇编是最好的办法,这样可以节省更多的空间,相对PIC一般的小容量芯片来说是最好…

假如运用PICC编译器对PIC单片机的数制进行转化,我以为嵌套汇编是最好的方法,这样能够节约更多的空间,相对PIC一般的小容量芯片来说是最好的,下面是我做的从BCD转到BIN和从BIN转到BCD的程序。本程序运用时还有个约束,那就是BINTOBCD的二进制数要小于0x64,这样转化出来的数据才能到99以内,别的一个就BCDTOBIN最好有个数据判别功用。可能写的不是很规范,请高手纠正。

别的一个是数据的回转,比方高位在前回转到低位在前,我也以为这样的程序最好运用汇编,当然我没有看编译器编译出来的功率,估量会占用更多的FLASH。

下面是数制转化的程序:

//在运用前要界说几个全局变量

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);
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/274385.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部