PIC单片机的数制转换
时间:11-11
来源:互联网
点击:
如果使用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单片机数制转 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)