DS1302疑问

[复制链接]
 楼主| leshak 发表于 2012-3-13 23:06 | 显示全部楼层 |阅读模式
最近在看DS1302的规格。有如下疑问要请教下各位大侠,规格如附件。
在18页有红色的字体:
由于DS1302的很多数值都是十位数,所以要把十位数分成2次在LCD上显示

所谓的两次显示是分别显示十位和个位嘛?

还有下面的split函数,其中有句
i=i/16+'0'
为什么整除16啊?在读取十位的时候应该是整除10啊?

'0'代表0对应的ASCII码值,如果i/16得到的是对应1的ASCII码值,即‘1’
那么相加后在LCD上显示就为10?好像这种加法逻辑上有点想不通的。

望大侠指教,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
kobeshow 发表于 2012-3-13 23:17 | 显示全部楼层
ds1302读出来的是bcd码吧我记得...先把它转换成十进制的
airwill 发表于 2012-3-14 15:57 | 显示全部楼层
因为是 BCD 码, 所以要除以 16 而不是十. 楼主好好看看关于数制方面的资料.
要不先就这么用吧, 说不定啥时候一下就想通了
 楼主| leshak 发表于 2012-3-14 18:27 | 显示全部楼层
其实是转化成16进制的数对吧,所以要除以16?
 楼主| leshak 发表于 2012-3-14 21:14 | 显示全部楼层
另外我对+'0'也不是很理解....这个不知道是实现什么功能的.....麻烦指点下,谢谢。
senzh01 发表于 2012-3-14 21:35 | 显示全部楼层
就相当于加上了“0”的ascII码值!
 楼主| leshak 发表于 2012-3-15 11:45 | 显示全部楼层
i/16是读取的十位数,后面加ASCII码值其实是为了进行强制转换对吧?
delin17 发表于 2012-3-15 16:39 | 显示全部楼层
你的显示需要的是什么码?
一般显示用的都是ASCII码,所在加'0'
zwm2011 发表于 2012-3-25 23:25 | 显示全部楼层
i=i/16+'0'
应该是左移4到高四位,再加'0'
就是ASCII码
yangyangyangS 发表于 2012-3-31 14:10 | 显示全部楼层
进来学习下……
liumouwen 发表于 2013-8-16 20:30 | 显示全部楼层
是的,写入和读出的时候要进行一下处理。
outstanding 发表于 2013-8-25 11:35 | 显示全部楼层
先把BCD码转成十进制数,然后+‘0’就是ASCII的数字开始,这样可以方便显示
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

522

帖子

4

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