PIC单片机的数制转换

发布者:创意火舞最新更新时间:2016-08-14 来源: eefocus关键字: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);
}

关键字:PIC单片机  数制转换 引用地址:PIC单片机的数制转换

上一篇:PIC16F913驱动LCD proteus仿真
下一篇:时钟芯片DS1302的PIC程序

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved