打印

DS1302疑问

[复制链接]
1948|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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?好像这种加法逻辑上有点想不通的。

望大侠指教,谢谢!

DS1302中文资料,带源代码.pdf

561.99 KB

相关帖子

沙发
kobeshow| | 2012-3-13 23:17 | 只看该作者
ds1302读出来的是bcd码吧我记得...先把它转换成十进制的

使用特权

评论回复
板凳
airwill| | 2012-3-14 15:57 | 只看该作者
因为是 BCD 码, 所以要除以 16 而不是十. 楼主好好看看关于数制方面的资料.
要不先就这么用吧, 说不定啥时候一下就想通了

使用特权

评论回复
地板
leshak|  楼主 | 2012-3-14 18:27 | 只看该作者
其实是转化成16进制的数对吧,所以要除以16?

使用特权

评论回复
5
leshak|  楼主 | 2012-3-14 21:14 | 只看该作者
另外我对+'0'也不是很理解....这个不知道是实现什么功能的.....麻烦指点下,谢谢。

使用特权

评论回复
6
senzh01| | 2012-3-14 21:35 | 只看该作者
就相当于加上了“0”的ascII码值!

使用特权

评论回复
7
leshak|  楼主 | 2012-3-15 11:45 | 只看该作者
i/16是读取的十位数,后面加ASCII码值其实是为了进行强制转换对吧?

使用特权

评论回复
8
delin17| | 2012-3-15 16:39 | 只看该作者
你的显示需要的是什么码?
一般显示用的都是ASCII码,所在加'0'

使用特权

评论回复
9
zwm2011| | 2012-3-25 23:25 | 只看该作者
i=i/16+'0'
应该是左移4到高四位,再加'0'
就是ASCII码

使用特权

评论回复
10
yangyangyangS| | 2012-3-31 14:10 | 只看该作者
进来学习下……

使用特权

评论回复
11
liumouwen| | 2013-8-16 20:30 | 只看该作者
是的,写入和读出的时候要进行一下处理。

使用特权

评论回复
12
outstanding| | 2013-8-25 11:35 | 只看该作者
先把BCD码转成十进制数,然后+‘0’就是ASCII的数字开始,这样可以方便显示

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

522

帖子

4

粉丝