由于义隆EMC单片机是8位的微控器,因此为了节省内存,此处的范例仅以一个BYTE存放两位BCD数为例,数字的范围在0~99之间,转换后的结果放在ACC.如果需要更多的位数,相信在看完之后应该不难自行修改才是。
程序一
这个范例程序共花费13个指令CY-CLE,需要两个变量空间,执行后会影响到原BCD的内容。
说明
在程序一中所采用的方式应该算是最多人知道的方式,也是一种最直接的方法,先将BCD个位数保存起来,因为十位数必须要乘以10,所以利用移位的技巧乘以10再加上个位数,所得的答案放人ACC。
程序二
在程序一的缺点,就是在执行程序以后,原本BCD的内容已经在移位的过程中被破坏掉了,为了改善这项缺失,可以换一种方式看看。下面这个程序,以企图改善前面的缺失,共花费11个指令CYCLE,仍需要两个变量空间,但是执行后不会破坏原来BCD的内容。
程序三
对于程序二的结果如仍然不满意,似乎稍嫌复杂,虽然速度有所改善,但在内存的分配上仍有余地,可以再改善成程序三的型态。转换过程只花费10个指令CYCLE,而且只需要一个变量空间,执行之后也不会改变原来BCD的内容。
本文关键字:单片机 电脑-单片机-自动控制,电子学习 - 基础知识 - 电脑-单片机-自动控制