怎样编写二进制/BCD码转换子程序?
想仿照51的二进制/BCD码转换子程序编写AVR的二进制/BCD码转换子程序,发现AVR指令中无十进制调整指令,不知应怎样编写?我想用在A/D转换和计数器的十进制显示上. 参考《AVR单片机使用程序设计》(北航出版社)一书3.3节。该书是目前国内出版的学习使用AVR汇编编程最好的书。 谢谢马老师. uchar BcdToBin(uchar val){
val = (val >> 4) * 10 + (val & 0x0f);//将BCD码转换为10进制数
return val; //返回10进制数
}
uchar BinToBcd(uchar val)
{
return((val/10)*16+val%10);
} BCDtoBIN:
点击此处下载armok0177028.rar
摘自:
http://www.avr-asm-tutorial.net/ 搂主要的是二进制/BCD码转换,大家给的却是相反的BCD码/二进制转换例程:D 在C语言中直接乘除效率低下,怎么避免直接乘除呢?有没有好的程序 没有用过AVr汇编,感觉AVr汇编很麻烦,是否可以考虑移位,移出一位后判断是1还是0然后再用加减做。 用DS12C887做数码管时钟,怎么把BCD码转为十进制数在数码管上显示出来?
页:
[1]