C编程中BCD码的疑问?

[复制链接]
 楼主| longwuyi 发表于 2009-4-1 08:50 | 显示全部楼层 |阅读模式
各位老大,

在单片机编中使用C语言时, 处理计算等使用Hex格式特别容易.
但LCD显示时又不得不转换为BCD来显示.
  1. 若全部需要显示的数据都以BCD码来计算,觉得太麻烦.
  2. 若全部计算使用HEX来计算,在显示时临时转为BCD,感觉浪费CPU时间.
  3. 使需要显示的数据使用BCD和HEX来保存,计算使用Hex,再转为BCD
     使用BCD来做显示,使用Hex来计算.
我能想到的以上3种方式中, 请问一般是怎么做的?

谢谢
mohanwei 发表于 2009-4-1 08:55 | 显示全部楼层

如果资源够,最省事是sprintf()

芯行天下 发表于 2009-4-1 08:58 | 显示全部楼层

一般是在计算时用HEX来进行计算

我一般是在计算是用HEX计算,显示时再转化为BCD码进行显示。保存时也保存HEX数据。
computer00 发表于 2009-4-1 09:52 | 显示全部楼层

显示是慢速设备,计算一下无所谓了。

平常人 发表于 2009-4-1 10:09 | 显示全部楼层

最常用是3楼的方法

计算和存储都方便容易,转换到BCD也很容易,不少CPU还有专用的转换指令。
songbangyan 发表于 2009-4-1 13:04 | 显示全部楼层

我觉得都差不多,cpu时间够用

dai_weis 发表于 2009-4-1 16:51 | 显示全部楼层

HEX作所有的,显示的时候把HEX拆分成BCD

显示刷新是10ms级别,不会占用多少时间
电脑圆圆 发表于 2009-4-1 17:06 | 显示全部楼层

两种方法

1)计算公式
2)查表
ayb_ice 发表于 2009-4-1 20:56 | 显示全部楼层

自己写个专用函数

dark_psycho 发表于 2009-4-1 21:28 | 显示全部楼层

汇编写 hex2bcd函数吧

单位的芯片code资源特紧张,
用c除法得bcd,太浪费了,
后来用了移位+da指令的方法,一下节省了好多空间
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

61

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部